Mettre à jour ou modifier une tarification de gros avec les API
Mettez à jour une règle de tarification de gros existante via l'API publique, avec la référence complète du corps de la requête.
Ce document explique comment mettre à jour une règle de tarification de gros existante avec l’API publique.
1. Point de terminaison
Section intitulée « 1. Point de terminaison »Pour mettre à jour un enregistrement de tarification de gros existant, utilisez le point de terminaison suivant :
PUT https://wholesale.samita.io/api/v1/wholesale-pricings/{id}{id}correspond à l’ID de l’enregistrement de tarification de gros- L’ID est disponible dans l’interface de l’application (sans le symbole « # »)
- Exemple :

Exemple :
Section intitulée « Exemple : »PUT https://wholesale.samita.io/api/v1/wholesale-pricings/12. 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 »_ Les données utilisées pour mettre à jour une tarification de gros doivent être envoyées au format JSON. Un exemple de structure JSON figure à la fin de ce document.
_ Seuls les champs à mettre à jour sont requis dans la requête. Il n’est pas obligatoire d’envoyer tous les champs, contrairement à la méthode de création.
_ Les champs non indiqués restent inchangés
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" }}c. title
Section intitulée « c. title »- Le nom qui identifie l’enregistrement de tarification de gros
- Facultatif dans l’API de mise à jour
- Doit être une chaîne de caractères
- Longueur maximale : 255 caractères
d. status
Section intitulée « d. status »- Indique si l’enregistrement est actif ou non
- Facultatif dans l’API de mise à jour
- Accepte uniquement les valeurs suivantes :
| Valeur | Description |
|---|---|
true |
La règle de tarification est active |
false |
La règle de tarification est inactive |
e. apply_customer
Section intitulée « e. apply_customer »Définit les clients concernés par cette règle de tarification.
Structure :
"apply_customer": { "type": "all", "tags": []}type
Valeurs acceptées :
allloggednon-loggedcustomer-tags
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"]
f. exclude_customer
Section intitulée « f. 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 - Exemple :
["vip","wholesale"]
g. apply_product (obligatoire)
Section intitulée « g. 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
Les autres champs sont obligatoires selon le type sélectionné :
product_ids→ obligatoire sitype == productsproduct_tags→ obligatoire sitype == product-tagscollection_ids→ obligatoire sitype == collections
apply_for_variants
- Valeurs acceptées :
trueoufalse - Valeur par défaut :
false
h. exclude_product
Section intitulée « h. exclude_product »Définit les produits exclus de la règle.
Structure :
"exclude_product": { "type": "none", "product_ids": [], "collection_ids": []}Types acceptés :
noneproductscollections
i. discount_for_variants
Section intitulée « i. discount_for_variants »Utilisé lorsque les réductions sont configurées 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 contient :
id– ID de la variantediscount_groups– Tableau de configurations de réduction
Règles de discount_groups
- Si
apply_customer.typevautall,loggedounon-logged
→ Un seul élément est autorisé - 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
j. apply_market (obligatoire)
Section intitulée « j. 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"]
k. discount_group
Section intitulée « k. 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"}Règles :
typedoit être l’une des valeurs suivantes :percentamountfixed-amount
value- Doit être supérieur à 0
- Si type vaut
percent, la valeur doit être inférieure à 100
l. active_date
Section intitulée « l. 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-15T10:00:00", "end_at": "2026-01-15T10:00:00"}types
- Facultatif
- Valeurs acceptées :
start_date,end_date - 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 Update
- Chaque clé API peut avoir les autorisations View, Create, Update et Delete
- Cette API nécessite l’autorisation Update
- Également renvoyée lorsque l’ID indiqué n’existe pas
429 – Trop de requêtes
Limite de débit dépassée :
- Maximum 1 requête toutes les 5 minutes
- Maximum 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é mis à jour
- La réponse est renvoyée au format JSON
Exemple de JSON de réponse :
{ "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_at": "", "end_at": "" }, "created_at": "2026-01-15T10:00:00", "updated_at": "2026-01-15T10:00:00"}