# Crear promoción de descuento para un artículo

Crea una promoción de descuento para un artículo.

Las promociones proporcionan un descuento (%) en los artículos.
El descuento se aplicará a todos los precios de los artículos especificados.

Endpoint: POST /v3/project/{project_id}/admin/promotion/item
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):

  - `name` (object, required)
    Nombre de la promoción. Debe contener pares clave/valor,
en los cuales la clave es la configuración regional con el formato "^[a-z]{2}-[A-Z]{2}$", el valor es una cadena (string).
    Example: {"en-US":"Promotion","ru-RU":"Акция"}

  - `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"

  - `discount` (object, required)

  - `discount.percent` (string, required)
    Porcentaje de descuento.
El precio del artículo se reducirá utilizando un valor calculado usando este porcentaje y luego se redondeará al segundo decimal.
    Example: 10

  - `items` (array, required)

  - `items.sku` (string, required)
    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.

  - `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 [items](/es/api/shop-builder/operation/create-item-promotion/#!path=items&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.

  - `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.

  - `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 `items` is required"

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


