API de filtro (Facets) do Catálogo com comportamento inesperado quando há campos de especificação diferentes com o mesmo nome

Produtos & SKU

Aberto
Danilo Juliani

Danilo Juliani

Última atualização

Sumário

Ao executar a API de filtro (Facet), se o resultado contiver campos de especificação (produto ou SKU) com o mesmo nome, o erro 500 (An item with the same key has already been added.) é exibido.

EndPoint da API: /api/catalog_system/pub/facets/search/{category}?map=c

Simulação

Para simular o cenário:

  1. Cadastre, em alguma categoria filha da categoria que deseja testar, um campo com nome “tamanho”, por exemplo. O defina como filtro.
  2. Cadastre, em outra categoria filha da categoria que deseja testar, um campo com o mesmo nome do anterior. “tamanho”, por exemplo. O defina como filtro.
  3. Cadastre valores nesses campos;
  4. Cadastre um produto em cada categoria filha e preencha o campo definido (“tamanho”, por exemplo)
  5. Aguarde a indexação completa do produto (Por volta de 5 minutos)
  6. Execute o endpoint /api/catalog_system/pub/facets/search/{category}?map=c

Workaround

Para não enfrentar esse comportamento, evite criar campos com o mesmo nome em categorias paralelas (filhas da mesma categoria).

Se a API estiver sendo utilizada para renderizar um menu lateral (filtro) poderá ser substituida pelo controle searchNavigator nativo (Clique aqui e leia mais).