Ir para o conteúdo principal

LojaProduto

Documentação Técnica
Nome do cliente OSKLEN
Nome do projeto Integração LINX → ILLI (Produto Loja)
Biblioteca wosk_loja_produto
Data 26/03/2026

Histórico de Versões
Data Versão Modificado por Descrição da Mudança
26/03/2026 1.0 Maykon/Gustavo Criação da documentação técnica do processo Loja Produto (LINX → ILLI).

Descrição

Este serviço de cadastro de produto no LINX monta um payload rico com grade, preços e metadados e envia ao ILLI em uma única chamada de produto.
O capturador lê a tabela de produtos com joins (coleção, CEST, etc.), complementa com SKU via PRODUTOS_BARRA e listas de preços, e enfileira pela chave PRODUTO.

Capturador

Descrição Conceitual

A captura automática consulta a projeção principal em PRODUTOS com joins quando o serviço LojaProduto está apto, com filtro em DATA_PARA_TRANSFERENCIA, ordenação por data e produto e paginação conforme o limite configurado para o serviço LojaProduto. Antes de enfileirar, anexa SKU (grades) e PRECOS via métodos auxiliares.

A captura por código reprocessa um PRODUTO específico com a mesma projeção e enriquecimento.

Fontes

Origem consultada: PRODUTOS.

Origem consultada: PRODUTOS_BARRA e PRODUTO_CORES para composição do SKU.

Origem consultada: VW_ILLI_TAB_PRECOS_PRODUTOS_LINHAS para composição do PRECO.

Consulta principal:

SELECT
    P.PRODUTO,
    P.TIPO_PRODUTO,
    P.DESC_PRODUTO,
    P.GRUPO_PRODUTO,
    P.SUBGRUPO_PRODUTO,
    P.LINHA,
    P.GRIFFE,
    P.UNIDADE,
    P.FABRICANTE,
    P.REFER_FABRICANTE,
    P.TRIBUT_ICMS,
    P.TRIBUT_ORIGEM,
    P.DATA_CADASTRAMENTO,
    P.SUJEITO_SUBSTITUICAO_TRIBUTARIA,
    P.OBS,
    P.SEXO_TIPO,
    P.CLASSIF_FISCAL,
    P.STATUS_PRODUTO,
    P.DATA_PARA_TRANSFERENCIA,
    TLC.CODIGO_CEST,
    CL.COLECAO,
    CL.DESC_COLECAO,
    <demais colunas de coleção conforme arquivo>
FROM
    PRODUTOS P (NOLOCK)
    <JOINs conforme consulta de dados do arquivo-fonte>

Sub-consulta de SKU:

SELECT
    PB.PRODUTO,
    PB.CODIGO_BARRA,
    PB.TAMANHO,
    PB.GRADE,
    PB.INATIVO,
    PR.COR_PRODUTO,
    PR.DESC_COR_PRODUTO,
    PR.CAPSULA_PRODUTO_COR,
    PR.CLASSIF_FISCAL
FROM
    PRODUTOS_BARRA PB (NOLOCK)
    JOIN PRODUTO_CORES PR (NOLOCK)
        ON PB.PRODUTO = PR.PRODUTO
        AND PB.COR_PRODUTO = PR.COR_PRODUTO
WHERE
    PB.PRODUTO = '<PRODUTO>'

Sub-consulta de Preço:

SELECT
    PRODUTO,
    COR_PRODUTO,
    CODIGO_TAB_PRECO,
    PRECO_TAB,
    PRECO_LIQ_TAB,
    DATA_PARA_TRANSFERENCIA
FROM
    VW_ILLI_TAB_PRECOS_PRODUTOS_LINHAS (NOLOCK)
WHERE
    PRODUTO = '<PRODUTO>'
    AND CODIGO_TAB_PRECO IN ('<CODIGO_TAB_PRECO_1>', '<CODIGO_TAB_PRECO_2>', '<...>')

Observação: na execução do método, a cláusula de cor pode ser incluída dinamicamente quando houver filtro por COR_PRODUTO.

Operações com Dados

Leitura: conforme Fonte; enriquecimento com busca o produto pelo código de barras (PRODUTOS_BARRA) e busca os preços (preços por cor/tabela).

Consulta dinâmica (captura automática): WHERE P.DATA_PARA_TRANSFERENCIA >= filtro, ORDER BY P.DATA_PARA_TRANSFERENCIA ASC, P.PRODUTO ASC, paginação conforme limite do serviço LojaProduto.

Persistência: grava na Fila de Processamento com serviço LojaProduto e chave PRODUTO.

Fila de Processamento

Descrição Conceitual

O processamento monta produto_grade a partir de SKU, precos a partir de PRECOS e tributação quando TRIBUT_ICMS está informado; converte SEXO_TIPO numérico para texto (MASCULINO, FEMININO, UNISSEX, INFANTIL ou INDEFINIDO); exige PRECOS, SKU e SEXO_TIPO. O objeto arr inclui identificação, descrições, grupo de produto, coleção opcional, PCP opcional, marca, situação derivada de STATUS_PRODUTO, grades, preços e datas. Mensagens de ausência de preço ou grade podem ser tratadas como ignoradas com sucesso em condições específicas.

Estruturação de Dados
Raiz do objeto enviado ao ILLI (campos principais)
Campo Tipo Obrigatório Descrição
key string não Não aplicado no objeto raiz gerado no código analisado.
id boolean sim Fixo false no fluxo.
tipo string sim Texto fixo de tipo de grade.
codigo string sim PRODUTO.
nome string sim DESC_PRODUTO.
produto_grade array sim Variações por cor/tamanho (ver tabela abaixo).
precos array sim Itens de preço por cor/tabela/tamanho.
grupo_produto array sim Grupo, subgrupo, tipo e sexo textual.
Estrutura de cada elemento de produto_grade (resumo)
Campo Tipo Descrição
codigo string Código de barras calculado ou informado.
codigo_ean string EAN quando diverge do código concatenado.
cor object codigo e nome da cor.
tamanho object codigo e nome da grade.
grupo_tributacao object origem e cst quando aplicável.
Relação explícita entre fontes (SKU/Preço) e payload
Origem Campos de origem Destino no payload Regra aplicada
PRODUTOS_BARRA + PRODUTO_CORES (SKU) PRODUTO, COR_PRODUTO, CODIGO_BARRA, TAMANHO, GRADE, DESC_COR_PRODUTO, CLASSIF_FISCAL produto_grade[].codigo, produto_grade[].codigo_ean, produto_grade[].cor.codigo, produto_grade[].cor.nome, produto_grade[].tamanho.codigo, produto_grade[].tamanho.nome, produto_grade[].ncm Calcula código concatenado PRODUTO + COR_PRODUTO + GRADE; quando divergir de CODIGO_BARRA, envia o concatenado em codigo e o original em codigo_ean.
VW_ILLI_TAB_PRECOS_PRODUTOS_LINHAS (Preço) PRODUTO, COR_PRODUTO, CODIGO_TAB_PRECO, PRECO_TAB, PRECO_LIQ_TAB, DATA_PARA_TRANSFERENCIA precos[].codigo, precos[].cor, precos[].tamanho, precos[].codigo_tab_preco, precos[].valor, precos[].valor_demarcado, precos[].data_cadastro PRECO_TAB e PRECO_LIQ_TAB são arredondados para 2 casas; os preços são replicados para cada grade/tamanho mapeado pela mesma cor.

Dependência entre sub-consultas: a sub-consulta de SKU define o mapa de tamanhos por cor; a sub-consulta de Preço utiliza esse mapa para gerar cada item de precos[] com tamanho = GRADE correspondente.

Exemplo de payload enviado para o endpoint (JSON) — estrutura resumida:

{
  "id": false,
  "tipo": "Grade Simples",
  "codigo": "<PRODUTO>",
  "nome": "<DESC_PRODUTO>",
  "produto_grade": [],
  "precos": [],
  "grupo_produto": ["<GRUPO>", "<SUBGRUPO>", "<TIPO>", "<SEXO_TEXTO>"],
  "data": "<DATA_PARA_TRANSFERENCIA>"
}
Tratamento de Dados

Ver lista na descrição da fila: arredondamento de preços, montagem de grades, validações de preço/grade/sexo e tratamento de exceções com prefixo "Ignorado" quando aplicável.

Integração com o ILLI
  • Chamada: Requisição HTTP
  • Recurso: /bibliotecas/9750fbda-368f-4f63-87f9-667356bc040b/ilx_produto/api/atualiza o cadastro do produto
  • Método HTTP: POST
  • Corpo: objeto arr montado no processamento da fila.
Tratamento de retorno

Padrão de sucesso/erro com success e message; situação 2 ou 4 na tabela da fila de integração; exceções com JSON não reconhecido estruturadas com error e data quando aplicável.

Notificação

A notificação de erros consulta registros com falha na tabela da fila de integração para o serviço LojaProduto e situação de erro, ordenando pelo horário de processamento para priorizar ocorrências mais antigas.

Fluxo do Processo

wosk_loja_produto.drawio.jpg


Critérios de Aceitação
Processo Subprocesso Descrição Situação esperada
Fila de Processamento Integração ILLI Deve montar o payload completo e chamar atualiza o cadastro do produto, interpretar sucesso ou erro com mensagem e persistir situação na tabela da fila de integração. Situação e mensagem coerentes com o retorno.