Cenário
A seção de categoria precisa suportar paginação e exibir 3 produtos por página. Se possível, o primeiro produto em cada página será um produto patrocinado. Os produtos nesta página de categoria têm a seguinte estrutura:resolvedBidId é null quando o produto não está promovido e contém um ID de string quando está.
Nosso objetivo é ter o código pseudo em vigor para um endpoint que possa criar listas de tais produtos.
1. Consultar seus resultados orgânicos
O primeiro passo será consultar seus resultados orgânicos. Os produtos que devem ser exibidos para uma página e categoria específicas. O código para fazer isso pode se parecer com isto:Shoes, e há 3 ou mais produtos disponíveis nesta categoria. Este código então geraria algo similar a isto:
resolvedBidId, vamos adicioná-lo.
2. Executar um leilão
Em nosso cenário, queremos executar um leilão para um único slot:Não tem certeza de como executar um leilão para uma categoria? Consulte
estes exemplos.
products.
3. Consultar dados de produtos para vencedores
Agora, quando há vencedores. Precisamos consultar os dados do produto para eles.resolvedBidId para completar esses dados. Mas, desta vez não devemos configurá-lo como null, porque agora estamos tratando de produtos promovidos.
Se assumirmos que queryProductsByIds retornará produtos na mesma ordem que os ids fornecidos, podemos adicionar os IDs de lance da seguinte forma:
Por que este ID de lance é necessário? O ID de lance é vital para
permitir que o Topsort atribua eventos a
lances e campanhas.
4. Fundir
Queremos exibir os produtos promovidos no início da lista. Para conseguir isso, precisaremos antepor ospromoProducts aos products.
No entanto, isso pode fazer com que products tenha mais elementos do que nosso tamanho de página pretendido de 3. Portanto, precisamos dividi-lo para permanecer neste tamanho de página.