Katalog API'si2026-11Önizleme
Ürünler
Bir içe aktarmadan kaydettiğiniz; başlığınız, fiyatlarınız ve satıldığı mağazalarla birlikte bir ilan.
- Ürünler Shopify'a gönderilir. Shopify mağazanızın satış yaptığı pazaryerlerinden gelen siparişler de bize Shopify üzerinden ulaşır: Mağaza bağla.
- Bir WooCommerce ya da Wix mağazası kendi ürünlerini tutar ve siparişlerini Sipariş oluştur ile gönderir.
Product nesnesi
idstring- prd_ ile başlar.
titlestring- Başlığınız. Satıcınınki içe aktarmada kalır.
statusstring- active ya da paused (sizin tarafınızdan ya da maliyet çok yükseldiğinde veya satıcının stoğu bittiğinde bir senkronizasyon kuralı tarafından).
sourceobject- Pazaryeri, ilan bağlantısı ve Çin'deki satıcı.
options[]array- Mağazanızın gösterdiği şekliyle en fazla üç seçenek adı.
price_range, cost_rangeobject- Varyantlar genelinde sizin ve satıcının fiyatları.
channels[]array- Nerede listelendiği: mağaza, oradaki kendi ürün id'si ve oradaki durumu.
syncobject- İzlediği senkronizasyon kuralı ve ilanı en son ne zaman okuduğumuz.
importstring- Kaydedildiği içe aktarma.
{
"id": "prd_8f2k",
"title": "Heavyweight Washed Hoodie",
"status": "active",
"source": {
"marketplace": "weidian",
"url": "https://weidian.com/item.html?itemID=7750970856",
"seller": "Ruoyi Studio"
},
"options": ["Color", "Size"],
"variants_count": 6,
"price_range": {
"min": { "amount": "49.99", "currency": "USD" },
"max": { "amount": "54.99", "currency": "USD" }
},
"cost_range": {
"min": { "amount": "38.00", "currency": "CNY" },
"max": { "amount": "42.00", "currency": "CNY" }
},
"channels": [
{
"channel": "shopify",
"shop": "acme-goods.myshopify.com",
"external_id": "gid://shopify/Product/8812042",
"status": "draft",
"pushed_at": "2026-11-04T09:20:03Z"
}
],
"sync": {
"rule": "rule_default",
"last_checked_at": "2026-11-04T09:12:40Z"
},
"import": "imp_2c9d",
"created_at": "2026-11-04T09:20:01Z",
"updated_at": "2026-11-04T09:20:03Z"
}Ürünleri listele
GET/v1/products
Ürünleriniz, en yenisi önce.
Kapsamproducts:read
Sorgu parametreleri
statusstring- İsteğe bağlı. active ya da paused.
channelstring- İsteğe bağlı. Orada listelenenler için shopify.
changed_sincestring- İsteğe bağlı. Bir zaman: yalnızca o zamandan sonra maliyeti ya da stoğu değişen ürünler.
limit, cursor- Pagination
curl "https://www.ninjabuy.com/api/v1/products?status=active&limit=2" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11"HTTP/2 200 OK
{
"data": [
{
"id": "prd_8f2k",
"title": "Heavyweight Washed Hoodie",
"status": "active",
"variants_count": 6
},
{
"id": "prd_1x0a",
"title": "Canvas Tote",
"status": "active",
"variants_count": 3
}
],
"has_more": true,
"cursor": "c_1x0a"
}Ürünü getir
GET/v1/products/{id}
Kaynağı, kanalları ve senkronizasyon durumuyla tek bir ürün. Varyantlarının kendi rotası vardır.
Kapsamproducts:read
Yol parametreleri
idstringzorunlu- Ürünün id'si.
Hatalar
| Durum | Tür | Ne zaman |
|---|---|---|
| 404 | not-found | Bu hesapta böyle bir ürün yok. |
curl "https://www.ninjabuy.com/api/v1/products/prd_8f2k" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11"HTTP/2 200 OK
{
"id": "prd_8f2k",
"title": "Heavyweight Washed Hoodie",
"status": "active",
"source": {
"marketplace": "weidian",
"url": "https://weidian.com/item.html?itemID=7750970856",
"seller": "Ruoyi Studio"
},
"options": ["Color", "Size"],
"variants_count": 6,
"price_range": {
"min": { "amount": "49.99", "currency": "USD" },
"max": { "amount": "54.99", "currency": "USD" }
},
"cost_range": {
"min": { "amount": "38.00", "currency": "CNY" },
"max": { "amount": "42.00", "currency": "CNY" }
},
"channels": [
{
"channel": "shopify",
"shop": "acme-goods.myshopify.com",
"external_id": "gid://shopify/Product/8812042",
"status": "draft",
"pushed_at": "2026-11-04T09:20:03Z"
}
],
"sync": {
"rule": "rule_default",
"last_checked_at": "2026-11-04T09:12:40Z"
},
"import": "imp_2c9d",
"created_at": "2026-11-04T09:20:01Z",
"updated_at": "2026-11-04T09:20:03Z"
}Ürünü güncelle
PATCH/v1/products/{id}
Başlığı ya da açıklamayı değiştirin veya duraklatıp sürdürün. Yalnızca değişeni gönderin. Fiyatlar varyant bazındadır (Varyantlar); gönderilmiş bir ürün, değişikliği bir sonraki gönderimde mağazanıza taşır.
Kapsamproducts:write
Yol parametreleri
idstringzorunlu- Ürünün id'si.
Gövde
titlestring- İsteğe bağlı.
descriptionstring- İsteğe bağlı. Mağazanızın gösterdiği HTML.
statusstring- İsteğe bağlı. active ya da paused. Paused, kanallarınızda stoğu 0 yapar.
sync_rulestring- İsteğe bağlı. Bir senkronizasyon kuralı id'si; null ise varsayılan kural.
Hatalar
| Durum | Tür | Ne zaman |
|---|---|---|
| 404 | not-found | Bu hesapta böyle bir ürün yok. |
curl -X PATCH "https://www.ninjabuy.com/api/v1/products/prd_8f2k" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11" \
-H "Content-Type: application/json" \
-d '{ "status": "paused" }'HTTP/2 200 OK
{
"id": "prd_8f2k",
"title": "Heavyweight Washed Hoodie",
"status": "paused",
"source": {
"marketplace": "weidian",
"url": "https://weidian.com/item.html?itemID=7750970856",
"seller": "Ruoyi Studio"
},
"options": ["Color", "Size"],
"variants_count": 6,
"price_range": {
"min": { "amount": "49.99", "currency": "USD" },
"max": { "amount": "54.99", "currency": "USD" }
},
"cost_range": {
"min": { "amount": "38.00", "currency": "CNY" },
"max": { "amount": "42.00", "currency": "CNY" }
},
"channels": [
{
"channel": "shopify",
"shop": "acme-goods.myshopify.com",
"external_id": "gid://shopify/Product/8812042",
"status": "draft",
"pushed_at": "2026-11-04T09:20:03Z"
}
],
"sync": {
"rule": "rule_default",
"last_checked_at": "2026-11-04T09:12:40Z"
},
"import": "imp_2c9d",
"created_at": "2026-11-04T09:20:01Z",
"updated_at": "2026-11-04T09:20:03Z"
}Shopify'a gönder
POST/v1/products/{id}/push
Ürünü bağlı Shopify mağazanızda listeler: tek bir Shopify ürünü, tuttuğunuz her SKU için bir varyant, fotoğrafları ve her varyant Fulfilled by NinjaBuy konumunda stoklu; böylece siparişleri bize gelir.
- İlk gönderim onu taslak olarak oluşturur: başlık ve fotoğraflar bir Çin pazaryerinden geldi; alıcılarınızdan önce siz okuyun, sonra Shopify'da yayımlayın.
- Yeniden göndermek aynı Shopify ürününü günceller: fiyatlar ve stok yeniden ayarlanır, çıkardığınız varyantlar kaldırılır. Durum, başlık, açıklama ve fotoğraflar, yenilerini göndermediğiniz sürece Shopify'da bıraktığınız gibi kalır.
- Stok, satıcının sayısıdır ve en fazla 100'dür: talep geldikçe satın aldığımız için Shopify'ın tükendi göstermeden önce kaç sipariş alacağını belirler.
- Fiyatlar US$ cinsinden olduğu için mağazanız US$ ile satış yapmalıdır. Tükenmiş varyantlar atlanır ve skipped[] içinde belirtilir.
Kapsamproducts:write
Yol parametreleri
idstringzorunlu- Ürünün id'si.
Gövde
shopstring- Hangi bağlı mağaza; acme-goods.myshopify.com biçiminde. Yalnızca birden fazla bağladıysanız gerekir.
title, descriptionstring- İsteğe bağlı. Yalnızca siz gönderdiğinizde Shopify'a gönderilir.
Hatalar
| Durum | Tür | Ne zaman |
|---|---|---|
| 409 | no-linked-store | Bu hesaba bağlı bir Shopify mağazası yok ya da birden fazla var ve shop eksik. |
| 409 | store-not-ready | Mağazanın erişim süresi doldu ya da konumumuz henüz kurulmadı: Shopify'da NinjaBuy uygulamasını bir kez açın. |
| 422 | store-currency | Mağaza US$ ile satış yapmıyor. |
| 422 | too-many-options | İlanın üçten fazla seçeneği var; Shopify üç tane kabul eder. |
| 422 | unprocessable | Tüm varyantlar tükenmiş ya da Shopify bir alanı reddetmiş; detail onun ifadesini aktarır. |
curl -X POST "https://www.ninjabuy.com/api/v1/products/prd_8f2k/push" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{ "shop": "acme-goods.myshopify.com" }'HTTP/2 200 OK
{
"channel": "shopify",
"shop": "acme-goods.myshopify.com",
"external_id": "gid://shopify/Product/8812042",
"status": "draft",
"created": true,
"variants": 5,
"skipped": [{ "sku": "5187209555", "reason": "sold_out" }],
"admin_url": "https://admin.shopify.com/store/acme-goods/products/8812042"
}Ürün sil
DELETE/v1/products/{id}
Senkronizasyonunu durdurur ve kanallarınızda stoğunu 0 yapar; Shopify ürünü arşivlemeniz için kalır. Zaten verilmiş siparişler yine gönderilir.
Kapsamproducts:write
Yol parametreleri
idstringzorunlu- Ürünün id'si.
Hatalar
| Durum | Tür | Ne zaman |
|---|---|---|
| 404 | not-found | Bu hesapta böyle bir ürün yok. |
curl -X DELETE "https://www.ninjabuy.com/api/v1/products/prd_8f2k" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11"HTTP/2 200 OK
{ "id": "prd_8f2k", "deleted": true }