Zmiana danych w sklepie
Przez API możesz zmieniać dane w swoim sklepie, na przykład opis lub cenę produktu.
Zmień wybrane dane
Żeby zmienić opis produktu, nie musisz przesyłać wszystkich jego danych. W żądaniu PATCH podaj pola, które zmieniasz, oraz inne pola wymagane przez tę operację. Pozostałe dane produktu pozostaną bez zmian.
- Nie przesyłasz pola
- Dotychczasowa wartość pozostaje bez zmian.
- Przesyłasz null
- Usuwasz wartość, jeśli dane pole na to pozwala.
- Przesyłasz pusty tekst ""
- Wpisujesz pusty tekst. To inna wartość niż null i nie każde pole ją przyjmuje.
W tym przykładzie usuwamy opis produktu w języku niemieckim. Nazwa produktu i opisy w pozostałych językach pozostaną bez zmian.
/api/v1/products/example?locale=deŻądanie cURL
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}'
Odpowiedź
{
"data": {
"deleted": false,
"id": "example",
"version": 2
},
"meta": {
"request_id": "example"
}
}
Gdy nie otrzymasz odpowiedzi
Brak odpowiedzi nie musi oznaczać, że zmiana się nie zapisała. Połączenie mogło zostać przerwane już po jej wykonaniu.
Przy każdej nowej zmianie dodaj nagłówek Idempotency-Key z unikalną wartością. Jeśli ponawiasz tę samą zmianę, użyj tej samej wartości, metody, adresu i treści żądania.
Jeśli API ma już zapisany wynik tego żądania, zwróci go bez ponownego wykonania zmiany. Dla innej zmiany użyj nowej wartości Idempotency-Key.
Jeśli użyjesz tego samego klucza do innej zmiany, API zwróci błąd ponownego użycia klucza.
Gdy ktoś zmieni te same dane
Przed zmianą produktu pobierz jego aktualne dane. Jeśli żądanie wymaga pola expected_version, wpisz w nim numer wersji otrzymany w odpowiedzi.
Jeśli w międzyczasie ktoś zmieni ten produkt, API odrzuci Twoją zmianę. Pobierz dane jeszcze raz i sprawdź, czy nadal chcesz wprowadzić tę samą zmianę. Dopiero wtedy wyślij żądanie z aktualnym numerem wersji.
Przy zmianie ceny mogą być wymagane także numery wersji ceny, wariantu lub cennika. Sprawdzisz to w opisie wybranej operacji.