Documentation API 123imprim
UTILISATION DE L'API PLV

API RESTful Partenaires

L'objet de cette documentation est de présenter l'API RESTful de 123IMPRIM permettant aux clients partenaires d'accéder aux configurateurs de nos produits ainsi que de récupérer les prix calculés par les configurations choisies.

API RESTful Espace Partenaires Impression 100% française
Statut. Ce document est une version devant être complétée en fonction de l'avancement du projet.

Produits pris en charge

L'API PLV expose les familles de produits disponibles sur le site 123PLV. Toutes les routes sont préfixées par https://api.123imprim.com/0.2/plv/.

Récupérer les familles et leurs variantes

Une PLV se configure d'abord à partir d'une famille. La requête GET https://api.123imprim.com/0.2/plv/famille/ retourne, pour chaque famille, ses formats, supports, impressions, finitions, découpes et options disponibles.

Contrairement aux autres produits, une famille PLV peut proposer des options. Chaque option contient la liste de ses variantes disponibles. Une variante est identifiée par son champ id. Il n'existe pas d'endpoint catalogue séparé pour les variantes : la réponse de famille/ constitue la source de vérité pour les variantes autorisées sur une famille.

Extrait simplifié d'une réponse :

[
  {
    "id": 76,
    "nom_complet": "TOTEM ELLIPTIQUE",
    "sans_impression_possible": false,
    "formats": [
      {"id": 22, "nom": "58x158cm"}
    ],
    "supports": [
      {"id": 7, "nom_complet": "Carton double micro-cannelure", "delai_min": 3}
    ],
    "impressions": [
      {"id": 1, "nom": "Quadri directe recto seul"}
    ],
    "finitions": [],
    "decoupes": [],
    "options": [
      {
        "id": 3,
        "nom": "Découpe",
        "variantes": [
          {"id": 5, "nom": "Standard"},
          {"id": 6, "nom": "Double rainage central"}
        ]
      },
      {
        "id": 1,
        "nom": "Fourniture",
        "variantes": [
          {"id": 3, "nom": "Sans"},
          {"id": 7, "nom": "2 crochets"}
        ]
      }
    ]
  }
]

Les listes globales sont aussi disponibles via format/, support/, impression/, finition/ et decoupe/. Pour construire une configuration, utilisez toutefois les éléments inclus dans la famille choisie afin de respecter ses compatibilités.

Calculer un prix

Le calcul se fait avec une requête POST sur https://api.123imprim.com/0.2/plv/prix/. Le champ variantes contient une liste d'IDs provenant des options de la famille. Lorsqu'une option est utilisée, une seule de ses variantes doit être sélectionnée.

{
  "famille": 76,
  "format": 22,
  "support": 7,
  "impression": 1,
  "quantite": 1,
  "variantes": [5, 7],
  "verification": false
}

Les prix retournés sont exprimés en centimes d'euro et regroupés par délai, comme pour les autres sites :

{
  "J+6": {
    "Message": "",
    "PrixHT": "4800"
  }
}

Les champs impression, finition et decoupe dépendent de la famille. sans_impression_possible indique si une configuration sans impression est autorisée. Une configuration incompatible avec la famille est refusée avec une réponse HTTP 400.

Créer un panier ou une commande

Les lignes envoyées à POST /0.2/plv/panier/ et POST /0.2/plv/panier/validate/ utilisent la même structure que l'entrée prix/, y compris la liste variantes. Les variantes sont enregistrées sur chaque ligne PLV et sont conservées lors de la transformation du panier en commande.

{
  "devis": "Référence partenaire",
  "delai": 6,
  "adresse_livraison": {
    "prenom": "Jean",
    "nom": "Dupont",
    "societe": "Exemple",
    "adresse1": "1 rue de Lyon",
    "code_postal": "69007",
    "ville": "LYON 07",
    "telephone": "0102030405"
  },
  "lignes": [
    {
      "label": "Totem accueil",
      "famille": 76,
      "format": 22,
      "support": 7,
      "impression": 1,
      "quantite": 1,
      "variantes": [5, 7],
      "verification": false
    }
  ]
}

POST /0.2/plv/panier/ effectue une simulation : le panier est supprimé après la réponse. POST /0.2/plv/panier/validate/ exige une authentification et transforme le panier en commande. Les commandes du client authentifié sont consultables via GET /0.2/plv/commande/.