# Obtener artículo vendible por SKU

Obtiene un artículo vendible por SKU para crear un catálogo.


  Nota:
    Esta llamada de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

Endpoint: GET /v2/project/{project_id}/items/sku/{sku}
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.
    Example: 59080

  - `sku` (string, required)
    SKU del artículo.
    Example: "electric_shield"

## Query parameters:

  - `promo_code` (string)
    Código único que distingue entre mayúsculas y minúsculas. Contiene letras y números.
    Example: "WINTER2021"

  - `show_inactive_time_limited_items` (integer)
    Muestra los artículos de duración limitada que no están disponibles para el usuario. El periodo de validez de dichos artículos no ha comenzado o ya ha expirado.
    Example: 1

  - `additional_fields[]` (array)
    Campos adicionales para incluir en la respuesta. Por defecto, estos campos no se devuelven. Para incluirlos, hay que transmitir los valores necesarios.
    Enum: "media_list", "order", "long_description", "custom_attributes", "item_order_in_group"

## Response 200 fields (application/json):

  - `item_id` (integer)
    ID único interno del artículo que se proporciona al crearlo.
    Example: 259774

  - `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: "electric_shield"

  - `name` (string)
    Nombre del artículo.
    Example: "Electric shield"

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

  - `groups.external_id` (string)
    [ID de grupo de artículos externo](/es/api/catalog/item-groups-admin/admin-create-item-group#item-groups-admin/admin-create-item-group/t=request&path=external_id) especificado durante la creación.
    Example: "exclusive"

  - `groups.name` (string)
    Nombre del grupo.
    Example: "Exclusive"

  - `groups.item_order_in_group` (integer)
    La posición del artículo dentro del grupo que determina su orden de visualización.
Solo se devuelve si se solicita mediante el parámetro de consulta additional_fields[].
    Example: 1

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

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

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

  - `attributes.values` (array)

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

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

  - `type` (string)
    Tipo de artículo: virtual_good/virtual_currency/bundle/game_key/physical_good.
    Enum: "virtual_good", "virtual_currency", "bundle", "game_key", "physical_good"

  - `description` (string)
    Descripción del artículo.
    Example: "Electric shield"

  - `image_url` (string)
    URL de la imagen.
    Example: "https://cdn3.xsolla.com/img/misc/images/d2d6b1b517e6a7f3765c3bb5a3cfb87d.png"

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

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

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

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

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

  - `virtual_prices` (array)
    Precios virtuales.

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

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

  - `virtual_prices.calculated_price` (object)

  - `virtual_prices.calculated_price.amount` (string)

  - `virtual_prices.calculated_price.amount_without_discount` (string)

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

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

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

  - `virtual_prices.item_id` (integer)
    ID único del artículo asignado por Xsolla.
    Example: 259774

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

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

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

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

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

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

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

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

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

  - `promotions.limits` (object)

  - `promotions.limits.per_user` (object)

  - `promotions.limits.per_user.available` (integer)

  - `promotions.limits.per_user.total` (integer)

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

  - `limits` (object,null)
    Límites del artículo.

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

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

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

  - `limits.per_user.recurrent_schedule` (any)

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

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

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

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

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

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

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

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

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

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

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

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

  - `loyalty_rewards` (array)
    Puntos de fidelidad que el usuario recibe como recompensa por comprar el artículo.

  - `loyalty_rewards.name` (string)
    Nombre de puntos de fidelidad.

  - `loyalty_rewards.sku` (string)
    SKU de puntos de fidelidad. Transmita este valor en el parámetro loyalty_point_sku de otras llamadas API, por ejemplo, al crear un pedido pagado con puntos de fidelidad.

  - `loyalty_rewards.description` (string)
    Descripción de puntos de fidelidad.

  - `loyalty_rewards.image_url` (string,null)
    URL de la imagen.

  - `loyalty_rewards.amount` (integer)
    Número de puntos de fidelidad que recibe el usuario por comprar el artículo.

  - `loyalty_prices` (array)
    Puntos de fidelidad que se pueden utilizar para comprar el artículo.

  - `loyalty_prices.name` (string)
    Nombre de puntos de fidelidad.

  - `loyalty_prices.sku` (string)
    SKU de puntos de fidelidad. Transmita este valor en el parámetro loyalty_point_sku de otras llamadas API, por ejemplo, al crear un pedido pagado con puntos de fidelidad.

  - `loyalty_prices.description` (string)
    Descripción de puntos de fidelidad.

  - `loyalty_prices.image_url` (string,null)
    URL de la imagen.

  - `loyalty_prices.amount` (integer)
    Precio del artículo en los puntos de fidelidad especificados.

## Response 404 fields (application/json):

  - `statusCode` (integer)
    Example: 404

  - `errorCode` (integer)
    Example: 4001

  - `errorMessage` (string)
    Example: "[0401-4001]: Item with sku = 'electric_shiel' not found"


