Comment pouvons nous vous aider ? 👋

API createOrder

1. Code à utiliser

<?php
    // ================================================================================
    // PREPARATION DES DONNEES
    // ================================================================================
    $post_data = array();
    // ---------------------------- Attributs du profil -------------------------------
    $post_data["data"]["customer_email"] = "john@doe.com";
    $post_data["data"]["external_id"] = "12345xxx6789";
    if (isset($_COOKIE['sbt'])) // Sauvegarde du cookie d'authentification du customer s'il est présent.
    {
       $post_data["data"]["customer_cookie"] = $_COOKIE['sbt'];
    }
    $post_data["data"]["customer_name"] = "Doe";
    $post_data["data"]["customer_firstname"] = "John";
    $post_data["data"]["customer_isoptin"] = "1"; // 1:optin / 0:not optin / -1: unknown
    $post_data["data"]["customer_gender"] = "male"; // "male" or "female"
    $post_data["data"]["customer_address"] = "8, rue de la place";
    $post_data["data"]["customer_address2"] = "bâtiment A";
    $post_data["data"]["customer_address3"] = "appartement 23";
    $post_data["data"]["customer_cp"] = "76000";
    $post_data["data"]["customer_city"] = "Rouen";
    $post_data["data"]["customer_country"] = "FR";
    $post_data["data"]["customer_tel"] = "0235000000";
    $post_data["data"]["customer_mobile"] = "060606606";
    $post_data["data"]["customer_fonction"] = "developer";
    $post_data["data"]["customer_company"] = "SPREAD";
    $post_data["data"]["customer_birthday"] = "1970-12-31";
    $post_data["data"]["customer_lang"] = "fr_FR";
    $post_data["data"]["add_tag"] = array("tag1", "tag2"); // Ajout de tags client
    $post_data["data"]["del_tag"] = array("tag3", "tag4"); // Suppression de tags client
    $post_data["data"]["action"] = "order";
    // Champs personnalisés
    $post_data["data"]["custom_fields"][327] = "value"; // ID du custom_field à retrouver dans votre BackOffice, en bas de "Paramétrage > Tracker > Exemple de codes".
    // --------------------------- Attributs de la commande ---------------------------
     $post_data["data"]["order_idorder"] = "0000001";
    $post_data["data"]["order_state"] = "10"; // 10:taked / 20:paid / 50:sent / 100:recieved
    $post_data["data"]["order_amount"] = 158.31;
    $post_data["data"]["order_crea_dt"] = "2014-06-21 14:31:08"; // Y-m-d H:i:s (UTC)
    $post_data["data"]["order_start_service"] = "2019-06-05"; // Y-m-d
    $post_data["data"]["order_end_service"] = "2019-06-14"; // Y-m-d
    // Attributs produits de la commande
    $post_data["data"]["product_attributes"] = array(
        array("size:xl", "type:shirt"), // produit 1
        array("size:s", "color:blue"), // produit 2
    );
    //$post_data["data"]["product_attributes"] = array(); // Laisser vide pour supprimer tous les attributs
    // Tags de la commande
    $post_data["data"]["add_order_tag"] = array("tag_commande_1", "tag_commande_2"); // Ajout de tags sur la commande
    $post_data["data"]["del_order_tag"] = array("tag_commande_3", "tag_commande_4"); // Suppression de tags sur la commande

    // ================================================================================
    // APPEL CURL
    // ================================================================================
    $curl_post_data = http_build_query($post_data);
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, "https://social-sb.com/api/createOrder"); 
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTREDIR, CURL_REDIR_POST_ALL);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    curl_setopt($curl, CURLOPT_USERPWD, "PUBLIC_KEY:PRIVATE_KEY"); // À remplacer par vos clés d'API publique et privée dans votre back office, menu "Paramétrage > Tracker" en bas de page
    curl_setopt($curl, CURLOPT_POSTFIELDS,$curl_post_data );
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $curl_return = curl_exec($curl);
    curl_close($curl);
 ?>

2. Explications

Connecter le site avec le BackOffice SPREAD

Dans l'appel CURL en fin de code, insérez vos clés API publique et privée. Elles se trouvent dans votre BackOffice, onglet Paramétrage > Tracker.

 

Attributs profils

Notion image

Champs personnalisés

Vous pouvez ajouter davantage d'information sur les profils SPREAD, pour cela vous devez créer des champs personnalisés. Ceux-ci peuvent être renseignés de différentes façons et vous pouvez y remonter des informations en PHP. Pour cela, utilisez $post_data["data"]["custom_fields"][327] = "value";

327 est ici un identifiant de champ personnalisé, trouvez les vôtres en bas de cette page.

Notion image
 

Attributs commandes

Pour remonter les commandes, vous devez impérativement inclure au moins ces informations :

  • customer_email et/ou external_id comme identifiant profil,
  • order_idorder comme référence commande,
  • order_state pour le statut de la commande,
  • order_amount pour le montant de la commande,
  • order_crea_dt pour la date de la commande.
 

Correspondance Statuts de commande

  • 0 : commandes annulées Ces commandes n’entrent pas en compte dans le chiffre d'affaires.
  • 10 : statut des commandes dont le paiement n’a pas encore été validé Ces commandes n'entrent pas en compte dans le chiffre d'affaires à moins que vous ne le configuriez dans le BackOffice SPREAD, "Paramétrage > Tracker > 3. Configurez le statut de commande"
  • 20 : statut des commandes payées
  • 50 : statut des commandes expédiées
  • 100 : statut des commandes terminées, avec paiement effectué et commande livrée au client
 

Gestion de l'idorder

La valeur idorder est l’identifiant unique de la commande sur la boutique.

La première fois que cet identifiant est utilisé, la commande est enregistrée dans la CRM. Si l’identifiant de commande est présenté une deuxième fois, les données sont mises à jour.

Cet identifiant est particulièrement utile pour changer l’état de la commande (l’annuler ou la mettre à expédier).

 
 

Vous pouvez également compléter les informations de la commande avec :

  • Des tags commandes,
  • Des dates de début et de fin de prestation,
  • Des attributs produits.
 

Taguer les commandes

Cela permet de catégoriser la commande. exemple : indiquez l'établissement concerné, le type de commande (réservation, abonnement...), etc Pour cela, utilisez :

  • add_order_tag pour ajouter un ou plusieurs tags lors de la remontée,
  • del_order_tag pour supprimer un ou plusieurs tags lors de la remontée.
 

Dates de prestation

Cela permet d'indiquer des dates de début et de fin de prestation comme un abonnement à durée limitée, des réservations (séjours, hôtel...), etc.

Pour cela, utilisez au format yyyy-mm-dd :

  • order_start_service
  • order_end_service
 

Attributs produits

Vous pouvez ajouter des attributs produits afin de revenir vers le profil concernant les produits inclus dans sa commande.

Vous remontez cela avec le code suivant :

$post_data["data"]["product_attributes"] = array(
        array("size:xl", "type:shirt"), // produit 1
        array("size:s", "color:blue"), // produit 2
    );
 

Inscriptions newsletter

Les inscriptions newsletter nécessitent l'adresse email du profil. Dans SPREAD, vous configurez vos différents consentements. Chacun d'eux, possède un identifiant technique que vous personnalisez.

 

Vous pouvez récupérer les abonnements newsletter et SMS fait lors de la commande avec les paramètres :

  • customer_isoptin
  • customer_mobile_isoptin
 

Pour récupérer d'autres consentements, nous vous proposons d'autres méthodes :

 
 
🆘
Si vous avez d’autres questions sur ce sujet, vous pouvez contacter le support. 💬
Cela a-t-il répondu à votre question ?
😞
😐
🤩