Ir para o conteúdo principal

CLIENTE (LojaCliente) (STATUS: PARCIAL)

Documentação Técnica

Nome do cliente OSKLEN
Nome do projeto INTEGRAÇÃO LINX → ILLI
Biblioteca wosk_loja_cliente
Token da Biblioteca 1be199d8-98e8-4de7-a92c-e59c2f08edd6
URL de Produção
https://isnapp.illimitar.pro/bibliotecas/1be199d8-98e8-4de7-a92c-e59c2f08edd6/wosk_loja_cliente
URL de Homologação https://hmg-isnapp.illimitar.pro/bibliotecas/1be199d8-98e8-4de7-a92c-e59c2f08edd6/wosk_loja_cliente
Data 24/02/2026

Sumário


    Histórico de Versões

    Data Versão Modificado por Descrição da Mudança
    24/02/2026 1.0 Maykon/Gustavo Criação da documentação do processo de integração de cadastro de cliente.

    Descrição Geral dos Processos

    Este processo centraliza o cadastro e a atualização de clientes, garantindo que as informações recebidas sejam validadas e armazenadas de forma consistente.

    Quando um cliente é incluído ou alterado, os registros ficam disponíveis para captura periódica (cron), que organiza a fila de processamento para integração assíncrona.

    Por fim, a fila monta os dados no formato esperado pelo destino, realiza validações essenciais e registra o resultado, permitindo acompanhamento e tratamento de falhas.

    Monitor

    Descrição Conceitual

    Descrição do fluxo
    • O Monitor é acionado por cron, carrega a posição de processamento anterior e define um limite de captura por ciclo.
    • A busca considera registros a partir de uma data de referência e pagina os resultados para manter o processamento controlado.
    • Cada registro encontrado é encaminhado para processamento assíncrono em fila, mantendo ordem/agenda baseada na data de transferência (Conceito Cronológico).
    • Ao longo do ciclo, o Monitor atualiza sua posição de continuidade, permitindo retomada segura em execuções seguintes.
    Entrada de dados (query)

    A entrada é realizada via query sobre a base de clientes e tabelas auxiliares. O filtro por data é aplicado na coluna DATA_PARA_TRANSFERENCIA, caracterizando um filtro cronológico (Conceito Cronológico).

    SELECT
        CLI.CODIGO_CLIENTE,
        CLI.CLIENTE_VAREJO,
        CLI.CPF_CGC,
        CLI.RG_IE,
        CLI.ANIVERSARIO,
        CLI.TIPO_LOGRADOURO,
        CLI.ENDERECO,
        CLI.NUMERO,
        CLI.COMPLEMENTO,
        CLI.BAIRRO,
        CLI.CIDADE,
        CLI.UF,
        CLI.CEP,
        CLI.PAIS,
        LLM.COD_MUNICIPIO_IBGE AS IBGE,
        LLP.COD_PAIS_BC AS PAIS_BC,
        CLI.DDD,
        CLI.TELEFONE,
        CLI.DDD_CELULAR,
        CLI.CELULAR,
        CLI.EMAIL,
        CLI.CODIGO_CONTATO,
        CLI.FILIAL,
        CLI.ESTRANGEIRO,
        CLI.TIPO_VAREJO,
        CLI.TIPO_BLOQUEIO,
        CLI.CADASTRAMENTO,
        CLI.OBS,
        CLI.SEXO,
        CLI.STATUS,
        CLI.DATA_PARA_TRANSFERENCIA
    FROM
        CLIENTES_VAREJO CLI (NOLOCK)
        LEFT JOIN W_LCF_LX_MUNICIPIO LLM (NOLOCK)
            ON (DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT, LTRIM(RTRIM(CLI.CIDADE))) = LLM.DESC_MUNICIPIO
                AND CLI.UF = LLM.UF)
        LEFT JOIN LCF_LX_PAIS LLP (NOLOCK)
            ON (CLI.PAIS = LLP.DESC_PAIS)
    WHERE
        CLI.DATA_PARA_TRANSFERENCIA >= '<DATA_REFERENCIA>'
    ORDER BY
        CLI.DATA_PARA_TRANSFERENCIA ASC
    OFFSET <OFFSET> ROWS
    FETCH NEXT <LIMITE> ROWS ONLY;

    Observação: o WHERE é montado dinamicamente com base na data de referência persistida pelo Monitor.

    Reestruturação e alteração de dados
    • Filtro de continuidade: a data de referência é armazenada e atualizada conforme os registros são capturados, garantindo que o processo continue do ponto correto.
    • Chave do registro: o código do cliente é utilizado como identificador único para encadear captura, fila e processamento.
    Operações com dados (Banco de Dados)
    • Leitura: tabelas CLIENTES_VAREJO, W_LCF_LX_MUNICIPIO e LCF_LX_PAIS.
    • Persistência do controle do Monitor: tabela wosk_monitor (banco do integrador), registrando posição, data de referência e filtros usados.
    • Persistência da fila: tabela wosk_queue (banco do integrador), criando item para processamento assíncrono.
    Resultado do processamento

    Ao final do ciclo, os registros elegíveis ficam organizados para processamento assíncrono, e a posição do Monitor é salva para continuidade no próximo acionamento.

    Queue

    Descrição Conceitual

    Descrição do fluxo
    • A Queue é acionada por cron e consome itens pendentes para integração.
    • O item é marcado como em processamento, e os dados são convertidos para o formato esperado pelo destino.
    • Ao final do envio, o resultado (sucesso ou erro) é registrado na fila, mantendo mensagem e retorno para auditoria.
    Reestruturação e alteração de dados
    • Contatos: telefone, celular e e-mail são reorganizados em uma lista padronizada; telefone/celular são convertidos para apenas números e concatenados com o DDD.
    • Endereço: o tipo de logradouro é concatenado ao logradouro, e o CEP é normalizado para 8 dígitos com zeros à esquerda quando necessário.
    • Validações: para registros nacionais, exige código IBGE do município; exige também código BACEN do país para consistência cadastral.
    • Documento: identifica se o cadastro é de pessoa física ou jurídica e formata CPF/CNPJ com preenchimento de zeros à esquerda; também envia documento complementar (identidade/inscrição).
    Operações com dados (Banco de Dados)
    • Leitura: consumo de itens na tabela wosk_queue (banco do integrador).
    • Atualização: gravação do retorno e da mensagem de processamento na tabela wosk_queue.
    • Log de falhas: quando aplicável, detalhes de erro de banco podem ser registrados em wosk_queue_log.
    Resultado do processamento
    • Sucesso: o cadastro é integrado e a fila registra a conclusão com a mensagem retornada.
    • Erro: a fila registra o erro e o detalhe, permitindo acompanhamento e notificação.

    WebService

    Descrição Conceitual

    Descrição do fluxo
    • O endpoint recebe dados cadastrais do cliente e valida os campos obrigatórios.
    • Em seguida, define datas de cadastro e de transferência e garante consistência de campos sensíveis (como filial, tipo de cliente e indicadores de estrangeiro).
    • Por fim, grava o registro na tabela de clientes, criando um novo cadastro ou atualizando um existente conforme a identificação do cliente.
    Reestruturação e alteração de dados
    • Identificação do cliente: quando o código do cliente não é informado, ele é derivado do documento principal (CPF/CNPJ) e, no caso de estrangeiro, do documento de identificação.
    • Filial: quando informada como código, é convertida para o nome padrão cadastrado.
    • Datas: as datas de cadastro e de transferência são definidas no momento do recebimento para manter rastreabilidade do evento.
    • Observação: o texto de observações recebe um prefixo que identifica a origem do cadastramento.
    Operações com dados (Banco de Dados)
    • Leitura de referência: tabelas CLIENTE_VAR_TIPOS e FILIAIS (listas de apoio).
    • Leitura para decisão de insert/update: tabela CLIENTES_VAREJO (verifica existência e consistência de cadastro).
    • Persistência: inserção ou atualização na tabela CLIENTES_VAREJO, dentro de transação para garantir atomicidade.
    Resultado do processamento

    Quando não há erros de validação ou de persistência, o endpoint retorna confirmação de registro do cliente e disponibiliza a data de transferência para rastreabilidade.

    CAMPO TIPO TAMANHO  CONTEÚDO OBRIGATÓRIO
    key C 36 Chave da API Key para autenticação sim
    CLIENTE_VAREJO C 40 Nome do cliente sim
    FILIAL C 25 Nome ou código da filial sim
    CODIGO_CLIENTE C 14 Identificação do cliente (derivada do documento quando não informada) sim
    PF_PJ L 1 Indica se o cadastro é de pessoa física ou jurídica sim
    ESTRANGEIRO L 1 Indica se o cadastro é de estrangeiro sim

    Exemplos de Request: 

    {
      "key": "<API_KEY>",
      "CLIENTE_VAREJO": "CLIENTE TESTE",
      "FILIAL": "ESTOQUE CENTRAL",
      "PF_PJ": true,
      "ESTRANGEIRO": false,
      "CPF_CGC": "99999999999",
      "RG_IE": "94987713999",
      "EMAIL": "t.teste@gmail.com",
      "DDD": "21",
      "TELEFONE": "999999999",
      "DDD_CELULAR": "21",
      "CELULAR": "999999999",
      "UF": "RJ",
      "CIDADE": "RIO DE JANEIRO",
      "BAIRRO": "CENTRO",
      "CEP": "20000000",
      "TIPO_LOGRADOURO": "RUA",
      "ENDERECO": "EXEMPLO",
      "NUMERO": "100",
      "COMPLEMENTO": "SALA 10",
      "PAIS": "BRASIL",
      "ANIVERSARIO": "1993-07-04 00:00:00",
      "OBS": "Cadastro via integração"
    }

    Exemplos de Response: 

    {
      "Mensagem": "OK",
      "Mensagem Detalhada": "Registrado com sucesso.",
      "CODIGO_CLIENTE": "99999999999",
      "CADASTRAMENTO": "2026-02-24 12:00:00",
      "DATA_PARA_TRANSFERENCIA": "2026-02-24 12:00:00"
    }

    Fluxo do Processo

    Diagrama sem nome.jpg


    Critérios de Aceitação

    Processo Subprocesso Descrição Situação esperada
    WebService Validação e persistência Ao receber requisição com os campos obrigatórios, deve validar e gravar o cliente em CLIENTES_VAREJO (criando ou atualizando conforme existência). Registro persistido e retorno de confirmação ao chamador.
    Monitor Captura cronológica Quando acionado por cron, deve buscar clientes a partir de DATA_PARA_TRANSFERENCIA, paginando resultados e mantendo a continuidade pela data/offset. Itens selecionados por data e organizados para processamento assíncrono; posição salva em wosk_monitor.
    Queue Integração assíncrona Deve converter o item para o formato do destino (contatos, endereço e documentos), realizar validações essenciais e registrar o resultado na fila. Fila atualizada com sucesso ou erro, mantendo mensagem e retorno para rastreabilidade.