# Обновление цепочки предложений

Обновляет конкретную цепочку предложений.

Endpoint: PUT /v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}
Version: 2.0.0
Security: basicAuth

## Path parameters:

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

  - `offer_chain_id` (integer, required)
    ID цепочки предложений.
    Example: 101

## Request fields (application/json):

  - `id` (integer)
    Уникальный ID цепочки предложений.

  - `name` (object,null, required)
    Объект с локализованными названиями товара. Принимает значения в одном из двух форматов: двухбуквенный код языка в нижнем регистре (например, en) или код языка из пяти символов (например, en-US). Оба формата допустимы при отправке запроса, но в ответе всегда используется двухбуквенный код языка. Если для одного языка указаны оба варианта (например, en и en-US), будет сохранено последнее переданное значение. Полный список поддерживаемых языков приведен в [документации](/ru/doc/shop-builder/references/supported-languages/).

  - `order` (integer)
    Определяет порядок расположения.

  - `description` (object,null)
    Объект с локализованными описаниями товара. Принимает значения в одном из двух форматов: двухбуквенный код языка в нижнем регистре (например, en) или код локали из пяти символов (например, en-US). Оба формата допустимы при отправке запроса, но в ответе всегда используется код из двух символов. Если для одного языка указаны оба варианта (например, en и en-US), будет сохранено последнее переданное значение. Полный список поддерживаемых языков приведен в [документации](/ru/doc/shop-builder/references/supported-languages/).

  - `date_start` (string, required)
    Дата начала действия цепочки предложений.

  - `date_end` (string,null)
    Дата окончания срока действия цепочки предложений. Может быть null. Если date_end равен null, цепочка предложений будет бессрочной.

  - `is_enabled` (boolean, required)

  - `recurrent_schedule` (any)

  - `steps` (array, required)

  - `steps.step_id` (integer,null)
    Уникальный ID уровня цепочки. Укажите его при обновлении, чтобы сохранить прогресс пользователя для этого уровня.

  - `steps.step_number` (integer, required)
    Номер уровня.

  - `steps.is_free` (boolean, required)
    Указывает, является ли уровень цепочки предложений бесплатным:Если true — награду необходимо запросить, используя метод Получение награды за уровень цепочки предложений.Если false — награду необходимо приобрести, используя метод Создание заказа на награду за уровень цепочки предложений.

  - `steps.items` (array, required)

  - `steps.items.sku` (string, required)
    Уникальный ID товара. Артикул может содержать только строчные и заглавные латинские буквы, цифры, точки, тире и подчеркивания.

  - `steps.items.quantity` (integer, required)
    Количество товаров в вознаграждении для этого уровня цепочки.

  - `steps.items.order` (integer,null)
    Заказ на вознаграждение за уровень цепочки предложений.

  - `is_always_visible` (boolean)
    Отображается ли цепочка всем пользователям. Если true, цепочка всегда отображается, независимо от авторизации пользователя и его атрибутов.

Для настройки персонализации вам необходимо передать значение false. Логика отображения цепочки будет следующей:
  * Если передано значение false и в массиве attribute_conditions заданы условия отображения, цепочка считается персонализированной и отображается только для авторизованных пользователей, атрибуты которых удовлетворяют заданным условиям.
  * Если передано значение false и массив attribute_conditions не передан или пустой, цепочка отображается неавторизованным пользователям и авторизованным пользователям, для которых не нашлось ни одной персонализированной цепочки.

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

## Response 401 fields (application/json):

  - `statusCode` (integer)
    Example: 401

  - `errorCode` (integer)
    Example: 1020

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

## Response 404 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)

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


## Response 204 fields
