Résumé:
Il est possible de créer directement un panier contenant des lignes afin de pouvoir récupérer ses informations par la suite (le prix par exemple). Cette méthode dévie légèrement de la procédure classique sur deux aspects:
- La création du panier et des lignes se fait en une seule requête au lieu d'une requête pour le panier + une requête supplémentaire par ligne. Par conséquent la syntaxe n'est pas exactement la même.
- Un panier créé de cette façon est éphémère, c'est-à-dire que sa durée de vie est liée à celle de la requête : une fois les informations rétournées par le serveur, le panier n'existe plus. Il n'est donc pas possible de rajouter de nouvelles lignes ou de modifier des informations telles que l'adresse de livraison a posteriori.
Création directe d'un panier (Requête HTTP POST):
L'URL de l'endpoint se présente sous ce format:
https://api.123imprim.com/0.2/nom_du_site/panier/ où
nom_du_site est remplacé par le site concerné (adhesifs, affiches,
baches, panneaux, plv).
Exemple pour Baches:
Voici un exemple de JSON (content-type de la requête: application/json) pouvant être utilisé pour créer un panier avec deux lignes:
{
"devis": "nom devis",
"adresse_livraison": {
"adresse1": "rue victor lagrange",
"code_postal": "69007",
"instructions": "com test",
"nom": "nom",
"societe": "123imprim",
"telephone": "0102030405",
"ville": "Lyon"
},
"lignes": [
{
"label": "label ligne",
"base": 200,
"hauteur": 100,
"impression": 1,
"decoupe": 1,
"support": 8,
"quantite": 5
},
{
"label": "label ligne 2",
"base": 300,
"hauteur": 150,
"impression": 1,
"decoupe": 1,
"support": 8,
"quantite": 10
}
]
}
On retrouve bien en marron les paramètres propres au panier plus le nouveau paramètre lignes contenant ceux des deux lignes en bleu et violet.
Voici la réponse retournée par le serveur si tout s'est bien passé:
{
"devis": "nom devis",
"delai": 7,
"prix_ht": 29645,
"frais_port_ht": 2657,
"remise_grand_compte_ht": 2075,
"prix_total_ht": 30377,
"prix_tva": 6075,
"prix_final_ttc": 36452,
"emballage_renforce_ht": 150,
"lignes": [
{
"label": "label ligne",
"prix_ht": 6140,
"base": 200,
"hauteur": 100,
"quantite": 5,
"support": 8,
"impression": 1,
"decoupe": 1,
"oeillet": null,
"saisie_oeillet": null,
"ourlet": null,
"fourreau": null,
"saisie_fourreau": "",
"fixation": null,
"saisie_fixation": null,
"verification": false
},
{
"label": "label ligne 2",
"prix_ht": 23505,
"base": 300,
"hauteur": 150,
"quantite": 10,
"support": 8,
"impression": 1,
"decoupe": 1,
"oeillet": null,
"saisie_oeillet": null,
"ourlet": null,
"fourreau": null,
"saisie_fourreau": "",
"fixation": null,
"saisie_fixation": null,
"verification": false
}
],
"adresse_livraison": {
"nom": "nom",
"prenom": "",
"societe": "123imprim",
"adresse1": "rue victor lagrange",
"adresse2": "",
"code_postal": "69007",
"ville": "Lyon",
"pays": "France",
"email": "",
"telephone": "0102030405",
"instructions": "com test"
}
}
Cas particulier pour les affiches:
Les affiches étant séparées en 2 catégories (sur mesure et urbaines) avec des paramètres distincts, lignes est par conséquent remplacé par deux paramètres:
- lignes_sur_mesure
- lignes_urbaines
Exemple:
{
"devis": "nom devis",
"adresse_livraison": {
"nom": "nom",
"prenom": "prenom",
"societe": "123imprim",
"adresse1": "rue victor lagrange",
"adresse2": "adresse 2",
"code_postal": "69007",
"ville": "Lyon",
"pays": "France",
"email": "test@test.com",
"telephone": "0102030405",
"instructions": "com test"
},
"lignes_sur_mesure": [
{
"label": "label ligne sur mesure",
"base": 200,
"hauteur": 100,
"impression": 8,
"decoupe": 1,
"support": 40,
"finition": 4,
"quantite": 5
}
]>,
"lignes_urbaines": [
{
"label": "label ligne urbaine",
"format": 1,
"support": 13,
"quantite": 10
}
]
}
Création directe d'une commande (Requête HTTP POST):
Afin de créer une commande, il faut effectuer une requête simimaire à celle du panier.
Pour cela il faut modifier l'adresse de l'endpoint pour y rajouter validate/ à la fin; pour baches
nous obtenons donc https://api.123imprim.com/0.2/panneaux/panier/validate/
Voici une liste non exautive des différences :
- Le champ
prenom_livraisonest obligatoire pour créer une commande - Le numéro de téléphone
telephone_livraisondoit être un numéro valide (soit 10 chiffres commençant par 0 (zéro), soit un "+" suivi du code pays et le numéro
{
"id": 88410,
"status": "Pas de statut",
"number": "PAN88410",
"reference_client": "test test 8",
"adresse_livraison": {
"nom": "nom",
"prenom": "prenom",
"societe": "123imprim",
"adresse1": "rue victor lagrange",
"adresse2": "",
"code_postal": "69007",
"ville": "LYON 07",
"pays": "France",
"email": "",
"telephone": "0102030405",
"instructions": "com test"
},
"prix_fact_ht": 2224,
"frais_port_ht": 2790,
"remise_grand_compte_ht": 22,
"prix_fact_total_ht": 5792,
"prix_fact_total_tva": 1158.0,
"prix_fact_total_ttc": 6950,
"prix_emballage_renforce_ht": 800,
"lignes": [
{
"id": 368347,
"label": "",
"base": 100,
"hauteur": 100,
"quantite": 1,
"support": 24,
"impression": 8,
"decoupe": 1,
"oeillet": null,
"saisie_oeillet": null,
"finition": null,
"soutien_couleur": null,
"perforation": null,
"suspension": null,
"fixation": null,
"saisie_fixation": null,
"verification": false
}
]
}