Imports – Récompenses Loyalty (rewards)
Cet article présente trois nouveaux scopes qui permettent d'importer des données de récompenses :
- Master reward - permet de créer des récompenses principales (article ou coupons), qui sont ensuite utilisées pour l'attribution des récompenses ;
- Earn reward - avec laquelle les récompenses sont gagnées par les cartes de fidélité ;
- Burn reward – avec laquelle les récompenses peuvent être dépensées (brûlées).
Conditions préalables
- Connaissance du format CSV et de la procédure d'import ;
- Un éditeur de texte ou un tableur compatible UTF-8 ;
- Une certaine compréhension des données de fidélité importées dans Splio ;
- Le scope d'import master reward doit être configurée par votre Project Manager dans Splio
Préparation d'un fichier pour importer des récompenses
Les fichiers du scope Master Reward vous permettent d'ajouter des récompenses master au catalogue. Lorsque les récompenses principales sont utilisées pour attribuer des récompenses, les titulaires de carte Loyalty reçoivent des récompenses qui sont des copies exactes de la récompense master.
Les colonnes marquées d'un astérisque (*) sont obligatoires. Splio n'importera pas un fichier qui ne contient pas toutes les colonnes obligatoires. En outre, toutes les lignes dans lesquelles les valeurs des colonnes obligatoires sont manquantes seront ignorées en tant qu'erreurs.
- external_id * - la clé unique des récompenses principales : les lignes avec des valeurs ID externe déjà dans la base seront considérées comme des tentatives de mise à jour ;
- name * - le nom de la récompense (128 caractères maximum) ;
- monetary * - le prix de la récompense dans la valeur par défaut de l’univers (un nombre décimal) ;
- nqp_value * - le nombre de points non qualifiants (NQ) qui doivent être dépensés pour obtenir la récompense (un nombre entier ou 0) ; si la valeur de ce champ est supérieur à 0, vous devez ajouter 2 champs supplémentaires :
- monetary_type - peut prendre 2 valeurs : "value" ou "percentage"
- monetary_value - la valeur du reward en euros, un entier positif ou 0 ;
- description - une description textuelle de la récompense ;
- rich_description - une description utilisant un formatage riche ;
- holding_days* – le nombre de jours qui doivent s'écouler entre la sélection d'une récompense et sa mise à disposition ;
- validity_interval_count* – détermine pendant combien de jours, de mois ou d'années la récompense reste valide (doit être un entier non signé) ;
- validity_period_type * - spécifie l'unité pour «validity_period»; prend l'une des valeurs suivantes : «days», «weeks», «months» et «years» ;
- forced_validity - c'est le fait que votre reward a une période de validité absolue (et non relative comme dans validity_interval_count). Peut être défini à "0" ou "1" (si vous avez validity_interval_count et forced_validity à 1, c'est contradictoire, ici la forced_validity l'emportera).Si à "1", vous devez ajouter deux champs supplémentaires:
- forced_validity_start -
- forced validity_end - ces deux champs sont des dates au format YYYY-MM-DD HH-MM-SS, la partie des heures, minutes et secondes is optionnelle.
- max_attribution_count * - le nombre d'unités disponibles de la récompense (un nombre entier). Cette colonne est réglementée par la colonne «coupons_stock», voir ci-dessous. Lors de la mise à jour de la récompense, le max_attribution_count donné est ajouté au numéro existant ;
- is_auto_generated - peut prendre l'une des deux valeurs "0" ou "1". Valeur par défaut : "0". S'il est réglé sur «1», Splio générera des codes de coupons selon «coupons_stock» et «max_attribution_count». Si «0 », vous devrez importer tous les coupons comme détaillé dans Couponing. Veuillez noter que si vous n'activez pas la génération automatique, vous avez besoin de coupons disponibles pour les récompenses d'attribution ;
- is_limited - Peut prendre l'une des deux valeurs «0» ou «1». Valeur par défaut : "1". Lorsqu'il est défini sur 1, "max_attribution_count" doit être égal ou supérieur à 0. Lorsque «0», définissez toujours "max_attribution_count" sur "0".
- image_url - un chemin vers le fichier avec l'image de la récompense.
- Une colonne personnalisée définie dans votre univers pour les récompenses. Vous pouvez inclure jusqu'à 32 colonnes appelées "c0" à "c31"
Important ! Le mot « coupons » se termine toujours par un "s". Si vous omettez le «s» final pour une raison quelconque, Splio ne pourra pas importer le fichier.
Notez également que les valeurs des champs "validity_period" et "validity_period_type" peuvent être remplacées (forcées) au moment de l'attribution.
Exemple 1 : un fichier “ Master Reward ”
L'exemple ci-dessous montre un fichier d'import qui utilise toutes les colonnes standard. Les colonnes vides, comme «;;», sont importées en tant que valeurs NULL.
external_id;name;monetary;monetary_type;monetary_value;nqp_value;description;rich_description;holding_days;validity_interval_count;validity_period_type;forced_validity;forced_validity_start;forced_validity_end;is_limited;max_attribution_count;is_auto_generated;image_url
7b94270c-b2d;My first test reward;1;value;500;400;This reward is expensive;;0;1;years;0;;;1;10;1;someurl.test
d8dbaef2-f51;A second reward;1;value;100;100;;;0;30;days;0;;;0;;0;
dfc6f488-7c5;Free reward;0;;;0;;;0;0;days;1;2010-01-01;2021-12-31;0;;0;
Notez que la plupart des lignes de cet exemple ne seront pas importées correctement. La valeur «external_id» indique le problème, comme un prix manquant, une valeur de stock manquante ou incorrecte, ou un choix incorrect pour «coupons_auto_generation».
Préparer un dossier « Earn Reward »
Vous pouvez utiliser des fichiers « gagner une récompense » pour représenter l'attribution (gagner) de récompenses aux titulaires de cartes de fidélité. Techniquement parlant, gagner une récompense crée un lien entre la définition de la récompense et une carte de fidélité.
Les colonnes suivantes sont disponibles dans les fichiers « gagner une récompense » :
- reward_id - indique « internal_id » de la récompense en cours de réalisation et doit correspondre à l'identifiant d'une récompense existante
• card_code * - identifie le titulaire de la carte qui gagne la récompense
• attribution_id * - l'identifiant unique de la connexion entre la récompense et le numéro de carte (il est appelé attribution car la récompense est attribuée à la carte)
• quantity - le nombre de récompenses gagnés. S'il n'est pas présent, la valeur par défaut de 1 est supposée
• context - décrit la situation dans laquelle l'attribution (le gain) a eu lieu
• earn_date - la date à laquelle la récompense a été gagnée. En cas d'absence, la date / heure actuelle du serveur est supposée (à GMT +1 pour les clients non chinois et GMT +8 pour les clients chinois)
• validity_start_date - la date à laquelle la récompense devient valide. En cas d'absence, la date / heure actuelle du serveur est supposée (à GMT +1 pour les clients non chinois et GMT +8 pour les clients chinois)
• validity_end_date - la date à laquelle la validité de la récompense gagnée expire. En cas d'absence, la date / heure actuelle du serveur est supposée (à GMT +1 pour les clients non chinois et GMT +8 pour les clients chinois) et calcule la date de fin en fonction de la récompense principale
Utilisez des dates comme 2018-08-24 12:00:00 ou consultez l'explication ci-dessous pour en savoir plus sur le format de date.
Les imports de récompenses n'utilisent pas de colonnes personnalisées.
Exemple 2 : un fichier de « reward »
"reward_id";"card_code";"attribution_id";"quantity";"context";"earn_date";"validity_start_date";"validity_end_date"
"oc_1066";"CC0001";"oc_0002750875";"1";"web";"2012-06-19 00:00:00";"2012-06-20 00:00:00";"2012-06-26 00:00:00"
"oc_1086";"CC0003";"oc_0002750876";"1";"web";"2012-06-19 00:00:00";"2012-06-20 00:00:00";"2012-06-26 00:00:00"
"oc_1455";"CC0002";"oc_0043302300";"1";"web";"2014-12-23 00:00:00";"2014-12-24 00:00:00";"2015-01-06 00:00:00"
"oc_1455";"CC0004";"oc_0043243103";"1";"web";"2014-12-20 00:00:00";"2014-12-21 00:00:00";"2015-01-06 00:00:00"
"oc_1455";"DD0001";"oc_0043244548";"1";"web";"2014-12-20 00:00:00";"2014-12-21 00:00:00";"2015-01-06 00:00:00"
"oc_1455";"EE0001";"oc_0039303830";"1";"web";"2014-12-13 00:00:00";"2014-12-14 00:00:00";"2015-01-06 00:00:00"
"oc_1455";"XXX00000";"oc_0043243488";"1";"web";"2014-12-20 00:00:00";"2014-12-21 00:00:00";"2015-01-06 00:00:00"
"oc_1455";"abcde";"oc_0043302697";"1";"web";"2014-12-23 00:00:00";"2014-12-24 00:00:00";"2015-01-06 00:00:00"
"oc_1455";"CC111";"oc_0043303913";"1";"web";"2014-12-23 00:00:00";"2014-12-24 00:00:00";"2015-01-06 00:00:00"
"oc_1455";"SM123";"oc_0043286685";"1";"web";"2014-12-22 00:00:00";"2014-12-23 00:00:00";"2015-01-06 00:00:00"
Préparer un fichier avec des récompenses «Burn Reward »
Un fichier «Burn Reward» contient des informations sur les récompenses «brûlées» par les titulaires de carte. En termes simples, brûler une récompense signifie qu'elle a été utilisée ou réclamée par le titulaire de la carte. Pour parler plus techniquement, il ne modifie pas le statut des données « Master Reward » mais des informations sur les « Earn Reward ».
Seules quatre colonnes sont disponibles dans les fichiers « Burn Reward », et deux d'entre elles sont obligatoires :
- card_code * - identifie la carte de fidélité à laquelle la récompense est attribuée.
- context - décrit la situation (contexte) dans laquelle la récompense (son attribution) est brûlée (utilisée, annulée).
- burn_date - la date à laquelle la récompense a été gravée, par exemple, 2018-09-03 08:00:00 (voir ci-dessous pour plus d'informations sur les dates). En cas d'absence, la date / heure actuelle du serveur est supposée (à GMT +1 pour les clients non chinois et GMT +8 pour les clients chinois)
- attribution_id * - l'identifiant unique utilisé lors de la création de l'attribution (voir scope de récompenses pour plus d'informations).
Les imports de récompenses de gravure n'utilisent pas de colonnes personnalisées.
Exemple 3 : un fichier “ burn reward ”
card_code;context;burn_date;attribution_id
CC0001;An incredible corgi designed bowl (empty unique_key);2018-08-09 11:03:05;
invalidcardcode;An incredible corgi designed bowl;2018-08-09 11:03:05;test
CC0001;Welcome reward (valid burn);2018-08-09 10:00:05;EG2563
CC0003;Chocolate bone;2018-09-09 12:43:05;invalidattrid
CC0003;Chocolate bone(invalid date: future);2018-09-09 08:12:10;DE-0009-3981
CC0003;Chocolate bone(invalid date bis);2018-09-09;DE-0009-3981
CC0002;already_burned;2018-08-09 11:03:05;DE-0009-3981
CC0004;An incredible corgi designed bowl(valid burn);2018-08-09 08:12:10;BB-0001
Nommez le fichier d'import
Splio requiert que on nomme les fichiers d'import d'une manière spécifique. Chaque nom de fichier doit contenir le nom de l'univers, le scope (« master reward », « gagner une récompense » ou « brûler la récompense »), la sous-section (vous devriez l'avoir obtenu auprès de votre Projet Manager) et la date. L'ordre dans lequel les fichiers sont traités dépend des scopes et des dates.
Le schéma de dénomination est toujours univers_scope_subsection_YYYYMMDD.csv. Cela signifie que les fichiers d'import comprenant les trois scopes de cet article, dans un univers « my company » et une sous-section « silver », datés du 14 février 2019, pourraient être nommés comme ceci :
mycompany_masterreward_silver_20190214.csv
mycompany_earnreward_silver_20190214.csv
mycompany_burnreward_silver_20190214.csv
Explication : Dates
Toutes les dates utilisées dans les fichiers d'import de récompenses doivent être formatées de la manière suivante : 4 chiffres pour l'année, 2 pour le mois et 2 pour le jour, suivis des heures, des minutes et des secondes, 2 chiffres chacun. Une date correcte pour le 9 août 2018, 10:00:05 prend la forme suivante :
2018-08-09 10:00:05
Le jour et l'heure sont séparés par un espace vide. Les parties de la date et de l'heure doivent être complètes - les lignes qui, par exemple, ne contiennent que des heures et des minutes ne seront pas importées.
Vous avez la possibilité d'utiliser uniquement la date (mais vous ne devriez pas). Si vous le faites, Splio considérera l'heure la plus tôt possible pour la journée (00:00:00). Donc,
2018-09-09
Équivaut à
2018-09-09 00:00:00
Cependant, vous devez toujours considérer toutes les données Loyalty comme des informations financières. Cela signifie que vous et votre entreprise êtes responsables de ces données et ne pouvez pas vous permettre de laisser des détails au hasard. Par conséquent, il est essentiel que vous utilisiez la date et l'heure complètes dans la mesure du possible (à l'exception des dates de naissance).
Un avantage supplémentaire de l'utilisation de dates complètes est que vous pourrez rechercher et filtrer par date avec une précision beaucoup plus grande.
/!\ Lorsque vous importez des dates avec l'heure, assurez-vous de toujours utiliser le même fuseau horaire (nous supposons GMT + 1 pour les clients hors de Chine et GMT + 8 pour les clients chinois).
Explication : valeurs NULL et effacement
«NULL» est une valeur spéciale qui indique à la base de données que le champ qui la contient est vide.
Votre univers Splio peut être configuré pour interpréter les valeurs « NULL » comme des instructions pour vider les champs. Vous pouvez l'utiliser pour effacer les valeurs stockées dans la base de données. Pour ce faire, assurez-vous que la valeur importée est exactement « NULL ». Vous devez éviter les espaces de début ou de fin: "NULL" ou "NULL" seront reconnus comme des valeurs de chaîne.
Si cette option n'est pas définie, Splio conservera les valeurs des champs où la valeur importée est «NULL».
Différence entre « NULL » et une chaîne vide
"" est une chaîne vide. Dans la plupart des cas, "NULL" et "" seront importés en tant que valeur vide.
Plus important encore, la chaîne vide "" n'est jamais considérée comme une valeur NULL, elle n'entraînera donc pas l'effacement d'une valeur existante.