Toplu Stok ve Fiyat

Tek istekte en fazla 1.000 ürünün stoğunu ve/veya fiyatını günceller. ERP, muhasebe ya da depo yazılımından düzenli stok ve fiyat senkronu için önerilen uç budur:

  • Ürünü Hızlı Sanal Market kimliğiyle (productId) ya da barkod veya stok kodu ile bulur. Kendi sisteminizde kimlik saklamanız gerekmez.
  • Gönderilmeyen alan değişmez. Yalnızca stok gönderen bir istek fiyatı ezmez.
  • Bir kalem başarısız olursa diğerleri yine işlenir. Her kalemin sonucu yanıtta ayrı ayrı döner.

POST https://api.hizlisanalmarket.com/api/v1/products/stock-price · İzin: stock:write

Gövde

{
  "items": [
    { "barcode": "8690000000017", "quantity": 25 },
    { "sku": "KUPA-350", "price": 229.90, "compareAtPrice": 299.90 },
    { "productId": "8f1c2a4e-3b5d-4c6e-9f70-1a2b3c4d5e6f", "quantity": 0, "price": 199.90 }
  ]
}
Alan Tür Açıklama
items Liste Güncellenecek kalemler. En az 1, en fazla 1.000.
items[].productId GUID Ürün kimliği (isteğe bağlı).
items[].barcode Metin Barkod (isteğe bağlı).
items[].sku Metin Stok kodu (isteğe bağlı).
items[].quantity Ondalık Yeni stok miktarı. Gönderilmezse stok değişmez. Negatif olamaz.
items[].price Ondalık Yeni KDV dahil satış fiyatı. Gönderilmezse fiyat değişmez.
items[].compareAtPrice Ondalık Yeni üstü çizili fiyat (KDV dahil). Gönderilmezse değişmez.

Her kalemde productId, barcode ya da sku alanlarından en az biri bulunmalıdır.

Ürün nasıl bulunur?

Her kalem için sırayla şunlar denenir:

  1. productId verildiyse ve ürün varsa o ürün kullanılır. Bulunamazsa sonraki adıma geçilir. Böylece ürün silinip yeniden açıldığında eskiyen kimlik kalemi bozmaz.
  2. barcode verildiyse barkodu eşleşen ürün.
  3. sku verildiyse stok kodu eşleşen ürün.

Barkod ve stok kodu birebir aynı yazılmalıdır (büyük/küçük harf dahil). Aynı barkod ya da stok kodu birden fazla üründe kayıtlıysa yanlış ürünü güncellememek için o kalem başarısız sayılır.

Yanıt

İki kalemli bir istek için örnek yanıt (biri güncellendi, biri bulunamadı):

{
  "updated": 1,
  "failed": 1,
  "skipped": 0,
  "results": [
    {
      "productId": "8f1c2a4e-3b5d-4c6e-9f70-1a2b3c4d5e6f",
      "sku": "KUPA-350",
      "barcode": "8690000000017",
      "success": true,
      "error": null,
      "stockSkipped": false,
      "stockStatus": null,
      "stockQuantity": null,
      "note": null
    },
    {
      "productId": null,
      "sku": "KUPA-500",
      "barcode": null,
      "success": false,
      "error": "Ürün bulunamadı (barkod/stok kodu).",
      "stockSkipped": false,
      "stockStatus": null,
      "stockQuantity": null,
      "note": null
    }
  ]
}
Alan Açıklama
updated En az bir değişikliği uygulanan kalem sayısı.
failed Ürünü bulunamayan ya da değeri geçersiz kalem sayısı.
skipped Yalnız stok gönderilen, ama stoğu elle girilemeyen bir ürüne (paket ya da dijital) denk gelen kalem sayısı. Bu kalemlerde hiçbir şey değişmez.
results Kalemlerin sırasıyla sonuçları.
results[].success Kalem işlendi mi.
results[].error Başarısız kalemde neden.
results[].stockSkipped Stok gönderildi ama uygulanmadı. Ürün paketse stockStatus derived, dijitalse not-tracked olur. stockQuantity ürünün güncel (hesaplanan) stoğunu, note açıklamayı verir. Kalemdeki fiyat yine uygulanır.

updated, failed ve skipped toplamı kalem sayısına eşittir.

İstek düzeyindeki hatalar (400)

code Neden
EMPTY_ITEMS items boş ya da gönderilmedi.
TOO_MANY_ITEMS 1.000'den fazla kalem. Listeyi parçalara bölün.

Öneriler

  • Binlerce ürününüz varsa listeyi 1.000'lik parçalar halinde gönderin. 10.000 ürünlük bir katalog 10 istekte güncellenir.
  • Yalnız değişen ürünleri göndermek hem daha hızlıdır hem de istek sınırını korur.
  • failed kalemlerin error metinlerini kaydedin. Bunlar çoğunlukla mağazada olmayan ya da barkodu iki üründe kayıtlı ürünlerdir.