# Criar promoção de bônus Cria a promoção de bônus. A promoção adiciona itens bônus gratuitos à compra feita por um usuário. A promoção pode ser aplicada a cada compra dentro de um projeto ou a uma compra que inclua itens específicos. Endpoint: POST /v3/project/{project_id}/admin/promotion/bonus Version: 2.0.0 Security: basicAuth ## Path parameters: - `project_id` (integer, required) ID do projeto. Você pode encontrar esse parâmetro em sua Conta de Distribuidor ao lado do nome do projeto. Example: 44056 ## Request fields (application/json): - `attribute_conditions` (array) Condições para validação de atributos do usuário. Determine a disponibilidade da promoção com base em se os atributos do usuário correspondem a todas as condições especificadas. - `bonus` (array,null, required) - `bonus.quantity` (number) Quantidade do item. - `bonus.sku` (string) SKU do item. - `condition` (array,null, required) Conjunto de itens que devem ser incluídos na compra para aplicar uma promoção. Se esse parâmetro for null, uma promoção será aplicada a todas as compras dentro de um projeto. - `excluded_promotions` (array) Lista de IDs de promoção a serem excluídos ao aplicar esta promoção. Example: [12, 789] Example: [12,789] - `id` (integer) ID de promoção. Identificador exclusivo da promoção dentro do projeto. - `is_enabled` (boolean) Se a promoção está habilitada ou não. Example: true - `limits` (object) Limites da promoção. - `limits.per_user` (integer,null) Limitação de promoção para um usuário separado. - `limits.recurrent_schedule` (object,null) Limite o período de atualização. - `limits.recurrent_schedule.per_user` (object) Período de atualização do limite do usuário. - `limits.recurrent_schedule.per_user.day_of_month` (integer,null) Dia do mês em que os limites são atualizados. Se não houver um dia selecionado do mês por ser mais curto, a atualização ocorrerá no último dia do mês. Não null apenas para o tipo de período de atualização de limite monthly. - `limits.recurrent_schedule.per_user.day_of_week` (integer,null) Dia da semana em que os limites se atualizam. Onde 1 é segunda-feira e 7 é domingo. Não null apenas para o tipo de período de atualização de limite weekly. - `limits.recurrent_schedule.per_user.displayable_reset_next_date` (string) Data e hora em que os limites devem ser redefinidos (ISO 8601). Example: "2023-02-28T11:00:00+08:00" - `limits.recurrent_schedule.per_user.displayable_reset_start_date` (string) Data e hora da primeira atualização de limite (ISO 8601). Example: "2023-02-28T11:00:00+08:00" - `limits.recurrent_schedule.per_user.interval_type` (string) Tipo de período de atualização recorrente. Enum: "daily", "weekly", "monthly" - `limits.recurrent_schedule.per_user.reset_next_date` (integer) Data e hora em que os limites são atualizados (Unix Timestamp). Example: 1677553200 - `limits.recurrent_schedule.per_user.time` (string) Tempo de atualização do limite no fuso horário desejado (arredondamento para horas). Example: "11:00:00+03:00" - `name` (object, required) Nome da promoção. Deve conter pares chave/valor onde chave é uma localidade com formato "^[a-z]{2}-[A-Z]{2}$", e o valor é uma cadeia de caracteres. Example: {"de-DE":"Sommersaison Bonus","en-US":"Summer season bonus"} - `price_conditions` (array,null) Matriz de objetos com condições que definem a faixa de preço para aplicar a promoção. A promoção se aplica apenas a itens cujo preço atenda a todas as condições da matriz. Se você passar essa matriz, defina o valor do objeto [condition](/pt/api/shop-builder/operation/create-bonus-promotion/#!path=condition&t=request) como null. - `price_conditions.operator` (string, required) Operador de comparação para definir a faixa de preço para aplicar a promoção. Enum: "ge", "gt", "le", "lt", "eq", "ne" - `price_conditions.value` (string, required) Valor para determinar a faixa de preço para aplicar a promoção. - `promotion_periods` (array) Períodos de validade da promoção. Se múltiplos períodos forem especificados, tanto date_from quanto date_until são necessários. - `promotion_periods.date_from` (string, required) Data de início da promoção especificada. Example: "2020-08-11T10:00:00+03:00" - `promotion_periods.date_until` (string,null) Data de término da promoção especificada. Se definido como null, a promoção é indefinida. Pode ser null apenas se um único período de validade for especificado. Example: "2020-08-11T20:00:00+03:00" ## Response 201 fields (application/json): - `promotion_id` (integer) ID de promoção. Identificador exclusivo da promoção dentro do projeto. ## 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"