Varyantlar
Varyant stok ve fiyat değişiklikleri varyant seviyesinde uygulanır.
Endpointler
/products/{product}/variants/{variant}/inventoryVaryant stok güncelle/products/{product}/variants/{variant}/priceVaryant fiyat güncelleVaryant API ne zaman kullanılır?
Bir ürün beden, renk veya başka seçeneklere göre varyantlara ayrılıyorsa stok ve fiyat değişiklikleri varyant seviyesinde yapılmalıdır.
Varyantlı üründe ürün seviyesinde Inventory veya Pricing endpointini kullanmak yerine ilgili variant endpointini kullanın.
Endpointler ve scope'lar
| Endpoint | Scope | Amaç |
|---|---|---|
| PATCH /products/{product}/variants/{variant}/inventory | inventory:write | Tek varyant stok güncelle |
| PATCH /products/{product}/variants/{variant}/price | pricing:write | Tek varyant fiyat güncelle |
Path parametreleri
| Parametre | Açıklama |
|---|---|
| product | Varyantın bağlı olduğu BYNovax ürün kimliği |
| variant | Güncellenecek BYNovax varyant kimliği |
Ürüne sonradan varyant ekleme
Varyant bilgilerini güncelleme
Varyantı pasifleştirme
Varyant stok güncelleme
Inventory endpointine JSON body içerisinde stock gönderilir. stock integer olmalı ve negatif olmamalıdır.
Bu işlem write operasyonudur; benzersiz Idempotency-Key gönderin.
PATCH /products/7314/variants/3623/inventory
{
"stock": 8
}Varyant fiyat güncelleme
Price endpointi ilgili varyantın satış fiyatını güncellemek için kullanılır. Göndereceğiniz fiyat alanlarını Pricing contract'ıyla uyumlu tutun.
Bu işlem de idempotent write olarak ele alınmalı ve Idempotency-Key kullanılmalıdır.
ERP eşleme önerisi
ERP sisteminizde yalnızca product ID değil variant ID eşlemesini de saklayın. Örneğin ERP'deki Mavi / XL seçeneğini BYNovax variant ID ile eşleştirin.
Stok değiştiğinde ürünün tamamını yeniden yazmak yerine yalnızca değişen varyantın inventory endpointini çağırın.
Sık hata
Ürün varyantlıysa ürün seviyesindeki stok veya fiyat endpointi 409 conflict üretebilir. Böyle bir durumda varyant seviyesindeki endpoint kullanılmalıdır.
Çalıştığını nasıl doğrularım?
- Product ve variant ID doğru.
- Credential gerekli inventory:write veya pricing:write scope'a sahip.
- PATCH çağrısı başarılı dönüyor.
- Aynı mantıksal retry için Idempotency-Key korunuyor.
Marketplace varyant contractı
| Konu | Contract |
|---|---|
| Tenant authority | product ve variant credential mağazasında çözülür |
| Lifecycle | Create / update / passive işlemleri products:write kullanır |
| Stok authority | Variant inventory endpointi kullanılır |
| Fiyat authority | Variant price endpointi kullanılır |
| Retry | Aynı logical write retry için aynı Idempotency-Key korunur |
| Code namespace | SKU ve barkod ürün + varyant mağaza namespace'i içinde benzersiz olmalıdır |
ERP varyant state modeli
- ERP tarafında BYNovax product_id ile birlikte variant_id eşlemesini de kalıcı saklayın.
- Seçenek metni değişse bile mümkün olduğunda aynı BYNovax variant_id eşlemesini koruyun.
- Katalog alanı değişikliğini variant lifecycle endpointine, stok değişikliğini inventory endpointine, fiyat değişikliğini pricing endpointine gönderin.
- Varyant pasifleştirildiğinde eski sipariş satırlarının variant referanslarını silmeyin.
- Cross-tenant product veya variant ID hiçbir zaman başka mağazayı güncellemek için kullanılmamalıdır.
Varyant hata / retry davranışı
| Durum | Entegrasyon davranışı |
|---|---|
| 401 | Credential veya authentication header kontrol edin |
| 403 | products:write, inventory:write veya pricing:write scope kontrol edin |
| 404 | Product / variant ID credential tenant kapsamında mı kontrol edin |
| 409 | Code conflict, varyant authority veya idempotency conflict kontrol edin |
| 422 | Payload alanları ve veri tiplerini kontrol edin |
| Timeout | Yeni mutation üretmeden aynı logical request'i aynı Idempotency-Key ile retry edin |