İçeriğe geç
14 gün ücretsiz deneyin
Türkçe
Claude ile aç Bu sayfa hakkında soru sorChatGPT ile aç Bu sayfa hakkında soru sor

API’leri kullanarak Volume Pricing oluşturma

Public API aracılığıyla yeni bir Volume Pricing kuralı oluşturun; istek gövdesinin tam başvurusu dahil.

Bu belge, Public API’yi kullanarak yeni bir Volume Pricing kuralının nasıl oluşturulacağını açıklar.


Yeni bir Volume Pricing kaydı oluşturmak için aşağıdaki uç noktayı kullanın:

POST - https://wholesale.samita.io/api/v1/volume-pricings

Bu uç nokta, yeni bir Volume Pricing yapılandırması oluşturmanızı sağlar.


Tüm API isteklerinde aşağıdaki zorunlu üstbilgiler bulunmalıdır:

Üstbilgi Açıklama Zorunlu
X-SAMITA-API-KEY Wholesale uygulamasında sağlanan API anahtarı Evet
X-SAMITA-SHOP-URL xxx.myshopify.com biçiminde Shopify mağaza alan adı Evet
CONTENT-TYPE application/json olmalıdır Evet

Zorunlu üstbilgilerden biri eksikse istek reddedilir.


Volume Pricing oluşturmak için kullanılan veriler JSON biçiminde gönderilmelidir.
Örnek bir JSON yapısı bu belgenin sonunda verilmiştir.

Örnek istek JSON’u:

{
"title": "New Volume Pricing",
"status": true,
"type": "quantity",
"apply_customer": {
"type": "all",
"tags": []
},
"exclude_customer": {
"type": "none",
"tags": []
},
"apply_product": {
"type": "all",
"product_ids": [],
"product_tags": [],
"collection_ids": [],
"apply_for_variants": false
},
"exclude_product": {
"type": "none",
"product_ids": [],
"collection_ids": []
},
"discount_for_variants": [
{
"id": 8516448190631,
"duplicated": false,
"variant_pricing": true,
"from_qty": "0",
"from_amount": "0",
"to_qty": "10",
"to_amount": "0",
"discount_groups": [
{
"name": "all",
"type": "percent",
"value": "10"
}
],
"variants": [
{
"id": 46747346763943,
"duplicated": false,
"from_qty": "0",
"from_amount": "0",
"to_qty": "10",
"to_amount": "0",
"discount_groups": [
{
"name": "all",
"type": "percent",
"value": "10"
}
]
}
]
}
],
"apply_market": {
"type": "all",
"handle": []
},
"discount_method": "variant",
"discount_groups": [
{
"from_qty": "0",
"from_amount": "0",
"to_qty": "10",
"to_amount": "0",
"type": "percent",
"value": "10"
}
],
"active_date": {
"types": ["start date", "end date"],
"start_at": "2026-01-15T10:00:00",
"end_at": "2026-01-15T10:00:00"
}
}

  • Volume Pricing kaydını tanımlamak için kullanılan ad
  • Bir dize olmalıdır
  • Maksimum uzunluk: 255 karakter

  • Kaydın etkin olup olmadığını tanımlar
  • Yalnızca aşağıdaki değerleri kabul eder:
Değer Açıklama
true Fiyatlandırma kuralı etkin
false Fiyatlandırma kuralı etkin değil

Adet bazlı fiyatlandırmanın miktara mı yoksa tutara mı göre hesaplanacağını tanımlar.

Kabul edilen değerler:

  • quantity
  • amount

Hangi müşterilerin bu fiyatlandırma kuralından yararlanabileceğini tanımlar.

Yapı:

"apply_customer": {
"type": "all",
"tags": []
}

type

Kabul edilen değerler (aşağıdakilerden yalnızca biri):

  • all – Tüm müşterilere uygula
  • logged – Yalnızca giriş yapmış müşterilere uygula
  • non-logged – Yalnızca misafir müşterilere uygula
  • customer-tags – Yalnızca belirli etiketlere sahip müşterilere uygula

tags

  • Yalnızca type == customer-tags olduğunda zorunludur
  • Virgülle ayrılmış bir dizi olmalıdır
  • Örnek: ["wholesale","b2b"]

type değeri customer-tags değilse bu alan yok sayılabilir.


Belirli müşterileri fiyatlandırma kuralından hariç tutmak için kullanılır.

Yapı:

"exclude_customer": {
"type": "none",
"tags": []
}

type

  • Varsayılan değer: none
  • Kabul edilen değerler:
Değer Açıklama
none Hiçbir müşteriyi hariç tutma
customer-tags Müşterileri etiketlere göre hariç tut

tags

  • Yalnızca type == customer-tags olduğunda zorunludur
  • Virgülle ayrılmış dizi
  • Örnek: ["vip","internal"]

Fiyatlandırma kuralının hangi ürünlere uygulanacağını tanımlar.

Yapı:

"apply_product": {
"type": "all",
"product_ids": [],
"product_tags": [],
"collection_ids": [],
"apply_for_variants": false
}

type

Kabul edilen değerler:

  • all
  • products
  • collections
  • product-tags

product_ids

  • Yalnızca type == products olduğunda zorunludur
  • Virgülle ayrılmış ürün kimlikleri listesi
  • Örnek: [1,2,3]

product_tags

  • Yalnızca type == product-tags olduğunda zorunludur
  • Örnek: ["tag1","tag2"]

collection_ids

  • Yalnızca type == collections olduğunda zorunludur
  • Örnek: [1,2,3]

apply_for_variants

  • İndirimlerin varyant bazında yapılandırılıp yapılandırılamayacağını belirler
  • Kabul edilen değerler: true veya false
  • Varsayılan değer: false

Kuraldan hariç tutulacak ürünleri tanımlar.

Yapı:

"exclude_product": {
"type": "none",
"product_ids": [],
"collection_ids": []
}

type

  • Varsayılan: none
  • Kabul edilen değerler:
Değer Açıklama
none Hiçbir ürünü hariç tutma
products Belirli ürünleri hariç tut
collections Belirli koleksiyonları hariç tut

Diğer alanlar yalnızca seçilen türe bağlı olarak zorunludur.


İndirim yapılandırmasını ürün ve/veya varyant düzeyinde tanımlar.

  • apply_product.apply_for_variants == false ise bu alanı boş bırakın.
  • apply_product.apply_for_variants == true ise bu alan zorunludur.
  • Yapı, ürün yapılandırmalarından oluşan bir dizi olmalıdır.

Yapı:

"discount_for_variants": [
    {
      "id": 8516448190631,
      "duplicated": false,
      "from_qty": "0",
      "from_amount": "0",
      "to_qty": "10",
      "to_amount": "0",
      "discount_groups": [
        {
          "name": "all",
          "type": "percent",
          "value": "10"
        }
      ],
      "variant_pricing": true,
      "variants": [
        {
          "id": 46747346763943,
          "duplicated": false,
          "from_qty": "0",
          "from_amount": "0",
          "to_qty": "10",
          "to_amount": "0",
          "discount_groups": [
            {
              "name": "all",
              "type": "percent",
              "value": "10"
            }
          ]
        }
      ]
    }
]

i.1. id (zorunlu)

  • Ürün kimliği.
  • Mevcut bir ürünle eşleşmelidir.

i.2. duplicated

Ürünün birden fazla adet/tutar aralığı olup olmadığını belirtir.

Kabul edilen değerler:

  • true
  • false

Kurallar:

  • true ise: ürün birden fazla adet/tutar aralığı içerir.
  • false ise: ürünün yalnızca bir adet/tutar aralığı vardır.

i.3. from_qty / from_amount

Aralığın başlangıç adedi veya tutarı.

Kurallar:

  • İlk öğe boş olabilir (varsayılan değer 1’dir).
  • Sonraki tüm öğeler zorunludur.

i.4. to_qty / to_amount

Aralığın bitiş adedi veya tutarı.

Kurallar:

  • Boş olabilir (otomatik olarak bir sonraki öğenin from değerinin 1 eksiği olarak hesaplanır).
  • Belirtilirse bir sonraki öğenin from değerinden küçük olmalıdır.

Örnekler:

  • Öğe 1: from:0 – to:10 → Öğe 2: from:11 – to:20
  • Öğe 1: from:0 – to:boş → Öğe 2: from:10 – to:boş
  • Öğe 1: from:boş – to:10 → Öğe 2: from:11 – to:boş

i.5. discount_groups (ürün düzeyi)

Her adet/tutar aralığı için indirim yapılandırmasını ürün düzeyinde tanımlar.

  • variant_pricing == false ise zorunludur.
  • variant_pricing == true ise boş bırakın.
  • Yapılandırılan apply_customer.type değerine karşılık gelen indirim nesnelerinden oluşan bir dizi olmalıdır.

Yapı:

{
"name": "all",
"type": "percent",
"value": "10"
}

+ name

Kabul edilen değerler:

  • all (apply_customer.type == all ise)
  • logged (apply_customer.type == logged ise)
  • non-logged (apply_customer.type == non-logged ise)

Başka bir değer belirtilirse müşteri etiketi olarak değerlendirilir ve apply_customer.tags içinde tanımlanan etiketlerden biriyle eşleşmelidir.

+ type

İndirim türünü tanımlar.

Kabul edilen değerler:

  • percent – Yüzde indirimi
  • amount – Fiyattan düşülen sabit tutar
  • fixed-amount – Nihai sabit fiyat

+ value

  • Bir sayı olmalıdır
  • 0’dan büyük olmalıdır
  • type == percent ise değer 100’den küçük olmalıdır

i.6. variant_pricing

İndirimin varyant düzeyinde uygulanıp uygulanmadığını belirtir.

Kabul edilen değerler:

  • true
  • false

i.7. variants

Varyant düzeyinde indirim yapılandırmasını tanımlar.

  • variant_pricing == true ise zorunludur
  • variant_pricing == false ise boş bırakın
  • Varyant yapılandırmalarından oluşan bir dizi olmalıdır

Yapı:

{
"id": 46747346763943,
"duplicated": false,
"from_qty": "0",
"from_amount": "0",
"to_qty": "10",
"to_amount": "0",
"discount_groups": [
{
"name": "all",
"type": "percent",
"value": "10"
}
]
}

+ id (zorunlu)

  • Varyant kimliği.

+ duplicate

Varyantın birden fazla adet/tutar aralığı olup olmadığını belirtir.

Kabul edilen değerler:

  • true
  • false

Kurallar:

  • true ise: varyant birden fazla aralık içerir.
  • false ise: varyantın yalnızca bir aralığı vardır.

+ from_qty / from_amount

Başlangıç adedi veya tutarı.

Kurallar:

  • İlk öğe boş olabilir (varsayılan değer 1’dir).
  • Sonraki tüm öğeler zorunludur.

+ to_qty / to_amount

Bitiş adedi veya tutarı.

Kurallar:

  • Boş olabilir (otomatik olarak bir sonraki öğenin from değerinin 1 eksiği olarak hesaplanır).
  • Belirtilirse bir sonraki öğenin from değerinden küçük olmalıdır.

Örnekler:

  • Öğe 1: from:0 – to:10 → Öğe 2: from:11 – to:20
  • Öğe 1: from:0 – to:boş → Öğe 2: from:10 – to:boş
  • Öğe 1: from:boş – to:10 → Öğe 2: from:11 – to:boş

+ discount_groups (varyant düzeyi)

Her adet/tutar aralığı için indirim yapılandırmasını varyant düzeyinde tanımlar.

Kurallar:

  • apply_customer.type şunlardan biriyse:
    • all
    • logged
    • non-logged
      → Dizi yalnızca bir öğe içermelidir.
  • If apply_customer.type == customer-tags
    → Dizi birden fazla öğe içermelidir (her müşteri etiketi için bir tane).

name

Kabul edilen değerler:

  • all
  • logged
  • non-logged

Başka bir değer belirtilirse müşteri etiketi olarak değerlendirilir ve apply_customer.tags içinde tanımlanan bir etiketle eşleşmelidir.

type

Kabul edilen değerler:

  • percent
  • amount
  • fixed-amount

value

  • Bir sayı olmalıdır
  • 0’dan büyük olmalıdır
  • type == percent ise değer 100’den küçük olmalıdır

Kuralın hangi Shopify pazarlarına uygulanacağını tanımlar.

Yapı:

"apply_market": {
"type": "all",
"handle": []
}

type

Kabul edilen değerler:

  • all
  • specific-market

handle

  • Yalnızca type == specific-market olduğunda zorunludur
  • Virgülle ayrılmış pazar handle listesi
  • Örnek: ["japan","us"]

Pazar handle değerini almak için lütfen şu adımları izleyin:

  • Shopify yönetici panelinde Markets bölümüne gidin > More actions seçeneğine tıklayın > Edit Market handles seçeneğini belirleyin > orada görünen handle değerini kopyalayın:


Kabul edilen değerler:

  • variant → Same Variant
  • across_group → Mix Variants
  • within_each_group → Mix Products

Bunlar uygulamada bulunan seçeneklere karşılık gelir.

Örnek:

"discount_method": "variant",

Adet/tutar aralıklarını ve indirim değerlerini tanımlar.

from_qty / from_amount

to_qty / to_amount

Yukarıda açıklananlarla aynı doğrulama kuralları.

Kabul edilen “type” değerleri:

  • percent
  • amount
  • fixed-amount

value:

  • 0’dan büyük olmalıdır
  • percent ise → 100’den küçük olmalıdır

Yapı:

"discount_groups": [
{
"from_qty": "0",
"from_amount": "0",
"to_qty": "10",
"to_amount": "0",
"type": "percent",
"value": "10"
}
],

İndirim türleri ve değerleri için kurallar yukarıda açıklananlarla aynıdır.


Fiyatlandırma kuralının başlangıç ve bitiş zamanını yapılandırmak için kullanılır.

Yapı:

"active_date": {
"types": ["start_date", "end_date"],
"start_at": "2026-01-15 10:00:00",
"end_at": "2026-01-15 10:00:00"
}

types

  • İsteğe bağlı
  • Kabul edilen değerler: start_date, end_date
  • Biri veya her ikisi virgülle ayrılarak eklenebilir
  • Örnek: ["start_date","end_date"]

start_at

  • types içinde start_date varsa zorunludur
  • Biçim: YYYY-MM-DD HH:MM:SS

end_at

  • types içinde end_date varsa zorunludur
  • Biçim: YYYY-MM-DD HH:MM:SS

401 – Unauthorized

Olası nedenler:

  • Mağaza URL’si eksik
  • API anahtarı eksik
  • Mağaza URL’si geçersiz
  • API anahtarı geçersiz
  • API anahtarı mağazayla eşleşmiyor

403 – This action is unauthorized

  • API anahtarında Create izni yok
  • Her API anahtarı şu izinlere sahip olabilir: View, Create, Update, Delete
  • Bu API, Create izni gerektirir
  • Belirtilen bir kimlik mevcut değilse de döndürülür

429 – Too Many Requests

  • Hız sınırı aşıldı
  • İzin verilen maksimum:
Sınır Değer
İstek sıklığı 5 dakikada 1 istek
Günlük sınır Günde 50 istek

200 – API Success

  • Volume Pricing kaydı başarıyla oluşturuldu
  • Yanıt JSON biçiminde döndürülür
{
"id": 1,
"title": "New Volume Pricing",
"status": true,
"type": "quantity",
"apply_customer": {
"type": "all",
"tags": []
},
"exclude_customer": {
"type": "none",
"tags": []
},
"apply_product": {
"type": "all",
"product_ids": [],
"product_tags": [],
"collection_ids": [],
"apply_for_variants": false
},
"exclude_product": {
"type": "none",
"product_ids": [],
"collection_ids": []
},
"discount_for_variants": [
{
"id": 8516448190631,
"duplicated": false,
"variant_pricing": true,
"from_qty": "0",
"from_amount": "0",
"to_qty": "10",
"to_amount": "0",
"discount_groups": [
{
"name": "all",
"type": "percent",
"value": "10"
}
],
"variants": [
{
"id": 46747346763943,
"duplicated": false,
"from_qty": "0",
"from_amount": "0",
"to_qty": "10",
"to_amount": "0",
"discount_groups": [
{
"name": "all",
"type": "percent",
"value": "10"
}
]
}
]
}
],
"apply_market": {
"type": "all",
"handle": []
},
"discount_method": "variant",
"discount_groups": [
{
"from_qty": "0",
"from_amount": "0",
"to_qty": "10",
"to_amount": "0",
"type": "percent",
"value": "10"
}
],
"active_date": {
"types": [],
"start_at": "",
"end_at": ""
},
"created_at": "2026-01-15T10:00:00",
"updated_at": "2026-01-15T10:00:00"
}

Bu sayfa yardımcı oldu mu?