Créer une tarification de gros avec les API
Créez une règle de tarification de gros via l'API publique, avec la référence complète du corps de la requête.
Ce document explique comment créer une règle de tarification de gros avec l’API publique.
1. Point de terminaison
Section intitulée « 1. Point de terminaison »Pour créer un enregistrement de tarification de gros, utilisez le point de terminaison suivant :
POST - https://wholesale.samita.io/api/v1/wholesale-pricings2. En-têtes de la requête
Section intitulée « 2. En-têtes de la requête »Toutes les requêtes API doivent inclure les en-têtes obligatoires suivants :
| En-tête | Description | Obligatoire |
|---|---|---|
X-SAMITA-API-KEY |
Clé API fournie dans l’application Wholesale | Oui |
X-SAMITA-SHOP-URL |
Domaine de la boutique Shopify au format xxx.myshopify.com | Oui |
CONTENT-TYPE |
Doit être application/json |
Oui |
Si un en-tête obligatoire est manquant, la requête est rejetée.
3. Corps de la requête
Section intitulée « 3. Corps de la requête »a. Format général
Section intitulée « a. Format général »Les données utilisées pour créer une tarification de gros doivent être envoyées au format JSON.
Un exemple de structure JSON figure à la fin de ce document.
Exemple de JSON de requête :
{ "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 (obligatoire)
Section intitulée « b. title (obligatoire) »- Le nom qui identifie l’enregistrement de tarification de gros
- Doit être une chaîne de caractères
- Longueur maximale : 255 caractères
c. status (obligatoire)
Section intitulée « c. status (obligatoire) »- Indique si l’enregistrement est actif ou non
- Accepte uniquement les valeurs suivantes :
| Valeur | Description |
|---|---|
true |
La règle de tarification est active |
false |
La règle de tarification est inactive |
d. apply_customer (obligatoire)
Section intitulée « d. apply_customer (obligatoire) »Définit les clients concernés par cette règle de tarification.
Structure :
"apply_customer": { "type": "all", "tags": []}type
Valeurs acceptées (une seule parmi les suivantes) :
all– S’applique à tous les clientslogged– S’applique uniquement aux clients connectésnon-logged– S’applique uniquement aux clients non connectéscustomer-tags– S’applique uniquement aux clients ayant des tags spécifiques
tags
- Obligatoire uniquement lorsque
type == customer-tags - Doit être un tableau dont les éléments sont séparés par des virgules
- Exemple :
["wholesale","b2b"]
Si type n’est pas customer-tags, ce champ peut être ignoré.
e. exclude_customer
Section intitulée « e. exclude_customer »Permet d’exclure certains clients de la règle de tarification.
Structure :
"exclude_customer": { "type": "none", "tags": []}type
- Valeur par défaut :
none - Valeurs acceptées :
| Valeur | Description |
|---|---|
none |
N’exclut aucun client |
customer-tags |
Exclut les clients par tags |
tags
- Obligatoire uniquement lorsque
type == customer-tags - Tableau dont les éléments sont séparés par des virgules
- Exemple :
["vip","wholesale"]
f. apply_product (obligatoire)
Section intitulée « f. apply_product (obligatoire) »Définit les produits auxquels la règle de tarification s’applique.
Structure :
"apply_product": { "type": "all", "product_ids": [], "product_tags": [], "collection_ids": [], "apply_for_variants": false}type
Valeurs acceptées :
allproductscollectionsproduct-tags
product_ids
- Obligatoire uniquement lorsque
type == products - Liste d’ID de produits séparés par des virgules
- Exemple :
[1,2,3]
product_tags
- Obligatoire uniquement lorsque
type == product-tags - Exemple :
["tag1","tag2"]
collection_ids
- Obligatoire uniquement lorsque
type == collections - Exemple :
[1,2,3]
apply_for_variants
- Détermine si les réductions peuvent être configurées par variante
- Valeurs acceptées :
trueoufalse - Valeur par défaut :
false
g. exclude_product
Section intitulée « g. exclude_product »Définit les produits exclus de la règle.
Structure :
"exclude_product": { "type": "none", "product_ids": [], "collection_ids": []}type
- Par défaut :
none - Valeurs acceptées :
| Valeur | Description |
|---|---|
none |
N’exclut aucun produit |
products |
Exclut des produits spécifiques |
collections |
Exclut des collections spécifiques |
Les autres champs ne sont obligatoires que selon le type sélectionné.
h. discount_for_variants
Section intitulée « h. discount_for_variants »Utilisé lorsque les réductions s’appliquent par variante.
- Doit être vide si
apply_product.apply_for_variants == false - Obligatoire lorsque
apply_product.apply_for_variants == true
Exemple de structure :
"discount_for_variants": [ { "id": 8516448190631, "variant_pricing": true, "variants": [ { "id": 46747346763943, "discount_groups": [ { "name": "all", "type": "percent", "value": "10" } ] } ] }]Structure :
- Tableau de produits
- Chaque produit contient :
id– ID du produitvariant_pricing– Doit êtretruevariants– Tableau de variantes
Chaque variante comprend :
id– ID de la variantediscount_groups– Tableau de paramètres de réduction
Règles de discount_groups
- Si
apply_customer.typevautall,loggedounon-logged:
→ Un seul élément est autorisé dans le tableau - Si
apply_customer.type == customer-tags:
→ Plusieurs groupes de réduction peuvent être fournis
Champs de discount_groups :
| Champ | Description |
|---|---|
name |
Doit correspondre au type de client ou au tag client |
type |
Type de réduction |
value |
Valeur de la réduction |
Types de réduction acceptés :
percentamountfixed-amount
Règles pour la valeur :
- Doit être un nombre supérieur à 0
- Si type vaut
percent, la valeur doit être inférieure à 100
i. apply_market (obligatoire)
Section intitulée « i. apply_market (obligatoire) »Définit les marchés Shopify auxquels la règle s’applique.
Structure :
"apply_market": { "type": "all", "handle": []}type
Valeurs acceptées :
allspecific-market
handle
- Obligatoire uniquement lorsque
type == specific-market - Liste de identifiants de marché séparés par des virgules
- Exemple :
["japan","us"]
Pour obtenir l’identifiant du marché, procédez comme suit :
- Dans l’admin Shopify, accédez à la section Marchés > cliquez sur Plus d’actions > choisissez Modifier les identifiants du marché > copiez l’identifiant affiché :


j. discount_group
Section intitulée « j. discount_group »Utilisé lorsque la réduction n’est pas configurée par variante.
Obligatoire lorsque :
apply_product.typen’est pasproducts, OUapply_product.type == productsET les variantes ne sont pas utilisées
Structure :
"discount_group": { "type": "percent", "value": "10"}Les règles sont les mêmes que celles décrites plus haut pour les types et les valeurs de réduction.
k. active_date
Section intitulée « k. active_date »Permet de configurer la date et l’heure de début et de fin de la règle de tarification.
Structure :
"active_date": { "types": ["start_date", "end_date"], "start_at": "2026-01-15 10:00:00", "end_at": "2026-01-15 10:00:00"}types
- Facultatif
- Valeurs acceptées :
start_date,end_date - Peut contenir l’une des deux valeurs ou les deux, séparées par une virgule
- Exemple :
["start_date","end_date"]
start_at
- Obligatoire si
typesinclutstart_date - Format :
YYYY-MM-DD HH:MM:SS
end_at
- Obligatoire si
typesinclutend_date - Format :
YYYY-MM-DD HH:MM:SS
4. Réponse de l’API
Section intitulée « 4. Réponse de l’API »a. Réponses d’erreur
Section intitulée « a. Réponses d’erreur »401 – Non autorisé
Causes possibles :
- URL de la boutique manquante
- Clé API manquante
- URL de la boutique non valide
- Clé API non valide
- La clé API ne correspond pas à la boutique
403 – Cette action n’est pas autorisée
- La clé API n’a pas l’autorisation Create
- Chaque clé API peut avoir les autorisations View, Create, Update et Delete
- Cette API nécessite l’autorisation Create
- Également renvoyée lorsque l’ID indiqué n’existe pas
429 – Trop de requêtes
- Limite de débit dépassée
- Maximum autorisé :
| Limite | Valeur |
|---|---|
| Fréquence des requêtes | 1 requête toutes les 5 minutes |
| Limite quotidienne | 50 requêtes par jour |
b. Réponse de succès
Section intitulée « b. Réponse de succès »200 – Succès de l’API
- L’enregistrement de tarification de gros a bien été créé
- La réponse est renvoyée au format JSON
{ "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"}