Hoppa till innehåll
Testa gratis i 14 dagar
Svenska
Öppna i Claude Ställ frågor om den här sidanÖppna i ChatGPT Ställ frågor om den här sidan

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.


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:

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

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.


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

  • Namnet som identifierar Volume Pricing-posten
  • Måste vara en sträng
  • Maximal längd: 255 tecken

  • Anger om posten är aktiv eller inte
  • Godtar bara följande värden:
Värde Beskrivning
true Prisregeln är aktiv
false Prisregeln är inaktiv

Anger om mängdprissättningen beräknas utifrån antal eller belopp.

Godtagna värden:

  • quantity
  • amount

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 kunder
  • logged – gäller bara inloggade kunder
  • non-logged – gäller bara gästkunder
  • customer-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.


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"]

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:

  • all
  • products
  • collections
  • product-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: true eller false
  • Standardvärde: false

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.


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 == true krä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:

  • true
  • false

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 (om apply_customer.type == all)
  • logged (om apply_customer.type == logged)
  • non-logged (om apply_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 – procentrabatt
  • amount – fast belopp som dras av från priset
  • fixed-amount – slutligt fast pris

+ value

  • Måste vara ett tal
  • Måste vara större än 0
  • Om type == percent måste value vara mindre än 100

i.6. variant_pricing

Anger om rabatten tillämpas på variantnivå.

Godtagna värden:

  • true
  • false

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:

  • true
  • false

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 from 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

+ discount_groups (variantnivå)

Anger rabattkonfigurationen per antals-/beloppsintervall på variantnivå.

Regler:

  • Om apply_customer.type är:
    • all
    • logged
    • non-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:

  • all
  • logged
  • non-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:

  • percent
  • amount
  • fixed-amount

value

  • Måste vara ett tal
  • Måste vara större än 0
  • Om type == percent måste value vara mindre än 100

Anger vilka Shopify-marknader regeln gäller för.

Struktur:

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

type

Godtagna värden:

  • all
  • specific-market

handle

  • Krävs bara när type == specific-market
  • Kommaseparerad lista med marknadshandtag
  • Exempel: ["japan","us"]

Godtagna värden:

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

Dessa motsvarar alternativen som finns i appen.

Exempel:

"discount_method": "variant",

Anger antals-/beloppsintervall och rabattvärden.

from_qty / from_amount

to_qty / to_amount

Samma valideringsregler som beskrivs ovan.

Godtagna “type”-värden:

  • percent
  • amount
  • fixed-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.


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 types innehåller start_date
  • Format: YYYY-MM-DD HH:MM:SS

end_at

  • Krävs om types innehåller end_date
  • Format: YYYY-MM-DD HH:MM:SS

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

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

Var det här till hjälp?