# Lire la liste des objets de vente incitative dans le projet

Récupère la liste des objets d'un upsell dans un projet, s'ils ont déjà été configurés. 


  Note
    Cet appel API utilise un JWT utilisateur pour l'autorisation.
    Incluez le jeton dans l'en-tête Authorization au format suivant : Bearer &lt;user_JWT&gt;. Pour plus d'informations sur le JWT utilisateur, consultez le bloc Security pour cet appel.

Endpoint: GET /v2/project/{project_id}/items/upsell
Version: 2.0.0
Security: XsollaLoginUserJWT

## 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

## Response 200 fields (application/json):

  - `has_more` (boolean)
    Utilisé pour indiquer qu'il y a plus de pages.

  - `items` (array)

  - `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.name` (string)
    Nom de l'objet.
    Example: "Big Rocket"

  - `items.groups` (array)
    Groupes auxquels l'objet appartient.

  - `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: {"en":"Horror","de":"Horror"}

  - `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` (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.

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

  - `items.type` (string)
    Type d'objet : virtual_good/virtual_currency/bundle.
    Example: "virtual_good"

  - `items.description` (string)
    Description de l'objet.
    Example: "Big Rocket - description"

  - `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)
    Détermine la gratuité de l'objet.

  - `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'objet. Code à trois lettres selon [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
    Example: "USD"

  - `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.can_be_bought` (boolean)
    Si true, l'utilisateur peut acheter l'objet.

  - `items.virtual_item_type` (string)
    Type d'objet virtuel.

Valeurs possibles :
- consumable — Objet qui disparaît de l'inventaire après utilisation (par exemple des munitions).
- non_consumable — Objet conservé dans l'inventaire sans limite de durée.
- non_renewing_subscription — Objet à durée limitée pouvant représenter un accès à des services ou du contenu pendant une période définie.
    Enum: "consumable", "non_consumable", "non_renewing_subscription"

  - `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.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)
    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.custom_attributes` (object)
    Un JSON contenant les attributs de l'objet et leurs valeurs.

  - `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.

## Response 401 fields (application/json):

  - `statusCode` (integer)
    Example: 401

  - `errorCode` (integer)
    Example: 1501

  - `errorMessage` (string)
    Example: "[0401-1501]: Authorization failed: Provide authorization"


