Toplu ürün güncelleme
POST /apps/catalog/products/bulk — scope (yetki) write_products, Idempotency-Key zorunlu.
Bu endpoint mevcut ürünleri günceller. Ürün oluşturmaz, silmez; varyantlara, fiyatlara ve stoğa da dokunmaz.
{ "products": [ { "id": "3f0c…", "name": "Wool coat", "metaTitle": "Wool coat — free shipping" }, { "id": "9ab1…", "status": "Draft" }, { "id": "d27e…", "slug": "" } ]}| Alan | Gönderilmezse | null |
Değer |
|---|---|---|---|
id |
zorunlu | — | ürünün UUID’si |
name |
değişmez | değişmez | yeni ad |
slug |
değişmez | gönderilmemeli | yeni URL slug’ı; "" addan yeni bir slug türetir |
metaTitle |
değişmez | temizlenir | yeni SEO başlığı |
metaDescription |
değişmez | temizlenir | yeni SEO açıklaması |
categoryId |
değişmez | temizlenir — ürünün birincil kategorisi kalkar | birincil kategori UUID’si |
status |
değişmez | gönderilmemeli | Active, Draft veya Archived |
İstek düzeyindeki kurallar — herhangi biri ihlal edilirse tüm istek 400 ile reddedilir:
- 1 ile 100 arası satır;
- aynı istekte bir ürün
id’si iki kez geçemez; - çağıran bir uygulama token’ı olmalıdır (bu endpoint’te personel oturumu reddedilir).
Yanıt — geçerli bir istek için her zaman 200
Bölüm başlığı “Yanıt — geçerli bir istek için her zaman 200”{ "requested": 3, "succeeded": 2, "failed": 1, "slugsChanged": 1, "results": [ { "id": "3f0c…", "status": "updated" }, { "id": "9ab1…", "status": "failed", "errorCode": "not_found", "error": "…" }, { "id": "d27e…", "status": "updated", "slug": "wool-coat-2", "previousSlug": "coat" } ]}errorCode |
Anlamı |
|---|---|
not_found |
Bu mağazada o id’ye sahip ürün yok. |
rejected |
Değişiklik doğrulamada reddedildi; nedenini error söyler. |
Satırlar birbirinden bağımsızdır: başarısız bir satır diğerlerini geri almaz.
Slug değişirse URL de değişir
Bölüm başlığı “Slug değişirse URL de değişir”slugsChanged sıfırdan büyükse vitrindeki ürün URL’leri değişmiş demektir; hangilerinin değiştiğini
previousSlug söyler. Uygulamanız ürün URL’lerini saklıyorsa bu satırlara göre güncelleyin.