checkout - Bestellablauf
Der Abschnitt checkoutumfasst alles, was den Bestellprozess in der Storefront steuert: von der einfachen Gast- oder Schnellbestellung über eigene Eingabefelder bis zur Rundung von Zwischensummen. Er ermöglicht zudem eine schnelle Artikelerfassung per Artikelnummer, prüft bei Bedarf Warenkorbinhalte gegen Regeln (z. B. Pflichtzubehör), verwaltet Versandarten inklusive Preislogik und bindet Paketverfolgung an.
Inhaltsverzeichnis
1. checkout* - Grundstruktur
Nachfolgend der Grundaufbau des Knotens checkout:
{
"checkout": {
"checkout": {...},
"directOrder": {...},
"productDependency": {...},
"bankInfoField": {...},
"shippingMethod": {...},
"shipTrack": {...}
}
}
Parameterübersicht
Parameter | Beschreibung |
|---|---|
| Übergreifende Checkout-Einstellungen für den Bestellprozess. |
| Konfiguration für Direktbestellungen. |
| Regeln für Produktabhängigkeiten im Checkout. |
| Steuerung von Bankdatenfeldern. |
| Einstellungen zu Versandarten. |
| Optionen für die Sendungsverfolgung. |
2. checkout.checkout - Bestellablauf
Dieser Abschnitt bündelt die Einstellungen für den Checkout. Hier wird festgelegt, wie der Bestellprozess abläuft, welche Zusatzfelder angezeigt werden und wie beispielsweise Versandoptionen standardmäßig gewählt werden. Zudem lassen sich Regeln für Gutschein-Berechnungen, länderspezifische Versandfreiheit und optional für die Paketverfolgung definieren.
Beispielkonfiguration checkout.checkout
{
"allowFastOrder": true,
"allowGuestAccounts": true,
"allowGuestOrderWithRegisteredEmail": true
"allowShipTrack": false,
"defaultFreeShippingMethod": null,
"deliveryRequiredForOrder": true,
"freeFields": [
{
"id": "agb",
"name": "AGB",
"required": true,
"type": {
"checkbox": {
"merchantText": "agb text here"
}
}
},
{
"id": "comment",
"name": "Bemerkung",
"required": false,
"type": {
"text": {
"textfieldChecks": [
{
"options": {
"len": 32
},
"service": "textfieldCheck.maxlen"
}
]
}
}
}
],
"freeShippingCountries": null,
"subtotalRounding": {
"active": true,
"decimalPlaces": 2
},
"voucherAppliesPerItem": true
}
Parameterübersicht
Parameter | Typ | Beschreibung |
|---|---|---|
| bool | Erlaubt Bestellungen ohne Kundenkonto (Gastbestellung). Default: true |
| bool | Legt fest, ob eine Gastbestellung mit einer bereits registrierten E-Mail-Adresse erlaubt ist. |
| object | Rundung der Zwischensumme vor weiteren Berechnungen (z.B. vor Versand / Gutscheinen). |
| bool | Aktiviert die Rundungslogik. Default: true |
| uint | Anzahl der Nachkommastellen für die Rundung. |
| bool | Steuert, ob Gutscheine pro Position (statt auf den Gesamtwarenkorb) angewendet werden. |
| multiAssoc | Länder, in denen versandkostenfrei geliefert wird. Target: general.country |
| bool | Erlaubt die Bestellung per Express-Checkout. Default: true |
| singleAssoc | Legt die Standard-Versandart fest, die für Berechnungen zu “kostenlosem Versand” verwendet wird (z.B. Anzeige “noch 45€ bis zum kostenlosen Versand”). Target: checkout.shippingMethod |
| bool | Gibt vor, ob eine Versandart ausgewählt sein muss, damit die Bestellung abgeschlossen werden kann.
Default: true |
| list (object) | Konfigurierbare Zustatzfelder im Checkout (z.B. Hinweise, Kundennotizen). Jedes Objekt beschreibt ein Feld. |
| string | Eindeutige Kennung des Zusatzfeldes. |
| string | Anzeigname / Label im Checkout |
| string | Markiert das Feld als Pflichtfeld. |
| oneOf | Feldtyp und Detailkonfiguration. |
| object | Textfeld-Konfiguration. |
| object | Checkbox-Konfiguration. |
3. checkout.direktOrder - Onlinebestellschein
Ermöglicht eine schnelle Erfassung von Artikeln per Artikelnummer - beispielsweise für große oder wiederkehrende Bestellungen. Festgelegt wird, welche Spalten pro Zeile sichtbar sind (z.B. Artikelnummer, Menge). Auf Wunsch merkt sich das System die zuletzt verwendete Zeilenanzahl über saveCountInSession.
Beispielkonfiguration checkout.directOrder
{
"fields": [
"content.productField.id",
"content.productField.itemNumber"
],
"initialNumber": 5,
"itemNumberFields": [],
"maximalNumber": 1000,
"refreshedNumber": 1,
"saveCountInSession": true
}
Parameterübersicht
Parameter | Typ | Beschreibung |
|---|---|---|
| multiAssoc | Legt fest, in welchen Produktfeldern gesucht wird, um ein Produkt zu finden (z.B. Target: |
| int | Anzahl der Zeilen, die beim ersten Laden sichtbar sind. Default: 5 |
| list (object) | Eingabefelder pro Zeile für die Artikelnummer-Erfassung - definiert Spalten / Felder und Beschriftungen (z.B. Reihenfolge, Label, Platzhalter). |
| int | Obergrenze der insgesamt zulässigen Eingabezeilen. |
| int | Anzahl der verfügbaren Zeilen, die bei Klick auf den Button “Zeilen hinzufügen” hinzugefügt werden Default: 5 |
| bool | Speichert die aktuelle Zeilenanzahl in der Session, damit sie beim nächsten Aufruf wiederhergestellt wird. default: true |
4. checkout.productDependency - Produktabhängigkeiten
Dieser Abschnitt legt fest, wann bestimmte Schritte oder Optionen im Checkout erlaubt sind. Er prüft dazu die Inhalte des Warenkorbs - etwa Eigenschaften wie Größe, Farbe oder ob ein Zusatzfeld ausgefüllt ist - und kann bei Nichterfüllung einen Hinweis anzeigen oder die Aktion sperren. Typische Einsatzfälle sind beispielsweise Pflichtzubehör oder das verhindern verbotener Kombinationen im Checkout.
Beispielkonfiguration checkout.productDependency
{
"id": "",
"disabledText": "",
"dependencyGroups": [
{
"dependencies": [
{
"target": { "field": "content.productField:color" },
"type": "value",
"input": { "text": { "value": "camel" } },
"basketBehavior": "matchOnce"
},
{
"target": { "freeField": "engraving" },
"type": "empty",
"input": { "text": { "value": "" } },
"basketBehavior": "matchOnce"
}
]
},
{
"dependencies": [
{
"target": { "field": "content.customProductField:size" },
"type": "inlist",
"input": { "list": { "value": ["S", "M", "L"] } },
"basketBehavior": "matchOnce"
}
]
}
]
}
Parameterübersicht
Parameter | Typ | Beschreibung |
|---|---|---|
| string | Eindeutig Kennung der Produktabhängigkeit, die selbst gewählt werden kann. Die |
| string | Hinweis-/Fehlermeldung, die angezeigt wird, wenn Bedingungen nicht erfüllt sind. Wird im Frontend angezeigt. |
| list (object) | Enthält eine oder mehrere Regelgruppen. |
| list (object) | Liste einzelner Bedingungen innerhalb einer Gruppe. Jede Bedingung legt fest, welches Feld geprüft wird, wie geprüft wird und welcher Vergleichswert ggf. nötig ist. |
| oneOf | Definiert, welches Feld geprüft wird. (Pflichtfeld) |
| singleAssoc | Referenz auf ein Produktfeld, das geprüft wird. |
| string | Name eines freien Feldes (z.B. Freifeld am Produkt/Warenkorb), das geprüft wird. (Alternativ zu |
| enum | Pflichtfeld ( |
| oneOf | Vergleichswert der Bedingung. (nur erforderlich, wenn der |
| object | Textbasierter Vergleichswert. |
| string | Wert für textbasierte Vergleiche. (z. B. bei |
| object | Werteliste für Listenvergleiche (z. B. bei |
| list (string) | Werteliste für den Vergleich. |
| enum | Legt fest, wie viele Warenkorb-Positionen die Bedingung erfüllen müssen:
|
5. checkout.shippingMethod - Versandarten
Definiert verfügbare Versandarten und deren Verhalten im Checkout. Neben Aktivierung, Name und Bestellhinweisen lassen sich Preisstaffeln nach Gewicht (weightCost) und nach Warenkorb-Zwischensumme (basicCost) konfigurieren. Über Validierungen (validations) können Bedingungen wie zulässige Länder, nur physische Produkte oder weitere Regeln hinterlegt werden. Ergänzend sind Beschreibung, Bild/Icon und externer Link (z. B. Carrier-Info) möglich. So entstehen klar benannte, regelkonforme Versandoptionen mit transparenter Preislogik und optionalen Einschränkungen.
Beispielkonfiguration checkout.shippingMethod
{
"active": true,
"id": "checkout.shippingMethod.dhl_standard",
"name": "DHL Standard",
"orderText": "Versand mit DHL, Lieferzeit 2–3 Werktage.",
"weightCost": [
{ "weight": 0.0, "cost": 4.90 },
{ "weight": 5.0, "cost": 6.90 },
{ "weight": 31.5, "cost": 12.90 }
],
"basicCost": [
{ "subtotal": 0.0, "cost": 4.90 },
{ "subtotal": 50.0, "cost": 0.0 }
],
"validations": [
{
"service": "shippingValidation.countryAllowed",
"options": { "countries": ["DE", "AT"] }
},
{
"service": "shippingValidation.onlyPhysicalProducts",
"options": { "enabled": true }
}
],
"link": "https://www.dhl.de/de/privatkunden/pakete-versenden.html",
"description": "Zuverlässiger Standardversand innerhalb DE/AT.",
"image": "https://cdn.example.com/shipping/dhl.png",
"type": "standard"
}
Parameterübersicht
Parameter | Typ | Beschreibung |
|---|---|---|
| bool | Aktiviert / deaktiviert die Versandart im Shop. |
| string | Eindeutige Kennung der Versandart. |
| string | Anzeigename der Versandart. |
| text | Bestell- / Hinweistexte zur Versandart. |
| multiService | Liste von Prüf- / Freigaberegeln (z.B. Länder - / Produktbeschränkungen). |
(zukünftiges Feature / befindet sich noch in Entwicklung) | text | Externer Link mit Zusatzinfos. |
(zukünftiges Feature / befindet sich noch in Entwicklung) | string | Kurze Beschreibung der Versandart. |
(zukünftiges Feature / befindet sich noch in Entwicklung) | string | Bild- / Icon-URL der Versandart. |
| object | Staffelpreise nach Gewicht. |
| object | Staffelpreise nach Warenkorb-Zwischensumme. |
6. checkout.shipTrack - Paketverfolgung
Konfiguriert die Anbindung an Versanddienstleister zur Sendungsverfolgung. Hinterlegt werden Provider-Kennung (z. B. DHL, Hermes, UPS) und Zugangsdaten (API-User/Token) sowie ein Sprachcode für Provider-Antworten und Labeling. Auf Basis dieser Daten lassen sich Tracking-Links und Statusinformationen im Checkout bzw. im Kundenkonto bereitstellen und automatisiert in Benachrichtigungen verwenden.
Beispielkonfiguration checkout.shippingMethod
{
"id": "shiptrack.dhl",
"provider": "dhl",
"username": "api-user-123",
"password": "s3cr3t-token",
"languageCode": "de"
}
Parameterübersicht
Parameter | Typ | Beschreibung |
|---|---|---|
| string | Eindeutige Kennung der Versand-Tracking-Konfiguration. |
| string | Anbieter-Kennung (derzeit nur “ |
| string | API-Benutzername / Zugang für den Provider. |
| string | API-Passwort / Token für den Provider. |
| string | Sprachcode für Labels / Antworten des Providers (ISO, z.B. de, en). |
© 2025 WEBSALE AG | Impressum | Datenschutz