# Crear promoción de bonificaciones

Crea la promoción de bonificaciones.

La promoción añade artículos de bonificación gratuitos a la compra realizada por un usuario.
La promoción puede aplicarse a cada compra dentro de un proyecto o a una compra que incluya artículos concretos.

Endpoint: POST /v3/project/{project_id}/admin/promotion/bonus
Version: 2.0.0
Security: basicAuth

## Path parameters:

  - `project_id` (integer, required)
    ID del proyecto. Encontrará este parámetro en su Cuenta del editor junto al nombre del proyecto y en la barra de direcciones del navegador cuando se trabaja en un proyecto. La URL tiene el siguiente formato: https://publisher.xsolla.com//projects/.
    Example: 44056

## Request fields (application/json):

  - `id` (integer)
    ID de promoción. Identificador único de la promoción en el proyecto.

  - `promotion_periods` (array)
    Periodos de validez de la promoción.  Si se especifican varios periodos, es necesario tanto date_from como date_until.

  - `promotion_periods.date_from` (string, required)
    Fecha de inicio de la promoción especificada.
    Example: "2020-08-11T10:00:00+03:00"

  - `promotion_periods.date_until` (string,null)
    Fecha de finalización de la promoción especificada. Si se establece como null, la promoción es indefinida. Puede ser null solamente si se especifica un único periodo de validez.
    Example: "2020-08-11T20:00:00+03:00"

  - `name` (object, required)
    Nombre de la promoción. Debe contener pares clave/valor en los cuales la clave es una configuración regional con el formato "^[a-z]{2}-[A-Z]{2}$", el valor es una cadena (string).
    Example: {"en-US":"Summer season bonus","de-DE":"Sommersaison Bonus"}

  - `condition` (array,null, required)
    Conjunto de artículos que deben incluirse en la compra para aplicar una promoción. Si este parámetro es null, se aplicará una promoción a cualquier compra dentro de un proyecto.

  - `condition.sku` (string)
    SKU del artículo.

  - `attribute_conditions` (array)
    Condiciones para validar los atributos de usuario.
Determina la disponibilidad de la promoción en función de si los atributos de usuario cumplen todas las condiciones especificadas.

  - `bonus` (array,null, required)

  - `bonus.sku` (string)
    SKU del artículo.

  - `bonus.quantity` (number)
    Cantidad del artículo.

  - `limits` (object)
    Límites de la promoción.

  - `limits.per_user` (integer,null)
    Limitaciones de la promoción para un usuario independiente.

  - `limits.recurrent_schedule` (object,null)
    Periodo de actualización del límite.

  - `limits.recurrent_schedule.per_user` (any)
    Periodo de actualización del límite del usuario.

  - `price_conditions` (array,null)
    Matriz de objetos con condiciones que establecen el rango de precios para aplicar la promoción. La promoción solo se aplica a los artículos cuyo precio cumple todas las condiciones de la matriz. Si transmite esta matriz, establezca el valor del objeto [condition](/es/api/shop-builder/operation/create-bonus-promotion/#!path=condition&t=request) en null.

  - `price_conditions.operator` (string, required)
    Operador de comparación para establecer el rango de precios para aplicar la promoción.

Valores posibles:
- ge — Mayor o igual que
- gt — Mayor que
- le — Menor o igual que
- lt — Menor que
- eq — Igual que
- ne — No es igual que
    Enum: "ge", "gt", "le", "lt", "eq", "ne"

  - `price_conditions.value` (string, required)
    Valor para determinar el rango de precios para aplicar la promoción.

  - `excluded_promotions` (array)
    Lista de ID de promociones a excluir al aplicar esta promoción. Example: [12, 789].

  - `is_enabled` (boolean)
    Si la promoción está habilitada o no.

## Response 201 fields (application/json):

  - `promotion_id` (integer)
    ID de promoción. Identificador único de la promoción en el proyecto.

## Response 401 fields (application/json):

  - `statusCode` (integer)
    Example: 401

  - `errorCode` (integer)
    Example: 1020

  - `errorMessage` (string)
    Example: "[0401-1020]: Error in Authentication method occurred"

## Response 422 fields (application/json):

  - `statusCode` (integer)
    Example: 422

  - `errorCode` (integer)
    Example: 1102

  - `errorMessage` (string)
    Example: "[0401-1102]:  Unprocessable Entity. The property `bonus` is required"

  - `transactionId` (string)
    Example: "x-x-x-x-transactionId-mock-x-x-x"


