# Создание акции с бонусами

Создает акцию с бонусами.

Акция добавляет бесплатные бонусные товары к покупке, совершенной пользователем.
Акция может быть применена к каждой покупке в рамках проекта или к покупке, включающей определенные товары.

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

## Path parameters:

  - `project_id` (integer, required)
    ID проекта. Вы можете найти этот параметр в Личном кабинете рядом с названием проекта, а также в адресной строке браузера при работе с проектом. URL-адрес имеет следующий формат: https://publisher.xsolla.com//projects/.
    Example: 44056

## Request fields (application/json):

  - `id` (integer)
    ID акции. Уникальный идентификатор акции в рамках проекта.

  - `promotion_periods` (array)
    Периоды действия акции. Если указано больше одного периода, параметры date_from и date_until становятся обязательными.

  - `promotion_periods.date_from` (string, required)
    Дата начала действия указанной акции.
    Example: "2020-08-11T10:00:00+03:00"

  - `promotion_periods.date_until` (string,null)
    Дата окончания действия указанной акции. Если передано значение null, акция является бессрочной. Может быть null, только если указан один период действия.
    Example: "2020-08-11T20:00:00+03:00"

  - `name` (object, required)
    Название акции. Данный параметр должен содержать пары ключ/значение, где ключ — это локаль в формате "^[a-z]{2}-[A-Z]{2}$", значение — строка.
    Example: {"en-US":"Summer season bonus","de-DE":"Sommersaison Bonus"}

  - `condition` (array,null, required)
    Набор товаров, которые необходимо включить в покупку для применения акции. Если этот параметр равен null, акция будет применена к любым покупкам в рамках проекта.

  - `condition.sku` (string)
    Артикул товара.

  - `attribute_conditions` (array)
    Условия для проверки атрибутов пользователя.
Определяют доступность цепочки на основе соответствия атрибутов пользователя всем указанным условиям.

  - `bonus` (array,null, required)

  - `bonus.sku` (string)
    Артикул товара.

  - `bonus.quantity` (number)
    Количество товаров.

  - `limits` (object)
    Ограничения акции.

  - `limits.per_user` (integer,null)
    Ограничение количества использований акций отдельным пользователем.

  - `limits.recurrent_schedule` (object,null)
    Период обновления установленный ограничений.

  - `limits.recurrent_schedule.per_user` (any)
    Период обновления установленный ограничений для пользователя.

  - `price_conditions` (array,null)
    Массив объектов с условиями, задающими ценовой диапазон применения акции. Акция применяется только к товарам, цена которых удовлетворяет всем условиям в массиве. Если вы передаете этот массив, в объекте [condition](/ru/api/shop-builder/operation/create-bonus-promotion/#!path=condition&t=request) передайте значение null.

  - `price_conditions.operator` (string, required)
    Оператор сравнения для задания ценового диапазона применения акции.

Возможные значения:
- ge — больше или равно
- gt — больше
- le — меньше или равно
- lt — меньше
- eq — равно
- ne — не равно
    Enum: "ge", "gt", "le", "lt", "eq", "ne"

  - `price_conditions.value` (string, required)
    Значение для определения ценового диапазона применения акции.

  - `excluded_promotions` (array)
    Список акций, которые исключаются при применении этой акции. Example: [12, 789]

  - `is_enabled` (boolean)
    Активирована ли акция.

## Response 201 fields (application/json):

  - `promotion_id` (integer)
    ID акции. Уникальный идентификатор акции в рамках проекта.

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


