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_state | quantity anlamı | Kendi sisteminizde davranış |
|---|---|---|
| counted | Ondalık metin fiziksel miktar | Tam ondalık olarak saklayın |
| uncounted | null; stok sayılmıyor | Sıfır veya tükenmiş saymayın |
| made_to_order | null; sipariş üzerine hazırlanıyor | Sayı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.