# Lire la liste des objets de vente incitative dans le projet Récupère la liste des objets de vente incitative d'un projet s'ils ont déjà été configurés. Endpoint: GET /v2/project/{project_id}/items/upsell Version: 2.0.0 Security: XsollaLoginUserJWT ## 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 ## Response 200 fields (application/json): - `has_more` (boolean) Utilisé pour indiquer qu'il y a plus de pages. Example: true - `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` (object) 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.custom_attributes` (object) Un JSON contenant les attributs de l'objet et leurs valeurs. - `items.description` (string) Description de l'objet. Example: "Big Rocket - description" - `items.groups` (array) Groupes auxquels l'objet appartient. Example: [{"external_id":"horror","name":{"en":"Horror"}}] - `items.groups.external_id` (string) Example: "horror" - `items.groups.name` (object) Nom de l'objet. Doit comprendre des paires clé/valeur où la clé est une région au format "^[a-z]{2}", la valeur est une chaîne. Example: {"de":"Horror","en":"Horror"} - `items.image_url` (string) URL de l'image. Example: "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png" - `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.name` (string) Nom de l'objet. Example: "Big Rocket" - `items.periods` (array) Période de vente d'objets. - `items.periods.date_from` (string,null) 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. - `items.price.amount` (string) Prix de l'objet avec remise. Example: "100.99" - `items.price.amount_without_discount` (string) Prix de l'objet. Example: "100.99" - `items.price.currency` (string) Devise du prix de l'article. Code à trois lettres selon [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). 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.promotions.name` (string) - `items.sku` (string) ID unique de l'objet. L'UGS ne peut comprendre que des caractères alphanumériques latins minuscules et majuscules, des points, des tirets et des traits bas. Example: "big_rocket" - `items.type` (string) Type d'objet : virtual_good/virtual_currency/bundle. Example: "virtual_good" - `items.virtual_item_type` (string) Type d'objet virtuel. Enum: "consumable", "non_consumable", "non_renewing_subscription" - `items.virtual_prices` (array) Prix virtuels. - `items.virtual_prices.amount` (integer) Prix de l'objet réduit en monnaie virtuelle. Example: 100 - `items.virtual_prices.description` (string) Description de la monnaie virtuelle. Example: "Big Rocket - description" - `items.virtual_prices.image_url` (string) 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: "SHOTGUN FOR TRUE RAIDERS" - `items.virtual_prices.sku` (string) UGS de la monnaie virtuelle. Example: "vc_test" - `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.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. ## Response 401 fields (application/json): - `errorCode` (integer) Example: 1501 - `errorMessage` (string) Example: "[0401-1501]: Authorization failed: Provide authorization" - `statusCode` (integer) Example: 401