Katalog API'si2026-11Önizleme
Senkronizasyon kuralları
Çin'deki bir satıcı fiyatı değiştirdiğinde ya da stoğu bittiğinde ilanınıza ne olur.
- Bir ilanı, ona sipariş geldiğinde ve düzenli bir programla yeniden okuruz; her ürünün last_checked_at değeri en son ne zaman okuduğumuzu söyler. Ürünleri senkronize tutmak ücretsizdir.
- Harekete geçtiğimiz her değişiklik aynı zamanda bir olaydır: product.cost_changed ve product.out_of_stock.
Sync rule nesnesi
idstring- rule_ ile başlar; varsayılan kural rule_default'tur.
applies_tostring- Varsayılan kural için all ya da bir istisna için ürün id'si.
on_cost_increase.actionstring- kâr marjınızı korumak için fiyatı güncelle, ürünü duraklat ya da yalnızca bildir.
on_cost_increase.keep_margin_percentstring- reprice ile: satış fiyatı üzerinden korunacak kâr marjı.
on_cost_increase.max_increase_percentstring|null- reprice ile: bir fiyatın tek seferde en fazla ne kadar artabileceği. Bunun üstünde above_max uygulanır: pause ya da notify.
on_cost_decreasestring- keep_price ya da aynı kâr marjına inecek şekilde fiyatı düşür.
on_out_of_stockstring- Her zaman zero_stock: tükenen bir SKU kanallarınızda 0 gösterir.
on_back_in_stockstring- restock ya da siz sürdürene kadar stay_paused.
round_tostring|null- Yeniden fiyatlanan fiyatlar için .99 ya da .00 gibi bir fiyat sonu.
{
"id": "rule_default",
"applies_to": "all",
"on_cost_increase": {
"action": "reprice",
"keep_margin_percent": "30",
"max_increase_percent": "15",
"above_max": "pause"
},
"on_cost_decrease": "keep_price",
"on_out_of_stock": "zero_stock",
"on_back_in_stock": "restock",
"round_to": ".99",
"updated_at": "2026-11-02T08:00:00Z"
}Senkronizasyon kurallarını listele
GET/v1/sync_rules
Önce varsayılan kural, ardından ürün bazlı her istisna.
Kapsamproducts:read
curl "https://www.ninjabuy.com/api/v1/sync_rules" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11"HTTP/2 200 OK
{
"data": [
{
"id": "rule_default",
"applies_to": "all",
"on_cost_increase": {
"action": "reprice",
"keep_margin_percent": "30",
"max_increase_percent": "15",
"above_max": "pause"
},
"on_cost_decrease": "keep_price",
"on_out_of_stock": "zero_stock",
"on_back_in_stock": "restock",
"round_to": ".99",
"updated_at": "2026-11-02T08:00:00Z"
},
{
"id": "rule_9p3e",
"applies_to": "prd_1x0a",
"on_cost_increase": { "action": "pause" },
"on_cost_decrease": "keep_price",
"on_out_of_stock": "zero_stock",
"on_back_in_stock": "stay_paused",
"round_to": null,
"updated_at": "2026-11-03T10:14:00Z"
}
],
"has_more": false,
"cursor": null
}Senkronizasyon kuralını getir
GET/v1/sync_rules/{id}
Tek bir kural.
Kapsamproducts:read
Yol parametreleri
idstringzorunlu- Kuralın id'si.
Hatalar
| Durum | Tür | Ne zaman |
|---|---|---|
| 404 | not-found | Bu hesapta böyle bir kural yok. |
curl "https://www.ninjabuy.com/api/v1/sync_rules/rule_default" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11"HTTP/2 200 OK
{
"id": "rule_default",
"applies_to": "all",
"on_cost_increase": {
"action": "reprice",
"keep_margin_percent": "30",
"max_increase_percent": "15",
"above_max": "pause"
},
"on_cost_decrease": "keep_price",
"on_out_of_stock": "zero_stock",
"on_back_in_stock": "restock",
"round_to": ".99",
"updated_at": "2026-11-02T08:00:00Z"
}Bir ürün için istisna
POST/v1/sync_rules
Kendi kuralı olan ürün varsayılan yerine o kuralı izler. Belirtmediğiniz alanlar varsayılandan alınır.
Kapsamproducts:write
Gövde
applies_tostringzorunlu- Varsayılan kural için all ya da bir istisna için ürün id'si.
on_cost_increase.actionstring- kâr marjınızı korumak için fiyatı güncelle, ürünü duraklat ya da yalnızca bildir.
on_cost_increase.keep_margin_percentstring- reprice ile: satış fiyatı üzerinden korunacak kâr marjı.
on_cost_increase.max_increase_percentstring|null- reprice ile: bir fiyatın tek seferde en fazla ne kadar artabileceği. Bunun üstünde above_max uygulanır: pause ya da notify.
on_cost_decreasestring- keep_price ya da aynı kâr marjına inecek şekilde fiyatı düşür.
on_out_of_stockstring- Her zaman zero_stock: tükenen bir SKU kanallarınızda 0 gösterir.
on_back_in_stockstring- restock ya da siz sürdürene kadar stay_paused.
round_tostring|null- Yeniden fiyatlanan fiyatlar için .99 ya da .00 gibi bir fiyat sonu.
Hatalar
| Durum | Tür | Ne zaman |
|---|---|---|
| 404 | not-found | Bu hesapta böyle bir ürün yok. |
| 409 | invalid-state | Ürünün zaten bir istisnası var: onu değiştirin. |
curl -X POST "https://www.ninjabuy.com/api/v1/sync_rules" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"applies_to": "prd_1x0a",
"on_cost_increase": { "action": "pause" },
"on_back_in_stock": "stay_paused"
}'HTTP/2 201 Created
{
"id": "rule_9p3e",
"applies_to": "prd_1x0a",
"on_cost_increase": { "action": "pause" },
"on_cost_decrease": "keep_price",
"on_out_of_stock": "zero_stock",
"on_back_in_stock": "stay_paused",
"round_to": null,
"updated_at": "2026-11-03T10:14:00Z"
}Senkronizasyon kuralını değiştir
PUT/v1/sync_rules/{id}
Kuralın tamamını gönderin. Her ilanı bir sonraki okuyuşumuzdan itibaren geçerli olur.
Kapsamproducts:write
Yol parametreleri
idstringzorunlu- Kuralın id'si.
Gövde
on_cost_increase.actionstring- kâr marjınızı korumak için fiyatı güncelle, ürünü duraklat ya da yalnızca bildir.
on_cost_increase.keep_margin_percentstring- reprice ile: satış fiyatı üzerinden korunacak kâr marjı.
on_cost_increase.max_increase_percentstring|null- reprice ile: bir fiyatın tek seferde en fazla ne kadar artabileceği. Bunun üstünde above_max uygulanır: pause ya da notify.
on_cost_decreasestring- keep_price ya da aynı kâr marjına inecek şekilde fiyatı düşür.
on_out_of_stockstring- Her zaman zero_stock: tükenen bir SKU kanallarınızda 0 gösterir.
on_back_in_stockstring- restock ya da siz sürdürene kadar stay_paused.
round_tostring|null- Yeniden fiyatlanan fiyatlar için .99 ya da .00 gibi bir fiyat sonu.
Hatalar
| Durum | Tür | Ne zaman |
|---|---|---|
| 404 | not-found | Bu hesapta böyle bir kural yok. |
curl -X PUT "https://www.ninjabuy.com/api/v1/sync_rules/rule_default" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11" \
-H "Content-Type: application/json" \
-d '{
"on_cost_increase": { "action": "notify" },
"on_cost_decrease": "keep_price",
"on_out_of_stock": "zero_stock",
"on_back_in_stock": "restock",
"round_to": ".99"
}'HTTP/2 200 OK
{
"id": "rule_default",
"applies_to": "all",
"on_cost_increase": { "action": "notify" },
"on_cost_decrease": "keep_price",
"on_out_of_stock": "zero_stock",
"on_back_in_stock": "restock",
"round_to": ".99",
"updated_at": "2026-11-02T08:00:00Z"
}İstisna sil
DELETE/v1/sync_rules/{id}
Ürün yeniden varsayılan kuralı izler. rule_default'un kendisi silinemez.
Kapsamproducts:write
Yol parametreleri
idstringzorunlu- Kuralın id'si.
Hatalar
| Durum | Tür | Ne zaman |
|---|---|---|
| 409 | invalid-state | rule_default silinemez. |
curl -X DELETE "https://www.ninjabuy.com/api/v1/sync_rules/rule_9p3e" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11"HTTP/2 200 OK
{ "id": "rule_9p3e", "deleted": true }