# Crear cadena de ofertas

Crea una cadena de ofertas.

Endpoint: POST /v2/project/{project_id}/admin/offer_chain
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,null, required)
    Objeto con traducciones para la descripción del artículo. Acepta valores en uno de estos dos formatos: códigos de idioma de dos letras en minúscula (p. ej., en) o códigos de idioma de cinco caracteres (p. ej., en-US). Aunque ambos formatos se aceptan como entradas, las respuestas devuelven códigos de idioma de dos letras en minúscula. Cuando se facilitan ambas opciones para el mismo idioma (p. ej. en y en-US), se almacena el último valor proporcionado. Puede consultar la lista completa de idiomas admitidos en la [documentación](/es/doc/shop-builder/references/supported-languages/).

  - `order` (integer)
    Define el orden de disposición.

  - `description` (object,null)
    Objeto con traducciones para la descripción del artículo. Acepta valores en uno de dos formatos: códigos de idioma de dos letras en minúscula (p. ej., en) o códigos de configuración regional de cinco caracteres (p. ej., en-US). Aunque ambos formatos se aceptan como entradas, las respuestas devuelven códigos de idioma de dos letras en minúscula. Cuando se facilitan ambas opciones para el mismo idioma (p. ej. en y en-US), se almacena el último valor proporcionado. Puede consultar la lista completa de idiomas admitidos en la [documentación](/es/doc/shop-builder/references/supported-languages/).

  - `date_start` (string, required)
    Fecha de inicio de la cadena de ofertas.

  - `date_end` (string,null)
    Fecha en la que finaliza la cadena de ofertas. Puede ser null. Si date_end es null, la cadena de ofertas no tendrá límite de tiempo.

  - `is_enabled` (boolean, required)

  - `recurrent_schedule` (any)

  - `steps` (array, required)

  - `steps.step_number` (integer, required)
    Número del paso.

  - `steps.is_free` (boolean, required)
    Indica si el paso de la cadena de ofertas es gratuito:Si es true, el paso debe reclamarse mediante la llamada Reclamar paso de cadena de ofertas gratuito.Si es false, debe comprarse mediante la llamada Crear pedido para el paso de cadena de ofertas de pago.

  - `steps.items` (array, required)

  - `steps.items.sku` (string, required)
    ID único del artículo. El SKU solo puede contener caracteres alfanuméricos latinos en minúsculas y mayúsculas, puntos, guiones y guiones bajos.

  - `steps.items.quantity` (integer, required)
    Cantidad del artículo de recompensa para este paso de cadena.

  - `steps.items.order` (integer,null)
    Orden de recompensa para el paso de la cadena de ofertas.

  - `is_always_visible` (boolean)
    Si todos los usuarios pueden ver la cadena. Si es true, la cadena se muestra siempre, independientemente del estado de autenticación o de los atributos del usuario.

Para configurar la personalización, debe transmitir false. La lógica de visualización de la cadena será la siguiente:
  * Si es false, se transmite y se especifican las condiciones de visibilidad en la matriz attribute_conditions, la cadena se considera personalizada y solo se muestra a los usuarios autorizados que cumplan las condiciones especificadas.
  * Si es false, se transmite y la matriz attribute_conditions no se transmite o está vacía, la cadena se muestra a los usuarios no autorizados, así como en los casos en los que no se encuentre ninguna cadena que coincida con el usuario autorizado.

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

## Response 201 fields (application/json):

  - `offer_chain_id` (integer)
    Example: 10

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

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

  - `errorMessageExtended` (object,null)


