Warenkorb übergeben
Am Ende der Beratung steht eine Auswahl aus deinen Produkten. Wir rufen eine URL in deinem Shop auf, die daraus den Warenkorb baut, und die Kundin landet auf deiner Warenkorb-Seite.
Was zu tun ist
- Nenn uns den Pfad, der eine Positionsliste annimmt, und den Namen des Parameters. Gibt es keinen solchen Pfad, baue ihn nach dem Format unten. Fertig, wenn wir die URL mit deinen Artikelnummern aufrufen und der Warenkorb genau diese Positionen mit den Mengen enthält.
- Lass den Aufruf den bestehenden Warenkorb der Sitzung ersetzen, nicht ergänzen. Fertig, wenn derselbe Aufruf zweimal hintereinander denselben Warenkorb ergibt und sich die Mengen nicht verdoppeln.
- Liefere die Antwort mit
Cache-Control: no-storeaus. Fertig, wenn ein erneuter Aufruf derselben URL den Shop wieder erreicht und nicht aus dem Browser- oder CDN-Cache beantwortet wird.
Format der Positionsliste
Ein Parameter, Positionen mit Komma getrennt, Menge nach dem Doppelpunkt:
https://www.beispielshop.de/warenkorb/?content=MAG-1001:2,AMI-2044:1
Pfad und Parametername sind deine Wahl. Wir übernehmen, was du uns nennst, und hinterlegen es
pro Marke. Nutzt dein Shop bereits eine andere Form, etwa 687:3,683:2 mit
Produkt-IDs, sag uns das Muster und wir senden es so.
Die Artikelnummern sind exakt die aus deinen Produktdaten. Welcher Wert das je Shopsystem ist, steht unter Schlüssel je Shopsystem.
Unbekannte Artikelnummern überspringst du und nimmst die übrigen Positionen auf. Der Aufruf darf nicht mit einer Fehlerseite enden.
Drei Anforderungen
- Ersetzen, nicht ergänzen Die URL beschreibt den kompletten Warenkorb. Beim Aufruf verwirft der Shop den bestehenden Warenkorb der Sitzung und baut ihn aus den Positionen der URL neu auf. Kundinnen ändern ihre Auswahl in der Beratung und werden danach erneut zu dir geleitet. Der letzte Aufruf gilt.
- Idempotent Dieselbe URL zweimal aufgerufen, etwa durch Neuladen oder die Zurück-Taste, ergibt denselben Warenkorb. Mengen addieren sich nicht auf.
- Nicht gecacht
Antwort mit
Cache-Control: no-store, keine Deduplizierung identischer Aufrufe. Sonst beantwortet der Cache den zweiten Aufruf und der Warenkorb bleibt unverändert.
Zwei häufige Fehlerbilder: der Warenkorb wird nur gefüllt, wenn er leer ist. Oder die Positionen werden zum bestehenden Warenkorb addiert. Beides führt dazu, dass die Kundin einen anderen Warenkorb sieht als in der Beratung.
Schlüssel je Shopsystem
Der Wert, den wir im Link senden, kommt aus deinen Produktdaten. Erfüllt er das Muster nicht, fällt die Position aus dem Link, ohne Fehlermeldung.
| Shopsystem | Schlüssel im Link | Muster | Mengen | Gutschein im Link |
|---|---|---|---|---|
| Shopify | Varianten-ID | Ziffern | ja | ja |
| Eigener JSON-Feed | variants[].sku | ^[A-Za-z0-9-]+$ | ja | nein |
| WooCommerce | g:id | ^\d+$ | ja | ja |
| JSON-LD auf Produktseiten | Artikelnummer aus sku | ^[0-9]+(\.[0-9]+)*$ | ja | nein |
| PrestaShop | Produkt-Handle | Pfadsegment | nein | nein |
Bei WooCommerce senden wir alle Positionen in einem Parameter, sobald du uns dessen Namen
nennst. Ohne diese Angabe übergeben wir nur die erste Position über
add-to-cart.
Bei PrestaShop übergeben wir derzeit ein Produkt und verlinken dessen Detailseite. Nenn uns eine URL, die mehrere Positionen annimmt, dann übergeben wir den vollständigen Warenkorb. Welche Kennung diese URL erwartet, die Produkt-ID oder die Artikelnummer, brauchen wir dazu von dir.
Reservierte Parameter
Diese Namen belegen wir im Warenkorb-Link selbst. Wenn du sie für Tracking verwendest, nutze andere Namen, sonst überschreiben sie die Positionsliste.
| Shopsystem | Belegt |
|---|---|
| Eigener JSON-Feed | content, oder der mit dir vereinbarte Name |
| WooCommerce | add-to-cart, quantity, oder der vereinbarte Name |
| JSON-LD auf Produktseiten | i, oder der vereinbarte Name |
Affiliate-Kennung, Sub-Kennung und Gutscheincode hängen wir zusätzlich an. Die Namen legen wir mit dir fest, siehe Schritt 3.
Selbst prüfen
Drei Aufrufe, dann weißt du, ob die Übergabe sitzt:
curl -sI "https://www.beispielshop.de/warenkorb/?content=MAG-1001:2,AMI-2044:1" | grep -i cache-control
# Warenkorb im Browser öffnen, Positionen und Mengen vergleichen
# dieselbe URL erneut aufrufen, Warenkorb muss identisch sein
Der vollständige Vertrag als Datei, mit Parametern, Antwortcodes und Beispielen: cart-handoff.openapi.yaml (OpenAPI 3.1).
Wenn etwas nicht passt, schreib uns über den Partner-Kontakt und nenn die URL, die du gebaut hast. Wir rufen sie auf und melden, was wir sehen.
