İç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’i güncelleme/düzenleme

Public API aracılığıyla mevcut bir Volume Pricing kuralını güncelleyin; istek gövdesinin tam başvurusu dahil.

Bu belge, Public API’yi kullanarak mevcut bir Volume Pricing kuralının nasıl güncelleneceğini açıklar.


Mevcut bir Volume Pricing kaydını güncellemek için aşağıdaki uç noktayı kullanın:

PUT https://wholesale.samita.io/api/v1/volume-pricings/{id}
  • {id}, Volume Pricing kaydının kimliğidir
  • Kimlik, uygulama arayüzünden alınabilir (“#” simgesi olmadan)
  • Örnek referans:

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

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’i güncellemek için kullanılan veriler JSON biçiminde gönderilmelidir. Örnek bir JSON yapısı bu belgenin sonunda verilmiştir.

_ İstekte yalnızca güncellenmesi gereken alanlar zorunludur. Create API yönteminde olduğu gibi tüm alanları göndermek zorunlu değildir.

_ Belirtilmeyen alanlar değişmeden kalır

Ö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,
"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"
}
]
}
]
}
],

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: 0–10 → Öğe 2: 11–20
  • Öğe 1: 0–boş → Öğe 2: 10–boş
  • Öğe 1: boş–10 → Öğe 2: 11–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: 0–10 → Öğe 2: 11–20
  • Öğe 1: 0–boş → Öğe 2: 10–boş
  • Öğe 1: boş–10 → Öğe 2: 11–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"]

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 Update izni yok
  • Her API anahtarı şu izinlere sahip olabilir: View, Create, Update, Delete
  • Bu API, Update izni gerektirir
  • Belirtilen kimlik mevcut değilse de döndürülür

429 – Too Many Requests

Hız sınırı aşıldı:

  • 5 dakikada en fazla 1 istek
  • Günde en fazla 50 istek

200 – API Success

  • Volume Pricing kaydı başarıyla güncellendi
  • Yanıt JSON biçiminde döndürülür

Örnek yanıt JSON’u:

{
"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?