# BigMarket ## Objetivo Analisar os produtos aptos a serem enriquecidos que tenham na base da BM e buscar mais informações para aumentar a taxa de enriquecimento. ## Testes ### Script do teste: Busca na API da BM pelos gtins do csv extraído. Retorna as informações do número de gtins buscado, total de gtins existentes na BM, total de gtins inválidos e porcentagem de enriquecimento. Para rodar o script: ```bash python -m check_gtin <NÚMERO DE GTINS A BUSCAR (Opcional)> ``` https://gist.github.com/mabreu87/48965649c52d265d42d0f4379ec41502 \* Para uso do script instalar a lib `gtin-validator` e alterar o caminho para o csv. \ \* Se não informar o número de gtins a buscar, percorrerá todos os gtins do csv. ### Dados usados nos testes Foram tirados da base os produtos aptos a serem enriquecidos cadastrados a partir da modificação da task [SUCT-3232](https://jira-olist.atlassian.net/browse/SUCT-3232) (12/05/2021). A query abaixo foi extraída do Dashboard. ```sql SELECT sp.sku, sp.gtin FROM datalake.products_api_seller_products_sellerproduct AS sp WHERE length(sp.description) <= 300 AND sp.created_at-interval'3'hour >= timestamp '2021-05-12' AND sp.created_at-interval'3'hour < date_trunc('day', current_timestamp-interval'3'hour) AND sp.gtin NOT LIKE '296%' AND sp.status IN ('approved','rejected') AND sp.active = true; ``` CVS extraído: \ https://drive.google.com/file/d/1I_JFQqijxlsF89Gxn65qjg4xzFdPrgLN/view?usp=sharing ### Resultado dos testes Foram analisados os primeiros 1000 gtins do csv extraído para não onerar a API da BM. https://drive.google.com/file/d/1qJM5RspxvPSTjEQFq3qpzice4F72Npzy/view?usp=sharing **Total de GTINs:** 1000 \ **Total existente na BM:** 284 \ **Percentual:** 28.40% \ **Total de GTINs inválidos:** 5 ### Validações adicionais Validações que não foram feitas neste teste e que também podem influenciar para o não enriquecimento dos produtos. - Título não correspondente - O catalog-keeper verifica a similaridade entre os títulos para validar a descrição. - Descrições acima de 4k - Quando é encontrada uma descrição na BM, fazemos uma concatenação da descrição do seller + título da BM + descrição da BM + atributos da BM. Se ultrapassar de 4k caracteres, o catalog-keeper não enriquece o produto. ### Tarefa para amenizar erros de 4k caracteres Task: [SUCT-3232](https://jira-olist.atlassian.net/browse/SUCT-3232) \ PR: [#146](https://github.com/olist/catalog-keeper/pull/146) Anteriormente no catalog-keeper era concatenado a descrição geral da BM e a descrição do canal escolhido. Foi removido a menor descrição entre as duas para amenizar os erros de limite de caracteres porém, de acordo com o Dashboard, em uma semana a taxa de enriquecimento passou de ~13% para ~14%. ### Sugestões Para melhorar o rastramento das informações: - Inserir tags mais específicas no seller-product, como: - `{"name": "bigmarket - produto enriquecido"}` - `{"name": "bigmarket - não existe cadastro"}` - `{"name": "bigmarket - descrição acima do permitido"}` - `{"name": "bigmarket - gtin inválido ou não existente"}` - `{"name": "bigmarket - títulos não correspondentes"}` Isso permite ter mais clareza de quais (e a qtd) produtos foram enriquecidos e os motivos reais dos que não foram. - Dashboard: Trazer as informações por gtin e não sku, pois vários skus podem ter o mesmo gtin. ### Links Dashboard: https://bi.olist.com/dashboard/dados-de-enriquecimento-da-descri-o-de-produtos Testes iniciais do Léo Nascimento: https://docs.google.com/spreadsheets/d/1hBkkf55DW0A-Ni46A9XKbsX79HSuiWVSCVgvmR9K7Ks/edit#gid=702168175 Documentação da BM - API: https://docs.bigmarket.bigdatacorp.com.br/