Projetos
EvoluçãoVtex IO

Components Of The Bidding Pages - Kolplast

App de componentes desenvolvido para a página de licitações da Kolplast

A Kolplast passou a gerar propostas de licitação direto na loja VTEX

A Kolplast atende hospitais e órgãos públicos. Uma parte importante do negócio é licitação: cada pregão tem planilha de itens, preço por alíquota de ICMS e regras comerciais do cliente.

O desafio era tirar isso da planilha solta e do processo manual — e colocar na loja Kolplast, com cadastro, lista de editais e PDF da proposta comercial.

O Desafio

Antes, o fluxo típico era:

  • O time interno cadastrava o edital e anexava um Excel.
  • O cliente (distribuidor/órgão) precisava de uma proposta formatada, com dados dele, produtos daquele pregão, preços certos e condições comerciais.
  • O mesmo número de pregão podia existir em estados diferentes.
  • O Excel mudava de layout (colunas novas, “preço qualificado”).
  • Nem todo mundo podia ver a área: só cadastro aprovado e dentro da validade.

Não dava para resolver só com página institucional. Precisava de um módulo na VTEX IO, ligado ao Master Data e à sessão do cliente.

Como foi realizado

Foi criado o app kolplast.bidding-components, plugado no tema da loja, sem republicar o tema a cada ajuste fino (dependência 0.x).

O desenho usa três entidades no Master Data:

  • OL — Cadastro do usuário (CNPJ, endereço, ICMS...)
  • LC — Licitação/pregão (número, estado, órgão...)
  • OR — Log de download da proposta

1. Cadastro e acesso

O cliente preenche um formulário (UF, documentos, contato) gravado na OL. Um guard na vitrine consulta a sessão VTEX (vtex.session-client), busca o e-mail na OL e só libera /licitacoes se o status estiver ativo e a data de expiração for válida (fuso de São Paulo). Caso contrário, redireciona para acesso restrito.

Acesso

Cadastro

2. Lista de licitações

A página lista os documentos da LC: nome do órgão, número do pregão, estado, data, status e botão Orçamento. Há filtro por UF, ordenação por data e versão mobile.

3. Gerador de orçamento

Ao clicar em Orçamento, a URL leva número e estado (?number=040/26&state=MS). Assim dois pregões iguais em SP e MS não se misturam.

O app então:

  • Carrega o cliente na OL (incluindo ICMS, validade e flag de preço qualificado).
  • Busca a licitação na LC e o anexo (xlsx/xls ou csv).
  • Lê a planilha com SheetJS (xlsx), identifica colunas pelo cabeçalho (não pela letra AE/AL…), filtra linhas daquele órgão/pregão/UF e aplica o preço da coluna 18% / 12% / 07% conforme o ICMS do usuário.
  • Se qualified_price estiver marcado, usa o bloco Qualificado da planilha nova; senão, o preço normal. Planilha antiga continua funcionando.
  • Calcula total do item (unitário × quantidade), IPI e totais do pedido.
  • Monta a proposta na tela (dados do cliente, produtos, condições comerciais, premissas) e gera PDF no browser (html2canvas + jsPDF), com quebra de página.

Tecnologias

  • VTEX IO — app de storefront (react 3.x + store 0.x)
  • React + TypeScript
  • Master Data v1 — REST /api/dataentities/
  • Sessão da loja — vtex.session-client / vtex.render-runtime
  • SheetJS (xlsx) — parser da planilha Kolplast
  • html2canvas + jsPDF — PDF da proposta
  • CSS Modules + CSS Handles — visual alinhado à marca, customizável no tema
  • HTML/CSS da proposta — pensado para tela, modal de todos os itens e PDF

Resultado

O cliente logado entra em Licitações, vê os pregões, abre o orçamento daquele estado, vê preços certos (ICMS e, se for o caso, qualificado) e baixa um PDF no padrão Grupo Kolplast — sem montar a proposta à mão a cada edital.

O módulo continua evolutivo: novo layout de Excel e preço qualificado entraram no parser sem redesenhar a loja inteira.

Realizado em parceria com: Agência e-Plus

Como posso ajudar seu projeto a crescer ainda mais?

Estou sempre empolgado em colaborar com projetos inovadores. Quer esteja a começar do zero ou evoluindo uma ideia existente