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_gender"] = "male"; // "male" or "female"
    $post_data["data"]["customer_address"] = "8, rue de la place";
    $post_data["data"]["customer_address_2"] = "bâtiment A";
    $post_data["data"]["customer_address_3"] = "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
    // Identifiant unique de la commande chez vous, important pour le updateOrder
    $post_data["request"]["order_idorder"] = "0000001";
    // ================================================================================
    // APPEL CURL
    // ================================================================================
    $curl_post_data = http_build_query($post_data);
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, "https://social-sb.com/api/updateOrder");
    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
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.
Attributs commandes
Pour remonter les commandes, vous devez impérativement inclure au moins ces informations :
- customer_emailet/ou- external_idcomme identifiant profil,
- order_idordercomme référence commande,
- order_statepour le statut de la commande,
- order_amountpour le montant de la commande,
- order_crea_dtpour la date de la commande.
Correspondance des 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...) Pour cela, utilisez :
- add_order_tagpour ajouter un ou plusieurs tags lors de la remontée,
- del_order_tagpour 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...)
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 newsletters & consentements
Les consentements (notamment pour les inscriptions newsletters) 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 mettre à jour le statut des consentements via la clé consents (voir l’exemple ci-dessus). 
Cette clé attend un tableau clé/valeur où :
- la clé est le nom technique du consentement (défini dans l’interface d’édition d’un consentement)
- la valeur est l’état du consentement :
- 1ou- truepour “consentement accepté”
- 0ou- falsepour “consentement refusé”
Vous pouvez également récupérer les consentements via d’autres méthodes :
