Ovaj dokument je za sada samo na turskom.

Stok

Depo ve pazaryeri eşitlemesi için toplu stok ucu: tek istekte en çok 200 satırı stok koduyla ya da ürün ve varyant kimliğiyle günceller.

Toplu güncelleme

PUT /inventory, kapsam products.write.

bash
curl -X PUT "https://piyodo.com/api/store/v1/inventory" \
  -H "Authorization: Bearer psk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      {"sku": "KG-1", "stock": 12},
      {"product_id": "01J...", "variant_id": "01J...", "stock": 3},
      {"sku": "KG-2", "stock": null}
    ]
  }'

Satır nasıl bulunur

  • sku varsa: önce ürünlerde, sonra varyantlarda aranır.
  • product_id ve variant_id: o varyant güncellenir.
  • Yalnız product_id: varyantsız ürün güncellenir. Varyantlı ürünün kendi stoğu yoktur, bu satır bulunamadı sayılır.

Değerler

stock her satırda gönderilmelidir: 0 ile 1000000 arasında tam sayı ya da null. null o satırda stok takibini kapatır, ürün stoktan bağımsız satılır.

Yanıt

json
{"updated": 2, "missing": [2]}

updated güncellenen satır sayısı, missing bulunamayan satırların gönderdiğin listedeki sırasıdır (0'dan başlar). Bulunamayan satır isteği bozmaz, diğerleri uygulanır.

Lokasyonlar

Mağaza panelde lokasyon (şube, depo) tanımlamadıysa bu bölüm seni ilgilendirmez, davranış aynı kalır.

stock her zaman satılabilir toplamdır, vitrin ve sepet buna bakar. Lokasyonlar bu toplamın dağılımıdır: toplam her zaman lokasyon adetlerinin toplamına eşittir.

GET /locations, kapsam products.read:

json
{"data": [{"id": "01J...", "name": "Merkez", "address": null, "is_active": true, "is_default": true, "sort": 0}]}

Bir lokasyonun adedini yazmak için satıra location_id ekle:

json
{"items": [{"sku": "KG-1", "location_id": "01J...", "stock": 7}]}
  • location_id ile: stock o lokasyonun adedidir, toplam adetlerden yeniden hesaplanır. null o lokasyondaki kaydı kaldırır; hiç kayıt kalmazsa stok takibi kapanır.
  • location_id olmadan: stock toplamdır. Artış varsayılan lokasyona yazılır, azalış sıradaki son lokasyondan başlayarak düşülür. null takibi kapatır ve dağılımı siler.
  • Bulunamayan lokasyon: mağazaya ait olmayan location_id içeren satır missing listesine girer.

Ürün yanıtındaki stock_levels alanı dağılımı verir, bkz. Ürünler.

Stok değişimini dinleme

Her stok değişiminde stock.updated webhook'u gider: panelden, API'den ya da satıştan olması fark etmez. Eşitleme yazılımın yalnız bu olayı dinleyebilir. Olay toplam üzerindendir: lokasyonlar arası aktarım toplamı değiştirmediği için olay üretmez.

json
{"product_id": "01J...", "variant_id": null, "sku": "KG-1", "stock": 11}

Ayrıntı Webhook sayfasında.