Ga naar inhoud
14 dagen gratis proberen
Nederlands
Openen in Claude Stel vragen over deze paginaOpenen in ChatGPT Stel vragen over deze pagina

Volume Pricing bijwerken of bewerken met API's

Werk een bestaande Volume Pricing-regel bij via de Public API, inclusief de volledige referentie voor de request body.

Dit document legt uit hoe je een bestaande Volume Pricing-regel bijwerkt met de Public API.


Gebruik het volgende endpoint om een bestaand Volume Pricing-record bij te werken:

PUT https://wholesale.samita.io/api/v1/volume-pricings/{id}
  • {id} is de ID van het Volume Pricing-record
  • Je vindt de ID in de interface van de app (zonder het symbool “#”)
  • Voorbeeld ter referentie:

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

Alle API-requests 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 het formaat xxx.myshopify.com Ja
CONTENT-TYPE Moet application/json zijn Ja

Als een vereiste header ontbreekt, wordt het request geweigerd.


_ De gegevens voor het bijwerken van Volume Pricing moeten worden verzonden in JSON-formaat. Een voorbeeld van een JSON-structuur staat aan het einde van dit document.

_ In het request zijn alleen de velden nodig die moeten worden bijgewerkt. Het is niet verplicht om alle velden mee te sturen, zoals bij de Create API-methode.

_ Niet-opgegeven velden blijven ongewijzigd

Voorbeeld van request-JSON:

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

  • De naam waarmee het Volume Pricing-record wordt geïdentificeerd
  • Moet een string zijn
  • Maximale lengte: 255 tekens

  • Bepaalt of het record actief is of niet
  • Accepteert alleen de volgende waarden:
Waarde Beschrijving
true Prijsregel is actief
false Prijsregel is inactief

Bepaalt of volume pricing wordt berekend op basis van hoeveelheid of bedrag.

Geaccepteerde waarden:

  • quantity
  • amount

Bepaalt welke klanten in aanmerking komen voor deze prijsregel.

Structuur:

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

type

Geaccepteerde waarden (slechts een van de volgende):

  • all – Toepassen op alle klanten
  • logged – Alleen toepassen op ingelogde klanten
  • non-logged – Alleen toepassen op gastklanten
  • customer-tags – Alleen toepassen op klanten met specifieke tags

tags

  • Alleen vereist als type == customer-tags
  • Moet een array zijn met door komma’s gescheiden waarden
  • Voorbeeld: ["wholesale","b2b"]

Als type niet customer-tags is, kan dit veld worden genegeerd.


Wordt gebruikt om specifieke klanten uit te sluiten van de prijsregel.

Structuur:

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

type

  • Standaardwaarde: none
  • Geaccepteerde waarden:
Waarde Beschrijving
none Geen enkele klant uitsluiten
customer-tags Klanten uitsluiten op basis van tags

tags

  • Alleen vereist als type == customer-tags
  • Array met door komma’s gescheiden waarden
  • Voorbeeld: ["vip","internal"]

Bepaalt op welke producten de prijsregel wordt toegepast.

Structuur:

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

type

Geaccepteerde waarden:

  • all
  • products
  • collections
  • product-tags

product_ids

  • Alleen vereist als type == products
  • Lijst met product-ID’s, gescheiden door komma’s
  • Voorbeeld: [1,2,3]

product_tags

  • Alleen vereist als type == product-tags
  • Voorbeeld: ["tag1","tag2"]

collection_ids

  • Alleen vereist als type == collections
  • Voorbeeld: [1,2,3]

apply_for_variants

  • Bepaalt of kortingen per variant kunnen worden geconfigureerd
  • Geaccepteerde waarden: true of false
  • Standaardwaarde: false

Bepaalt welke producten van de regel worden uitgesloten.

Structuur:

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

type

  • Standaard: none
  • Geaccepteerde waarden:
Waarde Beschrijving
none Geen enkel product uitsluiten
products Specifieke producten uitsluiten
collections Specifieke collecties uitsluiten

Andere velden zijn alleen vereist afhankelijk van het geselecteerde type.


Bepaalt de kortingsconfiguratie op product- en/of variantniveau.

  • Laat dit veld leeg als apply_product.apply_for_variants == false.
  • Als apply_product.apply_for_variants == true, is dit veld vereist.
  • De structuur moet een array met productconfiguraties zijn.

Structuur:

"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 (vereist)

  • Product-ID.
  • Moet overeenkomen met een bestaand product.

i.2. duplicated

Geeft aan of het product meerdere hoeveelheids- of bedragbereiken heeft.

Geaccepteerde waarden:

  • true
  • false

Regels:

  • Bij true: het product bevat meerdere hoeveelheids- of bedragbereiken.
  • Bij false: het product heeft maar één hoeveelheids- of bedragbereik.

i.3. from_qty / from_amount

Beginhoeveelheid of beginbedrag van het bereik.

Regels:

  • Het eerste item mag leeg zijn (standaard 1).
  • Alle volgende items zijn vereist.

i.4. to_qty / to_amount

Eindhoeveelheid of eindbedrag van het bereik.

Regels:

  • Mag leeg zijn (wordt automatisch berekend als de from-waarde van het volgende item min 1).
  • Indien opgegeven, moet het lager zijn dan de from-waarde van het volgende item.

Voorbeelden:

  • Item 1: 0–10 → Item 2: 11–20
  • Item 1: 0–leeg → Item 2: 10–leeg
  • Item 1: leeg–10 → Item 2: 11–leeg

i.5. discount_groups (productniveau)

Bepaalt de kortingsconfiguratie voor elk hoeveelheids- of bedragbereik op productniveau.

  • Vereist als variant_pricing == false.
  • Laat leeg als variant_pricing == true.
  • Moet een array zijn met kortingsobjecten die overeenkomen met het geconfigureerde apply_customer.type.

Structuur:

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

+ name

Geaccepteerde waarden:

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

Als een andere waarde wordt opgegeven, wordt die behandeld als een klanttag en moet die overeenkomen met een van de tags die zijn gedefinieerd in apply_customer.tags.

+ type

Bepaalt het kortingstype.

Geaccepteerde waarden:

  • percent – Procentuele korting
  • amount – Vast bedrag dat van de prijs wordt afgetrokken
  • fixed-amount – Vaste eindprijs

+ value

  • Moet een getal zijn
  • Moet groter zijn dan 0
  • Als type == percent, moet de waarde lager zijn dan 100

i.6. variant_pricing

Geeft aan of de korting op variantniveau wordt toegepast.

Geaccepteerde waarden:

  • true
  • false

i.7. variants

Bepaalt de kortingsconfiguratie op variantniveau.

  • Vereist als variant_pricing == true
  • Laat leeg als variant_pricing == false
  • Moet een array met variantconfiguraties zijn

Structuur:

{
"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 (vereist)

  • Variant-ID.

+ duplicate

Geeft aan of de variant meerdere hoeveelheids- of bedragbereiken heeft.

Geaccepteerde waarden:

  • true
  • false

Regels:

  • Bij true: de variant bevat meerdere bereiken.
  • Bij false: de variant heeft maar één bereik.

+ from_qty / from_amount

Beginhoeveelheid of beginbedrag.

Regels:

  • Het eerste item mag leeg zijn (standaard 1).
  • Alle volgende items zijn vereist.

+ to_qty / to_amount

Eindhoeveelheid of eindbedrag.

Regels:

  • Mag leeg zijn (automatisch berekend als de from-waarde van het volgende item min 1).
  • Indien opgegeven, moet het lager zijn dan de from-waarde van het volgende item.

Voorbeelden:

  • Item 1: 0–10 → Item 2: 11–20
  • Item 1: 0–leeg → Item 2: 10–leeg
  • Item 1: leeg–10 → Item 2: 11–leeg

+ discount_groups (variantniveau)

Bepaalt de kortingsconfiguratie per hoeveelheids- of bedragbereik op variantniveau.

Regels:

  • Als apply_customer.type gelijk is aan:
    • all
    • logged
    • non-logged
      → Moet de array maar één item bevatten.
  • Als apply_customer.type == customer-tags
    → Moet de array meerdere items bevatten (één per klanttag).

name

Geaccepteerde waarden:

  • all
  • logged
  • non-logged

Als een andere waarde wordt opgegeven, wordt die behandeld als een klanttag en moet die overeenkomen met een tag die is gedefinieerd in apply_customer.tags.

type

Geaccepteerde waarden:

  • percent
  • amount
  • fixed-amount

value

  • Moet een getal zijn
  • Moet groter zijn dan 0
  • Als type == percent, moet de waarde lager zijn dan 100

Bepaalt op welke Shopify-markten de regel van toepassing is.

Structuur:

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

type

Geaccepteerde waarden:

  • all
  • specific-market

handle

  • Alleen vereist als type == specific-market
  • Lijst met markt-handles, gescheiden door komma’s
  • Voorbeeld: ["japan","us"]

Geaccepteerde waarden:

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

Deze komen overeen met de opties die beschikbaar zijn in de app.

Voorbeeld:

"discount_method": "variant",

Bepaalt hoeveelheids- of bedragbereiken en kortingswaarden.

from_qty / from_amount

to_qty / to_amount

Dezelfde validatieregels als hierboven beschreven.

Geaccepteerde waarden voor “type”:

  • percent
  • amount
  • fixed-amount

value:

  • Moet > 0 zijn
  • Bij percent → moet < 100 zijn

Structuur:

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

De regels zijn dezelfde als hierboven beschreven voor kortingstypen en -waarden.


Wordt gebruikt om de begin- en eindtijd 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
  • Geaccepteerde waarden: start_date, end_date
  • Kan een of beide bevatten, gescheiden door een komma
  • Voorbeeld: ["start_date","end_date"]

start_at

  • Vereist als types start_date bevat
  • Formaat: YYYY-MM-DD HH:MM:SS

end_at

  • Vereist als types end_date bevat
  • Formaat: YYYY-MM-DD HH:MM:SS

401 – Unauthorized

Mogelijke oorzaken:

  • Ontbrekende shop-URL
  • Ontbrekende API-sleutel
  • Ongeldige shop-URL
  • Ongeldige API-sleutel
  • API-sleutel komt niet overeen met de shop

403 – This action is unauthorized

  • API-sleutel heeft geen machtiging Update
  • Elke API-sleutel kan de machtigingen View, Create, Update en Delete hebben
  • Voor deze API is de machtiging Update nodig
  • Wordt ook teruggegeven als de opgegeven ID niet bestaat

429 – Too Many Requests

Limiet voor het aantal requests overschreden:

  • Maximaal 1 request per 5 minuten
  • Maximaal 50 requests per dag

200 – API Success

  • Volume Pricing-record succesvol bijgewerkt
  • Response wordt teruggegeven in JSON-formaat

Voorbeeld van response-JSON:

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

Was dit nuttig?