Treci la conținut
ShopentlyLearn

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.

PATCH/api/v1/products/example?locale=de

Cerere 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.