(fr) Récompenses Loyalty (rewards)

Cet article présente trois scopes qui permettent d'importer des données de récompenses :

  • masterreward – permet de créer des master rewards, qui sont utilisés pour l'attribution de récompenses,
  • earnreward – avec lequel les récompenses sont attribuées à des cartes de fidélité,
  • burnreward – avec lequel les récompenses peuvent être dépensées (brûlées).

Pré-requis

  • 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 master rewards

Les fichiers dans le scope "masterreward" vous permettent d'ajouter des récompenses à votre catalogue. Quand les master rewards sont utilisés pour attribuer des récompenses, les membres recoivent des récompenses qui sont les copies exates du master reward.

🚧

Veuillez limiter la taille de votre fichier à 200K lignes.

Voici les colonnes disponibles dans le scope "masterreward" :

ColonneObligatoireFormatDescription
external_idOuiTexte (max.128 caractères)Clé unique du master reward : les lignes avec des valeurs external_id déjà en base seront considérées comme des tentatives de mise à jour.
nameOuiTexte (max.128 caractères)Nom de la récompense.
monetaryOui0 ou 1"1" si la récompense a une valeur monétaire, "0" si ce n'est pas le cas. Si "1", vous devez ajouter "monetary_type" et "monetary_value".
monetary_typeNonvaleur de la liste"value" ou "percentage".
monetary_valueNondoubleValeur de la récompense en euros.
nqp_valueOuiEntier positifNombre de points non-qualifiants (NQ) qui doivent être dépensés pour acquérir la récompense.
descriptionNonTexteDescription texte de la récompense.
rich_descriptionNonTexteDescription de la récompense avec formatage enrichi.
holding_daysOuiEntier positifNombre de jours entre l'attribution de la récompense et sa disponibilité.
validity_interval_countOuiEntier positifDurée de validité de la récompense, en jours, semaines, mois ou années.
validity_interval_typeOuivaleur de la liste"days", "weeks", "months", ou "years".
forced_validityOui0 ou 1Si "1", la récompense a une validité absolue (qui outrepasse la durée relative de "validity_interval_count"). Vous devez compléter les colonnes "forced_validity_start" et "forced_validity_end" quand vous utilisez une période de validité absolue.
forced_validity_startNonYYYY-MM-DD HH:MM:SSDate de début de validité ; les heures sont optionnelles mais seront égales à 00:00:00 si absentes.
forced_validity_endNonYYYY-MM-DD HH:MM:SSDate de fin de validité ; les heures sont optionnelles mais seront égales à 00:00:00 si absentes.
is_limitedNon0 ou 1Si "0", l'autogénération de récompenses est illimitée.
max_attribution_countNonEntier positifNombre d'unités disponibles de la récompense. Doit être supérieur ou égal à 0 si "is_limited" est à 1, ou supérieur à 0 si "is_limited" est à 0.
is_auto_generatedNon0 ou 1Si "1", permet à Splio de générer des codes de coupons (le "max_attribution_count" doit être à 0).
image_urlNonTexteLien vers le fichier image de la récompense.
c0NonUne colonne personnalisée définie dans votre univers pour les récompenses. Vous pouvez en inclure jusqu'à 32, de "c0" à "c31".

🚧

  • N'oubliez pas que Splio n'importera pas les fichiers dont les colonnes obligatoires sont manquantes ou qu'il ne peut pas reconnaître. Les lignes contenant des valeurs vides dans les colonnes obligatoires seront ignorées.
  • Veuillez noter que les colonnes "validity_period" et "validity_interval_type" peuvent être forcées lors de l'attribution.

Exemple 1 : un fichier “ Master Reward ”

L'exemple ci-dessous montre un fichier d'import qui utilise toutes les colonnes standard.

external_id;name;monetary;monetary_type;monetary_value;nqp_value;description;rich_description;holding_days;validity_interval_count;validity_interval_type;forced_validity;is_limited;max_attribution_count
"mastertest_missing_price";"mastertest";;;"2";;;;"0";"1";"day";"0";;
"master_missing_auto_generation";"mastertest";;;"9";"10";;;"0";"1";"day";"0";;"0"
"master_bad_stock";"mastertest";;;"9";"10";;;"0";"1";"week";"0";"1";"0"
"masterlight";"salad";;;"9";"10";;;"0";"1";"month";"0";"1";"100"
"Masteritem_0_stock";"mastertest_item";;;;"10";;;"0";"1";"week";"0";;"0"
"masteritem_bad_stock";"mastertest_item";;;;"10";;;"0";"1";"week";"0";;

Notez que la plupart des lignes de cet exemple ne seront pas importées avec succès. La valeur "external_id" indique l'erreur, comme un prix manquant, ou une valeur de stock incorrecte. Par exemple, la seconde ligne ne fonctionnera pas, puisqu'il manque le prix.

Préparer un fichier "earn rewards"

Vous pouvez utiliser les fichiers "earnreward" pour assigner (earn) des récompenses aux membres loyalty . Techniquement, l'attribution d'une récompense créée un lien entre la définition de la récompense et une carte loyalty.

Voici la liste des colonnes disponibles dans un fichier "earnreward" :

ColonneObligatoireFormatDescription
reward_idOuiTexteIndique l'ID interne du master reward existant à attribuer, qui est disponible dans l'interface de Splio
(cet ID peut être trouvé dans l'url de la page du reward).
card_codeOuiTexteIdentifie le membre loyalty à qui la récompense est attribuée.
attribution_idOuiTexte (max.128 caractères)ID unique de la connexion entre la récompense et la carte (est appelé attribution parce que la récompense est attribuée à la carte). Si autogénéré, ce champ sera rempli automatiquement, et il doit donc etre vide.
quantityNonEntier positifNombre de récompenses attribuées. Si vide, valeur à 1 par défaut. Si autogénéré, ce champ sera rempli automatiquement.
earn_dateOuiYYYY-MM-DD HH:MM:SSDate de l'attribution de la récompense. Cette date doit être celle du jour de l'import ou après. Si vide, la date du serveur est ajoutée à la place (GMT+1).
contextNonTexteDécrit la situation dans laquelle l'attribution a lieu.
validity_start_dateOuiYYYY-MM-DD HH:MM:SSDate de début de validité.
validity_end_dateOuiYYYY-MM-DD HH:MM:SSDate d'expiration de la récompense.
burn_dateNonYYYY-MM-DD HH:MM:SSDate d'utilisation de la récompense,par exemple 2021-02-12 08:30:00. Si vide, sera remplie automatiquement par le serveur.
store_idNonTexteID d'un magasin relié à la récompense.

🚧

  • Utilisez toujours des dates telles que : 2021-02-12 08:30:22 (avec les heures, minutes et secondes) pour les champs "earn_date", "validity_end_date", "validity_start_date", et "burn_date". Quand la date est remplie grâce au serveur, elle est à GMT+1 pour les clients européens et à GMT+8 pour les clients chinois. Voir les détails sur les dates ci-dessous pour en savoir plus.
  • Il n'y a pas de colonnes personnalisées pour les fichiers "earnrewards".

Exemple 2 : un fichier "earnreward"

"reward_id";"card_code";"attribution_id";"quantity";"context";"earn_date";"validity_start_date";"validity_end_date"
"1066";"CC0001";"oc_0002750875";"1";"web";"2012-06-19 23:25:00";"2012-06-20 00:00:00";"2012-06-26 00:00:00"
"1086";"CC0003";"oc_0002750876";"1";"web";"2012-06-19 06:55:00";"2012-06-20 00:00:00";"2012-06-26 00:00:00"
"1455";"CC0002";"oc_0043302300";"1";"web";"2014-12-23 12:04:00";"2014-12-24 00:00:00";"2015-01-06 00:00:00"
"1455";"CC0004";"oc_0043243103";"1";"web";"2014-12-20 21:54:00";"2014-12-21 00:00:00";"2015-01-06 00:00:00"
"1455";"DD0001";"oc_0043244548";"1";"web";"2014-12-20 11:32:00";"2014-12-21 00:00:00";"2015-01-06 00:00:00"
"1455";"EE0001";"oc_0039303830";"1";"web";"2014-12-13 14:28:00";"2014-12-14 00:00:00";"2015-01-06 00:00:00"
"1455";"XXX00000";"oc_0043243488";"1";"web";"2014-12-20 09:10:00";"2014-12-21 00:00:00";"2015-01-06 00:00:00"
"1455";"abcde";"oc_0043302697";"1";"web";"2014-12-23 08:42:00";"2014-12-24 00:00:00";"2015-01-06 00:00:00"
"1455";"CC111";"oc_0043303913";"1";"web";"2014-12-23 12:54:00";"2014-12-24 00:00:00";"2015-01-06 00:00:00"
"1455";"SM123";"oc_0043286685";"1";"web";"2014-12-22 15:33:00";"2014-12-23 00:00:00";"2015-01-06 00:00:00"

Préparer un fichier "burnrewards"

Un fichier "burnreward" contient des informations sur les récompenses à "brûler" par les membres du programme Loyalty. Brûler une récompense signifie qu'elle a été utilisée ou récupérée par le membre. Techniquement, cela ne change pas le statut du "masterreward" mais des informations des "earned rewards".

Voici les colonnes disponibles dans un fichier "burnreward" :

ColonneObligatoireFormatDescription
card_codeOuiTexteIdentifie la carte Loyalty à laquelle la récompense est attribuée.
contextNonTexteDécrit la situation (le contexte) dans laquelle la récompense (l'attribution) est brûlée (utilisée ou annulée).
attribution_idOuiTexteID unique créée lors de l'attribution. Voir le scope "earnrewards" ci-dessus.
burn_dateNonYYYY-MM-DD HH:MM:SSDate d'utilisation de la récompense, par exemple 2021-02-19 18:10:03. Si vide, la date du serveur est remplie automatiquement à GMT+1.
store_idNonTexteID d'un magasin relié à la récompense.

🚧

  • Utilisez toujours des dates comme 2021-02-12 08:30:22 (avec les heures, minutes et secondes) pour "burn_date".
  • Il n'y a pas de colonnes personnalisées pour les fichiers "burnrewards".

Exemple 3 : un fichier "burnreward"

card_code;context;burn_date;attribution_id
CC0001;An incredible corgi designed bowl (empty unique_key);2018-08-09 11:03:05;NULL
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 l'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 : 2021-03-09 10:00:05

Le jour et l'heure sont séparés par un espace blanc. La date et l'heure doivent être complètes - les lignes qui, par exemple, ne contiennent que des heures et des minutes ne seront pas importées.

Si la partie relative à l'heure est omise, Splio prendra l'heure la plus proche possible pour le jour (00:00:00). Par conséquent, 2018-09-09 équivaut à 2018-09-09 00:00:00.

🚧

  • Cela ne devrait jamais être une option pour les dates et les heures : 00:00:00 correspond à minuit et Splio essaiera de traiter la date comme telle. Cela peut entraîner des erreurs et certains déclencheurs associés à des dates échoueront. En outre, toutes les données Loyalty sont toujours considérées comme des informations financières. Cela signifie que vous et votre entreprise êtes responsables de ces données et que vous ne pouvez pas vous permettre de laisser des détails au hasard.
    Utiliser des dates complètes vous permettra de filtrer et rechercher ces champs avec plus de précision.
  • Lorsque vous importez des dates avec l'heure, veillez à toujours utiliser le même fuseau horaire (GMT+1).

Explications : NULL et valeurs de suppression

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, donc elle n'entraînera pas l'effacement d'une valeur existante.