API’lerle toptan fiyatlandırma oluşturma
Public API ile istek gövdesi referansının tamamı dahil yeni bir Wholesale Pricing kuralı oluşturun.
Bu belgede Public API ile yeni bir Wholesale Pricing kuralının nasıl oluşturulacağı açıklanmaktadır.
1. Uç nokta
Bölüm başlığı “1. Uç nokta”Yeni bir Wholesale Pricing kaydı oluşturmak için aşağıdaki uç noktayı kullanın:
POST - https://wholesale.samita.io/api/v1/wholesale-pricings2. İstek üstbilgileri
Bölüm başlığı “2. İstek üstbilgileri”Tüm API istekleri aşağıdaki zorunlu üstbilgileri içermelidir:
| Üstbilgi | Açıklama | Zorunlu |
|---|---|---|
X-SAMITA-API-KEY |
Wholesale uygulamasında verilen 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.
3. İstek gövdesi
Bölüm başlığı “3. İstek gövdesi”a. Genel biçim
Bölüm başlığı “a. Genel biçim”Wholesale 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 Wholesale Pricing", "status": true, "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, "variant_pricing": true, "variants": [ { "id": 46747346763943, "discount_groups": [ { "name": "all", "type": "percent", "value": "10" } ] } ] } ], "apply_market": { "type": "all", "handle": [] }, "discount_group": { "type": "percent", "value": "10" }, "active_date": { "types": ["start_date", "end_date"], "start_at": "2026-01-15 10:00:00", "end_at": "2026-01-15 10:00:00" }}b. title (Zorunlu)
Bölüm başlığı “b. title (Zorunlu)”- Wholesale Pricing kaydını tanımlamak için kullanılan ad
- Metin (string) olmalıdır
- En fazla uzunluk: 255 karakter
c. status (Zorunlu)
Bölüm başlığı “c. status (Zorunlu)”- Kaydın etkin olup olmadığını belirler
- Yalnızca şu değerleri kabul eder:
| Değer | Açıklama |
|---|---|
true |
Fiyatlandırma kuralı etkin |
false |
Fiyatlandırma kuralı etkin değil |
d. apply_customer (Zorunlu)
Bölüm başlığı “d. apply_customer (Zorunlu)”Bu fiyatlandırma kuralından hangi müşterilerin yararlanabileceğini belirler.
Yapı:
"apply_customer": { "type": "all", "tags": []}type
Kabul edilen değerler (aşağıdakilerden yalnızca biri):
all– Tüm müşterilere uygulalogged– Yalnızca oturum açmış müşterilere uygulanon-logged– Yalnızca misafir müşterilere uygulacustomer-tags– Yalnızca belirli etiketlere sahip müşterilere uygula
tags
- Yalnızca
type == customer-tagsolduğunda zorunludur - Virgülle ayrılmış bir dizi olmalıdır
- Örnek:
["wholesale","b2b"]
Tür customer-tags değilse bu alan yok sayılabilir.
e. exclude_customer
Bölüm başlığı “e. exclude_customer”Belirli müşterileri fiyatlandırma kuralının dışında 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 etiketlerine göre hariç tut |
tags
- Yalnızca
type == customer-tagsolduğunda zorunludur - Virgülle ayrılmış dizi
- Örnek:
["vip","wholesale"]
f. apply_product (Zorunlu)
Bölüm başlığı “f. apply_product (Zorunlu)”Fiyatlandırma kuralının hangi ürünlere uygulanacağını belirler.
Yapı:
"apply_product": { "type": "all", "product_ids": [], "product_tags": [], "collection_ids": [], "apply_for_variants": false}type
Kabul edilen değerler:
allproductscollectionsproduct-tags
product_ids
- Yalnızca
type == productsolduğunda zorunludur - Virgülle ayrılmış ürün kimlikleri listesi
- Örnek:
[1,2,3]
product_tags
- Yalnızca
type == product-tagsolduğunda zorunludur - Örnek:
["tag1","tag2"]
collection_ids
- Yalnızca
type == collectionsolduğ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:
trueveyafalse - Varsayılan değer:
false
g. exclude_product
Bölüm başlığı “g. exclude_product”Kuralın dışında tutulacak ürünleri belirler.
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.
h. discount_for_variants
Bölüm başlığı “h. discount_for_variants”İndirimler varyant bazında uygulanırken kullanılır.
apply_product.apply_for_variants == falseise boş olmalıdırapply_product.apply_for_variants == trueise zorunludur
Örnek yapı:
"discount_for_variants": [ { "id": 8516448190631, "variant_pricing": true, "variants": [ { "id": 46747346763943, "discount_groups": [ { "name": "all", "type": "percent", "value": "10" } ] } ] }]Yapı:
- Ürün dizisi
- Her ürün şunları içerir:
id– Ürün kimliğivariant_pricing–trueolmalıdırvariants– Varyant dizisi
Her varyant şunları içerir:
id– Varyant kimliğidiscount_groups– İndirim ayarları dizisi
discount_groups kuralları
apply_customer.typedeğeriall,loggedveyanon-loggedise:
→ Dizide yalnızca bir öğeye izin verilirapply_customer.type == customer-tagsise:
→ Birden fazla indirim grubu girilebilir
discount_groups içindeki alanlar:
| Alan | Açıklama |
|---|---|
name |
Müşteri türüyle veya müşteri etiketiyle eşleşmelidir |
type |
İndirim türü |
value |
İndirim değeri |
Kabul edilen indirim türleri:
percentamountfixed-amount
Değer kuralları:
- 0’dan büyük bir sayı olmalıdır
- Tür
percentise değer 100’den küçük olmalıdır
i. apply_market (Zorunlu)
Bölüm başlığı “i. apply_market (Zorunlu)”Kuralın hangi Shopify pazarlarına uygulanacağını belirler.
Yapı:
"apply_market": { "type": "all", "handle": []}type
Kabul edilen değerler:
allspecific-market
handle
- Yalnızca
type == specific-marketolduğunda zorunludur - Virgülle ayrılmış pazar tanıtıcıları (handle) listesi
- Örnek:
["japan","us"]
Pazar tanıtıcısını (handle) almak için şu adımları izleyin:
- Shopify yönetici panelinde Pazarlar bölümüne gidin > Diğer işlemler’e tıklayın > Pazar tanıtıcılarını düzenle’yi seçin > Orada görünen tanıtıcıyı kopyalayın:


j. discount_group
Bölüm başlığı “j. discount_group”İndirim varyant bazında yapılandırılmadığında kullanılır.
Şu durumlarda zorunludur:
apply_product.typedeğeriproductsdeğilse VEYAapply_product.type == productsolup varyantlar uygulanmıyorsa
Yapı:
"discount_group": { "type": "percent", "value": "10"}İndirim türleri ve değerleri için kurallar yukarıda açıklananlarla aynıdır.
k. active_date
Bölüm başlığı “k. active_date”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 ikisi birlikte, virgülle ayrılarak girilebilir
- Örnek:
["start_date","end_date"]
start_at
typesiçindestart_datevarsa zorunludur- Biçim:
YYYY-MM-DD HH:MM:SS
end_at
typesiçindeend_datevarsa zorunludur- Biçim:
YYYY-MM-DD HH:MM:SS
4. API yanıtı
Bölüm başlığı “4. API yanıtı”a. Hata yanıtları
Bölüm başlığı “a. Hata yanıtları”401 – Yetkisiz
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 – Bu işlem için yetki yok
- API anahtarının Create izni yok
- Her API anahtarı şu izinlere sahip olabilir: View, Create, Update, Delete
- Bu API için Create izni gerekir
- Girilen kimlik mevcut olmadığında da döndürülür
429 – Çok fazla istek
- İstek sınırı aşıldı
- İzin verilen üst sınır:
| Sınır | Değer |
|---|---|
| İstek sıklığı | 5 dakikada 1 istek |
| Günlük sınır | Günde 50 istek |
b. Başarılı yanıt
Bölüm başlığı “b. Başarılı yanıt”200 – API başarılı
- Wholesale Pricing kaydı başarıyla oluşturuldu
- Yanıt JSON biçiminde döndürülür
{ "id": 1, "title": "New Wholesale Pricing", "status": true, "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, "variant_pricing": true, "variants": [ { "id": 46747346763943, "discount_groups": [ { "name": "all", "type": "percent", "value": "10" } ] } ] } ], "apply_market": { "type": "all", "handle": [] }, "discount_group": { "type": "percent", "value": "10" }, "active_date": { "types": ["start_date", "end_date"], "start_at": "2026-01-15 10:00:00", "end_at": "2026-01-15 10:00:00" }, "created_at": "2026-01-15T10:00:00", "updated_at": "2026-01-15T10:00:00"}