# Lire la liste des promotions par bonus Récupère la liste des promotions par bonus au sein d'un projet. 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: GET /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 ## Query parameters: - `limit` (integer) Nombre maximal d'éléments sur une page. Example: 50 - `offset` (integer) Numéro de l'élément à partir duquel la liste est générée (le décompte commence à 0). ## Response 200 fields (application/json): - `active_promotions_count` (integer) Nombre de promotions actives. - `inactive_promotions_count` (integer) Nombre de promotions désactivées. - `promotions` (array) - `promotions.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. - `promotions.bonus` (array,null) - `promotions.bonus.quantity` (number) Quantité de l'objet. - `promotions.bonus.sku` (string) UGS de l'objet. - `promotions.condition` (array,null) 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. - `promotions.excluded_promotions` (array) Liste des ID de promotion à exclure lors de l'application de cette promotion. Example: [12, 789] Example: [12,789] - `promotions.id` (integer) ID de la promotion. Identifiant unique de la promotion au sein du projet. - `promotions.is_enabled` (boolean) - `promotions.limits` (object) Limites de la promotion. - `promotions.limits.per_item` (integer,null) Limites globales d'objets. Example: 10 - `promotions.limits.per_user` (object,null) Limites de la promotion pour un utilisateur spécifique. - `promotions.limits.per_user.total` (integer) Nombre total d'objets qu'un utilisateur peut acheter. Définissez ce nombre dans le Compte éditeur ou utilisez les endpoints administrateur pour les entités de Store (objet contenant des limites). Example: 5 - `promotions.limits.recurrent_schedule` (object,null) Délai d'actualisation des limites. - `promotions.limits.recurrent_schedule.per_user` (object) Délai d'actualisation des limites pour un utilisateur. - `promotions.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. - `promotions.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. - `promotions.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" - `promotions.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" - `promotions.limits.recurrent_schedule.per_user.interval_type` (string) Type de délai d'actualisation récurrent. Enum: "daily", "weekly", "monthly" - `promotions.limits.recurrent_schedule.per_user.reset_next_date` (integer) Date et heure d'actualisation des limites (horodatage Unix). Example: 1677553200 - `promotions.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" - `promotions.name` (object) 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"} - `promotions.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. - `promotions.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" - `promotions.price_conditions.value` (string, required) Valeur permettant de déterminer la fourchette de prix pour l'application de la promotion. - `promotions.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. - `promotions.promotion_periods.date_from` (string, required) Date de début de la promotion spécifiée. Example: "2020-08-11T10:00:00+03:00" - `promotions.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" - `total_promotions_count` (integer) Nombre total de promotions. ## Response 401 fields (application/json): - `errorCode` (integer) Example: 1020 - `errorMessage` (string) Example: "[0401-1020]: Error in Authentication method occurred" - `statusCode` (integer) Example: 401