Feld-Mapping Dokumentation: reybex → Shopware 6

Übersicht

Diese Dokumentation beschreibt, welche Felder von reybex nach Shopware 6 übertragen werden und wie sie gemappt werden. Die Übertragung erfolgt über die Shopware 6 Admin API.

⚠️ WICHTIGER HINWEIS

Diese Dokumentation unterliegt kontinuierlichen Änderungen.

Die Integration zwischen reybex und Shopware 6 befindet sich in ständiger Entwicklung. Daher kann es vorkommen, dass:

Empfehlung:
Bitte überprüfen Sie regelmäßig die aktuelle Dokumentation und testen Sie Änderungen in einer Testumgebung, bevor Sie sie in der Produktion einsetzen.

Verwendung dieser Dokumentation

Diese Dokumentation zeigt, welche Felder von reybex nach Shopware 6 übertragen werden. Für jedes Shopware 6-Feld wird angegeben:
- Welches reybex-Feld die Quelle ist
- Unter welcher Bedingung es übertragen wird (Export-Gruppe)
- Besondere Hinweise zur Übertragung

Wichtige Konzepte

reybex-Artikelstruktur

Shopware 6-Produktstruktur

1. Produkt-Felder (Product Level)

Die folgenden Felder werden auf Produktebene in Shopware 6 übertragen:

1.1 Basis-Informationen

Shopware 6 Feld reybex Feld Beschreibung Bedingung
product.productNumber material.sku Artikelnummer Immer
product.name material.name Produktname Export-Gruppe: ARTIKEL_DATA
product.ean material.gtin EAN/GTIN Export-Gruppe: ARTIKEL_DATA
product.active Immer true Aktiv-Status Immer
product.weight material.netWeight Gewicht (in kg) Export-Gruppe: ARTIKEL_DATA
product.width material.width * 10 Breite (in mm) Export-Gruppe: ARTIKEL_DATA
product.height material.height * 10 Höhe (in mm) Export-Gruppe: ARTIKEL_DATA
product.length material.length * 10 Länge (in mm) Export-Gruppe: ARTIKEL_DATA
product.isCloseout material.isOnlySellableWithPositiveStock Ausverkauf Export-Gruppe: ARTIKEL_DATA
product.markAsTopseller material.isHighlighted Topseller Export-Gruppe: ARTIKEL_DATA
product.manufacturerNumber material.vendorMatCode oder material.manufacturer.number Herstellernummer Export-Gruppe: ARTIKEL_DATA
product.manufacturerId material.brand.name Hersteller/Marke (als ID) Export-Gruppe: ARTIKEL_DATA

Hinweise:
- Abmessungen werden von cm in mm umgerechnet (multipliziert mit 10)
- manufacturerId wird automatisch erstellt, wenn Marke nicht existiert
- manufacturerNumber verwendet vendorMatCode falls vorhanden, sonst manufacturer.number

1.2 Grundpreis-Berechnung

Shopware 6 Feld reybex Feld Beschreibung Bedingung
product.referenceUnit material.referenceUnit Referenzeinheit Export-Gruppe: BASE_PRICE_CALCULATION
product.purchaseUnit material.purchaseUnit Einkaufseinheit Export-Gruppe: BASE_PRICE_CALCULATION
product.packUnit material.packUnit Verpackungseinheit Export-Gruppe: BASE_PRICE_CALCULATION
product.unitId material.basePriceUnit Einheit (als ID) Export-Gruppe: BASE_PRICE_CALCULATION

Hinweise:
- unitId wird automatisch erstellt, wenn Einheit nicht existiert
- Einheit wird anhand shortCode oder name gesucht

1.3 Preise

Shopware 6 Feld reybex Feld Beschreibung Bedingung
product.price[] material.price.value Verkaufspreis Export-Gruppe: PRICE
product.price[].listPrice material.price.rrp UVP/Listenpreis Export-Gruppe: PRICE + RRP
product.price[].gross material.price.value (brutto) Bruttopreis Export-Gruppe: PRICE
product.price[].net Berechnet aus material.price.value Nettopreis Export-Gruppe: PRICE
product.taxId material.vatRate Steuersatz (als Tax ID) Export-Gruppe: PRICE
product.purchasePrices[] material.purPrice Einkaufspreis Export-Gruppe: PRICE

Preislogik:
- gross = material.price.value (wenn syncNetPriceToMarketplace = false)
- net = Berechnet aus gross und vatRate
- listPrice wird nur übertragen, wenn RRP in Export-Gruppen enthalten ist
- purchasePrices Format: [{gross: X, net: Y, currencyId: Z, linked: false}]

1.4 Bestand

Shopware 6 Feld reybex Feld Beschreibung Bedingung
product.stock material.stock.value Bestand Export-Gruppe: STOCK

1.5 SEO-Felder

Shopware 6 Feld reybex Feld Beschreibung Bedingung
product.metaTitle material.metaTitle SEO-Titel Export-Gruppe: SEO
product.metaDescription material.metaDescription SEO-Beschreibung Export-Gruppe: SEO
product.keywords material.keyWord Suchbegriffe Export-Gruppe: SEO

1.6 Versand

Shopware 6 Feld reybex Feld Beschreibung Bedingung
product.shippingFree material.isShippingFree Versandkostenfrei Export-Gruppe: SHIPPING
product.restockTime material.deliveryDays Nachbestellzeit Export-Gruppe: SHIPPING
product.deliveryTimeId material.shipping.maxProcessDays Lieferzeit (als ID) Export-Gruppe: SHIPPING

Hinweise:
- deliveryTimeId wird anhand maxProcessDays gesucht und automatisch zugeordnet

1.7 Kategorien

Shopware 6 Feld reybex Feld Beschreibung Bedingung
product.categories[] material.categories[].id Kategorien (als IDs) Export-Gruppe: CATEGORY

Hinweise:
- Format: [{id: categoryId1}, {id: categoryId2}, ...]

1.8 Eigenschaften (Properties)

Shopware 6 Feld reybex Feld Beschreibung Bedingung
product.properties[] material.propertyValues[] Produkteigenschaften (als Option IDs) Export-Gruppe: ARTIKEL_ATTRIBUTE

Hinweise:
- Eigenschaften werden als Option IDs übertragen
- Nicht mehr vorhandene Eigenschaften werden gelöscht
- Format: [{id: optionId1}, {id: optionId2}, ...]

1.9 Custom Fields

Shopware 6 Feld reybex Feld Beschreibung Bedingung
product.customFields[] material.customFields[] Benutzerdefinierte Felder Export-Gruppe: ARTIKEL_ATTRIBUTE

Typ-Mapping:

reybex variableType Shopware 6 Custom Field Type Beschreibung
0 Number Ganzzahl
1 Float Dezimalzahl
2 oder 8 Text Text
3 Boolean Wahr/Falsch
4 Select Auswahl (Option)

Hinweise:
- Custom Fields werden über _action/sync API übertragen
- Übersetzungen werden separat pro Sprache übertragen
- Multi-Select wird unterstützt

1.10 Übersetzungen

Shopware 6 Feld reybex Feld Beschreibung Bedingung
translations[].name material.translations[].name Übersetzter Name Export-Gruppe: DESCRIPTION
translations[].description material.translations[].detailDescription Übersetzte Beschreibung Export-Gruppe: DESCRIPTION

Hinweise:
- Übersetzungen werden über updateMaterialTranslations() übertragen
- Pro Sprache wird ein separater API-Call durchgeführt

1.11 Bilder

Shopware 6 Feld reybex Feld Beschreibung Bedingung
product.media[] material.images[] Produktbilder Export-Gruppe: IMAGE + refreshPictures = true
product.media[] material.variants[].images[] Variantenbilder Export-Gruppe: IMAGE + refreshPictures = true

Hinweise:
- Bilder werden nur übertragen, wenn refreshPictures = true gesetzt ist
- Variantenbilder werden separat pro Variante übertragen
- Format: [{image: {url: X, fileName: Y}}]

1.12 Sichtbarkeit (Visibility)

Shopware 6 Feld reybex Feld Beschreibung Bedingung
product.visibilities[] Automatisch Sichtbarkeit in Sales Channels Immer (wenn channelId vorhanden)

Hinweise:
- Wird über manageProductVisibility() verwaltet
- Produkt wird automatisch in konfigurierten Sales Channels sichtbar gemacht

2. Varianten-Felder (Product Variant Level)

Die folgenden Felder werden auf Variantenebene in Shopware 6 übertragen:

2.1 Basis-Informationen

Shopware 6 Feld reybex Feld Beschreibung Bedingung
variant.productNumber variant.sku Varianten-SKU Export-Gruppe: VARIANT
variant.ean variant.gtin Varianten-EAN/GTIN Export-Gruppe: VARIANT
variant.stock variant.stock Variantenbestand Export-Gruppe: VARIANT
variant.price[] variant.price.value Variantenpreis Export-Gruppe: VARIANT
variant.price[].listPrice variant.price.rrp Varianten-UVP Export-Gruppe: VARIANT + RRP
variant.purchaseUnit variant.purchaseUnit Einkaufseinheit Export-Gruppe: VARIANT

Preislogik:
- gross = variant.price.value (wenn syncNetPriceToMarketplace = false)
- net = Berechnet aus gross und material.vatRate
- listPrice wird nur übertragen, wenn RRP in Export-Gruppen enthalten ist

2.2 Varianten-Eigenschaften

Varianten werden über setVariantData() erstellt/aktualisiert:
- Varianten-Optionen werden als Properties übertragen
- Varianten-Struktur wird über Property Groups definiert

2.3 Varianten-Bilder

Shopware 6 Feld reybex Feld Beschreibung Bedingung
variant.media[] variant.images[] Variantenbilder Export-Gruppe: VARIANT + refreshPictures = true

Hinweise:
- Variantenbilder werden separat pro Variante übertragen
- Hauptbilder werden ausgeschlossen (nur Varianten-spezifische Bilder)

2.4 Kundenpreise (Special Prices)

Shopware 6 Feld reybex Feld Beschreibung Bedingung
variant.prices[] (special) variant.prices[] (nicht EK) Kundenpreise Export-Gruppe: CUSTOMER_GROUP_PRICE

Hinweise:
- Nur Preise mit customerGroupKey != 'EK' werden übertragen
- Verwendet createAllSpecialPricesOfProduct() Methode
- Alte Special Prices werden vorher gelöscht

3. Export-Felder-Gruppen

Die Übertragung wird durch Export-Felder-Gruppen gesteuert:

Export-Gruppe Beschreibung Übertragene Shopware 6-Felder
ARTIKEL_DATA Artikeldaten name, ean, weight, width, height, length, isCloseout, markAsTopseller, manufacturerNumber, manufacturerId
BASE_PRICE_CALCULATION Grundpreis-Berechnung referenceUnit, purchaseUnit, packUnit, unitId
PRICE Preis price[], taxId, purchasePrices[]
RRP UVP/Listenpreis price[].listPrice
STOCK Bestand stock
SEO SEO-Felder metaTitle, metaDescription, keywords
SHIPPING Versand shippingFree, restockTime, deliveryTimeId
CATEGORY Kategorien categories[]
ARTIKEL_ATTRIBUTE Artikelattribute properties[], customFields[]
DESCRIPTION Beschreibung Übersetzungen
IMAGE Bilder media[] (nur wenn refreshPictures = true)
VARIANT Varianten Alle Varianten-Felder
CUSTOMER_GROUP_PRICE Kundenpreise Special Prices für Varianten

4. Besondere Verhaltensweisen

4.1 API-Operationen

Shopware 6 verwendet verschiedene API-Endpunkte:
- Produkt-Erstellung: POST /api/product
- Produkt-Update: PATCH /api/product/{id}
- Varianten-Update: PATCH /api/product/{variantId}
- Sync-Operationen: POST /api/_action/sync (für Custom Fields, Properties)

4.2 Varianten-Verwaltung

4.3 Bild-Upload

4.4 Custom Fields

4.5 Sichtbarkeit

4.6 Optionen-Upload

5. Zusammenfassung: Vollständige Feld-Mappings

Produkt-Ebene

Shopware 6 Feld reybex Feld Export-Gruppe Hinweise
productNumber material.sku Immer -
name material.name ARTIKEL_DATA -
ean material.gtin ARTIKEL_DATA -
active Immer true Immer -
weight material.netWeight ARTIKEL_DATA -
width material.width * 10 ARTIKEL_DATA In mm
height material.height * 10 ARTIKEL_DATA In mm
length material.length * 10 ARTIKEL_DATA In mm
isCloseout material.isOnlySellableWithPositiveStock ARTIKEL_DATA -
markAsTopseller material.isHighlighted ARTIKEL_DATA -
manufacturerNumber material.vendorMatCode oder manufacturer.number ARTIKEL_DATA -
manufacturerId material.brand.name ARTIKEL_DATA Als ID
referenceUnit material.referenceUnit BASE_PRICE_CALCULATION -
purchaseUnit material.purchaseUnit BASE_PRICE_CALCULATION -
packUnit material.packUnit BASE_PRICE_CALCULATION -
unitId material.basePriceUnit BASE_PRICE_CALCULATION Als ID
price[] material.price.value PRICE -
price[].listPrice material.price.rrp PRICE + RRP -
taxId material.vatRate PRICE Als Tax ID
purchasePrices[] material.purPrice PRICE -
stock material.stock.value STOCK -
metaTitle material.metaTitle SEO -
metaDescription material.metaDescription SEO -
keywords material.keyWord SEO -
shippingFree material.isShippingFree SHIPPING -
restockTime material.deliveryDays SHIPPING -
deliveryTimeId material.shipping.maxProcessDays SHIPPING Als ID
categories[] material.categories[].id CATEGORY -
properties[] material.propertyValues[] ARTIKEL_ATTRIBUTE Als Option IDs
customFields[] material.customFields[] ARTIKEL_ATTRIBUTE -
media[] material.images[] IMAGE Nur wenn refreshPictures = true
translations[] material.translations[] DESCRIPTION Pro Sprache

Varianten-Ebene

Shopware 6 Feld reybex Feld Export-Gruppe Hinweise
productNumber variant.sku VARIANT -
ean variant.gtin VARIANT -
stock variant.stock VARIANT -
price[] variant.price.value VARIANT -
price[].listPrice variant.price.rrp VARIANT + RRP -
purchaseUnit variant.purchaseUnit VARIANT -
media[] variant.images[] VARIANT Nur wenn refreshPictures = true
prices[] (special) variant.prices[] (nicht EK) CUSTOMER_GROUP_PRICE -

6. API-Endpunkte


Version: 1.0
Erstellt: 2024
Zielgruppe: Externe Nutzer ohne reybex-Kenntnisse