İçeriğe geç

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).
{
"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.

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.