Documentation PHP pour l'API Octoplus
Pré-requis
require_once("api_library.php");
Authentification
Vos paramètres de connexion se trouvent dans la page "Paramètres API", disponible dans le menu de gauche. Les informations suivantes sont données à titre indicatif.
$login = "12345";
$password = "secret";
Interrogation du stock
Produits appelés sous la forme d'un tableau multidimensionnel
$product = array(
array(
"ean" => "3701348612517",
"franco" => 1,
"type" => 1
),
array(
"ean" => "5707562314648",
"franco" => 1,
"type" => 1
)
);
Paramètres de chaque tableau associatif
| ean | Obligatoire | EAN du pneu recherché |
| franco | Obligatoire | 1 pour FRANCO2, 2 pour FRANCO6, 3 pour EXW |
| type | Obligatoire | 1 pour Meilleur prix, 2 pour Meilleur délai |
| quantity | Facultatif | Nombre de pneus souhaités |
| price | Facultatif | Prix HT souhaité |
Appel de l'API
$stock = exchange_request($login,$password,$product);
Réponse
L'API renvoie un tableau multidimensionnel dont les clés correspondent aux EAN envoyés en paramètres ou une information textuelle en cas d'erreur.
// Gestion des erreurs
if (!is_array($stock))
{
echo($stock);
exit;
}
// Réponse API
foreach ($stock as $ean => $detail)
{
echo("EAN : ".$ean.",
Quantity : ".$detail["quantity"].",
Price : ".$detail["price"].",
Franco : ".$detail["franco"].",
Type : ".$detail["type"].",
Délai de livraison : ".$detail["delai"]);
}
Informations renvoyées par l'API
| ean | EAN du pneu recherché |
| franco | 1 pour FRANCO2, 2 pour FRANCO6, 3 pour EXW |
| type | 1 pour Meilleur prix, 2 pour Meilleur délai |
| quantity | Nombre de pneus en stock |
| price | Prix HT du pneu |
| delai | Délai de livraison en jours |
Codes erreurs
| 0 | Identifiant manquant |
| 1 | Token manquant |
| 2 | Utilisateur non reconnu |
| 3 | Produit manquant |
| 4 | Mauvais format de produit |
| 5 | EAN manquant |
| 6 | Franco manquant |
| 7 | Type manquant |
| 8 | EAN inconnu |
| 9 | Franco inconnu |
| 10 | Franco incorrect |
| 11 | Stock insuffisant |
| 12 | Prix incorrect |
| 13 | Fournisseur incorrect |
| S0 | Problème de connexion à l'API fournisseur |
| S1 | Pas de réponse du fournisseur |
| S2 | Produit inconnu chez le fournisseur |
| S3 | Stock insuffisant chez le fournisseur |
| S4 | Prix différent chez le fournisseur |
Création d'une commande
La création d'une commande s'appuie sur 3 tableaux associatifs :
- Coordonnées client,
- Liste des produits (tableau multidimensionnel),
- Données complémentaires.
// Client
$customer = array(
"contact_code" => "CRM123",
"contact_company" => "Octoplus",
"contact_juridicform" => "5",
"contact_siret" => "50045262300010",
"contact_notva" => "FR76300400500",
"contact_lastname" => "Dupont",
"contact_firstname" => "Pierre",
"contact_phone" => "0612345678",
"contact_mail" => "pierre.dupont@gmail.com",
"contact_street1" => "120 avenue de la République",
"contact_street2" => "ZA du Commerce",
"contact_zipcode" => "75015",
"contact_cityname" => "Paris",
"contact_country" => "FR",
"delivery_company" => "Octoplus",
"delivery_juridicform" => "5",
"delivery_siret" => "50045262300010",
"delivery_lastname" => "Dupont",
"delivery_firstname" => "Pierre",
"delivery_phone" => "0612345678",
"delivery_mail" => "pierre.dupont@gmail.com",
"delivery_street1" => "120 avenue de la République",
"delivery_zipcode" => "75015",
"delivery_cityname" => "Paris",
"delivery_country" => "FR",
"billing_company" => "Octoplus",
"billing_juridicform" => "5",
"billing_siret" => "50045262300010",
"billing_lastname" => "Dupont",
"billing_firstname" => "Pierre",
"billing_phone" => "0612345678",
"billing_mail" => "pierre.dupont@gmail.com",
"billing_street1" => "120 avenue de la République",
"billing_zipcode" => "75015",
"billing_cityname" => "Paris",
"billing_country" => "FR"
);
// Panier
$cart = array(
array(
"ean" => "5707562325330",
"quantity" => 8,
"price" => 15.59,
"franco" => 1,
"type" => 1
),
array(
"ean" => "3701348612517",
"quantity" => 4,
"price" => 20.01,
"franco" => 1,
"type" => 1
)
);
// Données complémentaires
$other = array(
"reference" => "TEST123",
"paymentmode" => "3",
"bankname" => "CIC",
"bankiban" => "FR765242135598",
"bankswift" => "CICBIC",
"deliverydate" => "2022-02-18"
);
Paramètres du tableau Client
Contact principal
| contact_code | Facultatif | Code client dans l'ERP Octoplus |
| contact_company | Facultatif | Entreprise |
| contact_juridicform | Facultatif | Identifiant de la forme juridique (cf. liste ci-dessous) |
| contact_siret | Facultatif | Numéro de SIRET |
| contact_notva | Facultatif | Numéro de TVA intracommunautaire |
| contact_lastname | Obligatoire | Nom |
| contact_firstname | Obligatoire | Prénom |
| contact_phone | Obligatoire | Téléphone |
| contact_mail | Obligatoire | |
| contact_street1 | Obligatoire | Adresse |
| contact_street2 | Facultatif | Complément d'adresse |
| contact_zipcode | Obligatoire | Code postal |
| contact_cityname | Obligatoire | Ville |
| contact_country | Obligatoire | Code pays (ISO 3106) |
Livraison
| delivery_company | Facultatif | Entreprise |
| delivery_juridicform | Facultatif | Identifiant de la forme juridique (cf. liste ci-dessous) |
| delivery_siret | Facultatif | Numéro de SIRET |
| delivery_notva | Facultatif | Numéro de TVA intracommunautaire |
| delivery_lastname | Obligatoire | Nom |
| delivery_firstname | Obligatoire | Prénom |
| delivery_phone | Obligatoire | Téléphone |
| delivery_mail | Obligatoire | |
| delivery_street1 | Obligatoire | Adresse |
| delivery_street2 | Facultatif | Complément d'adresse |
| delivery_zipcode | Obligatoire | Code postal |
| delivery_cityname | Obligatoire | Ville |
| delivery_country | Obligatoire | Code pays (ISO 3106) |
Facturation
| billing_company | Facultatif | Entreprise |
| billing_juridicform | Facultatif | Identifiant de la forme juridique (cf. liste ci-dessous) |
| billing_siret | Facultatif | Numéro de SIRET |
| billing_notva | Facultatif | Numéro de TVA intracommunautaire |
| billing_lastname | Obligatoire | Nom |
| billing_firstname | Obligatoire | Prénom |
| billing_phone | Obligatoire | Téléphone |
| billing_mail | Obligatoire | |
| billing_street1 | Obligatoire | Adresse |
| billing_street2 | Facultatif | Complément d'adresse |
| billing_zipcode | Obligatoire | Code postal |
| billing_cityname | Obligatoire | Ville |
| billing_country | Obligatoire | Code pays (ISO 3106) |
Paramètres de chaque tableau associatif du panier
| ean | Obligatoire | EAN du pneu recherché |
| franco | Obligatoire | 1 pour FRANCO2, 2 pour FRANCO6, 3 pour EXW |
| type | Obligatoire | 1 pour Meilleur prix, 2 pour Meilleur délai |
| quantity | Obligatoire | Nombre de pneus souhaités |
| price | Obligatoire | Prix |
Paramètres du tableau Données complémentaires
| reference | Facultatif | Numéro de commande du client |
| paymentmode | Facultatif | Identifiant du mode de paiement (cf. liste ci-dessous) |
| bankname | Facultatif | Nom de la banque du client |
| bankiban | Facultatif | IBAN du client |
| bankswift | Facultatif | BIC du client |
| deliverydate | Facultatif | Date de livraison souhaitée, au format AAAA-MM-JJ |
Appel de l'API
$order = order_request($login,$password,$customer,$cart,$other);
Réponse
L'API renvoie un numéro de commande (3 lettres en majuscules et 8 chiffres) sous la forme d'un tableau associatif dont la clé est "reference" ou une information textuelle en cas d'erreur.
// Gestion des erreurs
if (!is_array($order))
{
echo($order);
exit;
}
// Réponse API
echo("Reference : ".$order["reference"]);
Information renvoyée par l'API
| reference | Numéro de commande Octoplus |
Codes erreurs
| 0 | Identifiant manquant |
| 1 | Token manquant |
| 2 | Utilisateur non reconnu |
| 3 | Client manquant |
| 4 | Produits manquants |
| 5 | Données complémentaires manquantes |
| 6 | Mauvais format pour le client |
| 7 | Type d'interlocuteur inconnu |
| 8 | Nom manquant |
| 9 | Prénom manquant |
| 10 | Adresse manquante |
| 11 | Code postal manquant |
| 12 | Ville manquante |
| 13 | Pays manquant |
| 14 | Forme juridique inconnue |
| 15 | Numéro de TVA manquant |
| 16 | Pays inconnu |
| 17 | Mauvais format pour les produits |
| 18 | EAN manquant |
| 19 | Quantité manquante |
| 20 | Prix manquant |
| 21 | Franco manquant |
| 22 | Type manquant |
| 23 | EAN inconnu |
| 24 | Franco inconnu |
| 25 | Franco incorrect |
| 26 | Prix incorrect |
| 27 | Stock incorrect |
| 28 | Mauvais format pour les données complémentaires |
| 29 | Mode de paiement inconnu |
| 30 | Date de livraison non conforme |
| 31 | Panier vide |
| C0 | Problème de connexion à l'API fournisseur |
| C1 | Produit inconnu chez le fournisseur |
| C2 | Commande refusée par le fournisseur |
Statut d'une commande
Commandes appelées sous la forme d'un tableau multidimensionnel
$order = array(
array(
"reference" => "ABC12345678"
),
array(
"reference" => "DEF87654321"
)
);
Paramètres de chaque tableau associatif
| reference | Obligatoire | Référence de la commande Octoplus (3 lettres et 8 chiffres) ou référence interne du client |
Appel de l'API
$status = status_request($login,$password,$order);
Réponse
L'API renvoie un tableau multidimensionnel dont les clés correspondent aux références envoyées en paramètres ou une information textuelle en cas d'erreur.
// Gestion des erreurs
if (!is_array($status))
{
echo($status);
exit;
}
// Réponse API
foreach ($status as $reference => $infos)
{
foreach ($infos as $detail)
{
echo("<p>Référence Octoplus :".$detail["reference"].",
Référence client : ".$detail["internal"].",
Statut : ".$detail["status"]."</p>"
);
}
}
Informations renvoyées par l'API
| reference | Référence Octoplus |
| internal | Référence client |
| status |
Statut de la commande (1 : En attente, 2 : Validée, 3 : Expédiée, 5 : Annulée) |
Codes erreurs
| 0 | Identifiant manquant |
| 1 | Token manquant |
| 2 | Utilisateur non reconnu |
| 3 | Commande manquante |
| 4 | Mauvais format de commande |
| 5 | Référence manquante |
| 6 | Référence inconnue |
Tracking
Commandes appelées sous la forme d'un tableau multidimensionnel
$order = array(
array(
"reference" => "ABC12345678"
),
array(
"reference" => "DEF87654321"
)
);
Paramètres de chaque tableau associatif
| reference | Obligatoire | Référence de la commande Octoplus (3 lettres et 8 chiffres) ou référence interne du client |
Appel de l'API
$tracking = tracking_request($login,$password,$order);
Réponse
L'API renvoie un tableau multidimensionnel dont les clés correspondent aux références envoyées en paramètres ou une information textuelle en cas d'erreur.
// Gestion des erreurs
if (!is_array($tracking))
{
echo($tracking);
exit;
}
// Réponse API
foreach ($tracking as $reference => $infos)
{
foreach ($infos as $detail)
{
echo("<p>Référence Octoplus :".$detail["reference"].",
Référence client : ".$detail["internal"].",
ID : ".$detail["id"].",
Link : ".$detail["link"].",
Carrier : ".$detail["carrier"]."</p>"
);
}
}
Informations renvoyées par l'API
En cas de tracking manquant, les valeurs du numéro de tracking, du lien de tracking et du transporteur sont vides.
| reference | Référence Octoplus |
| internal | Référence client |
| id | Numéro de tracking |
| link | Lien de tracking |
| carrier | Transporteur |
Codes erreurs
| 0 | Identifiant manquant |
| 1 | Token manquant |
| 2 | Utilisateur non reconnu |
| 3 | Commande manquante |
| 4 | Mauvais format de commande |
| 5 | Référence manquante |
| 6 | Référence inconnue |
Factures
Commandes appelées sous la forme d'un tableau multidimensionnel
$order = array(
array(
"reference" => "ABC12345678"
),
array(
"reference" => "DEF87654321"
)
);
Paramètres de chaque tableau associatif
| reference | Obligatoire | Référence de la commande Octoplus (3 lettres et 8 chiffres) ou référence interne du client |
Appel de l'API
$billing = billing_request($login,$password,$order);
Réponse
L'API renvoie un tableau multidimensionnel dont les clés correspondent aux références envoyées en paramètres ou une information textuelle en cas d'erreur.
// Gestion des erreurs
if (!is_array($billing))
{
echo($billing);
exit;
}
// Réponse API
foreach ($billing as $reference => $infos)
{
foreach ($infos as $detail)
{
echo("<p>Référence Octoplus :".$detail["reference"].",
Référence client : ".$detail["internal"].",
Référence de facture : ".$detail["number"].",
Lien de la facture : ".$detail["link"]."</p>
);
}
}
Informations renvoyées par l'API
En cas de facture manquante, les valeurs de la référence de facture et du lien de la facture sont vides.
| reference | Référence Octoplus |
| internal | Référence client |
| number | Référence de facture |
| link | Lien de la facture |
Codes erreurs
| 0 | Identifiant manquant |
| 1 | Token manquant |
| 2 | Utilisateur non reconnu |
| 3 | Commande manquante |
| 4 | Mauvais format de commande |
| 5 | Référence manquante |
| 6 | Référence inconnue |
Annexes
Identifiants des formes juridiques
| 1 | Association |
| 2 | EURL |
| 3 | SARL |
| 4 | SAS |
| 5 | SASU |
| 6 | SCI |
| 7 | SNC |
| 8 | Société civile |
| 9 | Entreprise individuelle |
| 10 | Auto-entreprise |
| 11 | EIRL |
| 12 | SCA |
| 13 | SCS |
| 14 | SA à conseil d'administration |
| 15 | Collectif |
| 16 | Collectivité territoriale |
| 17 | SELARL |
| 18 | SELAS |
| 19 | SELCA |
| 20 | Affaire personnelle commerçant |
Identifiants des modes de paiement
| 1 | Paiement en ligne |
| 2 | Chèque |
| 3 | Virement bancaire |
| 4 | Lettre de change |
| 5 | Prélèvement |
