OusiaTech
Todos os cases
Produtora de material promocional · Varejo farmacêutico

Um ETL que tirou o encarte de varejo do trabalho manual

8níveis de fórmula viraram código testável

Toda campanha de varejo farmacêutico começa numa planilha e termina em arte. No meio, alguém precisa buscar a descrição de cada produto, baixar cada imagem, padronizar cada texto e repartir tudo pelos recortes comerciais certos. Quando são milhares de itens por campanha, esse meio vira o gargalo.

O problema

O processo era manual e vivia em Excel. Para cada produto, uma pessoa procurava a descrição atualizada na página pública do item, copiava, limpava o texto à mão, baixava a imagem, salvava na pasta certa e repetia. A mecânica promocional era resolvida por uma fórmula com oito níveis de condicional aninhada dentro de uma célula — funcionava, mas ninguém além de quem escreveu conseguia manter.

No fim, o mesmo arquivo tinha de virar várias planilhas diferentes, uma por recorte comercial, cada uma com a seleção certa de produtos.

Erro de digitação numa descrição vira erro impresso em encarte. E encarte impresso não tem Ctrl+Z.

O que fizemos

Um processador de planilhas em Python, empacotado em Docker, que executa o ciclo completo de ETL sem intervenção manual.

  • Extract — lê a planilha de entrada e busca dados atualizados nas páginas públicas dos produtos, usando o código do item como chave
  • Transform — normaliza descrições segundo o padrão editorial do cliente, padroniza a grafia das marcas, resolve o agrupamento de ofertas combinadas, deriva a mecânica promocional a partir das colunas de preço e monta os links de destino. As regras saíram da fórmula de planilha e viraram código versionado, com teste
  • Imagens — baixa a imagem de cada produto quando ela ainda não existe, preservando o formato original e organizando o acervo numa estrutura de pastas que evita diretório com dezenas de milhares de arquivos
  • Load — gera automaticamente as planilhas de saída, já separadas pelos recortes comerciais, seguindo a regra de cobertura de cada um

Rodou em contêiner desde o primeiro dia, com black, ruff e mypy no caminho — porque automação que produz material impresso não pode falhar em silêncio.

O resultado

O que era trabalho manual repetido a cada campanha virou uma execução. As planilhas de saída saem prontas, com descrição padronizada e imagem no lugar certo.

O ganho maior é menos visível: a regra de negócio deixou de morar numa fórmula dentro de uma célula. Está em código, legível, versionado e testável — e pode ser alterada por quem chegar depois, sem precisar decifrar oito condicionais encaixadas.

Case publicado sem identificação do cliente, por acordo de confidencialidade.