Vous devez formater votre fichier de données de vente selon les spécifications et lignes directrices ci-dessous.
Avant de commencer
Les données de vente, qu'est-ce que c'est ?
Les données de ventes sont les informations sur les transactions enregistrées dans vos magasins, y-compris les achats quotidiens, les retours et les annulations, ainsi que les données hors ligne issues de vos magasins physiques. Nous conservons vos données de vente dans notre Service de données de vente, auquel les apps Emarsys individuelles peuvent accéder.
Vous pouvez suivre l'état de vos données de vente ainsi que les mises à jour habituelles à la page Gestion > Sources de données Predict > Données de vente.
Important
- Les chargements de données de vente sont progressifs, ce qui signifie que les nouveaux chargements s'ajoutent aux données de vente existantes sans les écraser.
- Comme Emarsys n'élimine pas actuellement les doublons des données de vente, assurez-vous de ne charger qu'une seule fois chaque commande individuelle car des fichiers dupliqués fausseront vos rapports.
Pourquoi les données de vente sont-elles importantes ?
Bien que nos scripts de collecte de données Web Extend tracent les achats dans votre magasin en ligne, ils ne recueillent aucune information sur les retours, les annulations et les transactions hors-ligne. Ces informations sont essentielles pour toutes les fonctionnalités Emarsys liées, telles que des rapports de revenu exacts ou des modèles d'affinité produit, et vous aident à rendre nos fonctionnalités intelligentes encore plus intelligentes.
Vos données de vente sont nécessaires à la plupart des produits et fonctionnalités Emarsys, y-compris Predict et Smart Insight. Elles sont aussi nécessaires à l'attribution de revenu des campagnes, ainsi qu'aux statistiques et rapports de revenu.
Combien d'énergie cela doit-il me prendre ?
Vous devrez d'abord générer un fichier initial contenant idéalement au moins deux ans de données de vente, conforme à nos spécifications décrites ci-dessous. En fonction de la taille et de la complexité de votre historique de ventes, votre spécialiste des données mettra jusqu'à quelques heures pour livrer ce fichier.
Ensuite, si votre moteur de validation détecte des problèmes, vous devrez les régler avant de poursuivre, ce qui peut prendre encore quelques heures à votre spécialiste des données.
Sur la base de notre expérience passée avec un large échantillon de clients, voici une estimation du temps que vous pourriez mettre à configurer votre fichier de données de vente :
Action | Role | Effort maximum |
---|---|---|
Générer un fichier de données de vente historiques | Spécialistes des données | Jusqu'à 8 heures |
Valider le fichier | Spécialistes des données | 5 minutes |
Réparer les erreurs, si besoin | Spécialistes des données | Varie en fonction du nombre et de la gravité des problèmes, mais généralement pas plus de 2 heures |
Configurer l'import de données de vente quotidien | Spécialistes des données | Jusqu'à 2 heures |
À quelle fréquence dois-je charger mes données de vente ?
Après avoir fait le chargement initial de vos données de vente historiques, Emarsys vous recommande de charger les nouvelles données de vente quotidiennement.
Vous pouvez charger les données de vente plus souvent, mais Smart Insight ne traitera ces fichiers de données de vente qu'une fois par jour, de manière agrégée.
Règles générales pour votre fichier de données
Votre chargement de fichier de données de vente échouera s'il ne passe pas tous nos examens de validation. Vous devez vous assurer que votre fichier est correctement formaté, comme décrit ci-dessous.
Les colonnes dans l'en-tête de votre fichier de données de vente doivent être dans l'ordre établi pendant l'implémentation de l'Onboarding Smart Insight. Dans le cas contraire, le chargement échouera.
Vous pouvez voir l'ordre des colonnes en haut de la page Données de vente (au menu Gestion > Predict Sources de données > Données de vente > Gérer les données de vente), par exemple :

- Votre fichier de données de vente doivent être un tableau .csv simple, chaque ligne décrivant les attributs d'un seul article.
- Votre fichier doit commencer par la ligne d'en-tête (par ex. les noms de fichier).
- Le nom de fichier doit suivre la convention
sales_items*.csv
. En d'autres mots, le nom de fichier doit commencer par la chaînesales_item
et son extension doit être .csv, tandis que vous pouvez remplacer l'astérisque par un certain nombre de caractères de votre choix (par ex. un horodatage). - Utilisez une bibliothèque d'exportation CSV compatible avec le format CSV standard.
- Utilisez une virgule pour séparer les champs dans une ligne.
- Quand un champ n'a aucune valeur, laissez-le vide. Exemple :
value1,,value3,value4
. - N'utilisez pas de caractères de saut de ligne, avec ou sans guillemets, dans les champs.
- Utilisez l'encodage UTF-8.
- Incluez les noms de champ dans la première ligne (en-tête) et assurez-vous que toutes les lignes suivantes contiennent les valeurs correspondantes aux champs indiqués dans l'en-tête. Si vous n'êtes pas sûr de comment procéder, contactez les Support Emarsys.
- N'utilisez pas plus de 255 colonnes.
- N'utilisez pas de valeurs de champ plus longue que 64 KO.
- Assurez-vous que les champs requis sont saisis en respectant la casse, sinon ils ne seront pas reconnus par le système. "Prix" n'est pas la même chose que 'prix'. "Prix" est reconnu comme champ personnalisé et recevra un préfixe, tel que f_, ce qui donnera f_Price. Dans ce cas le champ prix sera manquant.
Fichier de données exemple
Besoin d'un exemple ? Cliquez ici pour voir à quoi ressemble un fichier de données de vente ou bien téléchargez un fichier exemple.
Ajouter des colonnes à un fichier de données fonctionnel
Si vous avez une implémentation fonctionnelle de Smart Insight, vous pouvez encore ajouter des colonnes à votre fichier CSV de données de vente sans besoin d'un rechargement complet.
Il faut faire attention à deux choses cruciales quand vous ajoutes les nouvelles colonnes :
- ajoutez les nouvelles colonnes à la fin de l'en-tête configuré (liste de colonnes)
- conservez l'ordre des colonnes existant
Si vous changez l'ordre des colonnes existantes ou insérez les nouvelles colonnes entre celles déjà existantes, certaines des données de vente historiques existantes seront écrasées. Nous ne pouvons pas récupérer ces données, donc si cela arrive la seule solution pour restaurer les données perdues est de procéder à un rechargement complet de Smart Insight.
Pour des informations approfondies sur l'édition de fichiers CSV, voir Modifier des fichiers CSV en cours d'utilisation.
Champs obligatoires
Configuration de champ standard
Ces champs sont requis pour l'ensemble des fonctionnalités standard dans Emarsys.
Champ | Requis | Type | Exemple | Description |
---|---|---|---|---|
item | Oui | String | BOOK0012 |
|
price | Oui | Float | 110.30 |
|
order | Oui | String | 111-U8 |
|
timestamp | Oui | Horodatage (Timestamp) |
|
Exemple : Votre compte Emarsys est réglé à l'heure orientale. L'heure de l'achat est 09:02 AM Central Time, le 16décembre. Il faut que la valeur d'horodatage dans le flux de vente soit 2021-12-16T10:02:00-05:00. Puisque le passage à l'heure d'été n'affecte pas UTC, vous devrez vous assurer que le décalage reflète aussi ce changement. Avec la valeur d'horodatage donnée et si l'événement d'heure d'été suivant avance l'horaire, alors l'horodatage ressemblerait à cela : 2021-12-16T10:02:00-04:00. Avertissement : Si vous chargez le fichier de données de vente via l'API, alors le champ d'horodatage ne peu contenir plus de 25 caractères. Remarque :
|
customer | Oui (email ou customer est requis. N'utilisezpas les deux !) | String | 12343-14B |
|
email | Oui (email ou customer est requis. N'utilisez pas les deux !) | sportscar_fanatic @gmail.com |
| |
quantité | Oui | Float | 5 |
|
Important: Assurez-vous d'utiliser soit customer
soit email
pour l'identification d'utilisateur de manière systématique dans tous vos fichiers de données de ventes et de ne pas les mélanger.
Champs Loyalty
Si vous utilisez la Fidélité Emarsys, vous devrez aussi inclure ces champs dans votre fichier de données de vente.
Tous les champs Loyalty doivent être configurés comme filtrables dans Paramètres Smart Insights > Champs d'achat.
Champ | Requis | Type | Exemple | Description |
---|---|---|---|---|
s_market | Oui | String | Allemagne |
|
f_original_price | Oui | Float | 3549.92 |
|
s_original_currency | Oui | String | USD |
|
s_coupon | Oui | String | AX692374 | Veuillez insérer ici tous les coupons et codes de bons que votre utilisateur a utilisé au paiement. Si l'utilisateur en a utilisé plus d'un, vous pouvez ajouter plusieurs codes en les séparant par une virgule. Si le coupon n'a pas été utilisé pour un article spécifique, vous pouvez ajouter le même code de coupon à tous les articles achetés, nous ne prendront en compte que les codes uniques pour chaque commande. Loyalty utilise ce champ pour faire savoir au programme de parrainage que l'utilisateur parrainé a fait un achat avec le code de coupon reçu de la part d'un membre du programme de fidélité. Pour plus d'informations, voir Programme de parrainage. |
Exigences en matière d'annulation et de remboursement pour Fidélité
Quand vous soumettez les articles ou commandes retournés, utilisez toujours les IDs de commande, de client et d'article de la commande originale et fournissez une valeur négative dans les champs de prix comme de quantité, ainsi que dans f_original_price
. Veuillez vous assurer de remplir les champs dans votre fichier de données de vente de cette manière, sinon les remboursements ne seront pas correctement représentés dans vos rapports.
Cas d'usage
J'utilise le plugin Shopify mais je ne peux pas ajouter de colonnes supplémentaires à mes données de vente. Que dois-je faire ?
Si vous utilisez le plugin Shopify, vous n'êtes pas obligés d'ajouter les trois champs supplémentaires à Loyalty, puisque le plugin ne fonctionne jamais que sur un seul site web/marché Shopify. Loyalty utilisera le champ price
à la place de f_original_price
.
Je ne travaille que dans un marché et une devise uniques, mais je veux que la colonne prix n'affiche que le prix net. Que dois-je faire ?
Dans ce cas-là, remplissez les trois champs supplémentaires et f_original_price
devrait inclure le prix pour lequel vous voulez distribuer des points, à savoir le prix brut.
Champs Retail
Les champs s_sales_channel
et s_store_id
appartiennent à une fonctionnalité actuellement en release pour les seuls clients Retail.
Si vous utilisez la fonctionnalité Tableau de bord stratégique pour les clients retail, vous aurez aussi besoin que ces champs soient présents dans votre fichier de données de vente.
Champ | Requis | Type | Exemple | Description |
---|---|---|---|---|
s_sales_channel | Oui | String | en ligne" | Le canal de vente de la commande. Sa valeur est soit en ligne, soit hors ligne. |
s_store_id | Oui | String | 87" | L'ID externe du magasin. |
Champs personnalisés
En plus des champs de données de vente, vous pouvez aussi ajouter d'autres informations à votre fichier de données de ventes en utilisant des champs personnalisés. Les noms des champs personnalisés doivent commencer par un préfixe qui spécifie le type de données. Le préfixe doit être suivi par un soulignement (_
) et le nom de la colonne personnalisée. Si le nom d'un champ consiste en plusieurs mots, alors chaque mot doit commencer par une lettre en minuscule et chaque mot doit être séparé par un soulignement. Par exemple, s_original_currency
.
Préfixes de champ personnalisé disponibles :
Préfixe | Type | Exemple |
---|---|---|
i_* | Entier | i_customer_age |
f_* | Float | f_customer_height |
t_* | Horodatage (Timestamp) | t_date_of_manufacture |
s_* | String | s_book_author |
- Les champs personnalisés sont validés pour un type de données et si les valeurs indiquées ne sont pas cohérentes avec le type de données attendu le fichier de données de ventes sera rejeté.
- Les champs personnalisés peuvent être vides. Cependant, les champs numériques (
price , quantity , i_ , f_
) ne peuvent pas contenir de chaînes vides. Par exemple, les guillemets sans valeurs à l'intérieur""
ne sont pas acceptés. Les champs numériques avec une valeur NULLE, par exemple les doubles virgules :,,
sont acceptables.
Exemple de données de vente
L'exemple suivant montre des commandes pour un magasin de chaussures avec trois colonnes sur mesure (le timestamp
est indiqué en UTC) :
item,price,order,timestamp,customer,quantity,s_color,f_size,t_published 103-nike-1,24.95,112343,2016-06-06T14:02:00Z,093275854,1,blue,14.5,2016-09-20T15:00:00Z 105-adidas-66,99.95,112343,2016-06-06,493027334,3,black,14.5,2016-09-20T15:00:00Z 107-nike-24,50.99,66234,2016-06-06T17:00:00Z,672985375,1,pink,13.5,2016-08-01
Dans l'exemple suivant, le format de timestamp
est spécifié en heure locale avec les informations de décalage horaire (le fuseau horaire est UTC+6) :
order,timestamp,customer,item,price,s_channel,quantity,f_unit_price,s_storeid,s_currency,s_colour_code,s_colour_name,s_size_code,s_barcode,s_department,s_class,s_season,s_brand,f_total_discount,f_total_ex_tax,s_voucher_number,s_discount_reason MJB_228762E0022735,2020-07-29T08:47:32+06:00,341472,SHI106S17_Sky,20.30,OFFLINE,1,29,ONLINE,AUD,Sky,Sky,37,9342743705097,Shirts,Item,Spring17,XYZ_Brand,8.70,11.09,,Promotional Discount MJB_228762E0022735,2020-07-29T08:47:32+06:00,341472,SHI267S17_Blue,20.30,OFFLINE,1,29,ONLINE,AUD,Blue,Blue,37,9342743724463,Shirts,Item,Summer17,XYZ_Brand,8.70,11.09,,Promotional Discount MJB_228762E0022735,2020-07-29T08:47:32+06:00,341472,SHI229S18_PinkNavy,20.30,OFFLINE,1,29,ONLINE,AUD,Pink/Navy,Pink/Navy,37,9342743788434,Shirts,Item,Summer 18,XYZ_Brand,8.70,12.91,,Promotional Discount MJB_228840E0022736,2020-07-29T08:48:42+06:00,538691,SHI302S18_Navy,34.30,OFFLINE,1,49,ONLINE,AUD,Navy,Navy,48,9342743790086,Shirts,Item,Spring 18,XYZ_Brand,14.70,25.64,,Promotional Discount MJB_228856E0022737,2020-07-29T08:49:41+06:00,527149,SHI289S18_Denim,20.30,OFFLINE,1,29,ONLINE,AUD,Denim,Denim,S,9342743789516,Shirts Casual,Item,Summer 18,XYZ_Brand,8.70,9.28,,Promotional Discount MJB_228825E0022738,2020-07-29T08:50:43+06:00,462561,SHI140W19_SkyWhite,34.30,OFFLINE,1,49,ONLINE,AUD,Sky/White,Sky/White,42,9342743802130,Shirts,Item,Autumn19,XYZ_Brand,14.70,25.64,,Promotional Discount MJB_228835E0022739,2020-07-29T08:52:05+06:00,527806,SHI210S18_Blue,20.30,OFFLINE,1,29,ONLINE,AUD,Blue,Blue,46,9342743784351,Shirts,Item,Summer 18,XYZ_Brand,8.70,11.09,,Promotional Discount MJB_228835E0022739,2020-07-29T08:52:05+06:00,527806,SHI284S18_Sky,20.30,OFFLINE,1,29,ONLINE,AUD,Sky,Sky,46,9342743785556,Shirts,Item,Summer 18,XYZ_Brand,8.70,11.09,,Promotional Discount
Retours, annulations et remboursements
Quand vous soumettez les articles ou commandes retournés, utilisez toujours les IDs de commande, de client et d'article de la commande originale et fournissez une valeur négative dans les champs de price
comme de quantity
, ainsi que dans f_original_price
. Veuillez vous assurer de remplir les champs dans votre fichier de données de vente de cette manière, sinon les remboursements ne seront pas correctement représentés dans vos rapports.
Exemple
Un client peut acheter trois articles :
ID de commande | Date | Identifiant client | ID d'article | price | quantity | s_market | f_original_price | s_original_currency |
---|---|---|---|---|---|---|---|---|
OR12345 | 15.10.2015 | CU54343 | IT8798 | 45 | 1 | HU | 14234.76 | HUF |
OR12345 | 15.10.2015 | CU54343 | IT2235 | 30 | 1 | HU | 9546.23 | HUF |
OR12345 | 15.10.2015 | CU54343 | IT8840 | 25 | 1 | HU | 3452.45 | HUF |
Une semaine plus tard il décide de retourner deux des articles, ce qui doit être reporté dans le fichier de données de vente comme suit :
ID de commande | Date | Identifiant client | ID d'article | price | quantity | s_market | f_original_price | s_original_currency |
---|---|---|---|---|---|---|---|---|
OR12345 | 22.10.2015 | CU54343 | IT2235 | -30 | -1 | HU | -9546.23 | HUF |
OR12345 | 22.10.2015 | CU54343 | IT8840 | -25 | -1 | HU | -3452.45 | HUF |
Ces deux parties de commande seront ensuite agrégée en une seule commande dont la valeur totale sera 45, tandis que la date de commande restera inchangée (c'est-à-dire Emarsys conserve la date de la commande originelle).
FAQ Smart Insight et données de vente
Pourquoi l'API est-elle la méthode privilégiée pour charger les données de vente ?
Charger vos données via l'API de données de vente présente des avantages majeurs par comparaison à l'utilisation de SFTP à cette fin. Entre autres :
- Les données de vente chargées via l'API influencent effectivement les recommandations de produits, ce qui n'est pas le cas des données de vente chargées via le SFTP Smart Insight. La méthode elle-même fait une différence.
- Quand vous utilisez SFTP, votre fichier n'est pas validé immédiatement, ce qui ralentit la résolution de problème.
- Les comptes FTP doivent être configurés, tandis que l'API de données de vente est complètement en libre-service.
- Avec SFTP, vous devez toujours vous assurer de donner un nom nique à votre fichier de données de vente pour éviter d'écraser les chargements précédents.
Que se passe-t-il si l'identifiant client (email ou customer_id) est manquant de certaines ou toutes les lignes dans le fichier de données de vente ?
Si l'identifiant client est manquant dans certaines ou toutes les lignes du fichier de données de vente, vous ne pouvez charger vos données de vente que par la méthode du SFTP Smart Insight (et non via l'API Predict). Dans ce cas, Emarsys créera un pseudo contact pour votre compte et attribuera toutes les commandes où l'identifiant client est manquant à ce contact. Si vous soumettez souvent vos fichiers de données de vente avec des IDs de client manquants, il se peut qu'Emarsys crée un nouveau pseudo contact pour chaque commande affectée.
Les pseudo contacts se voient attribués un ID de client unique dans notre base de données de contacts et apparaissent comme générés sur les écrans Smart Insight.
En général, essayez de vous assurer que cela n'arrive pas car cela peut fausser votre score et votre reporting Smart Insight.
Que se passe-t-il si un client n'est pas trouvé dans la base de données de contacts Emarsys ?
Si vous utilisez le SFTP Smart Insight pour charger vos données de vente, les commandes soumises avec un email ou un ID de client absent de la base de données de contact Emarsys seront quand même traitées, et le contact inconnu se verra attribué un ID de client et marqué comme généré dans les rapports de Cycle de vie client. A l'aide du filtre généré, ce contact peut être séparé des contacts normaux dans votre base de données de contacts.
Si de tes contacts générés sont explicitement identifiés plus tard, ils se changeront en contacts normaux au prochain chargement de données.