# Наполнение корзины товарами

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

Endpoint: PUT /v2/project/{project_id}/cart/fill
Version: 2.0.0
Security: AuthForCart

## Path parameters:

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

## Request fields (application/json):

  - `items` (array, required)
    Список товаров.
    Example: [{"sku":"com.xsolla.booster_mega_1","quantity":123}]

  - `items.sku` (string, required)

  - `items.quantity` (number, required)

## Response 200 fields (application/json):

  - `cart_id` (string)
    ID корзины.
    Example: "cart_id"

  - `price` (object,null)
    Цена корзины.
    Example: {"amount":"6150.0000000000000000","amount_without_discount":"6150.0000000000000000","currency":"USD"}

  - `price.amount` (string)
    Example: "6150.0000000000000000"

  - `price.amount_without_discount` (string)
    Example: "6150.0000000000000000"

  - `price.currency` (string)
    Example: "USD"

  - `is_free` (boolean)
    Если true, корзина бесплатная.

  - `items` (array)

  - `items.sku` (string)

  - `items.groups` (array)

  - `items.groups.external_id` (string)

  - `items.groups.name` (string)

  - `items.name` (string,null)

  - `items.attributes` (array)
    Список атрибутов и их значений, соответствующих товару. Может использоваться для фильтрации каталога.

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

  - `items.attributes.name` (string)
    Название атрибута.
    Example: "Genre"

  - `items.attributes.values` (array)

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

  - `items.attributes.values.value` (string)
    Значение атрибута.
    Example: "Strategy"

  - `items.type` (string)

  - `items.description` (string)

  - `items.image_url` (string)

  - `items.quantity` (integer)

  - `items.price` (object,null)
    Цена товара.
    Example: {"amount":"6150.0000000000000000","amount_without_discount":"6150.0000000000000000","currency":"USD"}

  - `items.price.amount` (string)
    Example: "6150.0000000000000000"

  - `items.price.amount_without_discount` (string)
    Example: "6150.0000000000000000"

  - `items.price.currency` (string)
    Example: "USD"

  - `items.virtual_item_type` (string)
    Тип товара.

  - `items.virtual_prices` (array)
    Виртуальные цены.

  - `items.virtual_prices.amount` (integer)
    Цена товара в виртуальной валюте.
    Example: 100

  - `items.virtual_prices.amount_without_discount` (integer)
    Цена товара в виртуальной валюте без скидки. Всегда равна значению amount, так как скидки не применяются к ценам в виртуальной валюте.
    Example: 200

  - `items.virtual_prices.sku` (string)
    Артикул виртуальной валюты.
    Example: "vc_gold"

  - `items.virtual_prices.is_default` (boolean)
    Является ли ценой в виртуальной валюте по умолчанию.
    Example: true

  - `items.virtual_prices.image_url` (string,null)
    URL-адрес изображения виртуальной валюты.
    Example: "http://image.png"

  - `items.virtual_prices.name` (string)
    Название виртуальной валюты.
    Example: "Gold"

  - `items.virtual_prices.type` (string)
    Тип товара. Для виртуальной валюты всегда имеет значение virtual_currency.
    Example: "virtual_currency"

  - `items.virtual_prices.description` (string,null)
    Описание виртуальной валюты.
    Example: "In-game currency used to purchase weapons and upgrades"

  - `items.is_free` (boolean)
    Является ли товар бесплатным.

  - `items.is_bonus` (boolean)

  - `items.promotions` (array)
    Примененные акции для отдельных товаров в корзине. Массив возвращается, если:

* Скидочная акция настроена для отдельного товара.

* Используется промокод с настройкой Скидка на выбранные товары.

Если акции на уровне отдельных товаров не применялись, возвращается пустой массив.

  - `items.promotions.name` (string)

  - `items.promotions.date_start` (string,null)

  - `items.promotions.date_end` (string,null)

  - `items.promotions.discount` (object,null)

  - `items.promotions.discount.percent` (string,null)

  - `items.promotions.discount.value` (string,null)

  - `items.promotions.bonus` (array)

  - `items.promotions.bonus.sku` (string)

  - `items.promotions.bonus.quantity` (integer)

  - `items.promotions.bonus.type` (string)
    Тип бонусного товара.
    Enum: "virtual_good", "virtual_currency", "bundle", "physical_good", "game_key", "nft"

  - `items.promotions.bonus.name` (string)
    Название бонусного товара. Недоступно для типа бонусного товара physical_good.

  - `items.promotions.bonus.image_url` (string)
    URL-адрес изображения бонусного бандла. Недоступно для типа бонусного товара physical_good.

  - `items.promotions.bonus.bundle_type` (string)
    Тип товара бонусного бандла. Доступно только для бонусного товара типа bundle.
    Enum: "standard", "virtual_currency_package"

  - `items.promotions.limits` (object)

  - `items.promotions.limits.per_user` (object)

  - `items.promotions.limits.per_user.available` (integer)

  - `items.promotions.limits.per_user.total` (integer)

  - `items.can_be_bought` (boolean)
    Если true, пользователь может купить товар.

  - `items.vp_rewards` (array)
    Список призовых баллов для товара.

  - `items.vp_rewards.item_id` (integer)
    Внутренний уникальный ID виртуального предмета или валюты.

  - `items.vp_rewards.sku` (string)
    Уникальный ID призовых баллов.

  - `items.vp_rewards.amount` (integer)
    Количество призовых баллов.

  - `items.vp_rewards.name` (string)
    Название призовых баллов.

  - `items.vp_rewards.image_url` (string)
    URL-адрес изображения.

  - `items.vp_rewards.is_clan` (boolean)
    Может ли призовой балл использоваться в цепочках наград для клана.

  - `items.loyalty_rewards` (array)
    Баллы лояльности, которые пользователь получает в награду за покупку товара.

  - `items.loyalty_rewards.name` (string)
    Название баллов лояльности.

  - `items.loyalty_rewards.sku` (string)
    Артикул балла лояльности. Используйте это значение в параметре loyalty_point_sku в других запросах API, например при создании заказа, оплачиваемого баллами лояльности.

  - `items.loyalty_rewards.description` (string)
    Описание баллов лояльности.

  - `items.loyalty_rewards.image_url` (string,null)
    URL-адрес изображения.

  - `items.loyalty_rewards.amount` (integer)
    Количество баллов лояльности, которое пользователь получает за покупку товара.

  - `items.limits` (object,null)
    Ограничения на продажу товара.

  - `items.limits.per_user` (object,null)
    Ограничения на продажу товара для пользователя.

  - `items.limits.per_user.total` (integer)
    Максимальное количество товара, которое может приобрести один пользователь.
    Example: 5

  - `items.limits.per_user.available` (integer)
    Оставшееся количество товара, которое может приобрести текущий пользователь.
    Example: 3

  - `items.limits.per_user.recurrent_schedule` (any)

  - `items.limits.per_user.limit_exceeded_visibility` (string)
    Определяет видимость товара в каталоге после достижения лимита покупок до момента следующего обновления лимитов.

Применяется к товарам, для которых задано регулярное обновление лимитов в массиве recurrent_schedule.

Если обновление лимитов не задано, товар не отображается в каталоге после достижения лимита независимо от значения limit_exceeded_visibility.

Возможные значения:
- show — Товар возвращается в методах получения каталога товаров после достижения лимита покупок. В клиентских методах получения каталога после достижения лимита товар возвращается с флагом can_be_bought: false. Дата следующего сброса возвращается в reset_next_date.
- hide — Товар не возвращается в методах получения каталога товаров после достижения лимита покупок до момента сброса лимитов.
    Enum: "show", "hide"

  - `items.limits.per_item` (object,null)
    Ограничения на продажу для конкретного товара.

  - `items.limits.per_item.total` (integer)
    Максимальное количество товара, которое могут приобрести все пользователи.
    Example: 5

  - `items.limits.per_item.available` (integer)
    Оставшееся количество товара, которое могут приобрести все пользователи.
    Example: 3

  - `items.periods` (array,null)
    Период продажи товара.

  - `items.periods.date_from` (string)
    Дата, когда указанный товар будет доступен для продажи.
    Example: "2020-08-11T10:00:00+03:00"

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

  - `promotions` (array)
    Примененные ко всей корзине акции. Массив возвращается, если:

* Акция влияет на общую стоимость корзины при использовании промокода с настройкой Скидка на покупку.

* К корзине добавляются бонусные товары.

Если акции на уровне заказа не применялись, возвращается пустой массив.

  - `promotions.name` (string)

  - `promotions.date_start` (string,null)

  - `promotions.date_end` (string,null)

  - `promotions.discount` (object,null)

  - `promotions.discount.percent` (string,null)

  - `promotions.discount.value` (string,null)

  - `promotions.bonus` (array)

  - `promotions.bonus.sku` (string)

  - `promotions.bonus.quantity` (integer)

  - `promotions.bonus.type` (string)
    Тип бонусного товара.
    Enum: "virtual_good", "virtual_currency", "bundle", "physical_good", "game_key", "nft"

  - `promotions.bonus.name` (string)
    Название бонусного товара. Недоступно для типа бонусного товара physical_good.

  - `promotions.bonus.image_url` (string)
    URL-адрес изображения бонусного бандла. Недоступно для типа бонусного товара physical_good.

  - `promotions.bonus.bundle_type` (string)
    Тип товара бонусного бандла. Доступно только для бонусного товара типа bundle.
    Enum: "standard", "virtual_currency_package"

  - `promotions.limits` (object)

  - `promotions.limits.per_user` (object)

  - `promotions.limits.per_user.available` (integer)

  - `promotions.limits.per_user.total` (integer)

  - `warnings` (array)

  - `warnings.sku` (string)

  - `warnings.quantity` (integer)

  - `warnings.errorCode` (integer)

  - `warnings.errorMessage` (string)


