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_email
et/ouexternal_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 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_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...)
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 :
1
outrue
pour “consentement accepté”0
oufalse
pour “consentement refusé”
Vous pouvez également récupérer les consentements via d’autres méthodes :