Darstellung
Synchronisation Reybex ↔ Marktplätze/Shops
Diese Seite beschreibt vollständig, wie reybex mit externen Verkaufskanälen (Marktplätze und Shops) synchronisiert: welche Daten in welche Richtung fließen, welche Domänen und Jobs beteiligt sind, wie Provider sich unterscheiden und wo mandantenspezifische Besonderheiten dokumentiert werden.
Für das Monitoring einzelner Transfer-Jobs (OMP02 UI) siehe Marketplace-Synchronisation (OMP02).
Überblick
reybex ist Single Source of Truth für Artikelstamm (BAS), Bestände (INV), Preise (SAL) und Aufträge (SAL). Externe Kanäle (Amazon, eBay, Shopify, Shopware, Kaufland, Otto, FTP/CSV, …) werden über Marktplace-Kanäle (OMP01) angebunden. Die eigentliche Datensynchronisation läuft asynchron über Transfer-Jobs und Background-Jobs; Ergebnisse werden in OMP02 protokolliert.
Sync-Richtungen und Datentypen
| Datentyp | Richtung | Auslöser | Transfer-Typ | Ergebnis |
|---|---|---|---|---|
| Artikel / Listing | reybex → Kanal | Artikeländerung, OMP07, manuell | MaterialTransfer (outgoing) | Listing am Kanal angelegt/aktualisiert |
| Bestand (Stock) | reybex → Kanal | INV-Buchung, Job, OMP07 | MaterialTransfer (STOCK) | Verfügbare Menge am Kanal |
| Preis | reybex → Kanal | SAL09-Änderung, OMP07 | MaterialTransfer (PRICE) | VK-Preis am Kanal |
| Kategorien / Attribute | reybex → Kanal | OMP08-Mapping, Export | MaterialTransfer | Kanal-Kategorie, Custom Fields |
| Bestellung | Kanal → reybex | Job-Intervall, manuell | OrderTransfer (incoming) | SalesHead (SAL16) |
| Versandstatus / Tracking | reybex → Kanal | Nach SMP01 / isSend | OrderTransfer (outgoing) | Status am Kanal |
| Rechnung | reybex → Kanal | Nach SAL18 | OrderTransfer / Upload | Rechnungs-PDF beim Marktplatz |
| Artikel-Rückimport | Kanal → reybex | Manuell / Job | MaterialTransfer (incoming) | Artikel in BAS02 |
Shops vs. Marktplätze
Technisch nutzen Shops und Marktplätze dieselbe OMP-Infrastruktur (Marktplace, Transfer-Jobs, APIs). Unterschiede liegen im Provider (Credentials, Endpoints, Felder) und in fachlichen Regeln (z. B. Amazon FBA, Shopify Locations, eBay Seller Profiles).
Beteiligte Domänen und Objekte
| Domäne | Rolle in der Sync | Doku |
|---|---|---|
| Marktplace | Kanal-Konfiguration: Belegart, Lager, Import-/Export-Regeln, Job-Intervall | Marktplatz-Konfiguration |
| MarketplaceConfig | Provider-Credentials, Endpoints, Sandbox | Kern-Domänen |
| MaterialMarktplace | Artikel × Kanal: SKU, Listing-Status, Kanal-Preis/Bestand zuletzt sync | — |
| MarketplaceExternal | Externe Produkt-/Varianten-IDs | Kern-Domänen |
| MarktplaceMaterialTransfer | Job für Artikel-/Bestands-/Preis-Sync | — |
| MarktplaceOrderTransfer | Job für Order-Import/-Export | — |
| MarktplaceWarehouse | Lager-Zuordnung, Bestandssperren, Shopify Locations | — |
| CategoryMarketplaceMapping | reybex-Kategorie → Kanal-Kategorie | Kategorie-Mapping |
| SalesHead | Importierte Bestellung mit marktplaceOrderId | Aufträge |
| BackgroundJob | Asynchrone Verarbeitung | Hintergrundprozesse |
End-to-End: Typischer Sync-Lebenszyklus
1. Artikel-Synchronisation (Export reybex → Kanal)
Zweck
Artikelstammdaten aus BAS02 werden kanalspezifisch über MaterialMarktplace aufbereitet und an den externen Kanal exportiert: Titel, Beschreibung, Bilder, Kategorien, Attribute, SKU, GTIN/EAN, eBay-Profile usw.
Voraussetzungen
- Kanal in OMP01 aktiv (
isActive = true) und Verbindung OK (checkConnection) exportProducts = true(sofern am Kanal konfiguriert)- Artikel mit
matCode/skuin BAS02 - Optional: MaterialMarktplace-Eintrag je Kanal; alternativ
createMissingMaterialsin OMP01 - Kategorie-Mapping (OMP08) für Kanäle, die Kategorien erzwingen
Auslöser
| Auslöser | Mechanismus |
|---|---|
| Einzelartikel geändert | Automatisch oder POST /api/marketplace/marketplaceUpdateMaterial |
| Massen-Rollout | OMP07 → POST /api/marketplace/massUpdate |
| Manueller Upload | POST /api/marketplace/uploadData |
| Background-Job | GET /api/marketplace/sendMaterialTransfer |
| Erst-Listing | MaterialMarktplace anlegen + Sync triggern |
Export-Felder (materialFieldsToExport)
Typische Werte (provider-abhängig, kombinierbar):
| Feld | Inhalt |
|---|---|
STOCK | Verfügbarer Bestand |
PRICE | VK-Preis (brutto/netto je priceSynchronization) |
ARTIKEL_DATA | Stammdaten (Titel, Beschreibung, …) |
CATEGORY | Kanal-Kategorie |
PICTURES | Bilder |
ATTRIBUTES | Merkmale / Varianten |
OMP07 und Einzel-Sync erlauben gezielte Feld-Auswahl – z. B. nur Bestand aktualisieren ohne Beschreibung zu überschreiben.
Ablauf im Detail
- MaterialMarktplace wird gelesen oder angelegt (
marketplaceSku,isActive, Kanal-Titel/Beschreibung) - Provider-spezifische Mapper bereiten Payload vor (REST, Feed, CSV)
- MarktplaceMaterialTransfer wird mit
postway = 1(outgoing) angelegt - Background-Job sendet an Kanal-API
- Ergebnis:
processingStatus2 (OK) oder 3/4 (Fehler);submissionId/submissionInfofür Feed-Status - MaterialMarktplace aktualisiert
last_synchronized_*-Felder
Partner-Checkliste Artikel-Export
- [ ] SKU am Kanal = SKU im Order-Import (oder
materialFindingAlgorithmbewusst gesetzt) - [ ] Kategorie gemappt (OMP08)
- [ ] Bilder und Attribute exportierbar (
isMarketplaceCustomFieldin BAS17) - [ ]
doNotUploadNewMaterialbeachten (nur Updates, keine Neuanlage) - [ ] OMP02: MaterialTransfer-Status grün
2. Bestands-Synchronisation (Stock reybex → Kanal)
Zweck
Verfügbare Lagermenge aus INV wird an Kanäle gemeldet, damit Shops/Marktplätze den korrekten ATP (Available-to-Promise) anzeigen und Überverkäufe vermeiden.
Bestandsberechnung
Meldbestand = Σ (verfügbar je Lager) − Reservierungen − Sperren| Faktor | Quelle |
|---|---|
| Physischer Bestand | INV03/04, MaterialStock |
| Reservierungen | Order-Import, offene Aufträge |
| importWarehouses (OMP01) | Lager für Abzug beim Order-Import |
| MarktplaceWarehouse | interlockQuantityValue, interlockQuantityPercent |
| isAllowOversell (MaterialMarktplace) | Überverkauf am Kanal erlaubt |
Shopify Multi-Location: shopifyLocation in MarktplaceWarehouse zuordnen.
Auslöser
| Auslöser | Beschreibung |
|---|---|
| INV-Buchung | Wareneingang, Kommissionierung, Inventur → Stock-Transfer |
| Order-Import | Reservierung reduziert verfügbare Menge → Stock-Update |
OMP07 mit STOCK | Bulk-Bestandsabgleich |
| Periodischer Job | Hintergrund-Abgleich je Kanal |
Besonderheiten je Provider
| Provider | Hinweis |
|---|---|
| Amazon | FBA vs. FBM – separates Lager/Belegart; FBA-Bestand über SP-API |
| Shopify | Location-basiert; getLocationsForShopify + Warehouse-Mapping |
| eBay | Quantity am Listing; Varianten-SKU beachten |
| Shopware 6 | Stock über Admin-API; ggf. Cross-Channel-Plugin |
3. Preis-Synchronisation (Preis reybex → Kanal)
Zweck
VK-Preise aus SAL09 (MaterialPrices) werden an Kanäle übertragen – global, staffelbezogen oder kanalspezifisch (marktplace am Preis).
Konfiguration
| OMP01-Feld | Wirkung |
|---|---|
priceSynchronization | 0 = brutto, 1 = netto beim Export |
| MaterialPrices.marktplace | Preis nur für bestimmten Kanal |
blockDeliveryPriceCheck | Sperre wenn EK > VK (Qualitätssicherung) |
Auslöser
- SAL09-Preisänderung → MaterialTransfer mit
PRICE - OMP07 Bulk-Preisupdate
- Manuell:
marketplaceUpdateMaterialmitmaterialFieldsToExport: "PRICE"
4. Bestell-Synchronisation (Import Kanal → reybex)
Zweck
Externe Bestellungen werden als SalesHead (Auftrag, SAL16) in reybex angelegt – inkl. Positionen, Adressen, Zahlungs- und Versandinformationen.
Voraussetzungen (OMP01)
| Feld | Bedeutung |
|---|---|
salesDocType | Belegart für importierte Aufträge |
importWarehouses | Lager für Reservierung/Bestandsabzug |
jobInterval | Automatischer Import (0 = nur manuell/API) |
pastDays | Rückwirkender Import-Zeitraum |
createMissingMaterials | Unbekannte SKU automatisch anlegen |
materialFindingAlgorithm | SKU-Zuordnung: matCode, sku, EAN, … |
Auslöser
| Auslöser | API / Mechanismus |
|---|---|
| Automatischer Job | jobInterval in OMP01 (15 min, 30 min, …) |
| Manuell | POST /api/marketplace/importOrders |
| Einfach-Import | GET /api/marketplace/performSimpleOrderImport |
| Perioden-Job | POST /api/marketplace/orderImportWithPeriod |
| FTP/CSV | Datei im konfigurierten Pfad → OrderTransfer |
Ablauf im Detail
- Provider-API liefert offene Bestellungen (Status-Filter in OMP01)
- MarktplaceOrderTransfer mit
postway = 0(incoming),actionName = importOrders - Pro Bestellung:
- Idempotenz über
marktplaceOrderIdam SalesHead - SKU → Material via Algorithmus
- Kunde anlegen/zuordnen (OMP01-Regeln)
- Reservierung auf
importWarehouses
- Idempotenz über
- Erfolg:
SalesHeadmitmarktplace,marktplaceOrderId - Fehler: Eintrag in Order Import Errors (
GET .../orderImportErrors)
Typische Import-Fehler
| Fehler | Ursache | Maßnahme |
|---|---|---|
| SKU unbekannt | Artikel fehlt, Tippfehler | BAS02 anlegen; createMissingMaterials prüfen |
| Kein freier Lagerplatz | Lager voll in Prüftabelle | INV Lagerplätze freigeben |
| Adresse unvollständig | Provider-Daten lückenhaft | Mapping-Regeln / manuelle Nachbearbeitung |
| Duplikat | Bestellung bereits importiert | marktplaceOrderId prüfen |
| OAuth abgelaufen | Token ungültig | OMP01 Verbindung erneuern |
5. Fulfillment-Synchronisation (Export reybex → Kanal)
Zweck
Nach Kommissionierung und Versand meldet reybex Versandstatus, Tracking und ggf. Rechnungen zurück an den Kanal.
Voraussetzungen
- Auftrag aus Order-Import (
SalesHeadmitmarktplaceOrderId) - Lieferschein (SAL17) / Versand abgeschlossen (SMP01,
isSend) - Tracking in SAL31 oder SendPack
Auslöser und APIs
| Aktion | API | Wann |
|---|---|---|
| Versandstatus | POST /api/marketplace/uploadOrders | Nach Versand |
| Batch-Export | GET /api/marketplaceOrderTransfer/exportOrders | Alle offenen Aufträge |
| Rechnung | POST /api/marketplace/uploadInvoices | Nach SAL18 (Amazon, Kaufland, Real, …) |
| Status-Update | POST /api/marketplace/updateOrderStatusInMarketplace | Provider-spezifisch |
Ablauf
Provider-Besonderheiten Fulfillment
| Provider | Besonderheit |
|---|---|
| Amazon | Feed-basiert; FBA vs. FBM unterschiedliche Flows; Rechnungs-Upload Pflicht |
| eBay | Fulfillment API; Tracking über getTokenForEbayFulfillmentApi |
| Shopify | Fulfillment + Tracking an Order; ggf. Partial Fulfillment |
| Kaufland / Real | Rechnungs-Upload nach Versand verpflichtend |
6. Jobs, Intervalle und Automatisierung
| Job | Steuerung | Beschreibung |
|---|---|---|
| Order-Import | jobInterval in OMP01 | Periodischer Abruf neuer Bestellungen |
| Material-Transfer | Background-Job | Abarbeitung offener MaterialTransfers |
| Massenupdate | OMP07 → BackgroundJob | Bulk-Export vieler Artikel |
| Order-Export | exportOrders | Batch-Versand-Rückmeldungen |
Monitoring:
- OMP02 – Transfer-Listen (Material + Order)
- SYS20 – Hintergrundprozesse (
processNamemit Marktplatz-Bezug) - API:
GET /api/marketplace/synchronizationData
processingStatus (Material + Order)
| Wert | Bedeutung | Aktion |
|---|---|---|
| 0 | Offen | Wartet auf Verarbeitung |
| 1 | In Bearbeitung | Job läuft |
| 2 | Erfolgreich | Abgeschlossen |
| 3 | Fehler (retry) | Automatischer Wiederholversuch (nextTry) |
| 4 | Fehler (final) | Manuelle Korrektur nötig |
7. Provider-spezifische Sync-Profile
Kurzprofile der häufigsten Kanäle. Details zur Einrichtung: Marktplatz-Konfiguration.
Amazon (SP-API)
| Sync-Typ | Mechanismus |
|---|---|
| Artikel | Katalog-API / Feeds; ASIN-Mapping |
| Bestand | FBM: Lager-Sync; FBA: separates Lager |
| Orders | SP-API Orders; FBA-Belegart optional |
| Versand | Feed oder API; Rechnungs-Upload |
| Auth | OAuth: amazonAuthUrl → auth Callback |
Besonderheiten: Feed-Reports über feedSubmissionResult; Sandbox-Modus in MarketplaceConfig.
eBay
| Sync-Typ | Mechanismus |
|---|---|
| Artikel | Inventory API; Seller Profiles (OMP03 Templates) |
| Bestand | Quantity am Listing / Variante |
| Orders | Order API |
| Versand | Fulfillment API |
| Auth | Token: getTokenForEbay, Fulfillment: getTokenForEbayFulfillmentApi |
Besonderheiten: Payment/Shipping/Return Profiles; Description Templates (OMP03).
Shopify
| Sync-Typ | Mechanismus |
|---|---|
| Artikel | Admin API Products/Variants |
| Bestand | Inventory Levels je Location |
| Orders | Orders API |
| Versand | Fulfillments + Tracking |
| Auth | App-OAuth über Marketplace External API |
Besonderheiten: Multi-Location → MarktplaceWarehouse + getLocationsForShopify.
Shopware 6
| Sync-Typ | Mechanismus |
|---|---|
| Artikel | Admin API Sync |
| Bestand | Stock-Endpoint |
| Orders | Order-Import |
| Auth | API-Key + Store-URL; getStoreInformationForShopware |
Besonderheiten: Custom Fields aus BAS-Attributen (isMarketplaceCustomField).
FTP / CSV (generisch)
| Sync-Typ | Mechanismus |
|---|---|
| Orders | Datei-Import (incoming) |
| Stock | CSV-Export (outgoing) |
| Artikel | Optional per Datei |
Besonderheiten: Pfade und Formate in marketplaceConfig; fileName am OrderTransfer.
8. Mandanten- / Client-spezifische Dokumentation
In diesem Abschnitt werden projektspezifische Sync-Konfigurationen dokumentiert – abweichende Regeln, Sonderkanäle, Workarounds oder Mehrkanal-Setups je Mandant.
Neue Client-Dokumentation anlegen
Für jeden Mandanten einen Unterabschnitt mit fester Struktur anlegen (siehe Vorlage unten). So bleiben Besonderheiten auffindbar, ohne die allgemeine Sync-Logik zu duplizieren.
Dokumentations-Vorlage (pro Client)
markdown
#### [Mandantenname / Projekt-ID]
**Kanäle:** z. B. Amazon DE, Shopify B2C, eBay Outlet
**Tenant-ID:** `1234567890`
**Ansprechpartner:** Name, Team
##### Abweichende Sync-Regeln
- Order-Import: …
- Bestand: …
- Preise: …
##### Bekannte Besonderheiten
- …
##### Offene Punkte / Workarounds
- …
##### Letzte Aktualisierung
- YYYY-MM-DD – AutorBeispiel: Mandant „Demo Handel GmbH“
Kanäle: Shopify Store DE, Amazon FBM DE
Tenant-ID: (Beispiel – durch echte ID ersetzen)
Ansprechpartner: Partner-Team OMP
Abweichende Sync-Regeln
- Shopify: Nur Lager „Hauptlager“ syncen;
interlockQuantityPercent = 10(Sicherheitspuffer) - Amazon FBM: Bestandsexport nur tagsüber (08:00–20:00) – Nacht-Job deaktiviert
- Order-Import: Shopify alle 15 min; Amazon stündlich
Bekannte Besonderheiten
- Varianten-Artikel: Parent-SKU in Shopify, Child-SKU in reybex über
materialFindingAlgorithm = SKU - Amazon-Rechnungs-Upload: automatisch nach SAL18-Freigabe
Offene Punkte
- Kaufland-Anbindung geplant Q4 – Kategorie-Mapping vorbereitet in OMP08
9. Fehleranalyse und Troubleshooting
Diagnose-Workflow
Häufige Symptome
| Symptom | Prüfpunkte |
|---|---|
| Kein Bestand am Kanal | exportStock, MarktplaceWarehouse-Sperren, INV-Bestand |
| Preis falsch | priceSynchronization, kanalspezifischer SAL09-Preis |
| Order doppelt | marktplaceOrderId Idempotenz |
| Listing fehlt | doNotUploadNewMaterial, MaterialMarktplace isActive |
| Feed hängt (Amazon) | feedSubmissionResult, submissionId |
| Shopify Location falsch | shopifyLocation in MarktplaceWarehouse |
Nützliche APIs zur Analyse
| API | Zweck |
|---|---|
GET /api/marketplace/synchronizationData | Aggregierte Übersicht |
GET /api/marketplaceMaterialTransfer | Material-Job-Details |
GET /api/marketplaceOrderTransfer | Order-Job-Details |
GET /api/marketplaceOrderTransfer/orderImportErrors | Import-Fehlerliste |
GET /api/marketplace/feedSubmissionResult | Amazon Feed-Report |
10. Abhängigkeiten zu anderen Modulen
| Modul | Sync-Bezug |
|---|---|
| BAS02 | Artikelstamm, SKU, Attribute, Bilder |
| SAL09 | VK-Preise, kanalspezifische Preise |
| SAL16 | Importierte Aufträge |
| SAL17/18/31 | Fulfillment, Rechnung, Tracking |
| INV03/04/06 | Bestand, Reservierung, Kommissionierung |
| SMP01 | Versandabschluss → Trigger für uploadOrders |
| SYS20 | Background-Jobs |
| SYS11/13 | Feldrechte, Übersetzungen (mehrsprachige Listings) |
API-Referenz
| Thema | Dokumentation |
|---|---|
| Zentrale Marktplatz-API | — |
| Material-Transfers | — |
| Order-Transfers | — |
| Artikel × Kanal | — |
| Lager-Zuordnung | — |
| Kategorien | — |
| Externe Apps (Shopify) | — |
| Integration-Übersicht | — |