Зміна даних магазину
Через API можна змінювати дані магазину, наприклад опис або ціну товару.
Змініть окремі поля
Щоб змінити опис товару, не потрібно надсилати всі його дані. У запиті PATCH вкажіть поля, які змінюєте, та інші обов’язкові для цієї операції поля. Решта даних товару залишиться без змін.
- Пропущене поле
- Його значення залишається без змін.
- null
- Надсилання null видаляє значення, якщо поле це дозволяє. Перевірте опис операції.
- Порожній рядок
- "" означає порожній текст. Він відрізняється від null, і не кожне поле його приймає.
У цьому прикладі ми видаляємо опис товару німецькою мовою. Назва товару й описи іншими мовами залишаться без змін.
/api/v1/products/example?locale=deЗапит 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}'
Відповідь
{
"data": {
"deleted": false,
"id": "example",
"version": 2
},
"meta": {
"request_id": "example"
}
}
Якщо відповідь не надійшла
Відсутність відповіді не обов’язково означає, що зміну не збережено. З’єднання могло перерватися вже після її виконання.
Під час збереження даних додайте заголовок Idempotency-Key з унікальним значенням. Якщо не отримали відповіді й повторюєте ту саму зміну, використайте той самий ключ, адресу, метод і вміст запиту.
Якщо API вже зберіг результат цього запиту, він поверне його без повторного виконання зміни. Для іншої зміни використайте новий ключ.
Використання того самого ключа для іншого запиту повертає idempotency.key_reused.
Якщо хтось змінює ті самі дані
Перед зміною отримайте актуальні дані. Якщо операція вимагає expected_version, укажіть у цьому полі отриману версію.
Якщо хтось тим часом змінив дані, API відхилить запис. Отримайте їх знову й перевірте, чи запланована зміна все ще доречна. Лише після цього надішліть новий запит з актуальною версією.
Зміна ціни також може потребувати версії ціни, варіанта або прайс-листа. Потрібні поля зазначено в описі операції.