# Obtener lista de artículos de venta adicional en proyecto

Obtiene una lista de artículos de venta adicional en un proyecto si ya han sido establecidos. 


  Nota:
    Esta llamada API utiliza un JWT de usuario para la autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

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

## Path parameters:

  - `project_id` (integer, required)
    ID del proyecto. Encontrará este parámetro en su Cuenta del editor junto al nombre del proyecto y en la barra de direcciones del navegador cuando se trabaja en un proyecto. La URL tiene el siguiente formato: https://publisher.xsolla.com//projects/.
    Example: 44056

## Response 200 fields (application/json):

  - `has_more` (boolean)
    Se utiliza como indicador de que hay más páginas.

  - `items` (array)

  - `items.sku` (string)
    ID único del artículo. El SKU solo puede contener caracteres alfanuméricos latinos en minúsculas y mayúsculas, puntos, guiones y guiones bajos.
    Example: "big_rocket"

  - `items.name` (string)
    Nombre del artículo.
    Example: "Big Rocket"

  - `items.groups` (array)
    Grupos a los que pertenece el artículo.

  - `items.groups.external_id` (string)
    Example: "horror"

  - `items.groups.name` (object)
    Nombre del artículo. Debe contener pares clave/valor
en los cuales clave es una configuración regional con formato "^[a-z]{2}", valor es una cadena (string).
    Example: {"en":"Horror","de":"Horror"}

  - `items.attributes` (array)
    Lista de atributos y sus valores correspondientes al artículo. Puede utilizarse para filtrar el catálogo.

  - `items.attributes.external_id` (string)
    ID único del atributo. external_id solo puede contener caracteres alfanuméricos latinos en minúsculas y mayúsculas, guiones y guiones bajos.

  - `items.attributes.name` (object)
    Nombre del atributo.
    Example: "Genre"

  - `items.attributes.values` (array)

  - `items.attributes.values.external_id` (string)
    ID del valor único para un atributo. external_id solo puede contener caracteres alfanuméricos latinos en minúsculas, guiones y guiones bajos.

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

  - `items.type` (string)
    Tipo de artículo: virtual_good/virtual_currency/bundle.
    Example: "virtual_good"

  - `items.description` (string)
    Descripción del artículo.
    Example: "Big Rocket - description"

  - `items.image_url` (string)
    URL de la imagen.
    Example: "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png"

  - `items.is_free` (boolean)
    Si el artículo es gratuito.

  - `items.price` (object,null)
    Precios de artículos.

  - `items.price.amount` (string)
    Precio del artículo con descuento.
    Example: "100.99"

  - `items.price.amount_without_discount` (string)
    Precio del artículo.
    Example: "100.99"

  - `items.price.currency` (string)
    Divisa del precio del artículo. Código de tres letras según [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
    Example: "USD"

  - `items.virtual_prices` (array)
    Precios virtuales.

  - `items.virtual_prices.amount` (integer)
    Precio del artículo en moneda virtual.
    Example: 100

  - `items.virtual_prices.amount_without_discount` (integer)
    Precio del artículo en moneda virtual sin descuento. Siempre es igual a amount, ya que los descuentos no se aplican a los precios en moneda virtual.
    Example: 200

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

  - `items.virtual_prices.is_default` (boolean)
    Si es o no el precio predeterminado en moneda virtual.
    Example: true

  - `items.virtual_prices.image_url` (string,null)
    URL de imagen de la moneda virtual.
    Example: "http://image.png"

  - `items.virtual_prices.name` (string)
    Nombre de la moneda virtual.
    Example: "Gold"

  - `items.virtual_prices.type` (string)
    Tipo de artículo. Para la moneda virtual, es virtual_currency.
    Example: "virtual_currency"

  - `items.virtual_prices.description` (string,null)
    Descripción de la moneda virtual.
    Example: "In-game currency used to purchase weapons and upgrades"

  - `items.can_be_bought` (boolean)
    Si es true, el usuario puede comprar un artículo.

  - `items.virtual_item_type` (string)
    Tipo de artículo virtual.

Valores posibles:
- consumable: Un objeto que desaparece del inventario tras su utilización (p. ej., munición).
- non_consumable: Un objeto que permanece en el inventario durante un tiempo ilimitado.
- non_renewing_subscription: Objeto de duración limitada que puede representar el acceso a servicios o contenidos durante un periodo limitado.
    Enum: "consumable", "non_consumable", "non_renewing_subscription"

  - `items.promotions` (array)
    Promociones aplicadas para artículos específicos de la cesta. La matriz se devuelve en los siguientes casos:

* Se configura un descuento promocional para un artículo específico.

* Se aplica un código promocional con el parámetro Descuento en artículos seleccionados.

Si no se aplican promociones a nivel de artículo, se devuelve una matriz vacía.

  - `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 artículo de bonificación.
    Enum: "virtual_good", "virtual_currency", "bundle", "physical_good", "game_key", "nft"

  - `items.promotions.bonus.name` (string)
    Nombre del artículo de bonificación. No disponible para el tipo de artículo de bonificación physical_good.

  - `items.promotions.bonus.image_url` (string)
    URL de la imagen del artículo de bonificación. No disponible para el tipo de artículo de bonificación physical_good.

  - `items.promotions.bonus.bundle_type` (string)
    Tipo de artículo del lote de bonificación. Disponible solo para el tipo de artículo de bonificación 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)
    Límites del artículo.

  - `items.limits.per_user` (object,null)
    Límites de artículos para un usuario.

  - `items.limits.per_user.total` (integer)
    Número máximo de artículos que un mismo usuario puede comprar.
    Example: 5

  - `items.limits.per_user.available` (integer)
    Número restante de artículos que el usuario actual puede comprar.
    Example: 3

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

  - `items.limits.per_user.limit_exceeded_visibility` (string)
    Determina la visibilidad del artículo en el catálogo tras alcanzar el límite de compra, hasta el siguiente restablecimiento del límite.

Se aplica a los artículos para los que se han configurado restablecimientos periódicos del límite en la matriz recurrent_schedule.

Si no están configurados los restablecimientos del límite, el artículo no aparecerá en el catálogo cuando se haya alcanzado el límite de compra,
 independientemente del valor de limit_exceeded_visibility.

Valores posibles:
- show — El artículo se devuelve en las llamadas API de recuperación del catálogo tras alcanzar el límite de compra. En las llamadas API
de recuperación del catálogo en el lado del cliente, tras alcanzar el límite, el artículo se devuelve con el indicador can_be_bought: false. La
La próxima fecha de restablecimiento se devuelve el día reset_next_date.
- hide — El artículo no se devuelve en las llamadas API de recuperación del catálogo tras alcanzar el límite de compra, hasta que
 se restablezca ese límite.
    Enum: "show", "hide"

  - `items.limits.per_item` (object,null)
    Límites de artículos para un artículo.

  - `items.limits.per_item.total` (integer)
    Número máximo de artículos que pueden comprar todos los usuarios.
    Example: 5

  - `items.limits.per_item.available` (integer)
    Número restante de artículos que todos los usuarios pueden comprar.
    Example: 3

  - `items.periods` (array)
    Periodo de venta del artículo.

  - `items.periods.date_from` (string,null)
    Fecha en la que el artículo especificado estará disponible para la venta.
    Example: "2020-08-11T10:00:00+03:00"

  - `items.periods.date_until` (string,null)
    Fecha en la que el artículo especificado dejará de estar disponible para la venta. Puede ser null.
    Example: "2020-08-11T20:00:00+03:00"

  - `items.custom_attributes` (object)
    Un objeto JSON que contiene los atributos y valores del artículo.

  - `items.vp_rewards` (array)
    Lista de recompensas de puntos de valor para este artículo.

  - `items.vp_rewards.item_id` (integer)
    ID único interno del artículo.

  - `items.vp_rewards.sku` (string)
    ID único del punto de valor.

  - `items.vp_rewards.amount` (integer)
    Cantidad de puntos de valor.

  - `items.vp_rewards.name` (string)
    Nombre del punto de valor.

  - `items.vp_rewards.image_url` (string)
    URL de la imagen.

  - `items.vp_rewards.is_clan` (boolean)
    Si el punto de valor se utiliza en las cadenas de recompensas de clanes.

## Response 401 fields (application/json):

  - `statusCode` (integer)
    Example: 401

  - `errorCode` (integer)
    Example: 1501

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


