Produto
Sincroniza produtos por unidade (loja), preços, custos, saldos de estoque e propriedades logísticas entre o RPInfo e o RuB.
Identificação na Agenda de Execuções
- Nome do Job:
Produto - Grupo:
RPInfo - Chave do Job:
rpintoPRODUTO - Endpoints:
- v2.9 (padrão):
/v2.9/produtounidade/listaprodutos/{lastId}/unidade/{cnpj}/detalhado - v3.2:
/v3.2/produtounidade/listaprodutos/{lastId}/unidade/{cnpj}/detalhado, com suporte a/dataHoraManutencao/{dd-MM-yyyy HH:mm:ss}
- v2.9 (padrão):
Funcionamento Geral
O job consulta os produtos por unidade (loja), identifica ofertas, atualiza saldos de estoque (inclusive itens pesáveis), mapeia vida útil, calcula dias de venda (DDV), associa produtos pai e utiliza a tabela rpinfo_produto_depara para de-para de códigos.
Fluxo de Execução
graph TD
A["Job Produto Agendado por Loja (CNPJ)"] --> B{"Versão Endpoint?"}
B -- "v2.9" --> C["GET /v2.9/produtounidade/listaprodutos/{lastId}/unidade/{cnpj}/detalhado"]
B -- "v3.2" --> D["GET /v3.2/produtounidade/listaprodutos/{lastId}/unidade/{cnpj}/detalhado (ou dataHoraManutencao)"]
C --> E["Processar Lote de Produtos"]
D --> E
E --> F["De-Para de Código (rpinfo_produto_depara)"]
F --> G["Mapear Preços, Custos e Estoques (jobProdutoProcessarEstoque)"]
G --> H["Calcular DDV (dias_venda) e Vida Útil (rpinfoCampoVidaUtil)"]
H --> I["Compor codigo_preco (formatoCodigoPreco) e Identificar Ofertas"]
I --> J["Extrair Curvas ABC e Nós Dinâmicos 'Extras'"]
J --> K[("Salvar Produto e Propriedades no RuB")]
Configurações Avançadas e Aplicação
Acesse no RuB em Configurações > Configurações Avançadas > Integração > RPInfo:
| Configuração (Chave) | Tipo | Padrão | Descrição e Como é Aplicada |
|---|---|---|---|
Versão do Endpoint (configRPInfoEndPointProduto) | Enum | ENDPOINT_V29 | Define a versão da API utilizada (ENDPOINT_V29 para v2.9 ou ENDPOINT_V32 para v3.2). |
Somente Alterados (rpinfoProdutoParamSomenteAlterados) | Booleano | false | Exclusivo da v3.2. Quando ativo, realiza a busca incremental baseada na data de manutenção (dataHoraManutencao). |
Processar Estoque (jobProdutoProcessarEstoque) | Booleano | true | Define se os saldos de estoque (mínimo, máximo, estoques 2 a 5 e estoque principal) devem ser atualizados. |
Somente Ativos (rpinfoProdutoParamSomenteAtivos) | Booleano | false | Envia o parâmetro somenteAtivos=true na requisição à API para filtrar itens inativos. |
Cadastrar Inativo (rpinfoProdutoParamCadastraInativo) | Booleano | false | Permite cadastrar e atualizar produtos marcados como inativos no RuB. |
Solicitar Campos Extras (rpinfoProdutoParamOutrosExtras) | Booleano | true | Envia o parâmetro outrosExtras=true na requisição para obter os campos extras (Extra1 a Extra9, Extras, etc.). |
Carregar Tributação (rpinfoProdutoParamLoadTributacao) | Booleano | false | Envia o parâmetro loadTributacao=true na requisição à API. |
Considerar Cancelados (rpinfoProdutoParamConsiderarCancelados) | Booleano | true | Envia o parâmetro considerarCancelados=true na requisição à API. |
Somente Preço 2 (rpinfoProdutoParamSomentePreco2) | Booleano | false | Envia o parâmetro somentePreco2=true na requisição à API. |
Campo de Vida Útil (rpinfoCampoVidaUtil) | Texto | Validade | Nome do campo no JSON de resposta utilizado para preencher a propriedade vida_util do produto. |
Chave do Preço Normal (chaveDoPrecoNormal) | Texto | Preco | Nome do atributo no JSON que representa o preço regular do produto. |
Chave do Preço de Oferta (chaveDoPrecoOferta) | Texto | PrecoVenda2 | Nome do atributo no JSON que representa o preço promocional de oferta. |
Formato do Código de Preço (formatoCodigoPreco) | Texto | ${Preco}-${PrecoVenda2}-${PrecoVenda3} | Máscara de interpolação para compor o código identificador de agrupamento de preços. |
Chave de Gerenciado (chaveGerenciado) | Texto | Vazio | Nome do campo no JSON utilizado para identificar se o produto é gerenciado por ruptura. |
Valores de Definição de Gerenciado (valoresDefinicaoProdutoGerenciado) | Texto | Vazio | Lista de valores válidos (separados por vírgula) que marcam o produto como gerenciado. |
Ignora Lógica de Gerenciado (rpinfoProdutoParamIgnoraLogicaGerenciado) | Booleano | false | Quando ativo, desconsidera a validação customizada e mantém o status padrão de gerenciamento. |
Funções a Ignorar (rpinfoFuncoesIgnorarProduto) | Texto | Vazio | Códigos de funções de agrupamento de produto no ERP a serem desconsiderados durante a importação. |
Propriedades Extras
| Atributo / Propriedade RuB | Origem JSON / Cálculo | Descrição |
|---|---|---|
custo_empresa, custo_fiscal, custo_medio, custo_transferencia, custo_venda | CustoEmpresa, CustoFiscal, CustoMedio, CustoTranferencia, CustoVenda | Custos detalhados do produto na loja |
estoque_minimo, estoque_maximo, estoque2 a estoque5 | EstoqueMinimo, EstoqueMaximo, Estoque2 a Estoque5 | Estoques mínimos/máximos e saldos de estoques adicionais |
venda_media_por_dia | VendaMediaDiaria | Média diária de vendas do produto |
dias_venda | Calculado (Estoque1 / VendaMediaDiaria) | Dias de venda estimados (DDV) |
vida_util | Validade (ou campo definido em rpinfoCampoVidaUtil) | Vida útil / validade em dias |
codigo_comprador | CodigoComprador | Código do comprador responsável |
oferta | Oferta | Indicador booleano de oferta (true quando diferente de "N") |
data_oferta | DataOferta | Data da oferta (formato dd-MM-yyyy) |
preco_normal, preco_pdv, preco_pdv_2 a preco_pdv_5 | PrecoNormal, PrecoPDV, PrecoPDV2 a PrecoPDV5 | Preços normais e de PDV |
preco_etiqueta, preco_cartaz | PrecoEtiqueta, PrecoCartaz | Preços para confecção de etiquetas e cartazes |
preco_venda_2 a preco_venda_5 | PrecoVenda2 a PrecoVenda5 | Preços de venda alternativos / faixas de preço |
preco_unidade_medida, preco_pdv_unidade_medida, preco_venda_2_unidade_medida a preco_venda_5_unidade_medida | PrecoUnidadeMedida, PrecoPDVUnidadeMedida, PrecoVenda2UnidadeMedida a PrecoVenda5UnidadeMedida | Preços por unidade de medida |
fator_pr_3, fator_pr_4, fator_pr_5 | FatorPr3, FatorPr4, FatorPr5 | Fatores multiplicadores/divisores de preço |
${preco}_${tipoAgOf} | Composição dinâmica com TipoAgOf | Preço associado ao tipo de oferta (ex.: preco_normal_oferta) |
codigo_preco | Calculado via formatoCodigoPreco | Composição da chave/código de preço |
extra1 a extra9, prod_extra1 a prod_extra9 | Extra1 a Extra9, Prod_Extra1 a Prod_Extra9 | Campos extras genéricos da unidade e do produto |
abc_geral_qtd, abc_geral_valor, abc_geral_lucro | CurvasABC.Geral (Quantidade, Valor, Lucro) | Classificação da Curva ABC geral |
abc_departamento_qtd, abc_departamento_valor, abc_departamento_lucro | CurvasABC.Departamento (Quantidade, Valor, Lucro) | Classificação da Curva ABC por departamento |
abc_grupo_qtd, abc_grupo_valor, abc_grupo_lucro | CurvasABC.Grupo (Quantidade, Valor, Lucro) | Classificação da Curva ABC por grupo |
preco_desconto, inicio_desconto, final_desconto, fator_div_qtd | Job DESCONTOS | Preço promocional, vigência do desconto e fator divisor de quantidade |
Elementos do nó Extras com nome e valor preenchem dinamicamente propriedades adicionais de mesmo nome no RuB.
Tabelas
rpinfo_controle: controle de sincronização (lastIdoudataHora) por loja.rpinfo_produto_depara: mapeamento de códigos entre RuB e RPInfo.