# 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 de projet. Ce paramètre se trouve dans le Compte éditeur à côté du nom du projet. Example: 44056 ## Request fields (application/json): - `items` (array, required) Liste des objets. Example: [{"quantity":123,"sku":"com.xsolla.booster_mega_1"}] - `items.quantity` (number, required) - `items.sku` (string, required) ## Response 200 fields (application/json): - `cart_id` (string) ID de panier. Example: "cart_id" - `is_free` (boolean) Si ce paramètre est défini sur true, le panier est gratuit. - `items` (array) - `items.attributes` (array) Liste des attributs et de leurs valeurs correspondantes pour l'objet. Peut être utilisée pour le filtrage du catalogue. Example: {"value":{"external_id":"genre","name":"Жанр","values":[{"external_id":"genre_e3364991f92e751689a68b96598a5a5a84010b85","value":"Casual"},{"external_id":"genre_eba07bfd0f982940773cba3744d97264dd58acd7","value":"Strategy"},{"external_id":"genre_b8d0c6d8f0524c2b2d79ebb93aa3cd0e8b5199a8","value":"Mobile"}]}} - `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. Example: "attribute_1" - `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. Example: "attribute_value" - `items.attributes.values.value` (string) Valeur de l'attribut. Example: "Strategy" - `items.can_be_bought` (boolean) Si true, l'utilisateur peut acheter l'objet. Example: true - `items.description` (string) - `items.groups` (array) - `items.groups.external_id` (string) - `items.groups.name` (string) - `items.image_url` (string) - `items.is_bonus` (boolean) - `items.is_free` (boolean) Si ce paramètre est défini sur true, l'objet est gratuit. - `items.limits` (object,null) Limites d'objets. - `items.limits.per_item` (object,null) Informations sur les limites pour un objet. - `items.limits.per_item.available` (integer) Nombre d'objets restants que tous les utilisateurs peuvent acheter. Example: 3 - `items.limits.per_item.total` (integer) Nombre maximal d'objets que tous les utilisateurs peuvent acheter. Example: 5 - `items.limits.per_user` (object,null) Limites d'objets pour un utilisateur. - `items.limits.per_user.available` (integer) Nombre d'objets restants que l'utilisateur actuel peut acheter. Example: 3 - `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 après l'atteinte de la limite d'achat, quelle que soit la valeur de limit_exceeded_visibility. Enum: "show", "hide" - `items.limits.per_user.recurrent_schedule` (object) Délai d'actualisation récurrent des limites d'un objet pour un utilisateur. - `items.limits.per_user.recurrent_schedule.interval_type` (string) Type de délai d'actualisation récurrent. Enum: "daily", "weekly", "monthly", "hourly" - `items.limits.per_user.recurrent_schedule.reset_next_date` (integer) Date et heure de la réinitialisation des limites (horodatage Unix). Example: 1677553200 - `items.limits.per_user.total` (integer) Nombre maximal d'objets qu'un utilisateur unique peut acheter. Example: 5 - `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" - `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.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.bonus` (array) - `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.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.name` (string) Nom de l'objet bonus. Non disponible pour le type d'objet bonus physical_good. - `items.promotions.bonus.quantity` (integer) - `items.promotions.bonus.sku` (string) - `items.promotions.bonus.type` (string) Type d'objet bonus. Enum: "virtual_good", "virtual_currency", "bundle", "physical_good", "game_key", "nft" - `items.promotions.date_end` (string,null) - `items.promotions.date_start` (string,null) - `items.promotions.discount` (object,null) - `items.promotions.discount.percent` (string,null) - `items.promotions.discount.value` (string,null) - `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.type` (string) - `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 avec remise. Example: 100 - `items.virtual_prices.amount_without_discount` (integer) Prix de l'objet en monnaie virtuelle. Example: 200 - `items.virtual_prices.description` (string,null) Description de la monnaie virtuelle. Example: "Most popular gold" - `items.virtual_prices.image_url` (string,null) Image de la monnaie virtuelle. Example: "http://image.png" - `items.virtual_prices.is_default` (boolean) Indique si le prix est le prix par défaut de l'objet. Example: true - `items.virtual_prices.name` (string) Nom de la monnaie virtuelle. Example: "Gold" - `items.virtual_prices.sku` (string) UGS de la monnaie virtuelle. Example: "gold" - `items.virtual_prices.type` (string) Type de monnaie virtuelle. Example: "virtual_currency" - `items.vp_rewards` (array) Récompense en points de valeur pour l'objet. - `items.vp_rewards.amount` (integer) Montant des points de valeur. - `items.vp_rewards.image_url` (string) URL de l'image. Example: "https://image.example.com" - `items.vp_rewards.is_clan` (boolean) Détermine l'utilisation du point de valeur dans les chaînes de récompense de clan. Example: true - `items.vp_rewards.item_id` (integer) Internal ID unique de l'objet. Example: 1 - `items.vp_rewards.name` (string) Nom du point de valeur. - `items.vp_rewards.sku` (string) ID unique du point de valeur. - `price` (object,null) Prix du panier. Example: {"amount":"6150.0000000000000000","amount_without_discount":"6150.0000000000000000","currency":"USD"} - `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é. - `warnings` (array) - `warnings.errorCode` (integer) - `warnings.errorMessage` (string)