GET
Get a normalized catalog aggregate
Devuelve un CatalogAggregate: el ítem, sus variantes y su disponibilidad, tal como quedaron después de las señales ingeridas.

Tres formas que sorprenden la primera vez

item.title y variant.title son objetos { [lang]: string } con al menos una clave:
No hay idioma garantizado: elegí uno y tené un fallback. primary_media.alt tiene la misma forma.
availability[].sellable es un string abierto (el fixture usa "in_stock"). Un booleano no puede decir «no sé», y CrossUp no adivina lo que el proveedor no dijo: lo desconocido queda unknown. Tratalo como opaco y mostralo tal cual.
Si el proveedor no informó inventario, quantity no viene: es desconocido. quantity ?? 0 convierte «no sé» en «no hay stock», una decisión de negocio que la API no tomó.

Un ítem de otra tienda da 404, no 403

Un item_id inexistente y uno de otra tienda son indistinguibles: los dos dan not_found. Un 404 inesperado con un token válido casi siempre es el token de otra tienda.

Autorizaciones

Authorization
string
header
requerido

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Parámetros de ruta

item_id
string
requerido

CrossUp catalog item identifier.

Minimum string length: 1

Respuesta

Catalog aggregate found

item
object
requerido
variants
object[]
requerido
availability
object[]
requerido
refresh_revision
integer

Which look at the store this aggregate came from. A client that caches can tell a newer read from a stale one without comparing every field, and a bug report that quotes it says exactly what the caller saw.

Rango requerido: x >= 1