Feld-Mapping Dokumentation: reybex → WooCommerce
Übersicht
Diese Dokumentation beschreibt, welche Felder von reybex nach WooCommerce übertragen werden und wie sie gemappt werden. Die Übertragung erfolgt über die WooCommerce REST API.
⚠️ WICHTIGER HINWEIS
Diese Dokumentation unterliegt kontinuierlichen Änderungen.
Die Integration zwischen reybex und WooCommerce befindet sich in ständiger Entwicklung. Daher kann es vorkommen, dass:
- Neue Felder hinzugefügt werden - Um zusätzliche Funktionen zu unterstützen oder neue WooCommerce-Features zu nutzen
- Felder temporär entfernt werden - Wenn unerwartete Probleme auftreten, die negative Auswirkungen auf die Artikel haben
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 WooCommerce übertragen werden. Für jedes WooCommerce-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
- Material: Ein Artikel/Produkt in reybex (entspricht WooCommerce Product)
- MaterialVariant: Eine Variante eines Artikels in reybex (z.B. Größe, Farbe) - entspricht WooCommerce Product Variation
- MaterialMarktplace: Marktplatz-spezifische Einstellungen für einen Artikel (können Standard-Felder überschreiben)
WooCommerce-Produktstruktur
- Product: Das Hauptprodukt in WooCommerce
- Product Variation: Eine Variante des Produkts in WooCommerce
- Attributes: Produktattribute in WooCommerce
- Tags: Produkt-Tags in WooCommerce
1. Produkt-Felder (Product Level)
Die folgenden Felder werden auf Produktebene in WooCommerce übertragen:
1.1 Basis-Informationen
| WooCommerce Feld | reybex Feld | Beschreibung | Bedingung |
|---|---|---|---|
product.name |
material.name |
Produktname/Titel | Export-Gruppe: ARTIKEL_DATA |
product.sku |
material.sku |
Artikelnummer | Export-Gruppe: ARTIKEL_DATA |
product.weight |
material.grossWeight |
Gewicht | Export-Gruppe: ARTIKEL_DATA |
product.brands |
material.brand.name |
Marke/Hersteller (als Brand ID) | Export-Gruppe: ARTIKEL_DATA |
product.status |
material.isMarketplaceActive |
Status ("publish" oder "draft") | Immer |
product.type |
Automatisch | "variable" wenn Varianten vorhanden, sonst leer | Immer |
product.dimensions |
material.length, material.width, material.height |
Abmessungen | Immer |
Hinweise:
- material.name kann durch materialMarktplace.materialName überschrieben werden
- product.status ist "publish" wenn isMarketplaceActive = true, sonst "draft"
- product.type wird automatisch auf "variable" gesetzt, wenn Varianten vorhanden sind
1.2 Beschreibung
| WooCommerce Feld | reybex Feld | Beschreibung | Bedingung |
|---|---|---|---|
product.short_description |
material.description |
Kurzbeschreibung | Export-Gruppe: DESCRIPTION |
product.description |
material.detailDescription |
Vollständige Beschreibung | Export-Gruppe: DESCRIPTION |
Hinweise:
- Wenn material.description leer ist, wird ein Leerzeichen übertragen
- Wenn material.detailDescription leer ist, wird ein Leerzeichen übertragen
1.3 Preise
| WooCommerce Feld | reybex Feld | Beschreibung | Bedingung |
|---|---|---|---|
product.regular_price |
material.price.rrp oder material.price.value |
Regulärer Preis | Export-Gruppe: PRICE |
product.sale_price |
material.price.value |
Aktionspreis | Export-Gruppe: PRICE |
Preislogik:
- regular_price = material.price.rrp (UVP), falls vorhanden, sonst material.price.value
- sale_price = material.price.value (wenn rrp vorhanden und höher als value)
- Wenn homeCurrency != price.currency, wird rrp = value gesetzt
1.4 Bestand
| WooCommerce Feld | reybex Feld | Beschreibung | Bedingung |
|---|---|---|---|
product.stock_quantity |
material.stock.value oder Summe der Varianten |
Bestand | Export-Gruppe: STOCK |
product.manage_stock |
material.isRequestable oder Varianten vorhanden |
Bestandsverwaltung | Immer |
product.in_stock |
material.isRequestable oder material.stock.value > 0 |
Auf Lager | Immer |
product.backorders |
material.isOnlySellableWithPositiveStock |
Nachbestellung | Immer |
Bestandslogik:
- Wenn Varianten vorhanden: stock_quantity = Summe aller Variantenbestände
- Wenn keine Varianten: stock_quantity = material.stock.value
- manage_stock = false wenn isRequestable = true oder Varianten vorhanden, sonst true
- backorders = "no" wenn isOnlySellableWithPositiveStock = true, sonst "yes"
1.5 Bilder
| WooCommerce Feld | reybex Feld | Beschreibung | Bedingung |
|---|---|---|---|
product.images[] |
material.images[] |
Produktbilder | Export-Gruppe: IMAGE + refreshPictures = true |
Hinweise:
- Bilder werden nur übertragen, wenn refreshPictures = true gesetzt ist
- Format: [{src: url, name: comment}]
1.6 Kategorien
| WooCommerce Feld | reybex Feld | Beschreibung | Bedingung |
|---|---|---|---|
product.categories[] |
material.categories[].id |
Kategorien (als IDs) | Export-Gruppe: CATEGORY |
Hinweise:
- Kategorien werden als Array von Objekten mit id übertragen
- Format: [{id: categoryId1}, {id: categoryId2}, ...]
1.7 Artikelattribute
| WooCommerce Feld | reybex Feld | Beschreibung | Bedingung |
|---|---|---|---|
product.attributes[] |
material.attributes[] |
Artikelattribute | Export-Gruppe: ARTIKEL_ATTRIBUTE |
product.attributes[] |
material.gtin |
GTIN/EAN als Attribute | Export-Gruppe: ARTIKEL_ATTRIBUTE (wenn gtin vorhanden) |
Mapping-Details:
- Format: {name: attribute.name, visible: true, variation: false, options: [attribute.value]}
- GTIN wird als zwei Attribute übertragen: "GTIN" und "EAN"
- Varianten-Optionen werden ebenfalls als Attribute hinzugefügt
1.8 Tags
| WooCommerce Feld | reybex Feld | Beschreibung | Bedingung |
|---|---|---|---|
product.tags[] |
material.translations[].keyWord |
Suchbegriffe als Tags | Export-Gruppe: SEO |
Hinweise:
- Tags werden aus keyWord extrahiert (komma-separiert)
- Tags werden als Array von Objekten mit id übertragen
- Format: [{id: tagId1}, {id: tagId2}, ...]
1.9 Zusätzliche Felder
| WooCommerce Feld | reybex Feld | Beschreibung | Bedingung |
|---|---|---|---|
product.unit_price |
material.purchaseUnit, material.referenceUnit |
Grundpreis-Informationen | Immer |
product.unit |
material.basePriceUnit.name |
Einheit (wenn Plugin vorhanden) | Immer (wenn Plugin-Unit gefunden) |
product.shipping_class |
material.isShippingFree |
Versandklasse | Immer (wenn isShippingFree = true) |
2. Varianten-Felder (Variation Level)
Die folgenden Felder werden auf Variantenebene in WooCommerce übertragen:
2.1 Basis-Informationen
| WooCommerce Feld | reybex Feld | Beschreibung | Bedingung |
|---|---|---|---|
variation.sku |
variant.sku |
Varianten-SKU | Export-Gruppe: VARIANT |
variation.regular_price |
variant.price.rrp oder variant.price.value |
Regulärer Preis | Export-Gruppe: VARIANT |
variation.sale_price |
variant.price.value |
Aktionspreis | Export-Gruppe: VARIANT |
2.2 Bestand
| WooCommerce Feld | reybex Feld | Beschreibung | Bedingung |
|---|---|---|---|
variation.stock_quantity |
variant.stock |
Variantenbestand | Export-Gruppe: VARIANT |
variation.manage_stock |
material.isRequestable |
Bestandsverwaltung | Export-Gruppe: VARIANT |
variation.in_stock |
material.isRequestable oder variant.stock > 0 |
Auf Lager | Export-Gruppe: VARIANT |
variation.backorders |
material.isOnlySellableWithPositiveStock |
Nachbestellung | Export-Gruppe: VARIANT |
2.3 Varianten-Bilder
| WooCommerce Feld | reybex Feld | Beschreibung | Bedingung |
|---|---|---|---|
variation.image |
variant.images[0] |
Erstes Variantenbild | Export-Gruppe: VARIANT + Bild vorhanden |
Hinweise:
- Format: {src: staticUrl, name: comment}
- Nur das erste Bild wird übertragen
2.4 Varianten-Attribute
| WooCommerce Feld | reybex Feld | Beschreibung | Bedingung |
|---|---|---|---|
variation.attributes[] |
variant.nameValuePairs[] |
Varianten-Optionen | Export-Gruppe: VARIANT |
Mapping-Details:
- Format: {id: attributeId, option: value}
- Wird aus nameValuePairs generiert
3. Export-Felder-Gruppen
Die Übertragung wird durch Export-Felder-Gruppen gesteuert:
| Export-Gruppe | Beschreibung | Übertragene WooCommerce-Felder |
|---|---|---|
| ARTIKEL_DATA | Artikeldaten | name, sku, weight, brands |
| DESCRIPTION | Beschreibung | short_description, description |
| PRICE | Preis | regular_price, sale_price |
| STOCK | Bestand | stock_quantity, manage_stock, in_stock, backorders |
| IMAGE | Bilder | images[] (nur wenn refreshPictures = true) |
| CATEGORY | Kategorien | categories[] |
| ARTIKEL_ATTRIBUTE | Artikelattribute | attributes[] |
| SEO | SEO-Felder | tags[] |
| VARIANT | Varianten | Alle Varianten-Felder |
4. Besondere Verhaltensweisen
4.1 Batch-Operationen
WooCommerce verwendet Batch-Operationen für Produkt-Updates:
- Neue Produkte werden in create Array gesammelt
- Bestehende Produkte werden in update Array gesammelt
- API-Endpoint: /products/batch
4.2 Preisberechnung
Preise werden über calculateRegularAndSalePrices() berechnet:
- Berücksichtigt uploadMaterialPriceAsZero Parameter
- Konvertiert zwischen Netto- und Bruttopreisen basierend auf isIncludeEnableTax
4.3 Marken und Tags
- Marken werden automatisch erstellt, wenn sie nicht existieren
- Tags werden automatisch erstellt, wenn sie nicht existieren
- Verwendet WooCommerce Brands API und Tags API
4.4 Grundpreis-Plugin
Wenn das WooCommerce Unit Price Plugin vorhanden ist:
- unit_price wird mit purchaseUnit und referenceUnit übertragen
- unit wird mit der entsprechenden Plugin-Unit-ID übertragen
5. Zusammenfassung: Vollständige Feld-Mappings
Produkt-Ebene
| WooCommerce Feld | reybex Feld | Export-Gruppe | Hinweise |
|---|---|---|---|
name |
material.name |
ARTIKEL_DATA | - |
sku |
material.sku |
ARTIKEL_DATA | - |
weight |
material.grossWeight |
ARTIKEL_DATA | - |
brands |
material.brand.name |
ARTIKEL_DATA | Als Brand ID |
status |
material.isMarketplaceActive |
Immer | "publish" oder "draft" |
type |
Automatisch | Immer | "variable" wenn Varianten vorhanden |
dimensions |
material.length, width, height |
Immer | - |
short_description |
material.description |
DESCRIPTION | - |
description |
material.detailDescription |
DESCRIPTION | - |
regular_price |
material.price.rrp oder value |
PRICE | - |
sale_price |
material.price.value |
PRICE | - |
stock_quantity |
material.stock.value oder Varianten-Summe |
STOCK | - |
manage_stock |
material.isRequestable |
Immer | - |
in_stock |
material.isRequestable oder stock > 0 |
Immer | - |
backorders |
material.isOnlySellableWithPositiveStock |
Immer | "no" oder "yes" |
images[] |
material.images[] |
IMAGE | Nur wenn refreshPictures = true |
categories[] |
material.categories[].id |
CATEGORY | - |
attributes[] |
material.attributes[], material.gtin |
ARTIKEL_ATTRIBUTE | - |
tags[] |
material.translations[].keyWord |
SEO | - |
unit_price |
material.purchaseUnit, referenceUnit |
Immer | - |
unit |
material.basePriceUnit.name |
Immer | Nur wenn Plugin vorhanden |
Varianten-Ebene
| WooCommerce Feld | reybex Feld | Export-Gruppe | Hinweise |
|---|---|---|---|
sku |
variant.sku |
VARIANT | - |
regular_price |
variant.price.rrp oder value |
VARIANT | - |
sale_price |
variant.price.value |
VARIANT | - |
stock_quantity |
variant.stock |
VARIANT | - |
manage_stock |
material.isRequestable |
VARIANT | - |
in_stock |
material.isRequestable oder variant.stock > 0 |
VARIANT | - |
backorders |
material.isOnlySellableWithPositiveStock |
VARIANT | "no" oder "yes" |
image |
variant.images[0] |
VARIANT | Erstes Bild |
attributes[] |
variant.nameValuePairs[] |
VARIANT | - |
6. API-Versionen
- WooCommerce REST API: Version 2 oder 3 (abhängig von Konfiguration)
- WooCommerce Brands API: Für Marken-Verwaltung
- WooCommerce Tags API: Für Tag-Verwaltung
Version: 1.0
Erstellt: 2024
Zielgruppe: Externe Nutzer ohne reybex-Kenntnisse