Skip to content

Atacarejo E-commerce

2. Documentação Técnica (Engenharia e Integração)

A rotina é executada via Procedure PL/SQL no banco de dados, responsável por ler os parâmetros da tela, calcular a rentabilidade considerando impostos e custos, e realizar o envio (Sincronização) para a API da plataforma E-commerce (FBITS).

2.1. Carga de Dados e Fila (AD_ECOMPRECOATACAREJO)

O processo inicia alimentando a tabela de controle AD_ECOMPRECOATACAREJO. * Faz um JOIN entre as tabelas de produtos (TGFPRO), preços (AD_PRECO_FBITS) e agrupamentos de venda (TGFVOA). * Utiliza OUTER APPLY para buscar promoções ativas na AD_PROMOCAOECOM, validando a condição de segurança (se houver promoção, o atacarejo é anulado). * Garante a integridade evitando duplicações através do NOT EXISTS e sequenciamento via ROW_NUMBER().

2.2. Motor de Precificação

Para cada item ativo na fila, o sistema calcula o preço dinamicamente: 1. Levantamento de Custos e Impostos: Coleta as alíquotas de ICMS, IPI, PIS e COFINS através de funções customizadas (ex: F_OBTEM_ALIQICMS_ANHA). 2. Cálculo Base: Estipula um preço mínimo gerencial (V_PRECOMINGER) aplicando um fator de markup sobre o custo médio/gerencial. 3. Iteração de Margem (Loop WHILE): O sistema realiza até 4 iterações de cálculo para ajustar o preço final (V_PRECO_ATACAREJO). Ele recalcula a margem gerencial em tempo real através da PCK_RENTABILIDADE_ANHA até que a margem calculada cruze o limite estipulado pela segurança (V_MARGEM_ALVO_SEGURANCA).

2.3. Sincronização API FBITS

A integração com a URL base https://api.fbits.net/produtos/ possui um mecanismo de cache interno para otimizar requisições HTTP:

  • Validação de Mudança (Delta): A API só é acionada se o preço calculado for diferente do PRECO_POR_ATUAL salvo no banco, ou se o ID de atacado do E-commerce (IDATACADO) estiver nulo.
  • Gestão de ID e Endpoints HTTP:
    • GET: Acionado caso o IDATACADO não exista no banco. Busca o ID correspondente ao volume (quantidade) no E-commerce.
    • POST: Utilizado para enviar um novo preço de atacarejo (payload em JSON).
    • PUT: Utilizado para atualizar o preço de uma faixa de atacarejo já existente (requer o IDATACADO).
    • DELETE: Acionado quando a validação de segurança zera o preço de atacarejo (ex: entrou em promoção), removendo a faixa de volume da loja virtual.

2.4. Fluxograma de Execução (Motor e API)

O diagrama abaixo ilustra o comportamento do cursor PL/SQL para cada item ativo na tabela de atacarejo:

Fluxograma de Execução