# Preencher o carrinho com itens

Preenche o carrinho de itens. Se o carrinho já tiver um item com o mesmo SKU, o item existente será substituído pelo valor passado.

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

## Path parameters:

  - `project_id` (integer, required)
    ID de projeto. Você pode encontrar esse parâmetro na sua Conta de Distribuidor, próximo ao nome do projeto e na barra de endereços do navegador ao trabalhar com um projeto. O URL tem o seguinte formato: https://publisher.xsolla.com//projects/.
    Example: 44056

## Request fields (application/json):

  - `items` (array, required)
    Lista de itens.
    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 do carrinho.
    Example: "cart_id"

  - `price` (object,null)
    Preço do carrinho.
    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)
    Se true, o carrinho é gratuito.

  - `items` (array)

  - `items.sku` (string)

  - `items.groups` (array)

  - `items.groups.external_id` (string)

  - `items.groups.name` (string)

  - `items.name` (string,null)

  - `items.attributes` (array)
    Lista de atributos e seus valores correspondentes ao item. Pode ser usado para a filtragem de catálogos.

  - `items.attributes.external_id` (string)
    ID de atributo exclusivo. O external_id só pode conter caracteres alfanuméricos latinos minúsculos e maiúsculos, traços e sublinhados.

  - `items.attributes.name` (string)
    Nome do atributo.
    Example: "Genre"

  - `items.attributes.values` (array)

  - `items.attributes.values.external_id` (string)
    ID de valor exclusivo para um atributo. O external_id pode conter apenas caracteres alfanuméricos latinos minúsculos, traços e sublinhados.

  - `items.attributes.values.value` (string)
    Valor do atributo.
    Example: "Strategy"

  - `items.type` (string)

  - `items.description` (string)

  - `items.image_url` (string)

  - `items.quantity` (integer)

  - `items.price` (object,null)
    Preço do item.
    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)
    Tipo de item.

  - `items.virtual_prices` (array)
    Preços virtuais.

  - `items.virtual_prices.amount` (integer)
    Preço do item em moeda virtual.
    Example: 100

  - `items.virtual_prices.amount_without_discount` (integer)
    Preço do item em moedas virtuais sem desconto. Sempre igual a amount já que descontos não são aplicados a preços em moedas virtuais.
    Example: 200

  - `items.virtual_prices.sku` (string)
    SKU de moeda virtual.
    Example: "vc_gold"

  - `items.virtual_prices.is_default` (boolean)
    Se o preço padrão é definido em uma moeda virtual ou não.
    Example: true

  - `items.virtual_prices.image_url` (string,null)
    URL de imagem da moeda virtual
    Example: "http://image.png"

  - `items.virtual_prices.name` (string)
    Nome da moeda virtual.
    Example: "Gold"

  - `items.virtual_prices.type` (string)
    Tipo de item. Para moedas virtuais, é virtual_currency.
    Example: "virtual_currency"

  - `items.virtual_prices.description` (string,null)
    Descrição da moeda virtual.
    Example: "In-game currency used to purchase weapons and upgrades"

  - `items.is_free` (boolean)
    Se o item é gratuito ou não.

  - `items.is_bonus` (boolean)

  - `items.promotions` (array)
    Promoções aplicadas a itens específicos no carrinho. A matriz é retornada nos seguintes casos:

* Uma promoção de desconto é configurada para um item específico.

* Um código promocional com a configuração Desconto em itens selecionados é aplicado.

Se nenhuma promoção no nível do item for aplicada, é retornada uma matriz vazia.

  - `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)
    Tipo de item bônus.
    Enum: "virtual_good", "virtual_currency", "bundle", "physical_good", "game_key", "nft"

  - `items.promotions.bonus.name` (string)
    Nome do item bônus. Indisponível para o tipo de item bônus physical_good.

  - `items.promotions.bonus.image_url` (string)
    URL da imagem do item bônus. Indisponível para o tipo de item bônus physical_good.

  - `items.promotions.bonus.bundle_type` (string)
    Tipo de item de pacote de bônus. Disponível apenas para o tipo de item bônus 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)
    Se true, o usuário pode comprar um item.

  - `items.vp_rewards` (array)
    Lista de recompensas de pontos de valor para o item.

  - `items.vp_rewards.item_id` (integer)
    ID de item exclusivo interno.

  - `items.vp_rewards.sku` (string)
    ID de ponto de valor exclusivo.

  - `items.vp_rewards.amount` (integer)
    Quantidade de pontos de valor.

  - `items.vp_rewards.name` (string)
    Nome do ponto de valor.

  - `items.vp_rewards.image_url` (string)
    URL da imagem.

  - `items.vp_rewards.is_clan` (boolean)
    Se o ponto de valor é usado em cadeias de recompensa de clã ou não.

  - `items.loyalty_rewards` (array)
    Pontos de fidelidade que o usuário recebe como recompensa por comprar o item.

  - `items.loyalty_rewards.name` (string)
    Nome dos pontos de fidelidade.

  - `items.loyalty_rewards.sku` (string)
    SKU de pontos de fidelidade. Passe esse valor no parâmetro loyalty_point_sku de outras chamadas de API, por exemplo, ao criar um pedido pago com pontos de fidelidade.

  - `items.loyalty_rewards.description` (string)
    Descrição dos pontos de fidelidade.

  - `items.loyalty_rewards.image_url` (string,null)
    URL da imagem.

  - `items.loyalty_rewards.amount` (integer)
    Quantidade de pontos de fidelidade que o usuário recebe por comprar o item.

  - `items.limits` (object,null)
    Limites de itens.

  - `items.limits.per_user` (object,null)
    Limites de item para um usuário.

  - `items.limits.per_user.total` (integer)
    Quantidade máxima de itens que o usuário atual pode comprar.
    Example: 5

  - `items.limits.per_user.available` (integer)
    Quantidade restante de itens que o usuário atual pode comprar.
    Example: 3

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

  - `items.limits.per_user.limit_exceeded_visibility` (string)
    Determina a visibilidade do item no catálogo após o limite de compra ser atingido, até o próximo limite ser redefinido.

Aplica-se a itens para os quais redefinições recorrentes de limite estão configurados na matriz recurrent_schedule.

Se os limites redefinidos não forem configurados, o item não aparecerá no catálogo após o limite de compra ser atingido,
independentemente do valor limit_exceeded_visibility.

Possíveis valores:
- show — O item é retornado nas chamadas API de recuperação de catálogo após o limite de compra ser atingido. Nas chamadas API
de recuperação de catálogo, quando o limite for atingido, o item será retornado com a marcação can_be_bought: false. A próxima
data de redefinição é retornada em  reset_next_date.
- hide — O item não é retornado nas chamadas API de recuperação de catálogo após o limite de compra ser atingido, até
o limite ser redefinido.
    Enum: "show", "hide"

  - `items.limits.per_item` (object,null)
    Limites de item para um item.

  - `items.limits.per_item.total` (integer)
    Quantidade máxima de itens que todos os usuários podem comprar.
    Example: 5

  - `items.limits.per_item.available` (integer)
    Quantidade restante de itens que todos os usuários podem comprar.
    Example: 3

  - `items.periods` (array,null)
    Período de venda de itens.

  - `items.periods.date_from` (string)
    Data em que o item especificado estará disponível para venda.
    Example: "2020-08-11T10:00:00+03:00"

  - `items.periods.date_until` (string,null)
    Data em que o item especificado ficará indisponível para venda. Pode ser null.
    Example: "2020-08-11T20:00:00+03:00"

  - `promotions` (array)
    Promoções aplicadas para todo o carrinho. A matriz é retornada nos seguintes casos:

* Uma promoção afeta o valor total do carrinho, como um código promocional com a configuração Desconto na compra.

* Uma promoção adiciona itens bônus ao carrinho.

Se nenhuma promoção no nível do pedido for aplicada, é retornada uma matriz vazia.

  - `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)
    Tipo de item bônus.
    Enum: "virtual_good", "virtual_currency", "bundle", "physical_good", "game_key", "nft"

  - `promotions.bonus.name` (string)
    Nome do item bônus. Indisponível para o tipo de item bônus physical_good.

  - `promotions.bonus.image_url` (string)
    URL da imagem do item bônus. Indisponível para o tipo de item bônus physical_good.

  - `promotions.bonus.bundle_type` (string)
    Tipo de item de pacote de bônus. Disponível apenas para o tipo de item bônus 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)


