# Remplir le panier d'objets

Remplit d'objets le panier. Si le panier contient déjà un objet avec la même UGS, l'objet existant sera remplacé par la valeur passée.

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

## Path parameters:

  - `project_id` (integer, required)
    ID du projet. Vous trouverez ce paramètre dans le Compte éditeur, à côté du nom du projet, ainsi que dans l'URL affichée dans la barre d'adresse du navigateur lorsque vous utilisez ce projet. L'URL présente le format suivant : https://publisher.xsolla.com//projects/.
    Example: 44056

## Request fields (application/json):

  - `items` (array, required)
    Liste des objets.
    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 de panier.
    Example: "cart_id"

  - `price` (object,null)
    Prix du panier.
    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)
    Si ce paramètre est défini sur true, le panier est gratuit.

  - `items` (array)

  - `items.sku` (string)

  - `items.groups` (array)

  - `items.groups.external_id` (string)

  - `items.groups.name` (string)

  - `items.name` (string,null)

  - `items.attributes` (array)
    Liste des attributs et de leurs valeurs correspondantes pour l'objet. Peut être utilisée pour le filtrage du catalogue.

  - `items.attributes.external_id` (string)
    ID unique de l'attribut. Le external_id ne peut comprendre que des caractères alphanumériques latins minuscules et majuscules, des tirets et des traits bas.

  - `items.attributes.name` (string)
    Nom de l'attribut.
    Example: "Genre"

  - `items.attributes.values` (array)

  - `items.attributes.values.external_id` (string)
    ID unique de la valeur d'un attribut. Le external_id ne peut comprendre que des caractères alphanumériques latins minuscules, des tirets et des tirets bas.

  - `items.attributes.values.value` (string)
    Valeur de l'attribut.
    Example: "Strategy"

  - `items.type` (string)

  - `items.description` (string)

  - `items.image_url` (string)

  - `items.quantity` (integer)

  - `items.price` (object,null)
    Prix de l'objet.
    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)
    Type d'objet.

  - `items.virtual_prices` (array)
    Prix virtuels.

  - `items.virtual_prices.amount` (integer)
    Prix de l'objet en monnaie virtuelle.
    Example: 100

  - `items.virtual_prices.amount_without_discount` (integer)
    Prix de l'objet en monnaie virtuelle, hors remise. Il correspond toujours à amount, car les remises ne s'appliquent pas aux prix en monnaie virtuelle.
    Example: 200

  - `items.virtual_prices.sku` (string)
    UGS de la monnaie virtuelle.
    Example: "vc_gold"

  - `items.virtual_prices.is_default` (boolean)
    Détermine s'il s'agit du prix par défaut en monnaie virtuelle.
    Example: true

  - `items.virtual_prices.image_url` (string,null)
    URL de l'image de la monnaie virtuelle.
    Example: "http://image.png"

  - `items.virtual_prices.name` (string)
    Nom de la monnaie virtuelle.
    Example: "Gold"

  - `items.virtual_prices.type` (string)
    Type d'objet. Pour la monnaie virtuelle, il s'agit de virtual_currency.
    Example: "virtual_currency"

  - `items.virtual_prices.description` (string,null)
    Description de la monnaie virtuelle.
    Example: "In-game currency used to purchase weapons and upgrades"

  - `items.is_free` (boolean)
    Détermine la gratuité de l'objet.

  - `items.is_bonus` (boolean)

  - `items.promotions` (array)
    Promotions appliquées à des objets spécifiques du panier. Le tableau est renvoyé dans les cas suivants :

* Une promotion par réduction est configurée pour un objet spécifique.

* Un code promo avec le paramètre Discount on selected items est appliqué.

Si aucune promotion de ce type n'est appliquée, un tableau vide est renvoyé.

  - `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)
    Type d'objet bonus.
    Enum: "virtual_good", "virtual_currency", "bundle", "physical_good", "game_key", "nft"

  - `items.promotions.bonus.name` (string)
    Nom de l'objet bonus. Non disponible pour le type d'objet bonus physical_good.

  - `items.promotions.bonus.image_url` (string)
    URL de l'image de l'objet bonus. Non disponible pour le type d'objet bonus physical_good.

  - `items.promotions.bonus.bundle_type` (string)
    Type de lot bonus. Disponible uniquement pour le type d'objet 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)
    Si true, l'utilisateur peut acheter l'objet.

  - `items.vp_rewards` (array)
    Liste des récompenses en points de valeur associées à cet objet.

  - `items.vp_rewards.item_id` (integer)
    Internal ID unique de l'objet.

  - `items.vp_rewards.sku` (string)
    ID unique du point de valeur.

  - `items.vp_rewards.amount` (integer)
    Montant des points de valeur.

  - `items.vp_rewards.name` (string)
    Nom du point de valeur.

  - `items.vp_rewards.image_url` (string)
    URL de l'image

  - `items.vp_rewards.is_clan` (boolean)
    Détermine l'utilisation du point de valeur dans les chaînes de récompense de clan.

  - `items.loyalty_rewards` (array)
    Points de fidélité reçus par l'utilisateur en récompense de l'achat de l'objet.

  - `items.loyalty_rewards.name` (string)
    Nom des points de fidélité.

  - `items.loyalty_rewards.sku` (string)
    UGS des points de fidélité. Transmettez cette valeur dans le paramètre loyalty_point_sku des autres appels API, par exemple lors de la création d'une commande payée avec des points de fidélité.

  - `items.loyalty_rewards.description` (string)
    Description des points de fidélité.

  - `items.loyalty_rewards.image_url` (string,null)
    URL de l'image

  - `items.loyalty_rewards.amount` (integer)
    Nombre de points de fidélité reçus par l'utilisateur pour l'achat de l'objet.

  - `items.limits` (object,null)
    Limites d'objets.

  - `items.limits.per_user` (object,null)
    Limites d'objets pour un utilisateur.

  - `items.limits.per_user.total` (integer)
    Nombre maximal d'objets qu'un utilisateur unique peut acheter.
    Example: 5

  - `items.limits.per_user.available` (integer)
    Nombre d'objets restants que l'utilisateur actuel peut acheter.
    Example: 3

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

  - `items.limits.per_user.limit_exceeded_visibility` (string)
    Détermine la visibilité de l'objet dans le catalogue une fois la limite d'achat atteinte, jusqu'à la prochaine réinitialisation de la limite.

S'applique aux objets pour lesquels des réinitialisations de limite récurrentes sont configurées dans le tableau recurrent_schedule.

Si aucune réinitialisation de limite n'est configurée, l'objet n'apparaît plus dans le catalogue une fois la limite d'achat atteinte, quelle que soit la valeur de limit_exceeded_visibility.

Valeurs possibles :
- show — L'objet est renvoyé dans les appels API de récupération du catalogue après avoir atteint la limite d'achat. Dans les appels côté client, une fois la limite atteinte, l'objet est renvoyé avec l'indicateur can_be_bought: false. La prochaine date de réinitialisation est renvoyée dans reset_next_date.
- hide — L'objet n'est pas renvoyé dans les appels API de récupération du catalogue après avoir atteint la limite d'achat, jusqu'à la réinitialisation de la limite.
    Enum: "show", "hide"

  - `items.limits.per_item` (object,null)
    Informations sur les limites pour un objet.

  - `items.limits.per_item.total` (integer)
    Nombre maximal d'objets que tous les utilisateurs peuvent acheter.
    Example: 5

  - `items.limits.per_item.available` (integer)
    Nombre d'objets restants que tous les utilisateurs peuvent acheter.
    Example: 3

  - `items.periods` (array,null)
    Période de vente d'objets.

  - `items.periods.date_from` (string)
    Date de mise en vente de l'objet spécifié.
    Example: "2020-08-11T10:00:00+03:00"

  - `items.periods.date_until` (string,null)
    Date de retrait de la vente de l'objet spécifié. Peut prendre la valeur null.
    Example: "2020-08-11T20:00:00+03:00"

  - `promotions` (array)
    Promotions appliquées à l'ensemble du panier. Le tableau est renvoyé dans les cas suivants :

* Une promotion affecte le montant total du panier, comme un code promo avec le paramètre Discount on purchase.

* Une promotion ajoute des objets bonus au panier.

Si aucune promotion de ce type n’est appliquée, un tableau vide est renvoyé.

  - `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)
    Type d'objet bonus.
    Enum: "virtual_good", "virtual_currency", "bundle", "physical_good", "game_key", "nft"

  - `promotions.bonus.name` (string)
    Nom de l'objet bonus. Non disponible pour le type d'objet bonus physical_good.

  - `promotions.bonus.image_url` (string)
    URL de l'image de l'objet bonus. Non disponible pour le type d'objet bonus physical_good.

  - `promotions.bonus.bundle_type` (string)
    Type de lot bonus. Disponible uniquement pour le type d'objet 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)


