JSON Schnittstelle
Bestellungen ("orders"):
Aufbau:
OrderObject:
Property name | Description | Definition |
id | Webshop Order Number | string, max 255 characters, unique |
created_at_utc | Order creation date | format utc with timezone |
updated_at_utc | Order update date | datetime, format utc with timezone |
status | Webshop Order Status | string |
shipping_method |
| Versandart |
currency | Currency Code (nur info wie der Kunde bezahlt, die Line items sind immer in Euro) | 3 characters |
comment | Customer order comment | string, max. 255 characters, optional |
taxmodel | Kennzeichen ob Brutto oder Netto verrechnet wurde: Preisangaben in Line items sind dann auch brutto od netto | "GROSS" or "NET" |
_payment |
| Zahlungsinformation |
_lines | array of | Rechnungszeilen (Produkt, Versandkosten, Rabatte, Gesamtsumme) |
_shipping_address |
| Versandadresse des Kunden (optional bei Bestellungen ohne materielle Güter) |
_billing_address |
| Rechnungsadresse des Kunden |
Beispiel:
ShippingObject
Property name | Description | Definition |
type | Webshop Shipping Method Identifier | string, max 255 characters |
description | Description information for shipping method (like address if packup at store) | string, max 255 characters, optional |
OrderPaymentObject
Property name | Description | Definition |
method | Webshop Payment Method Identifier | string, max 255 characters One of cc, paypal, sofort, invoice, banktransfer, cod |
cctype | Type of credit card (various) | string, max 255 characters, if method="cc" One of Visa, MC/MasterCard, Amex (exact values may vary) |
OrderLineObject
Property name | Description | Definition |
type | Type of line item | one of "product", "shipping", "discount", "total" (is special because all other lines sum up to equal total line) |
is_line | Flag whether line should appear in billing documents | true (if type=product or shipping) / false (if type=discount or total) |
quantity | Line item quantity | numeric, needed if type="product" |
sku | SKU of product | needed if type="product" |
name | Name of product | needed if type="product", string max 255 characters |
unitprice | Base price of product (noch nicht rabattiert) | needed if type="product", decimal, 2 decimals if order taxmodel="GROSS", 4 decimals precision of order taxmodel="NET" |
discount_amount | Discount calculated on product line | optional if type="product", decimal, 2 decimals if order taxmodel="GROSS", 4 decimals precision of order taxmodel="NET" |
amount | Line price of product | (=unitprice * quantity - discount_amount) needed if type="product", decimal, 2 decimals if order taxmodel="GROSS", 4 decimals precision of order taxmodel="NET" |
tax_amount | Tax amount of line price | (tax of amount) needed if type="product", decimal, 2 decimals if order taxmodel="GROSS", 0 if order taxmodel="NET" |
taxclass | Tax class identifier of product | string |
OrderAddressObject
Property name | Description | Definition |
id | Webshop Address Entry ID | numeric |
salutation | Customer Prefix (Mr,Mrs,Herr,Frau) | string, max 255 characters, optional |
firstname | Customer First Name | string, max 255 characters |
lastname | Customer Last Name | string, max 255 characters |
street | Customer Street Address | string, max 255 characters. May contain "\n" for line breaks |
zip | Customer ZIP | string, max 255 characters |
city | Customer City | string, max 255 characters |
country | Customer Country Code | 2 characters ISO Country code |
company | Customer Company Name Code | string, max 255 characters, optional |
Customer eMail Address | string, max 255 characters | |
phone | Customer Phone Number | string, max 255 characters, optional |
vat_id | Customer VAT Number | string, max 255 characters, optional |
Mapping Tabelle, Anforderungen onRetail
OrderObject
JSON API FELD | Transformation | onRetail Datenziel | Anpassung | Related US |
id | 1:1 | - | Neues Feld für die Webshop Order ID | |
created | Umwandlung zu Datetime | sale.order.create_date | - | |
updated | Umwandlung zu Datetime | sale.order.write_date | - | |
status | Mapping Tabelle | - | sale.order Stati auf die des Webshops mappen | |
shipping_method | Mapping Tabelle | delivery.carrier | - | |
currency | Mapping Tabelle | res.currency | - | |
comment | 1:1 | - | Neues Feld | |
taxmodel | 1:1 | - | Neues Feld, Berechnung der Preise | |
_payment |
| - | ||
_lines | array of | |||
_shipping_address |
| |||
_billing_address |
|
OrderPaymentObject
JSON API FELD | Transformation | onRetail Datenziel | Anpassung | Related US |
method | Mapping Table | - | Mapping Table | |
additional_information | Mapping Table | - | Mapping Table. Bei Info success, Zahlung zur sale.order hinzufügen |
OrderLineObject
JSON API FELD | Transformation | onRetail Datenziel | Anpassung | Related US |
type | - | sale.order | Versandkosten/Rabatt zuordnen | |
quantity | 1:1 | sale.order.line.product_uom_qty | - | |
sku | 1:1 | sale.order.line.product_id | - | |
name | - | sale.order.line.product_id.name | Feld verwerfen, Name ist abhängig von der gewählten Sprache | |
unitprice | 1:1 | sale.order.line.price... | Berechnung/Datenziel abhängig vom Typ | |
amount | 1:1 | sale.order.line.price_subtotal | - | |
tax_amount | 1:1 | - | Neues Feld, Berechnung der Steuer durch onRetail muss möglicherweise umgangen werden | |
taxclass | 1:1 | product.product.tax_id.code | - |
OrderAddressObject
JSON API FELD | Transformation | onRetail Datenziel | Anpassung | Related US |
id | 1:1 | - | Neues Feld für die Webshop Kunden ID | |
prefix | Mapping Table | res.partner.title | Mapping | |
firstname | Concat | res.partner.name | Vor- und Nachname zuammenführen | |
lastname | Concat | res.partner.name | Vor- und Nachname zuammenführen | |
street | String Bereinigen | res.partner.street | - | |
zip | 1:1 | res.partner.zip | - | |
city | 1:1 | res.partner.city | - | |
country | 1:1 | res.partner.country_id.code | - | |
company | Neuanlage Unternehmen bei Neukunden, ansonsten Feld verwerfen | res.company | Weshop Kunden ID | |
1:1 | res.partner.email | - | ||
phone | 1:1 | res.partner.phone | - | |
vat | 1:1 | res.partner.vat | - |
Bestellstatus "orderstatus"
Aufbau
OrderStatusObject
Property name | Description | Definition |
id | Webshop Order Number | numeric |
status | Order Status (wird auf der Gateway gemappt) | string, max 255 characters |
Mögliche Order Stati:
processing: Bestellung in Bearbeitung
complete: Bestellung wurde versendet
cancelled: Bestellung wurde storniert
Beispiel:
Mapping Tabelle, Anforderungen onRetail
OrderStatusObject
JSON API FELD | Transformation | onRetail Datenquelle | Anpassung | Related US |
id | 1:1 | - | Neues Feld für die Webshop Order ID | |
status | Mapping Table | sale.order.state | sale.order und Webshop Stati mappen |
Kategorien („categories“):
Kategorien werden in allen konfigurierten Sprachen übertragen. Kategoriebilder liegen auf einem externen Bilderspeicher (SFTP oder Amazon S3). Als Bildangaben sind immer alle zum Basisordner relativen Pfadangaben anzugeben.
Beispiel für Kategorien in nur 1 Sprache (scopeId = "default"):
Beispiel für Kategorien in zwei Sprachen "de" (Deutsch) und "en" (Englisch) mit den gleichnamigen scopeIds:
Aufbau:
CategoryObject:
Property name | Description | Definition |
id | Eindeutiger Schlüssel für Kategorie | alphanumeric string, unique, max 255 characters |
name | Kategoriename | string (utf8), max 255 characters |
parent_id | Referenz auf einen eindeutigen Schlüssel einer Kategorie | alphanumeric string |
position | Position/Reihenfolge der Kategorie innerhalb der Hierarchie (Elemente mit gleichem parent_id) | numeric, unsigned int |
visible | true=Kategorie ist sichtbar im Menü, false=Kategorie ist nicht sichtbar im Menü | boolean |
image | relativer Pfad zum Kategorie-Bild am Bilderspeicher | url, optional |
onRetail Anforderungen
Mapping Tabelle, Anforderungen onRetail
CategoryObject:
JSON API FELD | Transformation | onRetail Datenquelle | Anpassung | Aufwand |
id | 1:1 | product.public.category.id | - |
|
name | 1:1 | product.public.category.name | Begrenzung auf 255 Zeichen, HTML Sonderzeichen filtern |
|
parent_id | 1:1 | product.public.category.parent_id | - |
|
position | 1:1 | product.public.category.sequence | - |
|
visible | 1:1 | - | visible Attribut zur Kategorie hinzufügen |
|
image | 1:1 | product.public.category.image | - |
|
Produkte ("products"):
Produkte und beim Produkt definierte Kategoriezuweisungen werden gemeinsam exportiert.
Vom Datenaustauschformat unterstützt werden einfache und konfigurierbare Produkte in einer und mehreren Sprachen, sowie optionale Unterstützung für Multistore (Price per Store)/Multi-Inventory (Inventory per Store).
Attribute wie weight, sku und status sind globale Attribute (d.h. sprach/store-unabhängig). Die Attribute _categories (Kategoriezuordnungen) und _images (Bildzuordnungen) sind optional und immer global (also sprach/store-unabhängig).
Ein Scope (Geltungsbereich) ist der Abschnitt, der sprach- bzw. storebezogene Produktdaten definiert (Preise, Produkttexte)
Produktbilder liegen auf einem externen Bilderspeicher (SFTP oder Amazon S3). Als Bildangaben sind immer alle zum Basisordner relativen Pfadangaben anzugeben.
Aufbau:
ProductObject:
Property name | Description | Definition |
sku | eindeutige Produktkennung | alphanumeric string, unique, max 255 characters |
weight | Produktgewicht in kg | decimal |
status | Produkt-Freigabe für Webshop: 1=freigegeben, 0=nicht freigegeben | numeric |
stock | Lagerstand für Webshop | numeric |
barcodes | Mit Komma getrennte EAN Liste | string (utf8) Zahlen, Komma und Leerzeichen erlaubt |
new_date_from | Datum für "Neu ab" | date, format YYYY-MM-DD, optional, new-to > new-from |
new_date_to | Datum für "Neu bis" | date, format YYYY-MM-DD, optional, new-to > new-from |
featured | Markierung | true/false |
sale_stepping | Mengenangabe in der das Produkt verkauft werden darf. Verkaufte Menge muss ein Vielfaches der Mengenabgabe sein. | numeric >=1, Standardwert 1 |
manufacturer | Manufacturer Name | string(utf8) |
manufacturer_link | Link zur Produktseite des Herstellers | string(utf8) |
_categories | array of CategoryObject | (optional) |
_images | array of ImageObjects, Pfade/Urls zu den Bildern | |
_price |
| |
_linked_skus | array of | Produktverknüpfungen für Up-, Cross-selling und Related Products |
_scopes | array of | Übersetzungen von Produktfeldern |
_variation_config |
| nur bei konfigurierbaren Produkten |
ImageObject
Property name | Description | Definition |
url | url zum Produktbild | string(utf8) |
position | Position/Reihung des Bildes | numeric, ganze Zahl |
PriceObject
Property name | Description | Definition |
regular | normaler Webshop Verkaufspreis (netto) | decimal, 4 decimals precision |
special | reduzierter Webshop Sonderpreis (netto) | decimal, 4 decimals precision, optional |
special_date_from | Datum ab Gültigkeit Sonderpreis | date, format utc with timezone, optional |
special_date_to | Datum bis Gültigkeit Sonderpreis | date, format utc with timezone, optional |
taxclass | Kennzeichen für Steuerklasse (wird auf Gateway gemappt) | alphanumeric string, max 255 chars |
_tiers | array of | optional |
PriceTierObject
Property name | Description | Definition |
pricelist_id | Kundengruppen-Kennung (wird auf Gateway gemappt). "0" or "" (empty) = allgemeine Preisstaffel (nicht kundengruppenabhängig) | alphanumeric string, optional |
quantity | Ab Menge (bei Staffelpreis), sonst 1 | numeric, min. 1 |
price | Preis netto | decimal, 4 decimals precision |
ProductProperties
Liste aller übersetzten Felder eines Produktes
Property name | Description | Definition |
name | Produktname | string (utf8), max 255 chars |
short_description | Webshop Kurzbeschreibung | string (utf8) |
description | Webshop Langbeschreibung | string (utf8) |
delivery-ready | Text für "Versandbereit in" Angabe | string (utf8) |
VariationObject
Property name | Description | Definition |
attributes | array of attribute names | Liste der Attributnamen, welche die Konfiguration des Artikels bestimmen |
children | array of product SKUs | Liste der Produkt-SKUs, aus denen das konfig. Produkt besteht |
Beispiel: Konfigurierbares Produkt mit 2 Varianten (Farbe=Grün und Farbe=Blau). Farbvariante Blau kostet 13 € inkl. 20% MwSt, Farbvariante Grün kostet 12 € inkl. 20% MwSt..
ProductLinkObject
Property name | Description | Definition |
type | Type of the listed SKUs | can be "upsell", "crosssell" or "related" (Upselling, Crossselling oder Zubehoer Produkte) |
skus | array of product SKUs | Liste der Upsell-Produkt-SKUs |
Beispiel: Produkt mit Links
Mapping Tabelle, Anforderungen onRetail
ProductObject
JSON API FELD | Transformation | onRetail Datenquelle | Anpassung | Aufwand |
sku | 1:1 | product.product.default_code | - |
|
weight | 1:1 | product.product.weight | - |
|
status | 1:1 | - | Neues Feld product.template.webshop_active |
|
stock | Summe der Lagerstände der zu verwendeten Läger | - | Neue Einstellung welche Läger für den Webshop verwendet werden sollen. Neues computed Feld product.product.webshop_stock |
|
barcodes | 1:1 | product.template.barcodes | barcodes Feld zu product.product hinzufügen |
|
new_date_from | 1:1 | - | Neues Datum Feld in product.template |
|
new_date_to | 1:1 | - | Neues Datum Feld in product.template |
|
featured | 1:1 | - | Neues bool Feld in product.template |
|
sale_stepping | 1:1 | - | Neues Feld |
|
manufacturer | 1:1 | manufacturer.manufacturer.name | Neues Model für Hersteller | |
manufacturer_link | 1:1 | product.manufacturer_url | Neues Feld | |
_categories |
| product.template.public_categ_ids | - | |
_images | 1:1 | product.template/product.image_ids | Mehrere Bilder im Template und der Variante hinterlegen |
|
_price |
| - | - | |
_linked_skus | array of | - | - | |
_scopes | array of | - | - | |
_variation_config | array of | - | Auflösen der vorhandenen Attribute von product.template |
ImageObject
JSON API FELD | Transformation | onRetail Datenquelle | Anpassung | Aufwand |
url | url generieren | product.image, ir.attachment | - |
|
position | 1:1 | product.image.sequence | Neues Feld sequence |
|
PriceObject
Für die Preisverwaltung wird eine Preisliste für den Webshop bei der Installation angelegt die nicht gelöscht werden kann. Preislisteneinträge die eine Mengenangabe haben, werden als PriceTierObject
exportiert. Einträge ohne Mengenangabe werden als special Preis exportiert. Bei mehrfachen anzuwendenden Preisen, wird der niedrigste Preis exportiert.
Prio:
Artikel > Kategorie > Global
JSON API FELD | Transformation | onRetail Datenquelle | Anpassung | Aufwand |
regular | Berechnung, Normaler Preis wenn kein Webshoppreis | product.pricelist | - |
|
special | Berechnung der möglichen Preise | product.pricelist | - |
|
special_date_from | 1:1 | product.pricelist | - |
|
special_date_to | 1:1 | product.pricelist | - |
|
taxclass | Mappingtabelle | product.product.tax_id.code | Mapping |
|
tiers | array of | - | - |
PriceTierObject
JSON API FELD | Transformation | onRetail Datenquelle | Anpassung | Aufwand |
pricelist_id | 1:1 | product.pricelist.id | - |
|
quantity | 1:1 | product.pricelist.item.min_quantity | - |
|
price | Berechnung der möglichen Preise | product.pricelist |
|
ProductProperties (Üersetzungen)
Übersetzungen befinden sich im Model ir.translation Im Feld source steht die englische Übersetzung, die der anderen installierten Sprachen im Feld value
JSON API FELD | Transformation | onRetail Datenquelle | Anpassung | Aufwand |
name | 1:1 | - | Neues Feld für den Webshop Produktnamen. Begrenzung auf 255 Zeichen. Produktname wenn Webshopproduktname nicht vorhanden ist |
|
short_description | 1:1 | product.template.description_sale | HTML Sonderzeichen filtern |
|
description | 1:1 |