Sie müssen die Salesdatendatei so formatieren, dass sie den unten angeführten Spezifikationen und Richtlinien entspricht.
Bevor Sie beginnen
Was sind Salesdaten?
Als Salesdaten bezeichnen wir alle Informationen zu den in Ihren Stores staffindenden Transaktionen; dazu gehören die täglich anfallenden Käufe, Rückgaben und Stornierungen ebenso wie Offline-Daten aus Ihren Ladengeschäften. Wir speichern Ihre Salesdaten in unserem Sales Data Service, auf das die einzelnen Emarsys Apps zugreifen können.
Der Status Ihrer Salesdaten sowie die regelmäßigen Updates können über die Seite Management > Data Sources > Sales Data verfolgt werden.
Wichtig
- Der Upload von Salesdaten erfolgt inkrementell, das heißt, neuere Uploads werden zu den bestehenden Salesdaten hinzugefügt und überschreiben diese nicht.
- Da Emarsys Salesdaten derzeit nicht dedupliziert, sollten Sie sicherstellen, dass Sie die einzelnen Bestellungen nur jeweils einmal hochladen; duplizierte Einträge beeinträchtigen die Reportingfunktion.
Warum sind Salesdaten wichtig?
Unsere Web Extend Datensammlungs-Scripts tracken zwar die Käufe in Ihrem Online-Store, erfassen jedoch keine Informationen zu Rückgaben, Stornierungen und Offline-Transaktionen. Diese Informationen sind aber wiederum entscheidend für Emarsys Funktionen wie das Umsatz-Reporting oder Produktaffinitätsmodelle, und sie machen unsere smarten Features noch smarter.
Ihre Salesdaten werden von den meisten Emarsys Produkten und Funktionen benötigt, einschließlich Predict und Smart Insight. Auch für die Zuordnung von Umsätzen zu spezifischen Kampagnen sowie das Erstellen von Umsatzstatistiken bzw. das Umsatz-Reporting sind sie essenziell.
Wie viel Aufwand muss ich investieren?
Als ersten Schritt müssen Sie eine Datei generieren, die idealerweise zumindest 2 Jahre an Salesdaten enthält und unseren Spezifikationen entspricht; diese finden Sie weiter unten. Je nach Größe und Komplexität Ihres Sales-History muss Ihr Datenspezialist möglicherweise einige Stunden aufwenden, um diese Datei liefern zu können.
Sollte unsere Validierungs-Engine danach Probleme entdecken, müssen Sie diese zuerst beheben; das kann wiederum einige Stunden Aufwand für den Datenspezialisten bedeuten.
Basierend auf unseren bisherigen Erfahrungen mit einer großen Anzahl und Bandbreite an Kunden halten wir für das Einrichten der Salesdatendatei folgenden Ressourcen- und Zeitaufwand für realistisch:
Aktion | Rolle | Max. Aufwand |
---|---|---|
Erstellen einer Datei mit historischen Salesdaten | Datenspezialist | Bis zu 8 Stunden |
Validieren der Datei | Datenspezialist | 5 Minuten |
Fehlerbehebung, falls erforderlich | Datenspezialist | Hängt von der Anzahl und dem Schweregrad der Probleme ab, üblicherweise aber nicht mehr als 2 Stunden |
Einrichten des täglichen Salesdaten-Imports | Datenspezialist | Bis zu 2 Stunden |
Wie oft muss ich Salesdaten hochladen?
Nachdem der erste Upload Ihrer historischen Salesdaten erfolgt ist, empfehlen wir, neue Salesdaten einmal täglich hochzuladen.
Sie können Ihre Salesdaten auch häufiger hochladen; die Verarbeitung der Salesdaten durch Smart Insight erfolgt jedoch nur einmal täglich in aggregierter Form.
Allgemeine Regeln für Ihre Datendatei
Der Upload Ihrer Salesdatendatei wird fehlschlagen, wenn diese nicht sämtliche Checks ohne Probleme durchläuft. Sie müssen sicherstellen, dass die Datei korrekt formatiert ist; unsere diesbezüglichen Anforderungen finden Sie weiter unten.
Die Spalten im Header Ihrer Salesdatendatei müssen genau jene Reihenfolge haben, die im Rahmen der Smart Insight Onboarding Implementierung festgelegt wurde. Ist dies nicht der Fall, wird der Upload fehlschlagen.
Sie können die Reihenfolge der Spalten ganz oben auf der Seite Sales Data überprüfen (Menü Management > Predict > Data Sources > Sales Data > Manage sales data), zum Beispiel:

- Ihre Salesdatendatei sollte eine einfache .csv-Tabelle sein; eine Zeile sollte jeweils alle Attribute eines bestimmten Artikels beschreiben.
- Ihre Datei muss mit einer Header-Zeile (d.h. den Feldnamen) beginnen.
- Der Dateiname muss der Konvention
sales_items*.csv
entsprechen. Mit anderen Worten, der Dateiname muss mit der Zeichenfolgesales_item
beginnen und die Dateierweiterung muss .csv sein; den Asterisk (*) können Sie durch eine beliebige Anzahl von Zeichen Ihrer Wahl ersetzen (z.B. eine Timestamp). - Verwenden Sie eine CSV-Exportbibliothek, die mit dem Standard-CSV-Format kompatibel ist.
- Verwenden Sie Kommazeichen für das Trennen der Felder in einer Zeile.
- Wenn ein Feld keinen Wert hat, lassen Sie es leer. Beispiel:
value1,,value3,value4
- Verwenden Sie in den Feldern keine Neue-Zeile-Zeichen, weder ohne noch mit Anführungszeichen.
- Verwenden Sie UTF-8-Codierung.
- Schließen Sie die Feldnamen in der ersten Zeile (Header) ein und vergewissern Sie sich, dass alle nachfolgenden Zeilen jene Werte enthalten, die den im Header gelisteten Feldern entsprechen. Wenn Sie sich bei der Vorgehensweise nicht sicher sind, kontaktieren Sie bitte den Emarsys Support.
- Verwenden Sie nicht mehr als 255 Spalten.
- Verwenden Sie keine Feldwerte, die größer als 64 KB sind.
- Achten Sie darauf, dass die erforderlichen Felder mit Groß- und Kleinbuchstaben eingegeben werden, sonst erkennt das System sie nicht. „Preis“ ist nicht dasselbe wie „preis“. „Preis“ wird als benutzerdefiniertes Feld erkannt und bekommt ein Präfix, z. B. „f_“, also „f_Preis“. In diesem Fall fehlt das Preisfeld.
Beispiel für Salesdatendatei
Beispiel gefällig? Klicken Sie hier, um eine Salesdatendatei anzuzeigen, oder laden Sie eine Beispieldatei herunter.
Erforderliche Felder
Satz an Standardfeldern
Diese Felder sind für die Emarsys Standardfunktionen erforderlich.
Feld | Erforderlich | Typ | Beispiel | Beschreibung |
---|---|---|---|---|
item | Ja | String | BOOK0012 |
|
price | Ja | Float | 110.30 |
|
order | Ja | String | 111-U8 |
|
timestamp | Ja | Timestamp |
|
Hinweis: Wenn Sie Loyalty und Smart Insight verwenden, empfehlen wir, die Timestamp in der lokalen Zeit mit der Information zum Zeitzonen-Offset anzugeben. Wenn Sie nur das Datum mit der Timestamp 00:00:00 übergeben (z.B. 2020-08-03T00:00:00), könnten Ihre Kunden einen Teil ihrer Loyalty-Punkte verlieren. Wenn Sie die Timestamp in UTC angeben (z.B. 2020-08-03T15:05:00Z), kann das Ihre Smart Insight Berichte beeinflussen. |
customer | Ja (erforderlich sind entweder email oder customer . Nicht beides verwenden!) | String | 12343-14B |
|
email | Ja (erforderlich sind entweder email oder customer . Nicht beides verwenden!) | sportscar_fanatic @gmail.com |
| |
quantity | Ja | Float | 5 |
|
Wichtig: Stellen Sie sicher, dass in all Ihren Salesdatendateien ausschließlich customer
oder email
für die Benutzeridentifizierung verwendet wird und die beiden Identifizierungsmethoden nicht vermischt werden.
Loyalty-Felder
Wenn Sie Emarsys Loyalty verwenden, müssen auch die folgenden Felder in Ihrer Salesdatendatei enthalten sein.
Feld | Erforderlich | Typ | Beispiel | Beschreibung |
---|---|---|---|---|
s_market | Ja | String | Deutschland |
|
f_original_price | Ja | Float | 3549.92 |
|
s_original_currency | Ja | String | USD |
|
Loyalty: Anforderungen für Stornierungen und Rückerstattungen
Bei der Übergabe von Informationen zu zurückgegebenen Artikeln oder Bestellungen verwenden Sie stets die Order ID, Customer ID und Item ID der Originalbestellung und setzen Sie einen negativen Wert in den Feldern für Preis und Anzahl, ebenso wie in f_original_price
. Bitte vergewissern Sie sich, dass die Felder in Ihrer Salesdatendatei exakt auf diese Weise ausgefüllt sind, andernfalls werden die Rückerstattungen in Ihren Reports nicht korrekt ausgewiesen.
Retail-Felder
Die Felder s_sales_chann
el und s_stor
e_id sind Teil eines Features, das sich derzeit in der Pilotphase befindet und nur bestimmten Retail-Kunden zugänglich ist. Wenn Sie Interesse haben, an dieser Pilotphase teilzunehmen, sprechen Sie bitte mit Ihrem Success Manager.
Wenn Sie das Strategie-Dashboard für Retail-Kunden verwenden, müssen diese Felder auch in Ihrer Salesdatendatei enthalten sein.
Feld | Erforderlich | Typ | Beispiel | Beschreibung |
---|---|---|---|---|
s_sales_channel | Ja | String | online" | Der Sales-Kanal der Bestellung. Der Wert ist entweder 'online' oder 'offline'. |
s_store_id | Ja | String | 87" | Die externe ID des Store. |
Benutzerdefinierte Felder
Neben den Salesdaten-Pflichtfeldern können Sie benutzerdefinierte Felder verwenden, um weitere Verkaufsinformationen zur Datendatei hinzuzufügen. Die Namen von benutzerdefinierten Feldern müssen mit einem Präfix beginnen, das den Datentyp spezifiziert. Auf das Präfix muss ein Unterstrich (_
) folgen, sowie der Name der benutzerdefinierten Spalte. Wenn der Name eines Feldes aus mehreren Wörtern besteht, muss jedes Wort mit einem Kleinbuchstaben beginnen und alle Wörter müssen durch Unterstriche voneinander getrennt sein. Beispiel: s_original_currency
.
Für benutzerdefinierte Felder verfügbare Präfixe:
Präfix | Typ | Beispiel |
---|---|---|
i_* | Integer | i_customer_age |
f_* | Float | f_customer_height |
t_* | Timestamp | t_date_of_manufacture |
s_* | String | s_book_author |
- Benutzerdefinierte Felder werden auf ihren Datentyp geprüft; wenn die übergebenen Werte nicht mit dem erwarteten Datentyp übereinstimmen, werden die Salesdaten zurückgewiesen.
- Benutzerdefinierte Felder können leer sein. Für numerische Felder kann ein benutzerdefiniertes Integer-Feld jedoch keine leeren Strings haben. So werden zum Beispiel doppelte Anführungszeichen, die keine Werte enthalten (
""
) nicht akzeptiert. Numerische Felder mit einem Wert NULL, zum Beispiel doppelte Kommas (,,
), werden akzeptiert.
Salesdaten-Beispiel
Das folgende Beispiel zeigt Bestellungen für einen Schuhhandel mit drei benutzerdefinierten Spalten (die timestamp
ist in UTC angegeben):
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
Im folgenden Beispiel wird für das Format der timestamp
die lokale Zeit mit Information zum Zeitzonen-Offset gewählt (die Zeitzone ist UTC+10):
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+10: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+10: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+10: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+10: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+10: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+10: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+10: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+10: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
Rückgaben, Stornierungen und Rückvergütungen
Bei der Übergabe von Informationen zu zurückgegebenen Artikeln oder Bestellungen verwenden Sie stets die Order ID, Customer ID und Item ID der Originalbestellung und setzen Sie einen negativen Wert in den Feldern price
, quantity
und f_original_price
. Bitte vergewissern Sie sich, dass die Felder in Ihrer Salesdatendatei exakt auf diese Weise ausgefüllt sind, andernfalls werden die Rückerstattungen in Ihren Reports nicht korrekt ausgewiesen.
Beispiel
Ein Kunde kauft drei Artikel:
Order ID | Datum | Customer ID | Item ID | Preis (price) | Anzahl (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 |
Eine Woche später entscheidet er sich, zwei Artikel zurückzugeben; das sollte in der Salesdatendatei wie folgt vermerkt werden:
Order ID | Datum | Customer ID | Item ID | Preis (price) | Anzahl (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 |
Die zwei Teile der Bestellung werden dann zu einer einzigen Bestellung zusammengeführt; diese hat einen Gesamtwert von 45, das Bestelldatum bleibt unverändert (d.h., Emarsys behält das ursprüngliche Bestelldatum bei).
Smart Insight und Salesdata: Häufig gestellte Fragen
Warum ist nicht SFTP die bevorzugte Methode für das Hochladen von Salesdaten?
Weil SFTP gegenüber dem Hochladen über das Salesdaten-API eine Reihe von Nachteilen hat, zum Beispiel:
- Ihre Datei ist nicht sofort verfügbar, das verlangsamt die Problembehandlung.
- FTP Accounts müssen eingerichtet werden, während das Salesdaten-API ein Self-Service-Tool ist.
- Bei FTP-Uploads müssen Sie stets darauf achten, dass Ihre Salesdatendatei einen eindeutigen Namen hat.
Was passiert, wenn der Customer-Identifier (email oder customer ID) in einer oder mehreren Zeilen der Salesdatendatei fehlt?
Nun, Sie sollten jedenfalls versuchen, das zu vermeiden, da es das Smart Insight Scoring und Reporting verzerren kann.
Falls es trotzdem passieren sollte: Emarsys akzeptiert die Salesdatendatei, unabhängig davon, ob sie über das Predict API oder mittels der Smart Insight FTP-Methode hochgeladen wurde. In diesem Fall erstellt Emarsys einen Pseudo-Kontakt für Ihren Account und ordnet diesem Kontakt all jene Bestellungen zu, für die der Customer-Identifier fehlt. Wenn Sie häufiger Salesdatendateien mit fehlenden Customer IDs hochladen, erstellt Emarsys unter Umständen für jede betroffene Bestellung einen neuen Pseudo-Kontakt.
Pseudo-Kontakte erhalten eine eindeutige Customer ID in unserer Kontaktdatenbank und werden auf den Smart Insight Screens als generated (generiert) angezeigt.
Was passiert, wenn ein Kunde in der Emarsys Kontaktdatenbank nicht gefunden werden kann?
Wenn Sie Ihre Salesdaten über den Smart Insight SFTP hochladen, werden Bestellungen, bei denen die Identifier 'email' oder 'customer ID' fehlen, dennoch verarbeitet; der unbekannte Kontakt erhält eine Customer ID zugewiesen und wird in den Customer Lifecycle Reports als generated (generiert) ausgewiesen. Durch Übernahme des Filters 'generated' (generiert) kann der Kontakt von den regulären Kontakten in Ihrer Kontaktdatenbank getrennt werden.
Werden auf diese Weise generierte Kontakte zu einem späteren Zeitpunkt explizit identifiziert, werden sie beim nächsten Data-Load zu regulären Kontakten umgewandelt.