Uppdatera/redigera Volume Pricing med API:er
Uppdatera en befintlig Volume Pricing-regel via det publika API:et, inklusive fullständig referens för begärandekroppen.
Det här dokumentet förklarar hur du uppdaterar en befintlig Volume Pricing-regel med det publika API:et.
1. Slutpunkt
Section titled “1. Slutpunkt”Om du vill uppdatera en befintlig Volume Pricing-post använder du följande slutpunkt:
PUT https://wholesale.samita.io/api/v1/volume-pricings/{id}{id}är ID:t för Volume Pricing-posten- ID:t kan hämtas från appens gränssnitt (utan symbolen ”#”)
- Exempel:

Exempel:
Section titled “Exempel:”PUT https://wholesale.samita.io/api/v1/volume-pricings/12. Begäranderubriker
Section titled “2. Begäranderubriker”Alla API-förfrågningar måste innehålla följande obligatoriska rubriker:
| Rubrik | Beskrivning | Obligatorisk |
|---|---|---|
X-SAMITA-API-KEY |
API-nyckel som tillhandahålls i appen Wholesale | Ja |
X-SAMITA-SHOP-URL |
Shopify-butikens domän i formatet xxx.myshopify.com | Ja |
CONTENT-TYPE |
Måste vara application/json |
Ja |
Om någon obligatorisk rubrik saknas avvisas förfrågan.
3. Begärandekropp
Section titled “3. Begärandekropp”_ Data som används för att uppdatera Volume Pricing måste skickas i JSON-format. Ett exempel på JSON-struktur finns i slutet av det här dokumentet.
_ Bara de fält som ska uppdateras behövs i förfrågan. Det är inte obligatoriskt att skicka alla fält som i API-metoden Create.
_ Fält som inte anges förblir oförändrade
Exempel på JSON för begäran:
{ "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" }}b. title
Section titled “b. title”- Namnet som identifierar Volume Pricing-posten
- Måste vara en sträng
- Maximal längd: 255 tecken
c. status
Section titled “c. status”- Anger om posten är aktiv eller inte
- Godtar bara följande värden:
| Värde | Beskrivning |
|---|---|
true |
Prisregeln är aktiv |
false |
Prisregeln är inaktiv |
d. type
Section titled “d. type”Anger om mängdprissättningen beräknas utifrån antal eller belopp.
Godtagna värden:
quantityamount
e. apply_customer
Section titled “e. apply_customer”Anger vilka kunder som omfattas av den här prisregeln.
Struktur:
"apply_customer": { "type": "all", "tags": []}type
Godtagna värden (endast ett av följande):
all– gäller alla kunderlogged– gäller bara inloggade kundernon-logged– gäller bara gästkundercustomer-tags– gäller bara kunder med vissa taggar
tags
- Krävs bara när
type == customer-tags - Måste vara en kommaseparerad array
- Exempel:
["wholesale","b2b"]
Om type inte är customer-tags kan det här fältet ignoreras.
f. exclude_customer
Section titled “f. exclude_customer”Används för att undanta vissa kunder från prisregeln.
Struktur:
"exclude_customer": { "type": "none", "tags": []}type
- Standardvärde:
none - Godtagna värden:
| Värde | Beskrivning |
|---|---|
none |
Exkludera inga kunder |
customer-tags |
Exkludera kunder via taggar |
tags
- Krävs bara när
type == customer-tags - Kommaseparerad array
- Exempel:
["vip","internal"]
g. apply_product
Section titled “g. apply_product”Anger vilka produkter prisregeln gäller för.
Struktur:
"apply_product": { "type": "all", "product_ids": [], "product_tags": [], "collection_ids": [], "apply_for_variants": false },type
Godtagna värden:
allproductscollectionsproduct-tags
product_ids
- Krävs bara när
type == products - Kommaseparerad lista med produkt-ID
- Exempel:
[1,2,3]
product_tags
- Krävs bara när
type == product-tags - Exempel:
["tag1","tag2"]
collection_ids
- Krävs bara när
type == collections - Exempel:
[1,2,3]
apply_for_variants
- Avgör om rabatter kan konfigureras per variant
- Godtagna värden:
trueellerfalse - Standardvärde:
false
h. exclude_product
Section titled “h. exclude_product”Anger produkter som ska undantas från regeln.
Struktur:
"exclude_product": { "type": "none", "product_ids": [], "collection_ids": [] },type
- Standard:
none - Godtagna värden:
| Värde | Beskrivning |
|---|---|
none |
Exkludera inga produkter |
products |
Exkludera vissa produkter |
collections |
Exkludera vissa kollektioner |
Övriga fält krävs bara beroende på vald type.
i. discount_for_variants
Section titled “i. discount_for_variants”Anger rabattkonfigurationen på produkt- och/eller variantnivå.
- Lämna det här fältet tomt om
apply_product.apply_for_variants == false. - Om
apply_product.apply_for_variants == truekrävs det här fältet. - Strukturen måste vara en array med produktkonfigurationer.
Struktur:
"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 (obligatoriskt)
- Produkt-ID.
- Måste motsvara en befintlig produkt.
i.2. duplicated
Anger om produkten har flera antals-/beloppsintervall.
Godtagna värden:
truefalse
Regler:
- Om
true: produkten innehåller flera antals-/beloppsintervall. - Om
false: produkten har bara ett antals-/beloppsintervall.
i.3. from_qty / from_amount
Intervallets start i antal eller belopp.
Regler:
- Det första objektet får vara tomt (standard är 1).
- Alla efterföljande objekt är obligatoriska.
i.4. to_qty / to_amount
Intervallets slut i antal eller belopp.
Regler:
- Får vara tomt (beräknas då automatiskt som nästa objekts
from-värde minus 1). - Om det anges måste det vara lägre än nästa objekts
from-värde.
Exempel:
- Objekt 1: 0–10 → Objekt 2: 11–20
- Objekt 1: 0–tomt → Objekt 2: 10–tomt
- Objekt 1: tomt–10 → Objekt 2: 11–tomt
i.5. discount_groups (produktnivå)
Anger rabattkonfigurationen för varje antals-/beloppsintervall på produktnivå.
- Krävs om
variant_pricing == false. - Lämna tomt om
variant_pricing == true. - Måste vara en array med rabattobjekt som motsvarar den konfigurerade
apply_customer.type.
Struktur:
{ "name": "all", "type": "percent", "value": "10"}+ name
Godtagna värden:
all(omapply_customer.type == all)logged(omapply_customer.type == logged)non-logged(omapply_customer.type == non-logged)
Om något annat värde anges behandlas det som en kundtagg och måste motsvara en av taggarna som definierats i apply_customer.tags.
+ type
Anger rabatttypen.
Godtagna värden:
percent– procentrabattamount– fast belopp som dras av från prisetfixed-amount– slutligt fast pris
+ value
- Måste vara ett tal
- Måste vara större än 0
- Om
type == percentmåste value vara mindre än 100
i.6. variant_pricing
Anger om rabatten tillämpas på variantnivå.
Godtagna värden:
truefalse
i.7. variants
Anger rabattkonfigurationen på variantnivå.
- Krävs om
variant_pricing == true - Lämna tomt om
variant_pricing == false - Måste vara en array med variantkonfigurationer
Struktur:
{ "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 (obligatoriskt)
- Variant-ID.
+ duplicate
Anger om varianten har flera antals-/beloppsintervall.
Godtagna värden:
truefalse
Regler:
- Om
true: varianten innehåller flera intervall. - Om
false: varianten har bara ett intervall.
+ from_qty / from_amount
Start i antal eller belopp.
Regler:
- Det första objektet får vara tomt (standard är 1).
- Alla efterföljande objekt är obligatoriska.
+ to_qty / to_amount
Slut i antal eller belopp.
Regler:
- Får vara tomt (beräknas automatiskt som nästa objekts
fromminus 1). - Om det anges måste det vara lägre än nästa objekts
from-värde.
Exempel:
- Objekt 1: 0–10 → Objekt 2: 11–20
- Objekt 1: 0–tomt → Objekt 2: 10–tomt
- Objekt 1: tomt–10 → Objekt 2: 11–tomt
+ discount_groups (variantnivå)
Anger rabattkonfigurationen per antals-/beloppsintervall på variantnivå.
Regler:
- Om
apply_customer.typeär:allloggednon-logged
→ Måste arrayen innehålla bara ett objekt.
- Om
apply_customer.type == customer-tags
→ Måste arrayen innehålla flera objekt (ett per kundtagg).
name
Godtagna värden:
allloggednon-logged
Om något annat värde anges behandlas det som en kundtagg och måste motsvara en tagg som definierats i apply_customer.tags.
type
Godtagna värden:
percentamountfixed-amount
value
- Måste vara ett tal
- Måste vara större än 0
- Om
type == percentmåste value vara mindre än 100
j. apply_market
Section titled “j. apply_market”Anger vilka Shopify-marknader regeln gäller för.
Struktur:
"apply_market": { "type": "all", "handle": []}type
Godtagna värden:
allspecific-market
handle
- Krävs bara när
type == specific-market - Kommaseparerad lista med marknadshandtag
- Exempel:
["japan","us"]
k. discount_methods
Section titled “k. discount_methods”Godtagna värden:
variant→ Same Variantacross_group→ Mix Variantswithin_each_group→ Mix Products
Dessa motsvarar alternativen som finns i appen.
Exempel:
"discount_method": "variant",l. discount_group
Section titled “l. discount_group”Anger antals-/beloppsintervall och rabattvärden.
from_qty / from_amount
to_qty / to_amount
Samma valideringsregler som beskrivs ovan.
Godtagna “type”-värden:
percentamountfixed-amount
value:
- Måste vara > 0
- Om percent → måste vara < 100
Struktur:
"discount_groups": [ { "from_qty": "0", "from_amount": "0", "to_qty": "10", "to_amount": "0", "type": "percent", "value": "10" } ],Reglerna är desamma som ovan för rabatttyper och värden.
m. active_date
Section titled “m. active_date”Används för att ange start- och sluttid för prisregeln.
Struktur:
"active_date": { "types": ["start_date", "end_date"], "start_at": "2026-01-15 10:00:00", "end_at": "2026-01-15 10:00:00"}types
- Valfritt
- Godtagna värden:
start_date,end_date - Kan innehålla ett eller båda, åtskilda med kommatecken
- Exempel:
["start_date","end_date"]
start_at
- Krävs om
typesinnehållerstart_date - Format:
YYYY-MM-DD HH:MM:SS
end_at
- Krävs om
typesinnehållerend_date - Format:
YYYY-MM-DD HH:MM:SS
4. API-svar
Section titled “4. API-svar”a. Felsvar
Section titled “a. Felsvar”401 – Unauthorized
Möjliga orsaker:
- Butikens URL saknas
- API-nyckel saknas
- Ogiltig butiks-URL
- Ogiltig API-nyckel
- API-nyckeln matchar inte butiken
403 – This action is unauthorized
- API-nyckeln saknar behörigheten Update
- Varje API-nyckel kan ha behörigheterna: View, Create, Update, Delete
- Det här API:et kräver behörigheten Update
- Returneras också när det angivna ID:t inte finns
429 – Too Many Requests
Förfrågningsgränsen har överskridits:
- Högst 1 förfrågan per 5 minuter
- Högst 50 förfrågningar per dag
b. Lyckat svar
Section titled “b. Lyckat svar”200 – API Success
- Volume Pricing-posten har uppdaterats
- Svaret returneras i JSON-format
Exempel på JSON för svar:
{ "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"}