Wholesale Pricing über APIs erstellen
Erstellen Sie über die Public API eine neue Wholesale-Pricing-Regel, einschließlich der vollständigen Referenz zum Request-Body.
Dieses Dokument erklärt, wie Sie mit der Public API eine neue Wholesale Pricing-Regel erstellen.
1. Endpunkt
Abschnitt betitelt „1. Endpunkt“Um einen neuen Wholesale Pricing-Datensatz zu erstellen, verwenden Sie den folgenden Endpunkt:
POST - https://wholesale.samita.io/api/v1/wholesale-pricings2. Request-Header
Abschnitt betitelt „2. Request-Header“Alle API-Anfragen müssen die folgenden Pflicht-Header enthalten:
| Header | Beschreibung | Erforderlich |
|---|---|---|
X-SAMITA-API-KEY |
In der Wholesale-App bereitgestellter API-Schlüssel | Ja |
X-SAMITA-SHOP-URL |
Shopify-Shop-Domain im Format xxx.myshopify.com | Ja |
CONTENT-TYPE |
Muss application/json sein |
Ja |
Fehlt ein Pflicht-Header, wird die Anfrage abgelehnt.
3. Request-Body
Abschnitt betitelt „3. Request-Body“a. Allgemeines Format
Abschnitt betitelt „a. Allgemeines Format“Die Daten zum Erstellen von Wholesale Pricing müssen im JSON-Format gesendet werden.
Eine Beispielstruktur im JSON-Format finden Sie am Ende dieses Dokuments.
Beispiel-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 (erforderlich)
Abschnitt betitelt „b. title (erforderlich)“- Der Name zur Identifizierung des Wholesale Pricing-Datensatzes
- Muss ein String sein
- Maximale Länge: 255 Zeichen
c. status (erforderlich)
Abschnitt betitelt „c. status (erforderlich)“- Legt fest, ob der Datensatz aktiv ist oder nicht
- Akzeptiert nur die folgenden Werte:
| Wert | Beschreibung |
|---|---|
true |
Preisregel ist aktiv |
false |
Preisregel ist inaktiv |
d. apply_customer (erforderlich)
Abschnitt betitelt „d. apply_customer (erforderlich)“Legt fest, welche Kundschaft für diese Preisregel infrage kommt.
Struktur:
"apply_customer": { "type": "all", "tags": []}type
Akzeptierte Werte (nur einer davon):
all– für die gesamte Kundschaftlogged– nur für angemeldete Kundschaftnon-logged– nur für Gästecustomer-tags– nur für Kundschaft mit bestimmten Tags
tags
- Nur erforderlich, wenn
type == customer-tags - Muss ein Array mit kommagetrennten Werten sein
- Beispiel:
["wholesale","b2b"]
Wenn type nicht customer-tags ist, kann dieses Feld ignoriert werden.
e. exclude_customer
Abschnitt betitelt „e. exclude_customer“Schließt bestimmte Kundschaft von der Preisregel aus.
Struktur:
"exclude_customer": { "type": "none", "tags": []}type
- Standardwert:
none - Akzeptierte Werte:
| Wert | Beschreibung |
|---|---|
none |
Keine Kundschaft ausschließen |
customer-tags |
Kundschaft nach Tags ausschließen |
tags
- Nur erforderlich, wenn
type == customer-tags - Array mit kommagetrennten Werten
- Beispiel:
["vip","wholesale"]
f. apply_product (erforderlich)
Abschnitt betitelt „f. apply_product (erforderlich)“Legt fest, auf welche Produkte die Preisregel angewendet wird.
Struktur:
"apply_product": { "type": "all", "product_ids": [], "product_tags": [], "collection_ids": [], "apply_for_variants": false}type
Akzeptierte Werte:
allproductscollectionsproduct-tags
product_ids
- Nur erforderlich, wenn
type == products - Kommagetrennte Liste von Produkt-IDs
- Beispiel:
[1,2,3]
product_tags
- Nur erforderlich, wenn
type == product-tags - Beispiel:
["tag1","tag2"]
collection_ids
- Nur erforderlich, wenn
type == collections - Beispiel:
[1,2,3]
apply_for_variants
- Legt fest, ob Rabatte pro Variante konfiguriert werden können
- Akzeptierte Werte:
trueoderfalse - Standardwert:
false
g. exclude_product
Abschnitt betitelt „g. exclude_product“Legt Produkte fest, die von der Regel ausgeschlossen werden.
Struktur:
"exclude_product": { "type": "none", "product_ids": [], "collection_ids": []}type
- Standard:
none - Akzeptierte Werte:
| Wert | Beschreibung |
|---|---|
none |
Keine Produkte ausschließen |
products |
Bestimmte Produkte ausschließen |
collections |
Bestimmte Kollektionen ausschließen |
Weitere Felder sind je nach gewähltem type erforderlich.
h. discount_for_variants
Abschnitt betitelt „h. discount_for_variants“Wird verwendet, wenn Rabatte pro Variante angewendet werden.
- Muss leer sein, wenn
apply_product.apply_for_variants == false - Erforderlich, wenn
apply_product.apply_for_variants == true
Beispielstruktur:
"discount_for_variants": [ { "id": 8516448190631, "variant_pricing": true, "variants": [ { "id": 46747346763943, "discount_groups": [ { "name": "all", "type": "percent", "value": "10" } ] } ] }]Struktur:
- Array von Produkten
- Jedes Produkt enthält:
id– Produkt-IDvariant_pricing– musstrueseinvariants– Array von Varianten
Jede Variante enthält:
id– Varianten-IDdiscount_groups– Array mit Rabatteinstellungen
Regeln für discount_groups
- Wenn
apply_customer.typeden Wertall,loggedodernon-loggedhat:
→ Im Array ist nur ein Eintrag erlaubt - Wenn
apply_customer.type == customer-tags:
→ Es können mehrere Rabattgruppen angegeben werden
Felder innerhalb von discount_groups:
| Feld | Beschreibung |
|---|---|
name |
Muss dem Kundentyp oder Kunden-Tag entsprechen |
type |
Rabattart |
value |
Rabattwert |
Akzeptierte Rabattarten:
percentamountfixed-amount
Regeln für den Wert:
- Muss eine Zahl größer als 0 sein
- Bei type
percentmuss der Wert kleiner als 100 sein
i. apply_market (erforderlich)
Abschnitt betitelt „i. apply_market (erforderlich)“Legt fest, für welche Shopify-Märkte die Regel gilt.
Struktur:
"apply_market": { "type": "all", "handle": []}type
Akzeptierte Werte:
allspecific-market
handle
- Nur erforderlich, wenn
type == specific-market - Kommagetrennte Liste von Markt-Handles
- Beispiel:
["japan","us"]
So finden Sie das Markt-Handle:
- Gehen Sie in Shopify Admin zu Märkte, klicken Sie auf Weitere Aktionen, wählen Sie Markt-Handles bearbeiten und kopieren Sie das dort angezeigte Handle:


j. discount_group
Abschnitt betitelt „j. discount_group“Wird verwendet, wenn der Rabatt nicht pro Variante konfiguriert wird.
Erforderlich, wenn:
apply_product.typenichtproductsist, ODERapply_product.type == productsgilt UND keine Varianten angewendet werden
Struktur:
"discount_group": { "type": "percent", "value": "10"}Für Rabattarten und Rabattwerte gelten dieselben Regeln wie oben beschrieben.
k. active_date
Abschnitt betitelt „k. active_date“Legt Start- und Endzeitpunkt der Preisregel fest.
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
- Optional
- Akzeptierte Werte:
start_date,end_date - Kann einen oder beide Werte enthalten, durch Komma getrennt
- Beispiel:
["start_date","end_date"]
start_at
- Erforderlich, wenn
typesden Wertstart_dateenthält - Format:
YYYY-MM-DD HH:MM:SS
end_at
- Erforderlich, wenn
typesden Wertend_dateenthält - Format:
YYYY-MM-DD HH:MM:SS
4. API-Antwort
Abschnitt betitelt „4. API-Antwort“a. Fehlerantworten
Abschnitt betitelt „a. Fehlerantworten“401 – Unauthorized
Mögliche Gründe:
- Shop-URL fehlt
- API-Schlüssel fehlt
- Ungültige Shop-URL
- Ungültiger API-Schlüssel
- API-Schlüssel passt nicht zum Shop
403 – This action is unauthorized
- API-Schlüssel hat keine Berechtigung Create
- Jeder API-Schlüssel kann die Berechtigungen View, Create, Update und Delete haben
- Diese API erfordert die Berechtigung Create
- Wird auch zurückgegeben, wenn eine angegebene ID nicht existiert
429 – Too Many Requests
- Ratenlimit überschritten
- Maximal zulässig:
| Limit | Wert |
|---|---|
| Anfragehäufigkeit | 1 Anfrage pro 5 Minuten |
| Tageslimit | 50 Anfragen pro Tag |
b. Erfolgsantwort
Abschnitt betitelt „b. Erfolgsantwort“200 – API Success
- Wholesale Pricing-Datensatz erfolgreich erstellt
- Antwort wird im JSON-Format zurückgegeben
{ "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"}