İçeriğe geç
siparis.app geliştiriciAnahtarları yönet ↗

Stoku eşitlemek

API temel adresi https://api.siparis.app/v1. Stok girişi, sayım ve taşıma için Stok girmek, saymak ve taşımak rehberini kullanın.

Kartları eşleştirin

Seçenekleri Seçenekleri listele ile, depoları Depoları listele ile alın. SKU/barkod tam eşitlikle aranır; ikisini birlikte gönderirseniz ikisi de eşleşmelidir. Kendi kartınızı var_…, kendi deponuzu loc_… kimliğiyle bağlayın; adları anahtar olarak kullanmayın.

İlk bakiyeyi alın

İlk eşitleme rehberinde resource=inventory_levels seçin. Her satır bir seçenek/depo bakiyesidir. quantity fiziksel bakiyedir; sepette veya siparişte kullanılabilecek miktar anlamına gelmez. quantity_unit miktarın birimidir; ortak stokta havuz birimini taşır.

stock_statequantity anlamıKendi sisteminizde davranış
countedOndalık metin fiziksel miktarTam ondalık olarak saklayın
uncountednull; stok sayılmıyorSıfır veya tükenmiş saymayın
made_to_ordernull; sipariş üzerine hazırlanıyorSayılmayan stoktan önce bu durumu değerlendirin

Sayılan stokta bakiye kaydının olmaması sıfır anlamına gelir; okuma istekleri yeni bakiye açmaz. Aynı ürünü satan satış markaları ortak bakiyeyi görebilir: marka sonuçlarını toplayıp işletme stoğunu iki kez saymayın.

curl --fail-with-body --silent --show-error --get \
  "${SIPARIS_API_URL:-https://api.siparis.app/v1}/inventory/levels" \
  -H "Authorization: Bearer $SIPARIS_API_KEY" \
  --data-urlencode 'limit=50'

Örnek HTTP 200 yanıtı (uydurma veri):

{
  "data": [
    {
      "archived": false,
      "id": "lvl_1234567890abcdef1234567890abcdef",
      "location": "loc_1234567890abcdef1234567890abcdef",
      "made_to_order": false,
      "product": "prd_1234567890abcdef1234567890abcdef",
      "quantity": "12.000",
      "quantity_unit": "adet",
      "revision": 1,
      "stock_state": "counted",
      "stock_uncounted": false,
      "updated_at": "2026-10-16T09:00:00Z",
      "variant": "var_1234567890abcdef1234567890abcdef"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Değişiklikleri uygulayın

Dosyanın resume_cursor değeriyle (dosyanın bittiği andaki olay konumu) olay akışına geçin; types eklemeyin. inventory.level_changed olayında data.object.variant ve data.object.location ile GET /v1/inventory/levels?variant=…&location=… okuyun ve güncel bakiyeyi aynı kimlikte güncelleyin. Olayı evt_… ile tekilleştirin; bakiye güncellemesi ve yeni next_cursor (sonraki okumanın yer imi) kaydını aynı işlemde tamamlayın.

Hareket denetimi için Stok hareketlerini listele, belge için Stok belgesini getir kullanın. quantity_change değişmez hareket miktarıdır; variant_balance_after bütün depolardaki seçenek toplamıdır, tek depo bakiyesi olarak kullanmayın. Maliyetler costs:read, iç notlar internal_notes:read olmadan atlanır. Arşivlenmiş ürün ve kapanmış depo geçmişi hareketlerde kalır.