Groothandelsprijzen aanmaken met API's
Maak een nieuwe Wholesale Pricing-regel aan via de Public API, inclusief de volledige referentie voor de request body.
In dit document lees je hoe je een nieuwe Wholesale Pricing-regel aanmaakt met de Public API.
1. Endpoint
Section titled “1. Endpoint”Gebruik het volgende endpoint om een nieuw Wholesale Pricing-record aan te maken:
POST - https://wholesale.samita.io/api/v1/wholesale-pricings2. Request-headers
Section titled “2. Request-headers”Alle API-verzoeken moeten de volgende vereiste headers bevatten:
| Header | Beschrijving | Vereist |
|---|---|---|
X-SAMITA-API-KEY |
API-sleutel uit de Wholesale-app | Ja |
X-SAMITA-SHOP-URL |
Shopify-shopdomein in de notatie xxx.myshopify.com | Ja |
CONTENT-TYPE |
Moet application/json zijn |
Ja |
Als een vereiste header ontbreekt, wordt het verzoek geweigerd.
3. Request body
Section titled “3. Request body”a. Algemene indeling
Section titled “a. Algemene indeling”De gegevens voor het aanmaken van Wholesale Pricing moeten in JSON-indeling worden verzonden.
Aan het einde van dit document vind je een voorbeeld van een JSON-structuur.
Voorbeeld van request-JSON:
{ "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 (vereist)
Section titled “b. title (vereist)”- De naam waarmee het Wholesale Pricing-record wordt geïdentificeerd
- Moet een string zijn
- Maximale lengte: 255 tekens
c. status (vereist)
Section titled “c. status (vereist)”- Bepaalt of het record actief is of niet
- Accepteert alleen de volgende waarden:
| Waarde | Beschrijving |
|---|---|
true |
Prijsregel is actief |
false |
Prijsregel is inactief |
d. apply_customer (vereist)
Section titled “d. apply_customer (vereist)”Bepaalt welke klanten in aanmerking komen voor deze prijsregel.
Structuur:
"apply_customer": { "type": "all", "tags": []}type
Geldige waarden (kies er één):
all– Toepassen op alle klantenlogged– Alleen toepassen op ingelogde klantennon-logged– Alleen toepassen op gastklantencustomer-tags– Alleen toepassen op klanten met specifieke tags
tags
- Alleen vereist wanneer
type == customer-tags - Moet een array met door komma’s gescheiden waarden zijn
- Voorbeeld:
["wholesale","b2b"]
Als het type niet customer-tags is, kun je dit veld negeren.
e. exclude_customer
Section titled “e. exclude_customer”Wordt gebruikt om specifieke klanten uit te sluiten van de prijsregel.
Structuur:
"exclude_customer": { "type": "none", "tags": []}type
- Standaardwaarde:
none - Geldige waarden:
| Waarde | Beschrijving |
|---|---|
none |
Geen klanten uitsluiten |
customer-tags |
Klanten uitsluiten op basis van tags |
tags
- Alleen vereist wanneer
type == customer-tags - Array met door komma’s gescheiden waarden
- Voorbeeld:
["vip","wholesale"]
f. apply_product (vereist)
Section titled “f. apply_product (vereist)”Bepaalt op welke producten de prijsregel van toepassing is.
Structuur:
"apply_product": { "type": "all", "product_ids": [], "product_tags": [], "collection_ids": [], "apply_for_variants": false}type
Geldige waarden:
allproductscollectionsproduct-tags
product_ids
- Alleen vereist wanneer
type == products - Door komma’s gescheiden lijst met product-ID’s
- Voorbeeld:
[1,2,3]
product_tags
- Alleen vereist wanneer
type == product-tags - Voorbeeld:
["tag1","tag2"]
collection_ids
- Alleen vereist wanneer
type == collections - Voorbeeld:
[1,2,3]
apply_for_variants
- Bepaalt of kortingen per variant kunnen worden ingesteld
- Geldige waarden:
trueoffalse - Standaardwaarde:
false
g. exclude_product
Section titled “g. exclude_product”Bepaalt welke producten van de regel worden uitgesloten.
Structuur:
"exclude_product": { "type": "none", "product_ids": [], "collection_ids": []}type
- Standaard:
none - Geldige waarden:
| Waarde | Beschrijving |
|---|---|
none |
Geen producten uitsluiten |
products |
Specifieke producten uitsluiten |
collections |
Specifieke collecties uitsluiten |
Andere velden zijn alleen vereist, afhankelijk van het geselecteerde type.
h. discount_for_variants
Section titled “h. discount_for_variants”Wordt gebruikt wanneer kortingen per variant worden toegepast.
- Moet leeg zijn als
apply_product.apply_for_variants == false - Vereist wanneer
apply_product.apply_for_variants == true
Voorbeeldstructuur:
"discount_for_variants": [ { "id": 8516448190631, "variant_pricing": true, "variants": [ { "id": 46747346763943, "discount_groups": [ { "name": "all", "type": "percent", "value": "10" } ] } ] }]Structuur:
- Array van producten
- Elk product bevat:
id– Product-IDvariant_pricing– Moettruezijnvariants– Array van varianten
Elke variant bevat:
id– Variant-IDdiscount_groups– Array met kortingsinstellingen
Regels voor discount_groups
- Als
apply_customer.typegelijk is aanall,loggedofnon-logged:
→ Is slechts één item toegestaan in de array - Als
apply_customer.type == customer-tags:
→ Er mogen meerdere kortingsgroepen worden opgegeven
Velden binnen discount_groups:
| Veld | Beschrijving |
|---|---|
name |
Moet overeenkomen met het klanttype of de klanttag |
type |
Kortingstype |
value |
Kortingswaarde |
Geldige kortingstypen:
percentamountfixed-amount
Regels voor de waarde:
- Moet een getal groter dan 0 zijn
- Als het type
percentis, moet de waarde kleiner dan 100 zijn
i. apply_market (vereist)
Section titled “i. apply_market (vereist)”Bepaalt voor welke Shopify-markten de regel geldt.
Structuur:
"apply_market": { "type": "all", "handle": []}type
Geldige waarden:
allspecific-market
handle
- Alleen vereist wanneer
type == specific-market - Door komma’s gescheiden lijst met markt-handles
- Voorbeeld:
["japan","us"]
Zo vind je de markt-handle:
- Ga in het Shopify-beheer naar Markten > klik op Meer acties > kies Markt-handles bewerken > kopieer de handle die daar staat:


j. discount_group
Section titled “j. discount_group”Wordt gebruikt wanneer de korting niet per variant is ingesteld.
Vereist wanneer:
apply_product.typenietproductsis, OFapply_product.type == productsEN er geen varianten worden toegepast
Structuur:
"discount_group": { "type": "percent", "value": "10"}Dezelfde regels als hierboven voor kortingstypen en waarden gelden.
k. active_date
Section titled “k. active_date”Wordt gebruikt om het start- en eindtijdstip van de prijsregel in te stellen.
Structuur:
"active_date": { "types": ["start_date", "end_date"], "start_at": "2026-01-15 10:00:00", "end_at": "2026-01-15 10:00:00"}types
- Optioneel
- Geldige waarden:
start_date,end_date - Kan één of beide waarden bevatten, gescheiden door een komma
- Voorbeeld:
["start_date","end_date"]
start_at
- Vereist als
typesstart_datebevat - Notatie:
YYYY-MM-DD HH:MM:SS
end_at
- Vereist als
typesend_datebevat - Notatie:
YYYY-MM-DD HH:MM:SS
4. API-respons
Section titled “4. API-respons”a. Foutresponsen
Section titled “a. Foutresponsen”401 – Unauthorized
Mogelijke oorzaken:
- Shop-URL ontbreekt
- API-sleutel ontbreekt
- Ongeldige shop-URL
- Ongeldige API-sleutel
- API-sleutel hoort niet bij de shop
403 – This action is unauthorized
- De API-sleutel heeft geen Create-recht
- Elke API-sleutel kan de rechten View, Create, Update en Delete hebben
- Voor deze API is het recht Create vereist
- Wordt ook teruggegeven wanneer een opgegeven ID niet bestaat
429 – Too Many Requests
- Limiet voor aantal verzoeken overschreden
- Maximaal toegestaan:
| Limiet | Waarde |
|---|---|
| Frequentie | 1 verzoek per 5 minuten |
| Daglimiet | 50 verzoeken per dag |
b. Succesrespons
Section titled “b. Succesrespons”200 – API Success
- Wholesale Pricing-record is aangemaakt
- Respons wordt teruggegeven in JSON-indeling
{ "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"}