collections
Lista las colecciones publicadas de la tienda y permite buscar u ordenar el resultado.
Última actualización:
collections devuelve todas las colecciones publicadas visibles en la tienda
resuelta. Cada elemento incluye su metadata pública y la cantidad de productos
publicados asociados.
Firma
collections(
search: String
sort: NavigationSearchSort
): [CollectionItem!]!Argumentos
| Argumento | Tipo | Predeterminado | Regla |
|---|---|---|---|
search | String | null | Busca en nombre, slug, descripción y tipo. Se recorta antes de buscar; un valor vacío se trata como null. Máximo: 200 caracteres en la entrada. |
sort | NavigationSearchSort | null | Si se omite, el resultado se ordena por nombre ascendente. |
NavigationSearchSort
El argumento sort acepta estos valores exactos:
| Valor | Orden efectivo para colecciones |
|---|---|
DEFAULT | Nombre ascendente. |
NAME_ASC | Nombre ascendente. |
NAME_DESC | Nombre descendente. |
ORDER_ASC | Nombre ascendente actualmente. |
ORDER_DESC | Nombre ascendente actualmente. |
NEWEST | Creación descendente; nombre ascendente como desempate. |
UPDATED_DESC | Actualización descendente; nombre ascendente como desempate. |
ORDER_ASC y ORDER_DESC pertenecen al enum compartido de navegación, pero
las colecciones no tienen hoy un campo de orden manual en su índice público.
Campos de CollectionItem
| Campo | Tipo | Descripción |
|---|---|---|
id | String! | Identificador público opaco de la colección. |
slug | String! | Slug público usado en la URL de la colección. |
name | String! | Nombre público. |
description | String | Descripción pública, o null cuando está vacía. |
imageUrl | String | URL de imagen pública, o null cuando no existe. |
type | String! | Tipo de colección almacenado por el catálogo. |
productCount | Int! | Cantidad de productos publicados asociados en la tienda actual. |
Consulta
query Collections($search: String, $sort: NavigationSearchSort) {
collections(search: $search, sort: $sort) {
id
slug
name
description
imageUrl
type
productCount
}
}Variables
{
"search": "summer",
"sort": "NAME_ASC"
}Los enums se envían como strings dentro del objeto JSON de variables.
cURL
curl --request POST "https://storefront.ecomiq.pe/graphql" \
--header "Content-Type: application/json" \
--header "x-Store-Domain: mi-tienda" \
--data-binary '{
"query": "query Collections($search: String, $sort: NavigationSearchSort) { collections(search: $search, sort: $sort) { id slug name description imageUrl type productCount } }",
"variables": {
"search": "summer",
"sort": "NAME_ASC"
}
}'Respuesta
{
"data": {
"collections": [
{
"id": "collection-1",
"slug": "summer",
"name": "Summer",
"description": null,
"imageUrl": null,
"type": "Manual",
"productCount": 2
}
]
}
}Una tienda sin colecciones coincidentes devuelve "collections": [].
Errores
| Código | Cuándo ocurre |
|---|---|
BAD_USER_INPUT | search supera los 200 caracteres. |
STORE_CONTEXT_REQUIRED | x-Store-Domain no permite resolver una tienda. |
{
"errors": [
{
"message": "Search must not exceed 200 characters.",
"path": ["collections"],
"extensions": {
"code": "BAD_USER_INPUT"
}
}
],
"data": null
}Consulta Errores GraphQL para manejar el envelope completo.
Equivalente REST
GET /v1/collections
expone la misma lista y acepta los filtros REST documentados en su referencia.