# Créer une promotion par bonus Crée une promotion par bonus. La promotion ajoute des objets bonus gratuits à l'achat effectué par l'utilisateur. La promotion peut être appliquée à chaque achat au sein d'un projet ou à un achat comprenant des objets particuliers. Endpoint: POST /v3/project/{project_id}/admin/promotion/bonus Version: 2.0.0 Security: basicAuth ## Path parameters: - `project_id` (integer, required) ID de projet. Ce paramètre se trouve dans le Compte éditeur à côté du nom du projet. Example: 44056 ## Request fields (application/json): - `attribute_conditions` (array) Conditions de validation des attributs utilisateur. Déterminez la disponibilité de la promotion selon la correspondance des attributs utilisateur avec l'ensemble des conditions définies. - `bonus` (array,null, required) - `bonus.quantity` (number) Quantité de l'objet. - `bonus.sku` (string) UGS de l'objet. - `condition` (array,null, required) Ensemble d'objets devant être inclus dans l'achat pour l'application d'une promotion. Si ce paramètre est défini sur null, la promotion s'applique à tous les achats effectués dans au sein du projet. - `excluded_promotions` (array) Liste des ID de promotion à exclure lors de l'application de cette promotion. Example: [12, 789] Example: [12,789] - `id` (integer) ID de la promotion. Identifiant unique de la promotion au sein du projet. - `is_enabled` (boolean) Si la promotion est activée ou non. Example: true - `limits` (object) Limites de la promotion. - `limits.per_user` (integer,null) Limites de la promotion pour un utilisateur spécifique. - `limits.recurrent_schedule` (object,null) Délai d'actualisation des limites. - `limits.recurrent_schedule.per_user` (object) Délai d'actualisation des limites pour un utilisateur. - `limits.recurrent_schedule.per_user.day_of_month` (integer,null) Jour du mois où les limites sont actualisées. Si aucun jour du mois n'est sélectionné en raison d'un mois plus court, l'actualisation aura lieu le dernier jour du mois. Ne prend pas la valeur null. Uniquement pour le type de délai d'actualisation de limites monthly. - `limits.recurrent_schedule.per_user.day_of_week` (integer,null) Jour de la semaine où les limites sont actualisées. Où 1 correspond au lundi et 7 au dimanche. Ne prend pas la valeur null. Uniquement pour le type de délai d'actualisation de limites weekly. - `limits.recurrent_schedule.per_user.displayable_reset_next_date` (string) Date et heure de réinitialisation des limites (ISO 8601). Example: "2023-02-28T11:00:00+08:00" - `limits.recurrent_schedule.per_user.displayable_reset_start_date` (string) Date et heure de la première actualisation des limites (ISO 8601). Example: "2023-02-28T11:00:00+08:00" - `limits.recurrent_schedule.per_user.interval_type` (string) Type de délai d'actualisation récurrent. Enum: "daily", "weekly", "monthly" - `limits.recurrent_schedule.per_user.reset_next_date` (integer) Date et heure d'actualisation des limites (horodatage Unix). Example: 1677553200 - `limits.recurrent_schedule.per_user.time` (string) Heure d'actualisation des limites dans le fuseau horaire souhaité (arrondie en heures). Example: "11:00:00+03:00" - `name` (object, required) Nom de la promotion. Doit comprendre des paires clé/valeur, où la clé est une région au format "^[a-z]{2}-[A-Z]{2}$", la valeur est une chaîne. Example: {"de-DE":"Sommersaison Bonus","en-US":"Summer season bonus"} - `price_conditions` (array,null) Tableau d'objets avec des conditions définissant la fourchette de prix pour l'application de la promotion. La promotion ne s'applique qu'aux biens dont le prix répond à toutes les conditions du tableau. Si vous passez ce tableau, définissez la valeur de l'objet [condition](/fr/api/shop-builder/operation/create-bonus-promotion/#!path=condition&t=request) sur null. - `price_conditions.operator` (string, required) Opérateur de comparaison pour définir la fourchette de prix pour l'application de la promotion. Enum: "ge", "gt", "le", "lt", "eq", "ne" - `price_conditions.value` (string, required) Valeur permettant de déterminer la fourchette de prix pour l'application de la promotion. - `promotion_periods` (array) Périodes de validité de la promotion. Si plusieurs périodes sont spécifiées, les paramètres date_from et date_until sont tous deux requis. - `promotion_periods.date_from` (string, required) Date de début de la promotion spécifiée. Example: "2020-08-11T10:00:00+03:00" - `promotion_periods.date_until` (string,null) Date de fin de la promotion. Si la valeur est null, la promotion est illimitée. null n'est autorisé que si une seule période de validité est définie. Example: "2020-08-11T20:00:00+03:00" ## Response 201 fields (application/json): - `promotion_id` (integer) ID de la promotion. Identifiant unique de la promotion au sein du projet. ## Response 401 fields (application/json): - `errorCode` (integer) Example: 1020 - `errorMessage` (string) Example: "[0401-1020]: Error in Authentication method occurred" - `statusCode` (integer) Example: 401 ## Response 422 fields (application/json): - `errorCode` (integer) Example: 1102 - `errorMessage` (string) Example: "[0401-1102]: Unprocessable Entity. The property `bonus` is required" - `statusCode` (integer) Example: 422 - `transactionId` (string) Example: "x-x-x-x-transactionId-mock-x-x-x"