Cadastro e manutenção de produtos, incluindo estrutura de lista de materiais (BOM).
Manter o catálogo de produtos cadastrados diretamente pela interface ou via integrações. Os produtos são referenciados em operações, ordens, logística e etiquetas.

Os prints abaixo usam um produto já salvo (edição), para exibir todas as abas — na primeira criação a aba Estrutura (BOM) só permite incluir itens após o primeiro Salvar.
Campos do modal de criação ou edição. Na coluna Obrigatório, * indica rótulo com asterisco na interface.
| Campo | Obrigatório | Descrição |
|---|---|---|
| Código | Sim * | Identificador do produto (SKU). Deve ser único no ambiente. |
| Nome | Sim * | Nome de exibição do produto. |
| Descrição | Não | Texto livre; opcional. |
| Unidade | Sim * | Unidade de medida (ex.: UN, KG, M). |
| Código ERP | Não | Referência opcional ao código no ERP ou outro sistema legado. |
| Status | Sim * | Ativo ou inativo (flgenable). Produtos inativos podem ser filtrados em outros fluxos. |
| Quantidade por pacote | Não | Quantidade por embalagem ou pacote; valor decimal opcional. |
| Período de validade (dias) | Não | Validade em dias; número inteiro opcional. |
| Custo | Não | Custo unitário manual. Se houver pelo menos um item preenchido na aba Estrutura (BOM), o campo fica somente leitura e exibe o total estimado da BOM (soma dos custos dos componentes × quantidades). |
| Imagem | Não | Arquivo de imagem (accept="image/*"). O navegador envia em base64; ao salvar, o backend normaliza para o formato armazenado. Use Remover imagem para limpar. |
| ID | Somente leitura | Identificador interno (idproduct). |
| Criado em | Somente leitura | Data e hora de criação do registro. |

Na aba Estrutura (BOM); incluir e editar itens exige que o produto já tenha sido salvo ao menos uma vez (existência de idproduct).
idproduct).
GET / POST — /products/ — listagem (query params opcionais) e criaçãoPUT / DELETE — /products/{id}/ — atualização e exclusão lógicaPOST — /products/{id}/restore/ — restaurar produto excluídoGET / PUT — /products/{id}/bom/ — leitura e gravação da BOMidproduct; até lá, Adicionar item fica desabilitado.Produto inativo some da lista?
Depende do filtro da tela; inativos podem não aparecer em comboboxes de outras telas.
BOM atualiza o custo sozinha?
Com itens na BOM, o custo na aba Campos vira somente leitura (total estimado).
Validade do lote no reporte?
Com Geração de lote ativa, o campo Período de validade (dias) define a data de validade do lote criado no Cockpit (Preferências).