(it) Premi loyalty
In questo articolo vengono illustrati i tre ambiti che ti permettono di importare i dati dei premi:
- masterreward – permette di creare i premi master, che vengono poi utilizzati per l'attribuzione dei premi (come template)
- earnreward – grazie ai quali si guadagnano i premi tramite le carte loyalty e
- burnreward – grazie al quale si possono spendere (utilizzare) i premi.
Prerequisiti
- Conoscenza del formato CSV e della procedura di import.
- Un editor di testo compatibile con la codifica UTF-8 e un software di fogli di calcolo.
- La comprensione dei dati loyalty importati da Splio.
- Gli ambiti di import elencati qui sopra devono essere configurati dal tuo Project Manager presso Splio.
Preparazione di un file per importare i premi
I file nell'ambito "masterreward" ti permettono di aggiungere premi master al catalogo. Quando i premi master vengono utilizzati per assegnare dei premi, i titolari della carta loyalty ricevono dei premi che sono la copia esatta del premio master.
Per favore, limita le dimensioni del file a 200K.
Le seguenti colonne sono disponibili nell'ambito "masterreward":
Colonna | Obbligatoria | Formato | Descrizione |
---|---|---|---|
external_id | Sì | Testo (max 128 caratteri) | Chiave unica per il premio master: le linee con valori external_id già presenti nel database verranno interpretate come tentativi di aggiornamento. |
name | Sì | Testo (max 128 caratteri) | Nome del premio. |
monetary | Sì | 0 o 1 | Assume il valore "1" se il premio ha un valore monetario, "0" in caso contrario. Se "1", è necessario aggiungere "monetary_type" e "monetary_value". |
monetary_type | No | valore dalla lista | Uno tra "value" o "percentuale". |
monetary_value | No | double | Valore del premio in EUR. |
nqp_value | Sì | Numero intero positivo | Numero di punti non qualificanti (NQ) che devono essere spesi per acquisire il premio. |
description | No | Testo | Descrizione testuale del premio. |
rich_description | No | Testo | Descrizione del premio utilizzando la formattazione RTF. |
holding_days | Sì | Numero intero positivo | Numero di giorni che devono trascorrere tra la selezione di un premio e la sua disponibilità. |
validity_interval_count | Sì | Numero intero positivo | Determina la validità del premio in giorni, mesi o anni. |
validity_interval_type | Sì | valore dalla lista | Uno tra "days" (giorni), "weeks" (settimane), "months" (mesi) o "years" (anni). |
forced_validity | Sì | 0 o 1 | Se "1", il premio ha un periodo di validità assoluto (che sostituisce il periodo di validità relativo di "validity_interval_count"). Dovrai fornire le colonne "forced_validity_start" e "forced_validity_end" quando utilizzi la validità assoluta. |
forced_validity_start | No | YYYY-MM-DD HH:MM:SS | Data in cui il premio diventa valido; l'orario è facoltativo, ma corrisponde a 00:00:00 se non specificato. |
forced_validity_end | No | YYYY-MM-DD HH:MM:SS | Data in cui la validità del premio termina; l'orario è facoltativo, ma corrisponde a 00:00:00 se non specificato. |
is_limited | No | 0 o 1 | Se "0", l'auto-generazione dei premi è illimitata. |
max_attribution_count | No | Numero intero positivo | Numero di unità disponibili del premio. Deve essere "0" o superiore se "is_limited" è impostato su 1, o superiore a 0 se "is_limited" è pari a 0. |
is_auto_generated | No | 0 o 1 | Se "1", permette a Splio di generare codici coupon (il "max_attribution_count" dovrebbe essere pari a 0). |
image_url | No | Testo | Link al file con l'immagine del premio. |
c0 | No | Una colonna personalizzata definita nel tuo universo per i premi. Puoi includere fino a 32 colonne da "c0" a "c31". |
- Ricorda che Splio non importerà file con colonne obbligatorie mancanti oppure colonne che non può identificare. Le linee con valori vuoti nelle colonne obbligatorie saranno ignorate.
- Nota anche che i valori dei campi "validity_period" e "validity_interval_type" possono essere sostituiti (forzati) al momento dell'attribuzione.
Esempio 1: un file "masterreward"
L'esempio qui di seguito mostra un file di import che utilizza tutte le colonne standard. Le colonne che sono vuote, come ";;", sono importate come valori NULL.
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";;
Nota che la maggior parte delle righe in questo esempio non saranno importate in modo corretto. Il valore "external_id" indica il problema, come un prezzo mancante o un valore stock non corretto. Ad esempio, la seconda riga non funzionerà, perché manca il prezzo.
Preparazione di un file "earnreward"
Puoi utilizzare dei file "earnreward" per rappresentare l'assegnazione (guadagno) di punti ai titolari di carta loyalty. Da un punto di vista tecnico, guadagnare un premio crea un collegamento tra il premio e una carta loyalty.
Le colonne qui di seguito sono disponibili nei file "earnreward".
Colonna | Obbligatoria | Formato | Descrizione |
---|---|---|---|
reward_id | Sì | Testo | Indica l’ ID interno del premio guadagnato e dovrebbe corrispondere a un ID di un premio esistente (questo ID può essere trovato nell'URL della pagina del premio). |
card_code | Sì | Testo | Identifica il titolare della carta che guadagna il premio. |
attribution_id | Sì | Testo (max 128 caratteri) | ID unico che collega il premio e il numero della carta (si chiama attribuzione perché il premio è attribuito alla carta). Se generato automaticamente, quest’ultimo verrà riempito automaticamente, quindi deve essere vuoto. |
quantity | No | Numero intero positivo | Numero di premi guadagnati. Se assente, si presume il valore predefinito di 1. Se generato automaticamente, quest’ultimo verrà riempito automaticamente. |
earn_date | Sì | YYYY-MM-DD HH:MM:SS | Data in cui il premio sarà guadagnato. Questa data deve essere il giorno di importazione o successivo. Se assente, verrà utilizzata la data e l'orario del server (GMT+1). |
context | No | Testo | Descrive la situazione in cui l'attribuzione (guadagno) avviene. |
validity_start_date | Sì | YYYY-MM-DD HH:MM:SS | Data in cui il premio diventa valido. |
validity_end_date | Sì | YYYY-MM-DD HH:MM:SS | Data di scadenza della validità del premio guadagnato. |
burn_date | No | YYYY-MM-DD HH:MM:SS | Data in cui il premio è stato utilizzato, ad es. 2021-02-12 08:30:00. Se assente, viene utilizzato l'orario corrente del server. |
store_id | No | Testo | ID di un negozio correlato al premio. |
- Utilizza sempre date come 2021-02-12 08:30:22 (con ore, minuti e secondi) per "earn_date", "validity_end_date", "validity_start_date" e "burn_date". Quando viene utilizzato l'orario del server, sarà GMT+1 per i clienti non cinesi e GMT+8 per i clienti cinesi. Vedi il paragrafo "Spiegazione: Date" per maggiori informazioni.
- Gli import di "earnreward" non utilizzano colonne personalizzate.
Esempio 2: un file "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"
Preparazione di un file con i premi utilizzati
Un file "burnereward" contiene informazioni sui premi utilizzati dai titolari di carta.In breve, la bruciatura del premio implica che è stato utilizzato oppure richiesto dal membro loyalty. Da un punto di vista tecnico, quest'azione non modifica lo status dei dati del "masterreward", bensì l'informazione relativa ai premi guadagnati.
Le seguenti colonne sono disponibili nei file "burnreward":
Colonna | Obbligatoria | Formato | Descrizione |
---|---|---|---|
card_code | Sì | Testo | Identifica la carta loyalty alla quale è assegnato il premio. |
context | No | Testo | Descrive la situazione (contesto) dove il premio (la sua attribuzione) verrà utilizzato (o annullato). |
attribution_id | Sì | Testo | Id unico creato durate l'attribuzione del premio. Vedi l'ambito "earnrewards" qui sopra. |
burn_date | No | YYYY-MM-DD HH:MM:SS | Data in cui il premio è stato utilizzato, ad es. 2021-02-19 18:10:03. Se assente, verrà utilizzata la data e l'orario del server (GMT+1). |
store_id | No | Testo | ID di un negozio correlato al premio. |
- Utilizza sempre date come 2021-02-12 08:30:22 (con ore, minuti e secondi) per "burn_date".
- Gli import di "burnreward" non utilizzano colonne personalizzate.
Esempio 3: un file "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
Denominare il file di import
Splio richiede che i file di import siano denominati in modo specifico. Ogni nome file deve contenere il nome dell'universo, l'ambito ("masterreward", "earnreward" o "burnreward"), la sottosezione (ricevuta dal tuo Project Manager) e la data. L'ordine in cui i file sono elaborati dipende dagli ambiti e dalle date.
Lo schema per denominare un file è sempre universe_scope_subsection_YYYYMMDD.csv. Questo significa che i file di import relativi a tutti e tre gli ambiti di questo articolo, in un universo "mycompany", sottosezione "silver", datato 14 febbraio 2019 potrebbero essere denominati in questi modi:
mycompany_masterreward_silver_20190214.csv mycompany_earnreward_silver_20190214.csv mycompany_burnreward_silver_20190214.csv
Spiegazione: date
Tutte le date utilizzate nei file di import dei premi vanno formattate nel seguente modo: 4 cifre per l'anno, 2 per il mese e 2 per il giorno, seguite da ore, minuti e secondi con 2 cifre per ciascuno. Il formato corretto per la data del 9 agosto 2021 alle 10:00:05 sarà: 2021-03-09 10:00:05
Il giorno e l'ora sono separati da uno spazio vuoto. Sia la data sia l'orario devono essere completi - le linee che per esempio contengono solamente ore e minuti non saranno importate.
Se l'orario viene omesso, Splio utilizzerà la prima ora possibile del giorno (00:00:00). Quindi,2018-09-09
equivale a2018-09-09 00:00:00
.
- Questa non dovrebbe mai essere un'opzione per le date e gli orari. 00:00:00 corrisponde alla mezzanotte e Splio tenterà di elaborare ogni data in questo modo. Quest'azione potrebbe generare degli errori e dei trigger associati alle date potrebbero non avvenire in modo corretto. Inoltre, tutti i dati loyalty sono sempre paragonabili a dati economici, pertanto è importante trascurare nulla.
Un ulteriore vantaggio nell'utilizzare una data completa è che sarai in grado di cercare e filtrare per data con una maggiore precisione.- Assicurati di utilizzare sempre lo stesso fuso orario (GMT+1).
Spiegazione: NULL e valori di cancellazione
NULL è un valore speciale che indica al database che il campo che lo contiene è vuoto.
Il tuo universo Splio può essere configurato in modo che interpreti i valori NULL come istruzioni per i campi vuoti. Puoi utilizzarlo per cancellare i valori archiviati nel database. Per farlo, assicurati che il valore importato sia esattamente NULL. Evita spazi iniziali e spazi finali: " NULL" o "NULL " saranno riconosciuti come valori di stringa.
Se questa opzione non è impostata, Splio considererà i valori per i campi dove il valore importato è NULL.
Differenza tra NULL e stringa vuota
"" è una stringa vuota. Nella maggior parte dei casi, sia NULL sia "" saranno importati come un valore vuoto.
L’aspetto più importante è che la stringa vuota "" non è mai considerata un valore NULL, pertanto non comporterà la cancellazione di un valore esistente.
Updated 3 months ago