Lista produtos da loja com paginação. Requer permissão products:read.
query {
products(ids: [ID!], count: Int, skip: Int): [Product]! | Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
ids | [ID!] | Não | Buscar produtos específicos por IDs. Quando fornecido, ignora count e skip. |
count | Int | Não | Número de produtos por página. Default: 50. |
skip | Int | Não | Número de produtos a pular (offset). Default: 0. |
Retorna um array de objetos Product.
Use count e skip para navegar pelo catálogo:
// Página 1: primeiros 20 produtos
products(count: 20, skip: 0)
// Página 2: próximos 20 produtos
products(count: 20, skip: 20)
// Página 3: próximos 20 produtos
products(count: 20, skip: 40) Para buscar produtos específicos, passe um array de IDs:
products(ids: [
"UHJvZHVjdDo2MTIz...",
"UHJvZHVjdDo0NTY3..."
]) async function getAllProducts() {
const allProducts = [];
let skip = 0;
const count = 50;
while (true) {
const { products } = await officeApi(`
query($count: Int!, $skip: Int!) {
products(count: $count, skip: $skip) {
id
title
price
availableQuantity
}
}
`, { count, skip });
allProducts.push(...products);
if (products.length < count) break;
skip += count;
}
return allProducts;
} query {
products(count: 10, skip: 0) {
id
title
price
availableQuantity
isActive
images {
url
}
}
} query {
products(ids: [
"UHJvZHVjdDo2MTIz..."
"UHJvZHVjdDo0NTY3..."
]) {
id
title
price
}
} {
"data": {
"products": [
{
"id": "UHJvZHVjdDo2MTIz...",
"title": "Camiseta Azul",
"price": 49.90,
"availableQuantity": 100,
"isActive": true,
"images": [{ "url": "..." }]
}
]
}
}