Saltar al contenido
Guías
Consultas

relatedProducts

Obtén productos relacionados a partir de un ID opaco de producto.

Última actualización:

relatedProducts devuelve recomendaciones visibles para el producto indicado. La búsqueda prioriza similitud y puede completar el resultado con productos de la misma categoría, marca o catálogo disponible.

Firma

relatedProducts(productId: String!, limit: Int): [ProductSummary!]!

Argumentos

ArgumentoTipoRequeridoPredeterminadoRegla
productIdString!Sí—ID opaco válido de un producto.
limitIntNo8Entre 1 y 12.

Obtén productId desde el campo id de product o products, almacénalo como string y reenvíalo sin parsearlo ni construirlo.

Si el producto de referencia no existe o no es visible en la tienda, la query devuelve una lista vacía.

Retorno

El resultado es una lista no nula de ProductSummary:

CampoTipoDescripción
idString!ID opaco del producto relacionado.
nameString!Nombre publicado.
slugString!Slug público.
productTypeString!Tipo de producto.
imageUrlString!Imagen principal.
priceDecimal!Precio actual.
compareAtPriceDecimalPrecio de comparación, cuando existe.
variantCountInt!Número de variantes.
isAvailableBoolean!Disponibilidad actual.
totalInventoryInt!Inventario total informado.
bundleItemsCountInt!Número de componentes del bundle.
brandString!Marca.
categoryString!Categoría.
statusString!Estado publicado.
collections[String!]!Colecciones asociadas.
tags[String!]!Etiquetas publicadas.
sellerProductSellerInfoVendedor, cuando existe.

ProductSellerInfo contiene id, name y slug, todos String!.

Query

RelatedProducts.graphql
query RelatedProducts($productId: String!, $limit: Int = 8) {
  relatedProducts(productId: $productId, limit: $limit) {
    id
    name
    slug
    productType
    imageUrl
    price
    compareAtPrice
    variantCount
    isAvailable
    totalInventory
    bundleItemsCount
    brand
    category
    status
    collections
    tags
    seller {
      id
      name
      slug
    }
  }
}

Variables:

Variables
{
  "productId": "456",
  "limit": 4
}

El valor predeterminado de la variable del ejemplo coincide con el valor predeterminado del resolver. Puedes omitir limit de las variables para solicitar hasta ocho resultados.

cURL

Terminal
curl --request POST "https://storefront.ecomiq.pe/graphql" \
  --header "Content-Type: application/json" \
  --header "x-Store-Domain: mi-tienda" \
  --data-binary '{
    "query": "query RelatedProducts($productId: String!, $limit: Int = 8) { relatedProducts(productId: $productId, limit: $limit) { id name slug productType imageUrl price compareAtPrice variantCount isAvailable totalInventory bundleItemsCount brand category status collections tags seller { id name slug } } }",
    "variables": { "productId": "456", "limit": 4 }
  }'

Respuesta

Respuesta
{
  "data": {
    "relatedProducts": [
      {
        "id": "789",
        "name": "Related mug",
        "slug": "related-mug",
        "productType": "Product",
        "imageUrl": "/related.jpg",
        "price": 12,
        "compareAtPrice": null,
        "variantCount": 1,
        "isAvailable": true,
        "totalInventory": 2,
        "bundleItemsCount": 0,
        "brand": "Acme",
        "category": "Home",
        "status": "Active",
        "collections": [],
        "tags": [],
        "seller": null
      }
    ]
  }
}

Errores

CódigoCausa común
BAD_USER_INPUTproductId no es un ID válido o limit está fuera de 1–12.
STORE_CONTEXT_REQUIREDx-Store-Domain no resolvió una tienda.

Una lista vacía no es un error: puede indicar que el producto de referencia no es visible o que no se encontraron recomendaciones disponibles. Consulta Errores GraphQL para manejar el envelope.

Consultas relacionadas

En esta página