- Jean Fraga
- Hamilton Lopes
- Gustavo Sobreiro
- Hamiceis Pereira
- Beatriz Cunha Guimarães
- Derek Santos
- Marco Antonio
- Renato Tadeu
- Henrique Scherer
- Gustavo Rogerio
API desenvolvida para uso no desafio final no HiringCoders#3 Gama Academy VTEX.
Essa API utiliza duas estruturas de dados complexas para armazenamento de combinações de produtos de vendas, onde em uma delas se encontram as melhores combinações de venda de produtos de toda a loja e a outra as melhores combinações de venda por produto, feitas para alimentar alguns componentes em VtexIO.
Básicamente a API espera um request do OrderHook da vtex e a partir do Id do pedido que é enviado, ela mapeia todas as combinações de itens geradas naquele pedido (se o pedido tiver mais de um item comprado), e utiliza a sua lógica para armazenar nas estruturas de dados as combinações. Somando uma naquelas que já aconteceram anteriormente ou criando um novo registro das que ocorreram pela primeira vez. Neste mesmo momento é recalculado todas as combinações para saber se alguma das combinações inseridas nesta requisição entraram para as melhores combinações da loja. Após todo o funcionamento são armazenadas as estruturas de dados no banco de dados NoSQL da Vtex, o MasterData.
Para retornar as melhores combinações da loja por meio da rota /store-top-combinations
a API implementa algoritmos de padrões de contagem para eliminar valores duplicados e
elencar chaves numéricamente ordenadas com um array de objetos das combinações na propriedade topStore
.
A API tbm retorna a propriedade qty: {}
que contém o número de vezes que as combinações foram feitas em cada top.
As combinações no top 1 aconteceram 39 vezes, no top2 as combinações aconteceram 12 vezes. Esses números servem para ajudar o lojista na tomada de decisões ao classificar os produtos com alta performance que geram lucro com pouco investimento; produtos de alta performance que geram lucro com muito investimento; produtos que tem grande investimento e geram pouca receita - geralmente são os lançamentos; e os produtos de baixa performance que devem ser analisados para serem promovidos ou realocados.
Documentação completa no swagger: Link