GraphQL para trazer produtos disponíveis ou preço acima de 1

Pessoal,
Preciso de uma ajuda.
Estou fazendo uma consulta via GraphQL - productSearch, porém tenho alguns problemas que não consigo solucionar e precisava de ajuda:

  • O filtro do priceRange parece não funcionar pq continua retornando produtos de sellers que o preço é menor que R$10 ou até mesmo zerado.
  • Eu tenho produtos que não possuem estoque e preço de um determinado seller que não deveriam retornar, mas não sei como filtrar (
{
  productSearch(category: "1", productOriginVtex: true, priceRange: "10 TO 1000", hideUnavailableItems: true) {
    products {
      productId
      skuSpecifications {
        field {
          originalName
          name
        }
        values {
          originalName
          name
        }
      }
      productName
      items(filter: ALL_AVAILABLE) {
        name
        ean
        referenceId {
          Key
          Value
        }
        nameComplete
        sellers {
          sellerId
          sellerName
          commertialOffer {
            Price
            spotPrice
            ListPrice
            AvailableQuantity
          }
        }
      }
    }
  }
}

Alguma sugestão?

Olá, @ferrarih

Alguns ajustes na sua query:

{
  productSearch(productOriginVtex: true, priceRange: "10 TO 1000" , selectedFacets: [{ key: "category-1", value: "4"}, { key: "region-id", value: "U1cjaWRkYWxvamE="}], hideUnavailableItems: true) {
    products {
      productId
      skuSpecifications {
        field {
          originalName
          name
        }
        values {
          originalName
          name
        }
      }
      productName
      items (filter: ALL_AVAILABLE) {
        name
        ean
        referenceId {
          Key
          Value
        }
        nameComplete
        sellers {
          sellerId
          sellerName
          commertialOffer {
            Price
            spotPrice
            ListPrice
            AvailableQuantity
          }
        }
      }
    }
  }
}

A propriedade category está depreciada, utilize selectedFacets, onde:
1 = departamento, 2 = categoria, 3 = subcategoria e assim por diante

Ex: category-1, category-2 etc.

Outra key que você utilizar no selectedFacets, é o region-id. Você pode passar em base64 o id do seller que você quer filtrar. Dessa forma, você verá apenas estoque e preço de produtos de acordo com o seller informado.
Ex: SW#seller01 convertendo em base64 fica U1cjc2VsbGVyMDE=, é só passar esse ID.

Abraços,

João, obrigado pela resposta!
Porém ainda não está funcionando, ou seja, ainda está retornando produtos abaixo de 10.

Tem algo que precisa ser feito?

Você comentou sobre posso passar o ID do seller no region-id, mas tem como fazer o inverso? Ou seja, excluir um determinado sellerid dos resultados e trazer todos os outros?

1 Like

Acredito que essa query esteja com algum bug na propriedade “priceRange”. Com a query products, o priceRange funciona normalmente.

O inverso no region-id acredito que não funcione, você realmente precisaria informar apenas o sellerId que você quer retornar os produtos.

1 Like