Skip to content

Cadastro de Produto

Módulo: Produtos Caminho na aplicação: Menu > Produtos > Produtos > "Novo Produto" ou ícone Editar na lista Última atualização: 20/04/2026

Para que serve

Criar e editar produtos do catálogo do tenant. O formulário reúne todas as informações do produto em abas temáticas: dados cadastrais, logística, estoque, custo e preço, fornecedores, variações, atributos, unidades (compra e venda), imagens, tabelas de preço e canais de venda (marketplace).

Quem pode usar

Qualquer usuário com acesso ao módulo de Produtos.

Como usar (passo a passo)

Criar um produto:

  1. Acesse Menu > Produtos > Produtos e clique em Novo Produto.
  2. Preencha os campos obrigatórios na aba Dados Principais (mínimo: Nome e Tipo de Produto).
  3. Navegue pelas demais abas para preencher informações complementares.
  4. Clique em Cadastrar Produto. O sistema redireciona para a tela de edição do produto recém-criado.

Editar um produto:

  1. Na Lista de Produtos, clique no ícone Editar (lápis) na linha do produto.
  2. Edite os campos desejados em qualquer aba.
  3. Clique em Salvar Alterações. O sistema permanece na tela de edição e recarrega os dados atualizados da API.

Navegar entre abas:

  • As abas Custo e Preço, Imagens e Tabelas de Preço só ficam visíveis após o produto ser salvo pela primeira vez (modo edição).

Remover o produto:

Campos da tela

Aba: Dados Principais

CampoObrigatórioO que preencherObservações
IDNão (leitura)Exibido somente na edição; identificador interno sequencial
AtivoNãoSim / NãoPadrão: Sim
NomeSimNome completo do produtoMensagem: "Informe o nome do produto"
Desc. ReduzidaNãoNome abreviado para exibição em documentos compactos
SKUNãoCódigo único de identificação do item no sistema
Tipo de ProdutoSimRevenda, Matéria-Prima, Produto Acabado, Serviço, Kit, Insumo ou ProduçãoPadrão: Revenda. Mensagem: "Selecione o tipo"
GrupoNãoGrupo do produtoSeletor com busca; ver Cadastro de Grupo
CategoriaNãoCategoria do produtoSeletor com busca; ver Cadastro de Categoria
MarcaNãoMarca do produtoSeletor com busca; ver Cadastro de Marca
FabricanteNãoFabricante do produtoSeletor com busca; ver Cadastro de Fabricante
Unidade PadrãoSimUnidade na qual o estoque do produto é controlado (menor unidade prática)Ex.: un, kg, lt, mt. Gravada automaticamente na aba Unidades com fator_estoque = 1 e padrão = Sim. Para habilitar compra/venda em embalagens maiores (caixa, fardo, palete), cadastre unidades adicionais na aba Unidades
NCMNãoCódigo NCM (até 10 caracteres)Usado na emissão de NF-e
CESTNãoCódigo CEST (até 9 caracteres)Usado em NF-e com Substituição Tributária
Origem MercadoriaNãoCódigo de origem (0 a 8)Conforme tabela SEFAZ: 0 = Nacional, 1 = Estrangeira (importação direta), etc.
Perfil FiscalNãoPerfil fiscal aplicável ao produtoExibe descrição e tipo de operação; ver cadastro de Perfis Fiscais
Controla EstoqueNãoSim / NãoPadrão: Sim. Se desligado, o produto não gera movimentações de estoque
Permite VendaNãoSim / NãoPadrão: Sim
Permite CompraNãoSim / NãoPadrão: Sim
DescriçãoNãoDescrição longa do produtoCampo de texto multilinha
Descrição ComercialNãoTexto para uso comercial/marketingCampo de texto multilinha

Aba: Logística

CampoObrigatórioO que preencherObservações
Peso Bruto (kg)NãoPeso bruto em quilogramasPrecisão: 3 casas decimais
Peso Líquido (kg)NãoPeso líquido em quilogramasPrecisão: 3 casas decimais
Altura (cm)NãoAltura da embalagem em centímetrosPrecisão: 2 casas decimais
Largura (cm)NãoLargura da embalagem em centímetrosPrecisão: 2 casas decimais
Comprimento (cm)NãoComprimento da embalagem em centímetrosPrecisão: 2 casas decimais
Cubagem (m³)NãoVolume cúbicoPrecisão: 4 casas decimais
Tipo EmbalagemNãoDescrição do tipo de embalagem (ex.: Caixa, Pallet)Texto livre
Múltiplo VendaNãoQuantidade mínima múltipla para vendaPadrão: 1
Qtd. EmbalagemNãoQuantidade de unidades por embalagemPadrão: 1

Aba: Estoque

CampoObrigatórioO que preencherObservações
Controla estoqueNãoSim / NãoMesmo campo da aba Dados Principais
Controla loteNãoSim / NãoQuando ativo, o saldo vira trinômio (produto × depósito × lote) e o motor FEFO seleciona automaticamente o lote com validade mais próxima nas saídas
Estoque mínimoNãoQuantidade mínima desejada em estoqueAlerta quando o saldo cai abaixo deste valor. Precisão: 4 casas decimais
Ponto de reposiçãoNãoQuantidade que aciona reposiçãoPrecisão: 4 casas decimais
Estoque máximoNãoCapacidade máxima sugeridaPrecisão: 4 casas decimais

Tabela "Saldos por depósito" (somente leitura, visível apenas na edição):

ColunaDescrição
DepósitoCódigo e descrição do depósito; depósito principal marcado com etiqueta "Principal"
FilialNome fantasia ou razão social da filial
FísicoQuantidade física total
ReservadoQuantidade reservada (destaque laranja se > 0)
DisponívelFísico menos reservado (verde = positivo, cinza = zero, vermelho = negativo)
Custo médioCusto médio do produto no depósito (R$)
ValorQuantidade × custo médio (R$)
(ações)Link "Kardex" para abrir o kardex do produto naquele depósito

Aba: Custo e Preço (somente na edição)

Exibida pelo componente ProdutoCustoTab. Gerencia custo e preço por filial

Aba: Fornecedores

Formulário inline para associar fornecedores ao produto.

CampoObrigatórioO que preencherObservações
FornecedorSimSelecione um fornecedor cadastradoMensagem: "Selecione o fornecedor"
Código FornecedorNãoCódigo do produto no cadastro do fornecedor
Referência FornecedorNãoReferência do produto no fornecedor
Prazo Entrega (dias)NãoDias de prazo de entrega do fornecedorNúmero inteiro
Custo CompraNãoCusto de compra praticado pelo fornecedorFormato R$; precisão: 2 casas decimais
PrincipalNãoSim / NãoIndica se é o fornecedor principal do produto

Aba: Variações

Formulário inline para registrar variações do produto (ex.: tamanhos, cores).

CampoObrigatórioO que preencherObservações
DescriçãoSimDescrição da variação (ex.: "Azul G")Mensagem: "Informe a descrição"
CódigoNãoCódigo da variação
ReferênciaNãoReferência da variação
SKUNãoSKU específico da variação
AtivoNãoSim / NãoPadrão: Sim

Aba: Atributos

Formulário inline para registrar atributos técnicos do produto.

CampoObrigatórioO que preencherObservações
NomeSimNome do atributo (ex.: "Voltagem")Mensagem: "Informe o nome"
ValorSimValor do atributo (ex.: "127V")Mensagem: "Informe o valor"
TipoSimTexto, Número, Booleano ou DataPadrão: Texto. Mensagem: "Selecione o tipo"
OrdemNãoOrdem de exibição do atributoPadrão: 0; número inteiro

Aba: Unidades

Formulário inline para cadastrar as unidades comerciais do produto: a unidade padrão (controle de estoque) e as unidades transacionais (compra/venda). O sistema sempre cria automaticamente a linha da unidade padrão com fator_estoque = 1 a partir do campo Unidade Padrão da aba Dados Principais. Adicione unidades extras para embalagens maiores (caixa, fardo, palete) ou fracionadas.

CampoObrigatórioO que preencherObservações
UnidadeSimSigla/nome da unidade (ex.: un, fardo, palete, kg, cx)Mensagem: "Informe a unidade"
Fator EstoqueSimQuantas unidades padrão cabem em 1 desta unidadeA unidade padrão sempre tem fator 1. Ex.: fardo com 6 un → 6. Precisão: 4 casas decimais; deve ser > 0
Fator PreçoSimMultiplicador aplicado ao preço da unidade padrão para obter o preço desta unidadePermite desconto por volume. Ex.: fardo com 6 un a R$ 10,00/un pode ter fator_preco = 5.7 para preço final R$ 57,00 em vez de R$ 60,00. Padrão: igual ao Fator Estoque. Precisão: 4 casas decimais; deve ser > 0
Código de BarrasNãoEAN/DUN/GTIN específico desta unidadePode haver código diferente para unidade e fardo (ex.: EAN-13 da unidade e DUN-14 da caixa)
SKUNãoSKU específico desta unidade
Ativo CompraNãoSim / NãoDefine se a unidade aparece em ordens de compra. Padrão: Sim
Ativo VendaNãoSim / NãoDefine se a unidade aparece em vendas/PDV. Padrão: Sim
PadrãoNão (gerenciado)Sim / NãoMarca a unidade de controle de estoque. Somente uma unidade por produto pode ter Padrão = Sim; alterar requer trocar a unidade padrão explicitamente

Exemplo — Coca-Cola 2L (unidade padrão: un)

UnidadeFator EstoqueFator PreçoAtivo CompraAtivo VendaPadrão
un11NãoSimSim
fardo65,7SimSimNão
palete6055SimNãoNão

Leitura: uma entrada de 1 palete soma 60 un ao estoque; uma venda de 1 fardo consome 6 un e é precificada como 5,7 × preço unitário.

Regras de integridade — Unidades

  • Não é permitido excluir uma unidade com movimentações históricas; nesse caso, desmarque Ativo Compra e Ativo Venda para inativá-la.
  • Alterar Fator Estoque ou Fator Preço de uma unidade existente não recalcula movimentações passadas: o sistema grava um snapshot dos fatores no momento da transação.
  • Todo produto tem exatamente uma unidade com Padrão = Sim.
  • Fator Estoque e Fator Preço devem ser maiores que zero.

Fórmulas de cálculo (unidades)

O sistema sempre persiste estoque, custo e movimentações na unidade padrão. Quando o usuário opera em uma unidade transacional, as conversões são automáticas:

  1. Movimentação de estoque (entrada ou saída): quantidade_padrao = quantidade_transacionada × fator_estoque_snapshot Toda movimentação grava também o fator_estoque_snapshot vigente.

  2. Custo unitário na entrada de compra: custo_unitario_padrao = valor_total_compra / (quantidade × fator_estoque_snapshot) O custo usa fator_estoque (volume real) — não fator_preco.

  3. Preço de venda por unidade transacional: preco_venda_unidade = preco_venda_unitario_padrao × fator_preco Usado para calcular o preço exibido no PDV / pedido de venda para cada unidade transacional.

  4. Snapshot: toda linha de pedido de venda, pedido de compra, recebimento e movimentação de estoque grava fator_estoque_snapshot e fator_preco_snapshot vigentes no momento da operação. Relatórios históricos continuam corretos mesmo após o cadastro da unidade mudar.

Aba: Imagens (somente na edição)

Galeria de imagens do produto armazenadas no S3.

AçãoDescrição
Enviar ImagemFaz upload de uma imagem (qualquer formato de imagem) para o S3
Ícone estrelaDefine a imagem como principal (exibida nos documentos e listagens)
Ícone lixeiraRemove a imagem do produto e do S3
  • A imagem marcada como principal é destacada com borda azul e etiqueta "Principal".
  • É possível visualizar a imagem em tamanho maior clicando sobre ela.

Aba: Tabelas de Preço (somente na edição)

Vincula o produto a tabelas de preço cadastradas no sistema.

CampoObrigatórioO que preencherObservações
Selecione uma tabela para vincular...NãoEscolha uma tabela disponívelO seletor exibe apenas tabelas ainda não vinculadas ao produto

Colunas da tabela de vínculos:

ColunaDescrição
TabelaDescrição da tabela de preço
TipoTipo da tabela (Venda, Custo, Pauta, Promoção)
Preço BasePreço do produto nesta tabela (R$)
Desc. Máx.Percentual máximo de desconto permitido
Preço Mín.Preço mínimo permitido (R$)
ComissãoPercentual de comissão para esta tabela

Modal de edição de preço por tabela:

CampoObrigatórioO que preencherObservações
Preço BaseSimPreço do produto nesta tabelaR$; precisão: 4 casas decimais. Mensagem: "Informe o preço"
Preço MínimoNãoPreço mínimo permitidoR$; precisão: 4 casas decimais
Desconto Máximo (%)NãoPercentual máximo de desconto0 a 100%; precisão: 2 casas decimais
Comissão (%)NãoPercentual de comissão0 a 100%; precisão: 2 casas decimais

Aba: Canais / Marketplace

Formulário inline para registrar o produto em canais de venda externos.

CampoObrigatórioO que preencherObservações
CanalSimNome do canal (ex.: "Mercado Livre")Mensagem: "Informe o canal"
TítuloNãoTítulo do anúncio no canal
StatusSimAtivo, Pausado ou InativoPadrão: Ativo. Mensagem: "Selecione o status"
PreçoNãoPreço praticado no canalR$; precisão: 2 casas decimais
SKU CanalNãoCódigo do produto no canal
URLNãoLink do anúncio no canal

Validações e regras

  • Nome e Tipo de Produto são obrigatórios. Os demais campos são opcionais.
  • O botão "Salvar" permanece ativo após o salvamento; o usuário pode continuar editando.
  • Ao criar, o sistema redireciona para /produtos/:id/editar com replace: true — o botão "Voltar" do navegador leva à lista de produtos.
  • Ao editar, o sistema recarrega o registro da API após salvar, sem redirecionar.
  • Se houver alterações não salvas e o usuário tentar sair, o sistema exibe um aviso de alterações pendentes (useUnsavedChanges).
  • Fornecedores: não é possível adicionar o mesmo fornecedor duas vezes (validação por fornecedor_id).
  • Tabelas de preço: ao tentar vincular uma tabela já removida anteriormente, o sistema oferece a opção de restaurar o vínculo.
  • Saldos por depósito e a aba "Custo e Preço" são somente leitura no sentido de que não fazem parte do payload do formulário principal.

Mensagens de erro e o que fazer

MensagemCausaComo resolver
"Informe o nome do produto"Campo Nome vazio ao tentar salvarPreencha o nome do produto
"Selecione o tipo"Tipo de Produto não selecionadoSelecione um tipo na lista
"Informe a descrição"Variação sem descrição ao adicionarPreencha o campo Descrição da variação
"Informe o nome" / "Informe o valor" / "Selecione o tipo"Atributo com campos obrigatórios vaziosPreencha os campos indicados
"Informe a unidade" / "Informe o fator estoque" / "Informe o fator preço"Unidade com campos obrigatórios vaziosPreencha os campos indicados na aba Unidades
"Fator deve ser maior que zero"Fator Estoque ou Fator Preço com valor ≤ 0Informe um valor positivo
"Somente uma unidade pode ser padrão"Tentativa de marcar mais de uma unidade como padrãoDesmarque a unidade padrão atual antes de trocar
"Unidade possui movimentações e não pode ser removida"Tentativa de excluir unidade com históricoInative a unidade (Ativo Compra = Não, Ativo Venda = Não)
"Informe o canal" / "Selecione o status"Canal com campos obrigatórios vaziosPreencha os campos indicados
"Selecione o fornecedor"Fornecedor não selecionado ao adicionarSelecione um fornecedor na lista
"Este registro já foi adicionado"Tentativa de adicionar fornecedor duplicadoEscolha um fornecedor diferente
"Produto criado com sucesso"Criação bem-sucedida
"Produto atualizado com sucesso"Edição bem-sucedida
"Erro ao carregar produto"Falha ao buscar dados do produto na APIVerifique a conexão; o sistema retorna à lista de produtos
"Erro ao salvar produto"Falha genérica ao criar ou editar
"Erro ao carregar imagens"Falha ao carregar galeria de imagensVerifique a conexão e recarregue a aba
"Imagem enviada com sucesso"Upload de imagem concluído
"Erro ao enviar imagem"Falha no upload para o S3Verifique o tamanho e formato do arquivo
"Imagem definida como principal"Imagem principal atualizada
"Erro ao definir imagem principal"Falha na APITente novamente
"Imagem removida"Imagem excluída com sucesso
"Erro ao remover imagem"Falha na API ou no S3Tente novamente
"Esta tabela já está vinculada ao produto"Tentativa de vincular tabela já ativaEscolha outra tabela
"Tabela vinculada com sucesso"Vínculo de tabela de preço criado
"Erro ao vincular tabela"Verifique o log da API
"Preço atualizado"Preço da tabela de preço atualizado
"Tabela desvinculada"Vínculo de tabela removido
"Erro ao desvincular tabela"Falha na APITente novamente
"Informe o preço"Preço Base vazio no modal de preçoPreencha o campo Preço Base
"Vínculo restaurado com sucesso"Vínculo anteriormente removido foi restaurado
"Erro ao restaurar vínculo"Falha ao restaurar vínculoTente novamente

Integrações e dependências

  • Lista de Produtos: ponto de entrada para acessar este formulário.
  • Cadastro de Grupo: grupos disponíveis no seletor "Grupo".
  • Cadastro de Categoria: categorias disponíveis no seletor "Categoria".
  • Cadastro de Marca: marcas disponíveis no seletor "Marca".
  • Cadastro de Fabricante: fabricantes disponíveis no seletor "Fabricante".
  • Perfis Fiscais: perfis carregados de fiscalPerfisService.listar.
  • Fornecedores: lista carregada de fornecedoresService.listar.
  • Tabelas de Preço: vínculos gerenciados por tabelasPrecoService.
  • Estoque / Kardex: saldos carregados de estoqueService.listarSaldos; link para o kardex em /estoque/kardex.
  • AWS S3: imagens armazenadas via upload multipart; URLs geradas pelo backend.

Dúvidas frequentes

Por que as abas "Custo e Preço", "Imagens" e "Tabelas de Preço" não aparecem? Essas abas só ficam disponíveis após o produto ser criado e salvo pela primeira vez. Crie o produto e elas aparecerão.

Posso ter códigos de barras diferentes por embalagem? Sim. Cadastre uma unidade por embalagem na aba Unidades e informe o código de barras específico de cada uma (ex.: EAN-13 da unidade e DUN-14 do fardo).

Como funciona a relação entre unidade padrão e unidades de compra/venda? O estoque é sempre controlado na unidade padrão (menor unidade prática do produto). As demais unidades (fardo, palete, caixa) são transacionais e usam fator_estoque para converter para a unidade padrão. Veja exemplo e fórmulas na seção Aba: Unidades.

Qual a diferença entre fator_estoque e fator_preco?fator_estoque é a quantidade real da unidade padrão contida em 1 unidade transacional (ex.: fardo com 6 un → 6). fator_preco é o multiplicador comercial aplicado ao preço da unidade padrão para obter o preço da unidade transacional — normalmente igual a fator_estoque, mas pode ser menor para oferecer desconto por volume (ex.: 5,7 em um fardo de 6).

Posso alterar o fator de uma unidade depois de usar em vendas? Pode, mas a alteração só vale para movimentações futuras. O sistema grava um snapshot do fator em cada operação, então relatórios históricos continuam corretos.

O produto tem um EAN único? Não. O EAN/GTIN agora vive em cada linha da aba Unidades — a unidade padrão pode ter o EAN-13 e o fardo um DUN-14 diferente, por exemplo.

O que é "Controla lote"? Quando ativado, o estoque do produto é rastreado por lote. O sistema usa a lógica FEFO (First Expired, First Out) para selecionar automaticamente o lote com validade mais próxima nas saídas via NF-e.

Posso vincular o produto a várias tabelas de preço? Sim. Cada tabela pode ter seu próprio preço base, desconto máximo, preço mínimo e comissão específicos para o produto.

Histórico de alterações

DataAlteração
20/04/2026Documento inicial criado.
20/04/2026Refatoração do modelo de unidades: removidos campos Unidade Venda, Unidade Compra e Fator Conversão da aba Dados Principais; removida a aba Códigos de Barras; adicionada aba Unidades (unidade padrão + transacionais com fator_estoque, fator_preco, codigo_barras, sku, ativo_compra, ativo_venda, padrao). Seção de fórmulas e regras de integridade documentada.

Manual oficial do Manto ERP. Conteudo voltado para usuarios finais.