Katalog, Warenkorb und Shopanbindung
Produktkatalog pflegen und einführen, einen Shop anbinden und abgleichen, Produktsuche, Produktkarten und Warenkorbübergabe mit Feldern, Grenzen und Meldungen.
In einfacher Sprache
Diese Seite erklärt den Katalog. Der Katalog ist die Liste Ihrer Produkte. Der Assistent nennt nur Produkte aus dieser Liste. Sie pflegen die Liste von Hand, laden sie hoch oder holen sie aus Ihrem Shop. Im Gespräch zeigt der Assistent passende Produkte als Karten. Er kann auch einen Warenkorb zusammenstellen. Ihr Shop holt diesen Warenkorb dann ab.
Alle Themen der Dokumentation
Der Katalog ist die Liste der Produkte, die Ihr Assistent kennt: Was dort nicht steht, nennt er nicht. Sie pflegen ihn von Hand, führen ihn als JSON-Liste ein oder lassen ihn aus einem angebundenen Shop abgleichen. Aus dem Katalog holt das Werkzeug Im Katalog suchen Produkte, die im Gespräch als Karten erscheinen, und das Werkzeug Warenkorb übergeben stellt einen Warenkorb zusammen, den Ihr Shop über eine Abholmarke abholt. Diese Seite beschreibt Katalog, Shopanbindung, beide Werkzeuge und die Abholung mit ihren Feldern, Grenzen und Meldungen.
Wo Sie was finden
Der Katalog liegt in der App in der Gruppe Auslöser unter Werkzeuge (app.xicbot.de/werkzeuge), Reiter Katalog. Oben steht der Satz „Was der Assistent nennen darf. Was hier nicht steht, kennt er nicht.“, darunter der Kasten Shopanbindung, die Liste Produkte, das Formular Produkt anlegen und der Kasten Einfuhr. Die Werkzeuge Im Katalog suchen und Warenkorb übergeben legen Sie ebenfalls unter Werkzeuge an, wie unter Werkzeuge beschrieben. Übergebene Warenkörbe finden Sie unter Vorgänge im Reiter Warenkörbe, siehe Termine und Vorgänge.
Rollen und Paket
| Was | Mindestrolle |
|---|---|
| Katalog und Stand der Shopanbindung ansehen | Lesen |
| Produkte anlegen, ändern, löschen und einführen | Bearbeiten |
| Shop anbinden, Anbindung ändern, prüfen, abgleichen und lösen | Verwaltung |
Mit der Rolle Lesen ist das Produktformular gesperrt, und es erscheint: „Mit der Rolle Lesen lässt sich hier nur ansehen. Ändern kann, wer mindestens die Rolle Bearbeiten hat.“ Statt Bearbeiten steht an jedem Produkt Ansehen, der Kasten Einfuhr fehlt. Ist noch kein Shop angebunden, sehen Nutzer unterhalb der Verwaltung den Satz „Einen Shop anbinden können Administratoren dieses Kontos.“ Welche Rolle was darf, steht unter Team und Rollen.
Produktfelder
Ein Produkt legen Sie mit Produkt anlegen an, ein vorhandenes öffnen Sie mit Bearbeiten. Bearbeiten rollt das Formular in Sicht und setzt den Fokus auf seine Überschrift „Bearbeiten: …“ mit dem Titel. Gespeichert wird mit Speichern („Wird gespeichert …“); danach ist das Formular leer, neben dem Knopf steht „Gespeichert: …“ mit dem Titel, und der Fokus steht am Knopf Bearbeiten des Produkts in der Liste. Abbrechen verwirft die Eingaben und bringt den Fokus dorthin zurück.
| Feld | Pflicht und Grenzen | Vorgabe | Wirkung |
|---|---|---|---|
| Kennung | Pflicht, höchstens 100 Zeichen, im Katalog eindeutig; nach dem Anlegen nicht mehr änderbar | leer | Artikelnummer. Über sie finden Warenkorb, Zubehör, Einfuhr und Abgleich das Produkt. |
| Titel | Pflicht, höchstens 200 Zeichen | leer | Überschrift der Karte; die Suche sucht darin. |
| Beschreibung | höchstens 800 Zeichen | leer | Text zum Produkt; die Suche sucht auch darin. |
| Preis in Cent | ganze Zahl von 0 bis 100000000 | leer | Preis der Karte, Grundlage des Warenkorbs. Ohne Preis zeigt die Karte keinen. |
| Streichpreis in Cent | wie der Preis; wird nicht gegen den Preis geprüft | leer | Nur ein Streichpreis über dem Preis ergibt eine Ersparnis in der Karte, und nur mit Währung. |
| Währung | genau 3 Zeichen, wird in Großbuchstaben gespeichert | EUR | Kürzel hinter jedem Betrag der Karte |
| Bildadresse | gültige Adresse, höchstens 500 Zeichen | leer | Wird mit der Karte an das Widget gegeben, siehe Produktkarten. |
| Produktadresse | gültige Adresse, höchstens 500 Zeichen | leer | Der Titel der Karte verweist dorthin; Ziel des Knopfes Produktseite. |
| Verfügbar | an oder aus | an | Die Suche findet nur verfügbare Produkte. |
| Bewertung (0 bis 5) | 0 bis 5, eine Nachkommastelle | leer | Zeile wie „4,5 von 5“ in der Karte, nur über 0 |
| Anzahl Bewertungen | ganze Zahl ab 0 | leer | Zusatz „(12 Bewertungen)“ hinter der Bewertung |
| Lieferzeit in Werktagen | 0 bis 365 | leer | 0 zeigt „Sofort lieferbar“, sonst „Lieferzeit: … Werktage“ |
| Merkmale | eines je Zeile, höchstens sechs, je höchstens 60 Zeichen | leer | Merkmalzeile der Karte und Zeile im Vergleich |
| Zubehör | eine Kennung je Zeile, höchstens sechs, je höchstens 100 Zeichen | leer | Grundlage von „Passt zusammen“ |
| Kunden kauften auch | wie Zubehör | leer | Grundlage von „Kunden kauften auch“ |
| Ziel des Knopfes | Kein Knopf, Produktseite oder Warenkorb | Produktseite | Knopf „Zur Produktseite“ oder „In den Warenkorb“ in der Karte |
| Warenkorbadresse | gültige Adresse, höchstens 500 Zeichen; erscheint nur beim Ziel Warenkorb | leer | Ziel des Knopfes „In den Warenkorb“ |
Produkte ansehen, ändern und löschen
- Die Liste Produkte ist nach Titel sortiert und zeigt je Produkt Titel, Kennung und Preis, ohne Preis einen Strich. Bei einem nicht verfügbaren Produkt folgt der Zusatz „· nicht verfügbar“.
- Ein Produkt aus dem angebundenen Shop trägt zusätzlich „aus dem Shop · Abgleich …“ mit Datum und Uhrzeit seines letzten Abgleichs.
- Darüber steht die Gesamtzahl als „im Katalog: …“, während einer Suche „… Treffer von … im Katalog“, dazu der gezeigte Ausschnitt, etwa „1–50 gezeigt“. Je Seite stehen 50 Produkte; bei mehr blättern Zurück und Weiter mit „Seite 1 / 10“.
- Das Suchfeld nimmt bis zu 120 Zeichen und findet Produkte, deren Titel oder Kennung mit dem eingegebenen Text beginnt; das sagt auch der Hinweis unter dem Feld. Eine neue Suche beginnt auf Seite 1.
- Während des Ladens steht „Wird geladen …“. Scheitert der Abruf, erscheint „Die Liste konnte nicht geladen werden.“ mit dem Knopf Erneut laden; ein leerer Katalog zeigt „Der Katalog ist leer.“, eine Suche ohne Treffer „Kein Produkt, dessen Titel oder Kennung mit „…“ beginnt.“
- Löschen fragt „Dieses Produkt aus dem Katalog löschen?“ mit Löschen und Abbrechen; danach steht „Das Produkt ist gelöscht.“ unter der Überschrift der Liste, und die Seite lädt neu, sodass das nächste Produkt nachrückt.
- Ist ein Produkt inzwischen gelöscht, etwa in einem anderen Fenster, meldet die Seite beim Speichern oder Löschen „Diesen Eintrag gibt es nicht mehr. Laden Sie die Seite neu, um den aktuellen Stand zu sehen.“
- Eine schon vergebene Kennung lehnt das Formular mit „Diese Kennung gibt es im Katalog schon.“ ab.
Einfuhr
Der Kasten Einfuhr nimmt eine Liste im JSON-Format entgegen: „Eine Liste im JSON-Format, höchstens 500 Zeilen je Lauf. Vorhandene Kennungen werden aktualisiert, nicht verdoppelt. Trägt ein Eintrag die Kennung eines Produkts aus dem Shop, überschreibt der nächste Abgleich dessen abgeglichene Angaben.“ Sie fügen die Liste in das Textfeld ein und klicken Einfuhr starten. Jeder Eintrag ist ein Produkt mit den Feldnamen der Tabelle unten.
katalog.json json
[
{
"external_id": "TASSE-01",
"title": "Kaffeetasse Steingut",
"price_cents": 1490,
"list_price_cents": 1890,
"currency": "EUR",
"image_url": "https://shop.example.com/bilder/tasse-01.jpg",
"product_url": "https://shop.example.com/tasse-01",
"is_available": true,
"rating_tenths": 45,
"rating_count": 12,
"delivery_days": 2,
"features": ["spülmaschinenfest", "300 ml"],
"accessories": ["UNTERSETZER-01"],
"action": "product"
}
]| Feldname | Feld im Formular | Grenzen |
|---|---|---|
external_id | Kennung | Pflicht, höchstens 100 Zeichen |
title | Titel | Pflicht, höchstens 200 Zeichen |
description | Beschreibung | höchstens 800 Zeichen |
price_cents, list_price_cents | Preis in Cent, Streichpreis in Cent | ganze Zahl von 0 bis 100000000 |
currency | Währung | genau 3 Zeichen, ohne Angabe EUR |
image_url, product_url, cart_url | Bildadresse, Produktadresse, Warenkorbadresse | gültige Adresse, höchstens 500 Zeichen |
is_available | Verfügbar | true oder false, ohne Angabe true |
rating_tenths | Bewertung (0 bis 5) | in Zehnteln, 0 bis 50; 45 steht für 4,5 |
rating_count | Anzahl Bewertungen | ganze Zahl von 0 bis 100000000 |
delivery_days | Lieferzeit in Werktagen | 0 bis 365 |
features | Merkmale | Liste, höchstens sechs Einträge zu je 60 Zeichen |
accessories, also_bought | Zubehör, Kunden kauften auch | Liste von Kennungen, höchstens sechs zu je 100 Zeichen |
action | Ziel des Knopfes | none, product oder cart, ohne Angabe product |
- Ein Lauf nimmt mindestens einen und höchstens 500 Einträge. Größere Kataloge teilen Sie auf mehrere Läufe auf.
- Alles oder nichts: Ist ein einziger Eintrag ungültig, schreibt der Lauf keinen.
- Eine vorhandene Kennung wird aktualisiert, eine neue angelegt. Danach meldet der Kasten neben dem Knopf zum Beispiel „neu: 3, geändert: 12, im Katalog: 240“.
- Ist die Eingabe kein JSON oder keine Liste, erscheint „Die Eingabe ist kein gültiges JSON.“, und es wird nichts gesendet.
- Einfuhr, Anlegen und Ändern von Produkten sowie Speichern, Prüfen und Abgleichen der Shopanbindung teilen sich eine Grenze von 20 Aufrufen je Minute und angemeldetem Nutzer.
Shopanbindung
Statt den Katalog zu pflegen, können Sie einen Shop anbinden, dessen Verkaufskanal eine Store API mit Zugriffsschlüssel anbietet. Der Katalog wird dann stündlich abgeglichen, und bei jeder Produktsuche liest der Assistent Preis und Verfügbarkeit im Shop nach. Die Anbindung liest nur: In den Shop wird nichts geschrieben. Im Shop selbst installieren Sie dafür nichts; es genügen Adresse und Zugriffsschlüssel des Verkaufskanals. Das Widget kommt wie auf jede andere Website mit dem Einbaucode in den Shop, siehe Widget einbauen.
Anbindung einrichten
| Feld | Pflicht und Grenzen | Hinweis |
|---|---|---|
| Shopadresse | Pflicht, höchstens 300 Zeichen, mit https:// | Die Adresse des Verkaufskanals, etwa https://shop.example.com. Ein angehängtes /store-api und ein Schrägstrich am Ende werden entfernt; Benutzername, Kennwort, Abfrage und Anker sind nicht erlaubt. Adressen, die nicht ins öffentliche Netz zeigen, werden nicht abgerufen. |
| Zugriffsschlüssel | beim ersten Speichern Pflicht; 12 bis 200 Buchstaben, Ziffern, Binde- oder Unterstriche | Der API-Zugriffsschlüssel des Verkaufskanals aus Ihrer Shopverwaltung. Er wird verschlüsselt gespeichert und danach nur mit seiner Endung angezeigt. Leer lassen behält den hinterlegten Schlüssel; wer eine andere Shopadresse einträgt, muss den Schlüssel neu angeben. |
| Abgleich und Nachlesen eingeschaltet | an oder aus; beim ersten Anlegen an | Aus heißt Zustand pausiert: kein Abgleich und kein Nachlesen im Gespräch. |
-
Schritt 1
Schlüssel besorgen
Den Zugriffsschlüssel finden Sie in Ihrer Shopverwaltung beim Verkaufskanal, den der Assistent lesen soll.
-
Schritt 2
Eintragen und speichern
Tragen Sie Shopadresse und Zugriffsschlüssel ein und klicken Sie Speichern. Das Schlüsselfeld bleibt danach leer; angezeigt wird nur noch „…“ mit den letzten vier Zeichen.
-
Schritt 3
Verbindung prüfen
Verbindung prüfen („Wird geprüft“) liest die Währung und einen Artikel, mit einer Frist von 5 Sekunden. Erfolg meldet „Die Verbindung steht. Der Shop rechnet in …“, ein leerer Verkaufskanal „Die Verbindung steht (…), der Verkaufskanal zeigt aber keine Artikel.“ Mehr als drei Prüfungen je Minute und Konto lehnt der Server ab.
-
Schritt 4
Ersten Abgleich starten
Jetzt abgleichen reiht einen Abgleich ein: „Der Abgleich ist eingereiht.“ oder, wenn schon einer wartet, „Ein Abgleich wartet bereits.“ Die Anzeige fragt danach alle 3 Sekunden nach, bis zu 100 Mal, und lädt die Produktliste neu.
Anzeige der Anbindung
| Zeile | Inhalt |
|---|---|
| Shopadresse | die gespeicherte Adresse |
| Zugriffsschlüssel | „…“ und die letzten vier Zeichen |
| Zustand | aktiv oder pausiert |
| Letzter Abgleich | Abgleich läuft, noch keiner oder Zeitpunkt mit erfolgreich beziehungsweise gescheitert |
| Artikel | gelesen, neu, geändert mit „davon zuvor ohne Shopbezug: …“, zurückgenommen |
| Grund | nur wenn der letzte Abgleich gescheitert oder unvollständig war: die Meldung aus der Tabelle unten, dazu „Der Katalog zeigt den Stand vom …“, sofern es zuvor einen erfolgreichen Abgleich gab |
Mit der Rolle Verwaltung stehen darunter die Knöpfe Jetzt abgleichen (gesperrt, solange ein Abgleich läuft oder die Anbindung pausiert ist), Verbindung prüfen, Bearbeiten und Anbindung lösen. Konnte der Stand nicht geladen werden, erscheint „Der Stand konnte nicht geladen werden.“ mit Erneut laden; ohne Anbindung steht „Es ist noch kein Shop angebunden.“
Was der Abgleich tut
- Der Abgleich wird stündlich zur 41. Minute für jede eingeschaltete Anbindung eines aktiven Kontos eingereiht, dessen Paket die Shopanbindung enthält. Ein wartender oder laufender Abgleich wird nicht verdoppelt, ein Abgleich von Hand wird vorgezogen.
- Von Hand geht es höchstens alle 15 Minuten; der regelmäßige Abgleich läuft davon unabhängig weiter.
- Gelesen wird in Seiten zu 100 Artikeln, höchstens 100 Seiten, also bis zu 10000 Artikel. Hat der Shop mehr, gilt der Lauf als unvollständig: Gelesenes wird übernommen, Fehlendes nicht zurückgenommen.
- Jede Anfrage an den Shop hat 20 Sekunden Zeit, der ganze Abgleich 300 Sekunden. Weiterleitungen folgt der Abgleich nicht.
- Artikel mit Varianten zählen als Behälter und werden übersprungen; jede Variante kommt als eigenes Produkt, ihr Titel trägt die Ausprägung in Klammern.
- Zugeordnet wird über die Shopkennung. Ein Produkt ohne Shopbezug, dessen Kennung der Artikelnummer eines Shopartikels entspricht, wird übernommen und gehört ab dann dem Abgleich; so verdoppelt der erste Abgleich einen eingeführten Katalog nicht.
- Produkte ohne Shopbezug, deren Nummer der Shop nicht führt, bleiben unberührt.
- Nur nach einem Lauf, der alle Seiten des Shops gelesen hat, werden Shopartikel, die nicht mehr kamen, als zurückgenommen auf nicht verfügbar gesetzt. Gelöscht wird dabei nichts.
- Scheitert der Abgleich, bleibt der bisherige Katalog unverändert. Liefert der Shop keinen Artikel, obwohl er bisher welche hatte, bleibt der Katalog ebenfalls unverändert.
| Feld | Beim Abgleich |
|---|---|
| Kennung | Artikelnummer des Shops, ohne Nummer die Shopkennung |
| Titel | Name des Artikels, bei Varianten mit Ausprägung, höchstens 200 Zeichen; ohne Namen die Artikelnummer |
| Beschreibung | ohne HTML, höchstens 800 Zeichen |
| Preis in Cent, Streichpreis in Cent | ein Staffelpreis vor dem berechneten Preis |
| Währung | Währung des Verkaufskanals |
| Bildadresse | Titelbild des Artikels |
| Produktadresse | die kanonische sprechende Adresse des Artikels, sonst sein sprechender Pfad hinter der Shopadresse, sonst die Detailseite über die Shopkennung |
| Verfügbar | so, wie der Shop den Artikel führt |
| Bewertung (0 bis 5) | Durchschnitt der Bewertungen im Shop, nur wenn er über 0 liegt |
| Lieferzeit in Werktagen | Höchstwert der Lieferzeit, wenn der Shop sie in Tagen oder Wochen angibt; eine Woche zählt als 7 Tage, übernommen werden 0 bis 365, andere Einheiten bleiben leer |
| Merkmale, Zubehör, Kunden kauften auch, Ziel des Knopfes, Warenkorbadresse, Anzahl Bewertungen | bleiben, wie Sie sie im Katalog pflegen |
Meldungen der Anbindung
| Meldung | Anlass |
|---|---|
| „Der Shop hat den Zugriffsschlüssel abgelehnt. Prüfen Sie, ob er zu diesem Verkaufskanal gehört.“ | Der Shop antwortet mit 401 oder 403. |
| „Der Shop war nicht erreichbar.“ / „Der Shop hat nicht rechtzeitig geantwortet.“ | keine Verbindung oder Frist überschritten |
| „Unter dieser Adresse antwortet keine Store API. Tragen Sie die Adresse des Verkaufskanals ein.“ | Der Shop antwortet mit 404. |
| „Die Adresse leitet weiter. Tragen Sie die Adresse ein, auf die der Shop weiterleitet.“ | Der Shop antwortet mit einer Weiterleitung. |
| „Der Shop hat mit Status … geantwortet.“ | ein anderer Fehlerstatus |
| „Die Antwort des Shops war nicht lesbar.“ / „Die Antwort des Shops war zu groß.“ | keine lesbare Antwort, oder beim Abgleich mehr als 8 MiB je Seite |
| „Der Shop hat keine Währung genannt.“ | Der Verkaufskanal nennt keine Währung. |
| „Der hinterlegte Schlüssel ließ sich nicht lesen. Bitte tragen Sie ihn neu ein.“ | Der gespeicherte Schlüssel ist nicht mehr lesbar. |
| „Der Shop hat keinen Artikel geliefert, obwohl er bisher welche hatte. Der Katalog bleibt unverändert; prüfen Sie den Verkaufskanal.“ | leerer Verkaufskanal bei vorhandenem Katalog |
| „Der Shop hat mehr Artikel, als ein Abgleich liest. Gelesene Artikel sind übernommen, fehlende werden nicht zurückgenommen.“ | mehr als 10000 Artikel |
| „Der Shop hat für den ganzen Abgleich zu lange gebraucht. Der Katalog bleibt unverändert.“ | Abgleich länger als 300 Sekunden |
| „Ihr Tarif enthält die Shopanbindung nicht.“ | Das Paket enthält die Shopanbindung nicht mehr. |
| „Beim Abgleich ist ein interner Fehler aufgetreten.“ | Fehler auf unserer Seite |
| „Es ist noch kein Shop angebunden.“ / „Die Anbindung ist pausiert.“ | Prüfen oder Abgleichen ohne Anbindung oder im Zustand pausiert |
| „Die Adresse ist nicht lesbar. Erwartet wird zum Beispiel https://shop.example.“ | keine gültige Adresse |
| „Möglich sind nur Adressen mit https.“ / „Der Shop muss über https erreichbar sein. Tragen Sie die Adresse mit https:// ein.“ | Adresse ohne https |
| „Diese Adresse zeigt nicht ins öffentliche Netz und wird darum nicht abgerufen.“ / „Der Name dieser Adresse lässt sich nicht auflösen.“ | internes Ziel oder unbekannter Name |
| „Für eine andere Shopadresse wird auch der Zugriffsschlüssel gebraucht. Bitte tragen Sie ihn mit ein.“ | neue Adresse ohne neuen Schlüssel |
| „Der Zugriffsschlüssel besteht aus 12 bis 200 Buchstaben, Ziffern, Binde- oder Unterstrichen.“ | Schlüssel in falscher Form |
| „Die Verbindung wurde gerade mehrfach geprüft. Bitte warten Sie eine Minute.“ | mehr als drei Prüfungen je Minute |
| „Ein Abgleich von Hand ist höchstens alle 15 Minuten möglich. Der regelmäßige Abgleich läuft davon unabhängig weiter.“ | Abgleich von Hand vor Ablauf von 15 Minuten |
| „Der Abgleich ist gescheitert.“ | jeder übrige Grund |
Preise und Verfügbarkeit aus dem Shop
Ist ein Shop angebunden und eingeschaltet und enthält Ihr Paket die Shopanbindung, liest der Assistent bei jeder Produktsuche und jeder Änderung am Warenkorb Preis und Verfügbarkeit der Artikel, die aus dem Shop stammen, dort nach; für die Karten der Produktsuche auch Streichpreis und Lieferzeit. Dafür hat der Shop 3 Sekunden Zeit, der Verbindungsaufbau 2 Sekunden. Geschrieben wird dabei nichts, weder in den Shop noch in den Katalog.
| Lage | Was der Besucher sieht |
|---|---|
| Shop antwortet | aktueller Preis aus dem Shop; Artikel, die der Shop gerade nicht als lieferbar führt, fallen weg, und der Assistent erhält „Artikel, die der Shop gerade nicht als lieferbar führt, sind weggelassen. Nenne sie nicht.“ |
| nach dem Weglassen bleibt von einem Vergleich, Zubehör oder Vorschlägen nur eine Karte | eine einzelne Karte; der Assistent erhält einen passenden Hinweis, beim Vergleich etwa „Zum Vergleich gehören zwei Artikel, lieferbar ist gerade nur einer. Frage nach, womit verglichen werden soll.“ |
| Shop führt keinen der Artikel oder den Ausgangsartikel von Zubehör und Vorschlägen nicht als lieferbar | keine Karte; der Assistent erhält „Im Shop ist dazu gerade nichts verfügbar. Erfinde kein Produkt und keinen Preis.“ |
| Shop antwortet nicht rechtzeitig oder mit einem Fehler | Preis aus dem letzten Abgleich; der Assistent erhält den Hinweis, dass Preise und Verfügbarkeit aus dem letzten Abgleich am … Uhr stammen und der Shop gerade nicht erreichbar war |
| kein Shop angebunden oder Anbindung pausiert | Preis aus dem Katalog, ohne Hinweis an den Assistenten |
| Paket ohne Shopanbindung | keine Karte: Werkzeuge der Bauformen Im Katalog suchen und Warenkorb übergeben bietet der Dienst dem Assistenten ohne Shopanbindung nicht an, und sie lassen sich nur noch löschen |
Produktsuche im Gespräch
Das Werkzeug Im Katalog suchen legen Sie unter Werkzeuge an. Es liest nur; ohne Bestätigung läuft es, wenn seine Freigabe auf ohne Rückfrage steht. Das Formular schlägt für ein neues Werkzeug mit Bestätigung vor. Der Assistent übergibt einen Suchbegriff, Kennungen aus einer früheren Suche oder beides, dazu eine von vier Formen und die Zahl der Treffer. In der Vorschau steht „Im Katalog suchen nach: …“, in einem englischen Gespräch „Search catalog for: …“.
| Form | Ergebnis im Widget |
|---|---|
search | Eine Karte oder eine Reihe Empfehlungen mit 1 bis 6 Treffern, ohne Angabe 4. |
compare | Genau zwei Artikel als Direkter Vergleich mit den Zeilen Preis, Bewertung, Lieferzeit und Merkmale; der bessere Wert trägt die Marke Vorteil, fehlende Werte zeigen „keine Angabe“. Findet sich nur ein Artikel, erscheint eine einzelne Karte. |
bundle | Der erste Artikel und sein Zubehör unter Passt zusammen, mit Gesamtpreis, sofern jeder Posten einen Preis hat. |
also_bought | Der erste Artikel und die Einträge aus Kunden kauften auch unter „Kunden kauften auch“. |
- Genannte Kennungen stehen vorn, Treffer zum Suchbegriff füllen danach bis zur gewünschten Zahl auf. Ohne Begriff und ohne Kennung wird nicht gesucht; der Assistent erhält „Ohne Suchbegriff kann nicht gesucht werden.“
- Gesucht wird im Titel und in der Beschreibung.
- Gefunden werden nur Produkte, die auf Verfügbar stehen. Eine Kennung, die nicht im Katalog steht, taucht in keiner Form auf, auch nicht als Zubehör.
- Findet sich nichts, zeigt das Widget keine Karte, und der Assistent erhält den Hinweis „Im Katalog steht dazu nichts. Erfinde kein Produkt und keinen Preis.“
- Den Lagerbestand eines Artikels liest ein eigenes Werkzeug, Lagerbestand lesen aus dem Werkzeugbausatz; auch es liest nur und läuft ohne Bestätigung, wenn seine Freigabe auf ohne Rückfrage steht.
Produktkarten
| Teil der Karte | Erscheint, wenn |
|---|---|
| Titel, verlinkt auf die Produktadresse | in jeder Karte; der Verweis nur mit Produktadresse |
| Preis | Preis in Cent gesetzt |
| „Statt …“ und „Sie sparen …“ | Streichpreis in Cent liegt über dem Preis, und eine Währung ist angegeben |
| „… von 5“ mit „(… Bewertungen)“ | Bewertung (0 bis 5) über 0 |
| „Sofort lieferbar“, „Lieferzeit: 1 Werktag“, „Lieferzeit: … Werktage“ | Lieferzeit in Werktagen gesetzt |
| Merkmale | bis zu sechs, je höchstens 60 Zeichen |
| Knopf „Zur Produktseite“ oder „In den Warenkorb“ | Ziel des Knopfes mit passender Adresse; öffnet in einem neuen Tab |
| Bild | Bildadresse mit https, wird erst beim Sichtbarwerden geladen; mit http bleibt die Karte ohne Bild |
Warenkorb im Gespräch
Das Werkzeug Warenkorb übergeben stellt im Gespräch einen Warenkorb zusammen. Jeder Aufruf ändert etwas und braucht darum die Bestätigung des Besuchers: Das Widget zeigt den Vorschlag mit Bestätigen und Ablehnen. Ein Vorschlag, der 60 Minuten unbestätigt bleibt, verfällt; danach steht „Dieser Vorschlag wurde nicht rechtzeitig bestätigt und darum nicht ausgeführt. Fragen Sie einfach noch einmal.“ Wie Bestätigungen im Gespräch ablaufen, steht unter Gespräch im Widget.
| Modus | Vorschau im Widget | Wirkung |
|---|---|---|
set | „Warenkorb übergeben: … Posten“ | legt einen neuen Warenkorb mit neuer Abholmarke an, ohne Gutschein |
add | „Warenkorb ergänzen: … Posten“ | zählt Mengen hinzu; ohne offenen Warenkorb wird einer angelegt |
update | „Menge im Warenkorb ändern: … Posten“ | setzt die Menge; 0 nimmt den Posten heraus |
remove | „Aus dem Warenkorb nehmen: … Posten“ | nimmt Posten heraus |
clear | „Warenkorb leeren“ | leert den Warenkorb und entfernt den Gutschein |
coupon | „Gutschein anwenden: …“ oder „Gutschein aus dem Warenkorb nehmen“ | wendet einen Gutscheincode an oder entfernt ihn |
- Ein Posten fasst 1 bis 99 Stück; mehr wird auf 99 begrenzt.
- Jeder Posten braucht eine Kennung aus dem Katalog. Jede Änderung rechnet den ganzen Warenkorb neu gegen den Katalog, mit angebundenem Shop gegen die Preise, die der Shop gerade nennt.
- Ein Artikel, den der Shop gerade nicht als lieferbar führt, kommt nicht in den Warenkorb; der Assistent erfährt, welcher es war.
- Alle Änderungen nach
setschreiben in denselben Warenkorb, die Abholmarke bleibt dieselbe. - Wird derselbe bestätigte Aufruf ein zweites Mal ausgeführt, ändert sich der Warenkorb nicht noch einmal.
- Das Widget zeigt nach jeder Änderung die Posten, Zwischensumme (nur wenn sie von der Summe abweicht), Gutschein (nur mit Rabatt), Versand („kostenlos“ bei 0), Summe, den Betrag bis zum kostenlosen Versand und, bei einer Übergabeadresse mit
http://oderhttps://, den Knopf Weiter.
| Meldung an den Assistenten | Anlass |
|---|---|
| „Der Warenkorb liegt zur Übernahme bereit.“ | set ausgeführt |
| „Der Warenkorb ist geändert und liegt zur Übernahme bereit.“ | add, update oder remove ausgeführt |
| „Der Warenkorb ist geleert.“ | clear ausgeführt |
| „Der Gutschein ist angewendet. Der Warenkorb liegt zur Übernahme bereit.“ / „Der Gutschein ist entfernt. Der Warenkorb liegt zur Übernahme bereit.“ | coupon ausgeführt |
| „Es liegt kein offener Warenkorb vor, der sich ändern ließe.“ | Änderung ohne offenen Warenkorb |
| „Der Aufruf nennt keinen Posten, der sich ändern ließe.“ | update oder remove ohne verwertbaren Posten |
| „Der Posten … liegt nicht im Warenkorb.“ | Änderung an einem Posten, der fehlt |
| „Das Produkt … steht nicht im Katalog.“ | unbekannte Kennung |
| „Ein leerer Warenkorb nimmt keinen Gutschein an.“ | Gutschein auf leeren Warenkorb |
| „Der Warenkorb war leer.“ | nach der Rechnung bleibt kein Posten übrig |
| „Nicht im Warenkorb, weil der Shop es gerade nicht als lieferbar führt: … Sage das dem Besucher und nenne dafür keinen Preis.“ | Artikel, den der Shop gerade nicht als lieferbar führt |
Übergabe an den Shop
-
Schritt 1
Adresse hinterlegen
Tragen Sie beim Werkzeug Warenkorb übergeben die Adresse für die Warenkorbübergabe ein: die Adresse einer Seite Ihres Shops, etwa
https://shop.example.com/warenkorb, höchstens 500 Zeichen. -
Schritt 2
Besucher klickt Weiter
Der Knopf Weiter öffnet diese Adresse in einem neuen Tab und hängt
token=mit der Abholmarke an, mit?oder, wenn die Adresse schon eine Abfrage hat, mit&. Die Marke besteht aus 40 zufälligen Buchstaben und Ziffern. Ohne hinterlegte Adresse oder bei einer Adresse, die nicht mithttp://oderhttps://beginnt, zeigt das Widget keinen Knopf. -
Schritt 3
Shop holt den Warenkorb ab
Ihre Seite ruft mit der Marke
GET /api/v1/cart/pickup/{token}auf und legt die Posten in den eigenen Warenkorb. Die Abholung liest nur; innerhalb der Frist kann Ihre Seite sie wiederholen.
GET /api/v1/cart/pickup/{token}
Liefert den Warenkorb zu einer Abholmarke, bis 7 Tage nach der letzten Änderung. Die Antwort trägt Cache-Control: no-store. Einem Browser-Aufruf erlaubt der Server den Zugriff über Access-Control-Allow-Origin nur vom Ursprung (Schema, Host und Port) einer Adresse für die Warenkorbübergabe, die bei einem Warenkorbwerkzeug des Assistenten hinterlegt ist, der das Gespräch geführt hat.
- Anmeldung
- keine Anmeldung; die Abholmarke ist der Zugang
- Begrenzung
- 60 Aufrufe je Minute und Herkunftsadresse, bei IPv6 je /64-Netz
| Feld der Antwort | Inhalt |
|---|---|
items | Posten mit external_id, title, amount, unit_price_cents; bei neueren Warenkörben dazu price_source: live (Preis im Shop nachgelesen) oder stand (Preis aus dem Katalog) |
subtotal_cents, discount_cents, shipping_cents, total_cents | Zwischensumme, Rabatt, Versand und Summe in Cent |
coupon_code | angewendeter Gutscheincode oder null |
currency | Währung des Warenkorbs, derzeit EUR |
created_at, updated_at, expires_at | Zeitpunkte im ISO-8601-Format |
| Status | Bedeutung |
|---|---|
200 | Warenkorb geliefert |
404 unknown_cart | Marke unbekannt, in falscher Form oder Konto stillgelegt |
410 cart_expired | Frist abgelaufen |
429 | zu viele Aufrufe, siehe API-Grenzen |
Mehr zu Wegen ohne Anmeldung steht unter Öffentliche Wege der API.
Versand und Gutscheine
Im Werkzeug Warenkorb übergeben legen Sie im Abschnitt Versand und Gutscheine fest, womit der Assistent im Warenkorb rechnet: „Damit rechnet der Assistent im Warenkorb. Ob ein Shop einen Rabatt später übernimmt, entscheidet der Shop.“
| Feld | Grenzen | Wirkung |
|---|---|---|
| Versandkosten in Cent | ganze Zahl von 0 bis 100000 | Versand je Warenkorb; ein leerer Warenkorb kostet keinen Versand |
| Versandkostenfrei ab (Cent) | ganze Zahl von 0 bis 10000000; 0 heißt keine Schwelle | ab diesem Warenwert nach Rabatt kostet der Versand nichts; braucht Versandkosten |
| Code | 2 bis 40 Zeichen: Buchstaben A bis Z, Ziffern, Binde- und Unterstrich, am Anfang ein Buchstabe oder eine Ziffer; wird in Großbuchstaben gespeichert, jeder Code nur einmal | der Code, den der Besucher nennt |
| Art | Prozent oder Fester Betrag | Art des Rabatts |
| Wert | bei Prozent 1 bis 100, bei festem Betrag 1 bis 10000000 Cent | Höhe des Rabatts, höchstens die Zwischensumme; Prozente werden auf ganze Cent abgerundet |
| Mindestwert in Cent | ganze Zahl von 0 bis 10000000 | Warenwert vor Rabatt, ab dem der Code gilt |
| Gültig bis | Datum in der Form 2026-12-31, leer für unbefristet | letzter Gültigkeitstag; der Code gilt bis zum Ende dieses Tages nach deutscher Zeit (Europe/Berlin) |
| Aktiv | an oder aus; ein neuer Code steht auf an | ausgeschaltete Codes lehnt der Assistent ab |
- Höchstens 20 Gutscheincodes je Werkzeug; mit Gutschein hinzufügen und Gutschein entfernen pflegen Sie die Liste. Ein neuer Eintrag beginnt mit Prozent, Wert 10, Mindestwert 0 und eingeschaltetem Aktiv. Ohne Eintrag steht „Noch kein Gutscheincode hinterlegt.“
- Ein Warenkorb trägt höchstens einen Gutschein. Trägt ein Gutschein nach einer Änderung nicht mehr, etwa weil der Mindestwert unterschritten ist, fällt er weg, und der Assistent erhält den Grund aus der Tabelle unten.
- Das Widget zeigt Beträge in der Währung des Warenkorbs, derzeit
EUR; die Meldungen an den Assistenten schreiben sie mit Komma vor den Cent, Tausenderpunkt und nachgestelltem Eurozeichen.
| Meldung beim Speichern | Anlass |
|---|---|
| „Eine Schwelle für kostenlosen Versand braucht Versandkosten. Trage Versandkosten ein oder setze die Schwelle auf 0.“ | Schwelle ohne Versandkosten |
| „Versandkosten und Schwelle sind ganze Beträge in Cent, höchstens 100000.“ | Versandkosten außerhalb von 0 bis 100000 oder Schwelle außerhalb von 0 bis 10000000 |
| „Ein Gutscheincode besteht aus 2 bis 40 Zeichen: Buchstaben, Ziffern, Bindestrich, Unterstrich. Jeder Code kommt nur einmal vor.“ | Code in falscher Form oder doppelt |
| „Ein Prozentgutschein liegt zwischen 1 und 100, ein fester Betrag zwischen 1 und 10000000 Cent. Der Mindestwert ist nicht negativ.“ | Wert außerhalb der Grenzen |
| „Das Feld „Gültig bis“ braucht ein Datum in der Form 2026-12-31.“ | Datum in falscher Form |
| „Die Gutscheinliste stimmt nicht: sie ist unvollständig oder hat mehr als 20 Einträge.“ | Liste unvollständig oder zu lang |
| Meldung an den Assistenten | Anlass |
|---|---|
| „Den Gutscheincode … gibt es hier nicht.“ | unbekannter Code |
| „Der Gutscheincode … ist abgeschaltet.“ | Code steht nicht auf Aktiv |
| „Der Gutscheincode … galt bis zum … und ist abgelaufen.“ | Gültig bis überschritten |
| „Der Gutscheincode … gilt ab einem Warenkorbwert von … Es fehlen noch …“ | Mindestwert in Cent nicht erreicht |
| „Der Gutschein … zieht … ab.“ | Code angewendet |
| „Dazu kommen … Versand.“ | Versandkosten ohne Schwelle |
| „Die Schwelle für den kostenlosen Versand ist erreicht.“ / „Noch … bis versandkostenfrei; bis dahin kostet der Versand …“ | Versandschwelle erreicht oder nicht |
Schnittstelle
Alle Wege unter /api/v1/catalog verlangen eine Anmeldung mit bestätigter E-Mail-Adresse und ein Paket mit Shopanbindung. Die schreibenden Wege außer den beiden Löschwegen teilen sich eine Grenze von 20 Aufrufen je Minute und angemeldetem Nutzer. Anmeldung und Schlüssel beschreibt API-Integration, die Grenzen API-Grenzen.
GET /api/v1/catalog
Listet Produkte nach Titel, page ab 1, per_page 1 bis 200, ohne Angabe 50. search (höchstens 120 Zeichen) sucht am Anfang von Titel und Kennung. total nennt die Zahl aller Produkte im Katalog, unabhängig von der Suche, matches die Treffer der Abfrage vor dem Blättern. Jedes Produkt trägt from_shop und shop_synced_at; shop_sync_active sagt, ob eine eingeschaltete Shopanbindung besteht.
- Anmeldung
- angemeldet, bestätigte E-Mail-Adresse, jede Rolle
POST /api/v1/catalog
Legt ein Produkt mit den Feldern der Einfuhr an. Eine vergebene Kennung antwortet mit 422 identifier_taken.
- Anmeldung
- angemeldet, bestätigte E-Mail-Adresse, ab Bearbeiten
- Begrenzung
- 20 Aufrufe je Minute und angemeldetem Nutzer
PUT /api/v1/catalog/{id}
Ändert ein Produkt. Die Kennung bleibt; fehlende Felder werden geleert oder auf ihre Vorgabe gesetzt. Unbekannte {id}: 404 not_found.
- Anmeldung
- angemeldet, bestätigte E-Mail-Adresse, ab Bearbeiten
- Begrenzung
- 20 Aufrufe je Minute und angemeldetem Nutzer
DELETE /api/v1/catalog/{id}
Löscht ein Produkt endgültig. Unbekannte {id}: 404 not_found.
- Anmeldung
- angemeldet, bestätigte E-Mail-Adresse, ab Bearbeiten
POST /api/v1/catalog/import
Führt products ein, 1 bis 500 Einträge, alles oder nichts. Die Antwort nennt new, changed und total.
- Anmeldung
- angemeldet, bestätigte E-Mail-Adresse, ab Bearbeiten
- Begrenzung
- 20 Aufrufe je Minute und angemeldetem Nutzer
GET /api/v1/catalog/shop
Stand der Anbindung und des letzten Abgleichs; den Schlüssel nur als access_key_masked mit seiner Endung.
- Anmeldung
- angemeldet, bestätigte E-Mail-Adresse, jede Rolle
PUT /api/v1/catalog/shop
Speichert base_url, access_key und den Schalter für Abgleich und Nachlesen. Eine unlesbare Adresse antwortet mit 422 url_unreadable, eine ohne https:// mit 422 https_required, eine Adresse, die nicht ins öffentliche Netz zeigt, ebenfalls mit 422 und dem Grund. Eine Adresse auf einem anderen Server ohne neuen Schlüssel: 422 access_key_required.
- Anmeldung
- angemeldet, bestätigte E-Mail-Adresse, ab Verwaltung
- Begrenzung
- 20 Aufrufe je Minute und angemeldetem Nutzer
POST /api/v1/catalog/shop/test
Prüft die Verbindung und antwortet mit ok: true, Währung und has_products; scheitert die Prüfung, mit ok: false und dem Grund in error, etwa key_unreadable. Mehr als drei Prüfungen je Minute und Konto: 429 too_many_tests mit retry_after. Ohne Anbindung: 404 connection_missing.
- Anmeldung
- angemeldet, bestätigte E-Mail-Adresse, ab Verwaltung
- Begrenzung
- 20 Aufrufe je Minute und angemeldetem Nutzer
POST /api/v1/catalog/shop/sync
Reiht einen Abgleich ein und antwortet mit 202; already_pending sagt, ob schon einer wartete. Pausiert: 422 connection_inactive; ohne wartenden Abgleich vor Ablauf von 15 Minuten seit dem letzten Abgleich von Hand: 429 sync_too_soon mit retry_after. Ohne Anbindung: 404 connection_missing.
- Anmeldung
- angemeldet, bestätigte E-Mail-Adresse, ab Verwaltung
- Begrenzung
- 20 Aufrufe je Minute und angemeldetem Nutzer
DELETE /api/v1/catalog/shop
Löst die Anbindung; die Artikel bleiben im Katalog. Ohne Anbindung: 404 connection_missing.
- Anmeldung
- angemeldet, bestätigte E-Mail-Adresse, ab Verwaltung
Häufige Fragen
Warum nennt der Assistent ein Produkt nicht, obwohl es im Katalog steht?
Die Suche findet nur Produkte, die auf Verfügbar stehen. Mit angebundenem Shop fallen außerdem Artikel weg, die der Shop gerade nicht als lieferbar führt.
Warum zeigt die Karte keinen Knopf?
Entweder steht Ziel des Knopfes auf Kein Knopf, oder die passende Adresse fehlt: Produktadresse für Produktseite, Warenkorbadresse für Warenkorb.
Warum erscheint kein Streichpreis?
Die Karte zeigt „Statt …“ und „Sie sparen …“ nur, wenn der Streichpreis über dem Preis liegt und eine Währung angegeben ist.
Wie lange kann der Shop einen Warenkorb abholen?
7 Tage ab der letzten Änderung. Danach antwortet die Abholung mit 410 cart_expired.
Überschreibt der Abgleich meine Merkmale und mein Zubehör?
Nein. Merkmale, Zubehör, Kunden kauften auch, Ziel des Knopfes, Warenkorbadresse und Anzahl Bewertungen pflegen Sie im Katalog; der Abgleich lässt sie stehen.
Selbst fragen, Assistent dieser Website
Automatischer Assistent