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

Skapa Volume Pricing med API:er

Skapa en ny Volume Pricing-regel via det publika API:et, inklusive fullständig referens för begärandekroppen.

Det här dokumentet förklarar hur du skapar en ny Volume Pricing-regel med det publika API:et.


Om du vill skapa en ny Volume Pricing-post använder du följande slutpunkt:

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

Med den här slutpunkten kan du skapa en ny Volume Pricing-konfiguration.


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 skapa Volume Pricing måste skickas i JSON-format.
Ett exempel på JSON-struktur finns i slutet av det här dokumentet.

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,
      "from_qty": "0",
      "from_amount": "0",
      "to_qty": "10",
      "to_amount": "0",
      "discount_groups": [
        {
          "name": "all",
          "type": "percent",
          "value": "10"
        }
      ],
      "variant_pricing": true,
      "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: from:0 – to:10 → Objekt 2: from:11 – to:20
  • Objekt 1: from:0 – to:tomt → Objekt 2: from:10 – to:tomt
  • Objekt 1: from:tomt – to:10 → Objekt 2: from:11 – to: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: from:0 – to:10 → Objekt 2: from:11 – to:20
  • Objekt 1: from:0 – to:tomt → Objekt 2: from:10 – to:tomt
  • Objekt 1: from:tomt – to:10 → Objekt 2: from:11 – to: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"]

Så här hittar du marknadshandtaget:

  • Gå till avsnittet Marknader på sidan i Shopify-admin > klicka på Fler åtgärder > välj Redigera marknadshandtag > kopiera handtaget som visas där:


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 Create
  • Varje API-nyckel kan ha behörigheterna: View, Create, Update, Delete
  • Det här API:et kräver behörigheten Create
  • Returneras också när ett angivet ID inte finns

429 – Too Many Requests

  • Förfrågningsgränsen har överskridits
  • Högsta tillåtna:
Gräns Värde
Förfrågningsfrekvens 1 förfrågan per 5 minuter
Daglig gräns 50 förfrågningar per dag

200 – API Success

  • Volume Pricing-posten har skapats
  • Svaret returneras i JSON-format
{
"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?