Products
A query products retorna informações de produtos cadastrados na loja. Diferente das outras queries que também retornam produtos, pode ser utilizada com diferentes tipos de filtros para montar, por exemplo, uma vitrine com os produtos mais vendidos (ordenação por SALES) ou uma vitrine de lançamentos (ordenação por *RELEASE_DATE).
Requisição
Parâmetros
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
Parâmetros de paginação | Sim | Parâmetros utilizados na paginação por cursor | |
filters | ProductExplicitFiltersInput | Não | Objeto de filtros específicos para produtos |
partnerAccessToken | String | Não | Token de parceiro, utilizado para filtrar produtos exibidos ao parceiro |
sortDirection | Enum SortDirection | Não | Direção de ordenação. Por padrão é ASC |
sortKey | Enum ProductSortKeys | Não | Chave de ordenação. Por padrão é NAME |
ProductExplicitFiltersInput
ProductExplicitFiltersInput
Filtro | Descrição |
---|---|
attributes | Filtro de produtos por atributos (ID, nome, tipo ou valor) |
available | Se deve retornar apenas produtos disponíveis |
brandId | Lista de IDs de fabricantes |
categoryId | Lista de IDs de categorias |
ean | Filtro de produtos por EAN |
hasImages | Se deve retornar apenas produtos com imagens |
mainVariant | Se deve retornar apenas a variante principal do produto |
prices | Filtro de produtos por preço (com desconto, maior que ou menor que) |
productId | Lista de IDs de produtos |
productVariantId | Lista de IDs de produtos variantes |
sameParentAs | Retorno de produtos com mesmo ParentId |
sku | Filtro de produtos por SKU |
stock_gte | Retorno de produtos com estoque maior que |
stock_lte | Retorno de produtos com estoque menor que |
subscriptionGroupId | Lista de IDs de grupos de assinatura |
updatedAt_gte | Retorno de produtos que foram atualizados depois de |
updatedAt_lte | Retorno de produtos que foram atualizados antes de |
Campos
Campo | Descrição |
---|---|
addToCartFromSpot | Se é possível adicionar o produto diretamente do spot (configurado no Admin da loja) |
alias | Alias do produto |
attributes | Lista de atributos do produto |
available | Se o produto está disponível |
averageRating | Avaliação média do produto |
buyBox | Informações adicionais caso o produto seja do tipo Buy Box |
condition | Condição do produto |
createdAt | Data de cadastro do produto |
deadline | Prazo de entrega do produto |
display | Se o produto deve ser exibido |
displayOnlyPartner | Se o produto deve ser exibido apenas a parceiros |
displaySearch | Se o produto deve ser exibido em buscas |
ean | Código EAN do produto |
freeShipping | Se o produto possui frete grátis |
images | Lista de imagens do produto |
informations | Lista de informações associadas ao produto |
mainVariant | Se o produto é a variante principal |
minimumOrderQuantity | Quantidade mínima em um pedido |
newRelease | Se o produto é um lançamento |
numberOfVotes | Número de avaliações do produto |
parentId | ID do produto pai, se existente |
prices | Objeto de preços do produto |
productBrand | Objeto de marca do produto |
productCategories | Lista de categorias às quais o produto pertence |
productId | ID de cadastro do produto |
productName | Nome do produto |
productSubscription | Informações de assinatura, se existente |
productVariantId | ID do produto variante |
promotions | Lista de promoções associadas ao produto |
similarProducts | Lista de produtos similares |
seller | Relação dos nomes de vendedores do produto |
sku | SKU do produto |
spotAttributes | Lista de atributos mostrados no spot do produto, se existentes |
spotInformation | Informações extras a serem exibidas no spot do produto |
spotlight | Se o produto é um destaque |
stock | Estoque disponível no centro de distribuição padrão |
stocks | Lista de estoques em diferentes centros de distribuição, se existentes |
subscriptionGroups | Lista de grupos de assinatura aos quais o produto pertence |
telesales | Se o produto possui televenda |
updatedAt | Data da última atualização do produto |
variantName | Nome do produto variante |
urlVideo | URL do vídeo do produto |
BuyBox
BuyBox
Campo | Descrição |
---|---|
installmentPlans | Opções de parcelamento |
maximumPrice | Preço máximo do produto dos vendedores |
minimumPrice | Melhor valor do produto em um dos vendedores |
quantityOffers | Quantidade de vendedores do produto |
sellers | Relação dos nomes de vendedores do produto |
Exemplo
Neste exemplo são pedidas informações dos 2 primeiros produtos da categoria Moda (ID 801), filtrados pelo variante principal de cada produto:
query {
products(first:2, filters:{categoryId:[801], mainVariant:true}) {
nodes {
productId
productName
prices {
price
}
productBrand {
name
}
}
}
}
Mostrar resposta
{
"data": {
"products": {
"nodes": [
{
"productId": 70231,
"productName": "AGASALHO DUO FEMININO",
"prices": {
"price": 367.19
},
"productBrand": {
"name": "SPEEDO"
}
},
{
"productId": 123055,
"productName": "Bolsa Feminina",
"prices": {
"price": 1095.34
},
"productBrand": {
"name": "Adidas"
}
}
]
}
}
}
Filtro por Porcentagem de desconto dos produtos
Abaixo temos o exemplo de filtro por porcentagem de desconto:
{
products(first:10, filters:{prices: {discount_gte:0.3, discount_lte:0.4}}) {
nodes {
productId
productVariantId
prices {
price
discountPercentage
}
}
}
}
Mostrar resposta
{
"data": {
"products": {
"nodes": [
{
"productId": 203056,
"productVariantId": 578953,
"prices": {
"price": 299.9,
"discountPercentage": 0.39
}
},
{
"productId": 203117,
"productVariantId": 579012,
"prices": {
"price": 129.9,
"discountPercentage": 0.32
}
},
{
"productId": 203051,
"productVariantId": 578948,
"prices": {
"price": 129.9,
"discountPercentage": 0.32
}
},
{
"productId": 203049,
"productVariantId": 578946,
"prices": {
"price": 1199,
"discountPercentage": 0.4
}
},
{
"productId": 221682,
"productVariantId": 599080,
"prices": {
"price": 50,
"discountPercentage": 0.38
}
},
{
"productId": 221680,
"productVariantId": 599079,
"prices": {
"price": 50,
"discountPercentage": 0.38
}
},
{
"productId": 222,
"productVariantId": 446,
"prices": {
"price": 15000,
"discountPercentage": 0.33
}
},
{
"productId": 222,
"productVariantId": 445,
"prices": {
"price": 15000,
"discountPercentage": 0.32
}
},
{
"productId": 222580,
"productVariantId": 602094,
"prices": {
"price": 219.99,
"discountPercentage": 0.33
}
},
{
"productId": 203329,
"productVariantId": 579132,
"prices": {
"price": 99.9,
"discountPercentage": 0.33
}
}
]
}
}
}
Filtro de Produtos com mesmo ParentId
Abaixo temos um exemplo de filtro de produtos com o mesmo ParentId:
query {
products(first:30,
filters:{
sameParentAs:[67890]
}) {
nodes {
productName
productId
}
}
}
Mostrar resposta
{
"data": {
"products": {
"nodes": [
{
"productName": "Camiseta Esporte Branco",
"productId": 123456
},
{
"productName": "Camisa Esporte Vermelha",
"productId": 123444
},
{
"productName": "Camisa Esporte Azul",
"productId": 123445
}
]
}
}
}
Estoque vinculado do produto e de um variante
Abaixo temos um exemplo de estoque vinculado do produto e do variante específico.
query {
products (first:10, filters:{productVariantId: [613007, 612967] }){
nodes{
productId
productName
productVariantId
alias
sku
stock
variantStock
}
}
}
Mostrar resposta
{
"data": {
"products": {
"nodes": [
{
"productId": 248307,
"productName": "Escova para Piscina",
"productVariantId": 612967,
"alias": "escova-para-piscina",
"sku": "00252",
"stock": 15,
"variantStock": 15
},
{
"productId": 248344,
"productName": "UNIFORME SPORTS",
"productVariantId": 613007,
"alias": "uniforme-sports",
"sku": "UNIFORMENBA",
"stock": 20,
"variantStock": 10
}
]
}
}
}
Quantidade mínima e máxima de compra de um produto
Abaixo temos um exemplo de quantidade mínima e máxima de compra de um produto.
query {
products(first: 1, filters: { productVariantId: [613007] }) {
nodes {
productId
productName
minimumOrderQuantity
maximumOrderQuantity
}
}
}
Mostrar resposta
{
"data": {
"products": {
"nodes": [
{
"productId": 248307,
"productName": "Escova para Piscina",
"minimumOrderQuantity": 3,
"maximumOrderQuantity": 6
}
]
}
}
}
Informações de Autor, Editora, Gênero e Coleção
Abaixo temos um exemplo de retorno das informações de autor, editora, gênero e coleção que estão cadastrados nos produtos.
query {
products(first: 50, filters: {}) {
nodes {
productName
publisher
author
gender
collection
}
}
}
Mostrar resposta
{
"data": {
"products": {
"nodes": [
{
"productName": "A Arte da Negociação",
"publisher": "Citadel Editora",
"author": "Donald J. Trump",
"gender": null,
"collection": null
},
{
"productName": "A Ciência do Sucesso - Versão de Bolso",
"publisher": "Citadel Editora",
"author": "Napoleon Hill",
"gender": null,
"collection": null
},
{
"productName": "A Coragem Para Liderar",
"publisher": "BestSeller",
"author": "Brené Brown",
"gender": null,
"collection": null
}
]
}
}
}
Obter produtos independente das regras de exibição
Um produto poderá ficar indisponível por vários motivos, como por exemplo: sem estoque, ou quando é alterado a exibição do mesmo no admin, neste caso, ao realizar a consulta na query ele não será retornado.
Agora, ao informar o filtro ignoreDisplayRules na query, o produto será retornado independente de ser de assinatura e de estar visível ou não.
query {
products(first:30, filters:{ignoreDisplayRules: true, productVariantId: 256500}){
nodes {
productName
}
}
}
Mostrar resposta
{
"data": {
"products": {
"nodes": [
{
"productName": "Bio Magnésio"
}
]
}
}
}
Informações de Peso, Altura, Comprimento e Largura
Abaixo temos um exemplo de retorno das informações de medidas cadastradas nos produtos.
query {
products(first: 10, filters: { productVariantId: [615674] }){
nodes {
productId
productName
length
height
weight
width
}
}
}
Mostrar resposta
{
"data": {
"products": {
"nodes": [
{
"productId": 252175,
"productName": "Produto 1",
"length": 5,
"height": 3,
"weight": 10,
"width": 5
}
]
}
}
}
Informação se o produto possui contra proposta
Abaixo temos um exemplo de retorno se o produto apresenta contra proposta, conforme cadastrado no admin.
query {
products(first: 10, filters: { available: true }) {
nodes {
id
productName
productId
productVariantId
aliasComplete
counterOffer
}
}
}
Mostrar resposta
{
"data": {
"products": {
"nodes": [
{
"id": "eyJFbnRpdHkiOiJQcm9kdWPPPIiwiSWQiOjI3NjYzOX0=",
"productName": "Caderno Espiral Capa Dura Preto",
"productId": 90120,
"productVariantId": 276639,
"aliasComplete": "produto/caderno-espiral-capa-dura-preto-90120",
"counterOffer": true
},
{
"id": "eyJFbnRpdHkiOiJQcm9kdWN0ITTiSWQiOjI2NjY0M30=",
"productName": "Estojo Escolar",
"productId": 80112,
"productVariantId": 266643,
"aliasComplete": "produto/estojo-escolar-80112",
"counterOffer": true
}
]
}
}
}
Busca de produtos com palavras específicas
Abaixo temos um exemplo de uma consulta para facilitar a busca de produtos com base em palavras-chave específicas. Essa consulta é realizada através do parâmetro search que permite que sejam passados mais de um termo para a busca, sendo eles dentro do mesmo contexto.
query {
products(first: 30 filters: {search : ["Tenis", "All star"]}){
nodes{
productName
productId
}
}
}
Mostrar resposta
{
"data": {
"products": {
"nodes": [
{
"productName":"Tênis All Star Vermelho",
"productId": 130130
},
{
"productName":"Tênis All Star Vermelho",
"productId": 130130
}
]
}
}
}
Retornando o campo aliasComplete relacionado ao produto
Abaixo temos um exemplo do retorno do campo aliasComplete, onde traz o alias relacionado ao produto e que leva em consideração a configuração Configuração de URL de Produto dentro do painel administrativo.
query {
products(filters: {}, first: 10) {
nodes {
productId
productName
alias: aliasComplete
similarProducts {
alias
}
}
}
}
Mostrar resposta
{
"data": {
"products": {
"nodes": [
{
"productId": 265860,
"productName": "\"É tudo novo\", de novo",
"alias": "produto/e-tudo-novo-de-novo-265860",
"similarProducts": []
},
{
"productId": 265860,
"productName": "\"É tudo novo\", de novo",
"alias": "produto/e-tudo-novo-de-novo-265860",
"similarProducts": []
}
]
}
}
}
Updated about 2 months ago