Shopdaten ändern
Über die API kannst du Daten in deinem Shop ändern, zum Beispiel die Beschreibung oder den Preis eines Produkts.
Einzelne Felder ändern
Um eine Produktbeschreibung zu ändern, musst du nicht alle Produktdaten senden. Gib im PATCH-Aufruf die zu ändernden Felder und alle weiteren Pflichtfelder dieser Operation an. Die übrigen Produktdaten bleiben unverändert.
- Ausgelassenes Feld
- Der Wert bleibt unverändert.
- null
- Mit null löschst du den Wert, sofern das Feld dies zulässt. Prüfe dazu die Beschreibung des Vorgangs.
- Leere Zeichenfolge
- "" steht für eine leere Zeichenfolge. Sie unterscheidet sich von null und wird nicht von jedem Feld akzeptiert.
In diesem Beispiel entfernen wir die deutsche Produktbeschreibung. Der Produktname und die Beschreibungen in anderen Sprachen bleiben unverändert.
/api/v1/products/example?locale=decURL-Anfrage
curl --disable --globoff --fail-with-body --silent --show-error \
--proto '=https' --connect-timeout 5 --max-time 30 \
--request PATCH \
--url 'https://shop.onshopently.com/api/v1/products/example?locale=de' \
--header 'Authorization: Bearer EXAMPLE_ACCESS_TOKEN' \
--header 'Idempotency-Key: example-product-clear-translation' \
--header 'Content-Type: application/json' \
--data-raw '{"description":null,"expected_version":1}'
Antwort
{
"data": {
"deleted": false,
"id": "example",
"version": 2
},
"meta": {
"request_id": "example"
}
}
Wenn keine Antwort kommt
Eine fehlende Antwort bedeutet nicht unbedingt, dass die Änderung nicht gespeichert wurde. Die Verbindung kann erst nach der Änderung unterbrochen worden sein.
Füge beim Speichern von Daten den Header Idempotency-Key mit einem eindeutigen Wert hinzu. Wenn du keine Antwort erhältst und dieselbe Änderung wiederholst, verwende denselben Schlüssel, dieselbe URL, Methode und denselben Anfrageinhalt.
Hat die API bereits ein Ergebnis für diese Anfrage gespeichert, gibt sie es zurück, ohne die Änderung erneut auszuführen. Verwende für eine andere Änderung einen neuen Schlüssel.
Ein für eine andere Anfrage wiederverwendeter Schlüssel führt zu idempotency.key_reused.
Wenn jemand dieselben Daten ändert
Rufe vor einer Änderung die aktuellen Daten ab. Falls die Operation expected_version verlangt, trage die erhaltene Version in dieses Feld ein.
Wurden die Daten inzwischen geändert, lehnt die API das Speichern ab. Rufe sie erneut ab und prüfe, ob deine geplante Änderung noch passt. Sende erst dann eine neue Anfrage mit der aktuellen Version.
Bei Preisänderungen kann auch die Version des Preises, der Variante oder der Preisliste nötig sein. Die benötigten Felder stehen in der Beschreibung des Vorgangs.