Modificarea datelor magazinului
Prin API poți modifica datele magazinului, de exemplu descrierea sau prețul unui produs.
Modifică anumite câmpuri
Pentru a schimba descrierea unui produs nu trebuie să trimiți toate datele sale. În cererea PATCH, include câmpurile pe care le modifici și celelalte câmpuri obligatorii pentru operație. Restul datelor rămân neschimbate.
- Câmp omis
- Valoarea sa rămâne neschimbată.
- null
- Trimiterea valorii null șterge valoarea, dacă acel câmp permite acest lucru. Verifică descrierea operației.
- Șir gol
- "" înseamnă text gol. Este diferit de null și nu toate câmpurile îl acceptă.
În acest exemplu ștergem descrierea produsului în germană. Numele și descrierile în celelalte limbi rămân neschimbate.
/api/v1/products/example?locale=deCerere 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}'
Răspuns
{
"data": {
"deleted": false,
"id": "example",
"version": 2
},
"meta": {
"request_id": "example"
}
}
Dacă nu primești un răspuns
Lipsa unui răspuns nu înseamnă neapărat că modificarea nu a fost salvată. Conexiunea se poate fi întrerupt după salvare.
La salvarea datelor, adaugă antetul Idempotency-Key cu o valoare unică. Dacă nu primești răspuns și repeți aceeași modificare, folosește aceeași cheie, adresă, metodă și același conținut al cererii.
Dacă API-ul are deja un rezultat salvat pentru cerere, îl returnează fără a executa modificarea din nou. Folosește o cheie nouă pentru o altă modificare.
Refolosirea unei chei pentru o altă cerere produce idempotency.key_reused.
Dacă altcineva modifică aceleași date
Obține datele actuale înainte de a le modifica. Dacă operația necesită expected_version, introdu în acel câmp versiunea primită.
Dacă cineva a modificat datele între timp, API-ul refuză salvarea. Obține-le din nou și verifică dacă modificarea planificată mai este potrivită. Abia apoi trimite o cerere nouă cu versiunea actuală.
Modificarea unui preț poate necesita și versiunea prețului, a variantei sau a listei de prețuri. Găsești câmpurile necesare în descrierea operației.