Übersicht
Die Shopify-Schnittstelle ermöglicht eine bidirektionale Anbindung zwischen dem ERP-System (IPTOR Multiflex / Taskcenter) und Ihrem Shopify-Onlineshop. Folgende Funktionen werden unterstützt:
|
Tracking-LinksFunktion |
Richtung |
Beschreibung |
|---|---|---|
|
Bestellimport |
Shopify → Taskcenter |
Automatischer Import neuer Bestellungen |
|
Produktexport |
Taskcenter → Shopify |
Export von Artikeldaten, Bildern und Varianten |
|
Lagerbestandsexport |
Taskcenter → Shopify |
Abgleich geänderter Bestände |
|
Auftragsstatus |
Taskcenter → Shopify |
Fulfillment-Rückmeldung bei Lieferscheinerstellung |
|
Tracking-Links |
Taskcenter → Shopify |
Sendungsverfolgung an Shopify übermitteln |
|
Metafield-Management |
Taskcenter → Shopify |
Zusatzinformationen zu Produkten und Varianten |
Voraussetzungen
|
Voraussetzung |
Beschreibung |
|---|---|
|
API-Key |
Ein gültiger Shopify Admin API Access-Token |
|
API-URL |
Die Shop-API-URL (z. B. https://ihr-shop.myshopify.com/admin/api/2024-01/) |
|
Organisatorische Einheit (OE) |
Muss konfiguriert sein und ein Lager zugewiesen haben |
|
Artikelzuordnung |
SKU in Shopify muss der Artikelnummer im Taskcenter entsprechen |
|
Lizenz |
Shopify-Schnittstellenlizenz muss freigeschaltet sein |
1. Bestellimport (Order Import)
Funktionsweise
┌──────────────┐ Neue Bestellungen ┌──────────────────┐
│ Shopify │ ─────────────────────► │ Taskcenter │
│ (Webshop) │ automatisch/manuell │ (Auftrag) │
└──────────────┘ └──────────────────┘
Die Schnittstelle ruft automatisch neue Bestellungen aus Shopify ab und erstellt daraus Aufträge im Taskcenter.
Ablauf
-
Abruf: Bestellungen mit dem Status authorized oder paid werden aus Shopify geladen
-
Zahlungsinformationen: Für jede Bestellung werden die Transaktionsdaten abgerufen, um die Zahlungsart zu ermitteln
-
Kundenzuordnung: Rechnungs- und Lieferadresse werden übernommen
-
Positionsübernahme: Alle Bestellpositionen werden mit Artikelnummer (SKU), Menge, Preis und Steuer importiert
-
Auftragserstellung: Ein neuer Auftrag wird im Taskcenter angelegt
Importierte Daten
|
Feld |
Beschreibung |
|---|---|
|
Bestellnummer |
Shopify-Bestellnummer oder Bestellname (konfigurierbar) |
|
Kunde |
Name, E-Mail, Telefon |
|
Rechnungsadresse |
Straße, PLZ, Ort, Land |
|
Lieferadresse |
Straße, PLZ, Ort, Land |
|
Positionen |
Artikelnummer (SKU), Menge, Einzelpreis (brutto), Steuersatz |
|
Zahlungsart |
Über Zahlungsarten-Mapping konfigurierbar |
|
Versandkosten |
Versandkosten inkl. evtl. Versandrabatte |
|
Gutschriften |
Gutscheinkarten werden als eigene Position importiert |
|
Rabattcodes |
Verwendete Rabattcodes werden übernommen |
|
Währung |
Bestellwährung |
Konfiguration
|
Einstellung |
Beschreibung |
|---|---|
|
Bestellnummer verwenden |
Wahlweise die Shopify-Bestellnummer oder den Bestellnamen als Bestellnummer übernehmen |
|
Zahlungsarten-Mapping |
Zuordnung der Shopify-Zahlungsarten zu den Taskcenter-Zahlungsarten |
|
Leerzeichen entfernen |
Leerzeichen aus Artikelnummern entfernen (bei abweichender Formatierung) |
|
Gutschein-Artikelnummer |
Artikelnummer für die Abbildung von Gutscheinkarten |
|
USt aus Warenkorb |
USt-Satz aus dem Warenkorb verwenden, wenn keine Tax-Lines vorhanden sind |
Fehlerbehandlung
Schlägt der Import einer Bestellung fehl, wird das Erstellungsdatum der fehlerhaften Bestellung gespeichert. Beim nächsten Importlauf werden Bestellungen ab diesem Zeitpunkt (minus 1 Stunde Puffer) erneut abgerufen, sodass keine Bestellungen verloren gehen.
2. Produktexport (Product Export)
Funktionsweise
┌──────────────────┐ Artikeldaten ┌──────────────┐
│ Taskcenter │ ────────────────► │ Shopify │
│ (Artikelstamm) │ bei Änderungen │ (Produkt) │
└──────────────────┘ └──────────────┘
Geänderte Artikel werden automatisch als Shopify-Produkte exportiert. Dabei werden Artikeldaten, Bilder, Varianten und Metafelder übertragen.
Ablauf
-
Änderungserkennung: Artikeländerungen werden in einer Update-Warteschlange erfasst
-
Relevanzbewertung: Nur Artikel, die für den Webshop relevant sind, werden exportiert (siehe Artikelrelevanz)
-
Mapping: Artikelfelder werden gemäß der konfigurierten Feldzuordnung auf Shopify-Produktfelder gemappt
-
Transfer: Neue Produkte werden erstellt, bestehende aktualisiert
-
Bilder: Produktbilder werden als Base64 übertragen und Varianten zugeordnet
-
Archivierung: Artikel, die nicht mehr relevant sind, werden in Shopify archiviert
Artikelrelevanz
Die Schnittstelle unterstützt drei Methoden zur Bestimmung, welche Artikel exportiert werden:
|
Methode |
Beschreibung |
|---|---|
|
Profilierungskriterium |
Artikel mit einem bestimmten Profilierungskriterium = TRUE |
|
Artikelstamm OE |
Artikel, die in der OE als „Im Netz anzeigen" markiert sind |
|
Sonderpreise |
Artikel mit einem Webshop-Sonderpreis (Code 14) für die OE |
Feldzuordnung (Mapping)
Die Zuordnung zwischen Taskcenter-Feldern und Shopify-Produktfeldern ist frei konfigurierbar:
|
Quelle (Taskcenter) |
Beispiel |
|---|---|
|
Artikelstamm-Felder |
ARTIKELNUMMER, BEZEICHNUNG, VK1 usw. |
|
Artikeltexte |
itemtext.BEZEICHNUNG1, itemtext.BEZEICHNUNG2 |
|
Langtexte |
longtext.2, longtext.3, longtext.4, longtext.15 |
|
Verkaufspreise inkl. USt |
VK_INKL, VK2_INKL bis VK10_INKL |
|
Profilierungswerte |
Profiling.KRITERIUMSNAME |
|
Hauptvariante |
mainvariant |
Format-Strings
Feldzuordnungen unterstützen Platzhalter und Format-Strings:
{BEZEICHNUNG1} - {BEZEICHNUNG2}
Wird zu: Mein Artikel - Zusatztext
Für Dezimalwerte mit Punkt statt Komma:
{[VK1]}
Varianten
Artikel mit Varianten werden als ein Shopify-Produkt mit mehreren Varianten exportiert. Bis zu 3 Optionen (z. B. Größe, Farbe, Material) werden unterstützt. Die Zuordnung erfolgt über Felder mit dem Prefix variants..
Bilder
-
Bilder werden aus dem konfigurierten Bilderpfad geladen
-
Nur Bilder mit dem Kennzeichen „Internet" werden exportiert
-
Bildarten 1 und 100–110 werden berücksichtigt
-
Alt-Texte können über einen konfigurierbaren Format-String definiert werden (z. B. {BEZEICHNUNG1} - Bild {IMAGE.POSITION})
-
Bilder können einzelnen Varianten zugeordnet werden
Preisfaktor
Exportierte Preise können mit einem konfigurierbaren Preisfaktor multipliziert werden (z. B. für Währungsumrechnung).
3. Lagerbestandsexport (Stock Export)
Funktionsweise
Geänderte Lagerbestände werden automatisch an den konfigurierten Shopify-Standort (Location) übertragen.
Übertragene Daten
{
"location_id": 12345678,
"inventory_item_id": 87654321,
"available": 42
}
Voraussetzungen
-
Ein Lager (Location) muss in der OE hinterlegt sein
-
Die Artikelzuordnung (Inventory-Mapping) muss vorhanden sein
Zuordnung neu aufbauen
Über die Funktion „Bestandszuordnung neu aufbauen" wird die Zuordnungstabelle SHOPIFY_ARTIKEL_MAPPING vollständig neu erstellt. Dabei werden:
-
Alle aktiven Produkte aus Shopify geladen
-
Die SKU jeder Variante mit den Artikelnummern im Taskcenter abgeglichen
-
Neue Zuordnungen erstellt und veraltete entfernt
4. Auftragsstatus / Fulfillment (Order Status)
Funktionsweise
┌──────────────────┐ Lieferschein ┌──────────────┐
│ Taskcenter │ ────────────────► │ Shopify │
│ (Lieferschein) │ Fulfillment │ (Versandt) │
└──────────────────┘ └──────────────┘
Wenn im Taskcenter ein Lieferschein erstellt wird, meldet die Schnittstelle die betroffenen Positionen als Fulfillment an Shopify zurück. Der Kunde sieht dadurch im Webshop, dass seine Bestellung (teilweise) versendet wurde.
Ablauf
-
Bestellzuordnung: Über die Lieferscheinpositionen werden die zugehörigen Shopify-Bestellungen ermittelt
-
Fulfillment-Orders laden: Für jede betroffene Shopify-Bestellung werden die offenen Fulfillment-Orders abgerufen
-
Positionszuordnung: Die Lieferscheinpositionen werden den Fulfillment-Order-Positionen über die Inventory-Item-ID zugeordnet
-
Fulfillment senden: Ein Fulfillment-Request wird an Shopify gesendet
-
Mapping speichern: Die Fulfillment-ID wird für die spätere Tracking-Link-Übermittlung gespeichert
Teillieferungen
Die Schnittstelle unterstützt Teillieferungen. Wird nur ein Teil der bestellten Menge geliefert, wird nur dieser Teil als fulfilled gemeldet. Die restlichen Positionen bleiben in Shopify als offen bestehen.
5. Tracking-Links (Sendungsverfolgung)
Funktionsweise
┌──────────────────┐ Tracking-Daten ┌──────────────┐
│ Taskcenter │ ────────────────► │ Shopify │
│ (Versand/NVE) │ │ (Tracking) │
└──────────────────┘ └──────────────┘
Nach dem Versand werden Tracking-Links und Sendungsnummern an das zugehörige Shopify-Fulfillment übermittelt.
Übertragene Daten
|
Feld |
Beschreibung |
|---|---|
|
Sendungsnummer (NVE) |
Die Paket-/Sendungsnummer |
|
Tracking-URL |
Der Link zur Sendungsverfolgung |
Kundenbenachrichtigung
Über die Einstellung „Kunden benachrichtigen" (NotifyCustomer) kann gesteuert werden, ob Shopify den Kunden automatisch per E-Mail über die Versandinformation informiert.
Ablauf
-
Tracking-Daten werden aus der Tabelle BEX_NVE gelesen
-
Über das Fulfillment-Mapping wird die zugehörige Fulfillment-ID ermittelt
-
Die Tracking-Informationen werden an Shopify übermittelt
-
Bei Erfolg wird das Fulfillment-Mapping gelöscht und der Datensatz als exportiert markiert
6. Metafield-Management
Übersicht
Metafelder ermöglichen es, zusätzliche strukturierte Daten an Shopify-Produkte und -Varianten anzuhängen, die über die Standard-Produktfelder hinausgehen (z. B. technische Spezifikationen, SEO-Daten, benutzerdefinierte Attribute).
Konfiguration
Metafelder werden pro OE konfiguriert und können für zwei Ebenen definiert werden:
|
Typ |
Beschreibung |
|---|---|
|
Produkt-Metafelder |
Werden dem gesamten Produkt zugeordnet |
|
Varianten-Metafelder |
Werden einzelnen Produktvarianten zugeordnet |
Metafeld-Eigenschaften
|
Eigenschaft |
Beschreibung |
|---|---|
|
Key |
Eindeutiger Schlüssel des Metafeldes |
|
Namespace |
Namespace zur Gruppierung (z. B. details) |
|
Beschreibung |
Beschreibender Text für das Metafeld |
|
Typ |
Datentyp des Metafeldes (z. B. single_line_text_field, json) |
Feldzuordnung
Jedes Metafeld kann eine oder mehrere Spalten-Zuordnungen haben, die festlegen, woher die Daten kommen:
|
Einstellung |
Beschreibung |
|---|---|
|
ColumnName |
Das Quellfeld im Taskcenter (z. B. BEZEICHNUNG1, Profiling.MATERIAL) |
|
FieldName |
Der Schlüssel im JSON-Metafeld (nur bei Typ json) |
|
Kumulieren aus Varianten |
Werte aus allen Varianten zusammenfassen (kommasepariert) |
Beispiel: JSON-Metafeld
Konfiguration:
-
Key: specifications
-
Namespace: details
-
Typ: json
-
Mappings: GEWICHT → weight, Profiling.MATERIAL → material
Ergebnis in Shopify:
{
"key": "specifications",
"namespace": "details",
"type": "json",
"value": "{\"weight\": \"1.5\", \"material\": \"Edelstahl\"}"
}
Beispiel: Kumulierung aus Varianten
Wenn ein Produkt mehrere Varianten mit unterschiedlichen Farben hat und die Option „Kumulieren aus Varianten" aktiviert ist:
{
"key": "available_colors",
"namespace": "details",
"type": "single_line_text_field",
"value": "Rot,Blau,Grün"
}
Verhalten bei Aktualisierung
Beim Produktexport werden bestehende Metafelder im Namespace details gelöscht und neu erstellt. Dies stellt sicher, dass veraltete Daten nicht in Shopify verbleiben.
Fehlerbehandlung
|
Problem |
Mögliche Ursache |
Lösung |
|---|---|---|
|
„API URL wurde nicht festgelegt" |
API-URL fehlt in den Einstellungen |
URL in den Schnittstelleneinstellungen eintragen |
|
„Es wurde noch kein API-Key hinterlegt" |
Access-Token fehlt |
API-Key in den Einstellungen hinterlegen |
|
„Bei der OE muss ein Lager hinterlegt sein" |
Kein Lager konfiguriert |
Lager in der OE-Konfiguration zuweisen |
|
Artikel nicht in Mapping-Tabelle |
SKU stimmt nicht überein |
SKU in Shopify prüfen, Mapping neu aufbauen |
|
Bestellung wird nicht importiert |
Zahlungsstatus nicht authorized/paid |
Zahlungsstatus in Shopify prüfen |
|
Fulfillment schlägt fehl |
Bestellung bereits fulfilled |
Status in Shopify prüfen |
Protokollierung
Alle API-Anfragen und -Antworten werden im Schnittstellenprotokoll erfasst. Bei aktiviertem Logging werden die JSON-Daten zusätzlich als Dateien gespeichert:
• *_Request.json – Gesendete Daten
• *_Response.json – Empfangene Antworten
• *_ResponseFault.json – Fehlerhafte Antworten
API-Kommunikation
Rate Limiting
Zwischen jedem API-Aufruf wird eine Pause von 500 ms eingehalten, um die Shopify API-Rate-Limits nicht zu überschreiten.
Paginierung
Bei großen Datenmengen (z. B. viele Produkte oder Bestellungen) wird die Shopify-Paginierung über den Link-Header automatisch verarbeitet. Pro Seite werden maximal 250 Einträge abgerufen.
Sicherheit
-
Die Kommunikation erfolgt ausschließlich über HTTPS
-
Die Authentifizierung erfolgt über den Header X-Shopify-Access-Token
-
TLS 1.2 wird unterstützt
Support
Bei Fragen zur Einrichtung oder bei Problemen mit der Shopify-Schnittstelle wenden Sie sich bitte an Ihren Systemadministrator oder den technischen Support.