SaleProduct (Produto)
O SaleProduct representa um produto vendavel no sistema, com controle de precos, estoque e impostos.
Descricao
Produtos sao itens fisicos que podem ser vendidos no PDV. Cada produto possui configuracoes de preco, estoque e impostos por filial, suportando operacao multi-loja.
Dados
Identificacao
| Campo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| name | Texto | Sim | Nome do produto |
| barcodes | Array[Texto] | Sim | Codigos de barras (EAN-8 a EAN-14) |
| reference | Texto | Nao | Codigo de referencia interno |
| provider_reference | Texto | Nao | Codigo do fornecedor |
| item_id | Numero | Auto | ID sequencial por conta |
Categorizacao
| Campo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| stock_category_id | Referencia | Sim | Categoria de estoque |
| stock_subcategory_id | Referencia | Nao | Subcategoria |
| manufacturer_id | Referencia | Nao | Fabricante/Marca |
| provider_id | Referencia | Nao | Fornecedor principal |
| pet_species | Array | Nao | Especies compativeis |
| pet_sizes | Array | Nao | Portes compativeis |
| stock_tags | Array | Nao | Tags para busca |
Caracteristicas Fisicas
| Campo | Tipo | Descricao |
|---|---|---|
| weight | Decimal | Peso em kg |
| cubic_weight | Decimal | Peso cubico |
| height | Decimal | Altura em cm |
| width | Decimal | Largura em cm |
| length | Decimal | Comprimento em cm |
| pack_id | Referencia | Unidade de embalagem |
Conteudo
| Campo | Tipo | Descricao |
|---|---|---|
| description | HTML | Descricao completa |
| short_description | HTML | Descricao curta |
| specs | HTML | Especificacoes tecnicas |
| photos | Array | Fotos do produto |
Opcoes
| Campo | Tipo | Descricao |
|---|---|---|
| fractional_sale | Booleano | Permite venda fracionada |
| similar_products | Array | Produtos similares |
| complementary_products | Array | Produtos complementares |
Relacionamentos
Pertence a
| Entidade | Obrigatorio | Descricao |
|---|---|---|
| Account | Sim | Conta do petshop |
| StockCategory | Sim | Categoria |
| StockSubcategory | Nao | Subcategoria |
| Manufacturer | Nao | Fabricante |
| Provider | Nao | Fornecedor |
Possui (Embarcados)
| Entidade | Descricao |
|---|---|
| SalePrices | Precos por loja |
| SaleTaxes | Impostos por loja |
| SaleStocks | Estoque por loja |
SalePrice (Precos)
Dados
| Campo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| cost | Monetario | Sim | Custo de aquisicao |
| retail_price | Monetario | Sim | Preco de venda |
| wholesale_price | Monetario | Nao | Preco atacado |
| margin | Decimal | Calculado | Margem de lucro (%) |
| markup | Decimal | Calculado | Markup (%) |
Calculo de Margem
margin = ((retail_price - cost) / retail_price) * 100
Calculo de Markup
markup = ((retail_price - cost) / cost) * 100
Interatividade
Ao alterar um valor, outros sao recalculados:
| Alterou | Recalcula |
|---|---|
| cost | margin, markup |
| retail_price | margin, markup |
| margin | retail_price, markup |
| markup | retail_price, margin |
Precos Promocionais
Dados
| Campo | Tipo | Obrigatorio |
|---|---|---|
| min_date | Data | Sim |
| max_date | Data | Sim |
| final_price | Monetario | Sim |
Regras
- Validade: min_date ate hoje ate max_date (periodo valido)
- Apenas uma promocao ativa por vez
- Sistema usa preco promocional automaticamente
Exemplo
Preco normal: R$ 50,00
Promocao: R$ 39,90 (01/12 a 31/12)
No periodo: cliente paga R$ 39,90
Descontos Progressivos
Dados
| Campo | Tipo | Descricao |
|---|---|---|
| min_quantity | Decimal | Quantidade minima |
| max_quantity | Decimal | Quantidade maxima |
| final_price | Monetario | Preco nesta faixa |
Exemplo
1-5 unidades: R$ 50,00
6-10 unidades: R$ 45,00
11+ unidades: R$ 40,00
SaleTax (Impostos)
Dados
| Campo | Tipo | Descricao |
|---|---|---|
| tax_cst | Referencia | CST ICMS (regime normal) |
| tax_csosn | Referencia | CSOSN (Simples Nacional) |
| ncm | Texto | NCM (8 digitos) |
| cest | Texto | CEST |
| tax_law | Referencia | Lei do ICMS |
| tax_pis_cofins_aliquot | Referencia | Aliquotas PIS/COFINS |
Regimes Tributarios
| Regime | Campo Usado |
|---|---|
| Normal | tax_cst |
| Simples Nacional | tax_csosn |
Obrigatoriedade
| Campo | Regra |
|---|---|
| ncm | Sempre obrigatorio |
| tax_cst | Se regime normal |
| tax_csosn | Se Simples Nacional |
| cest | Se CST exige (cest_required) |
SaleStock (Estoque)
Dados
| Campo | Tipo | Descricao |
|---|---|---|
| stock | Decimal | Quantidade atual |
| min_stock | Decimal | Estoque minimo |
| validity_control | Booleano | Controle de validade |
Estoque Total
produto.stock = soma de todos SaleStock do produto
Alerta de Estoque Baixo
Se stock <= min_stock: alerta
Controle de Lotes (Batches)
Quando Habilitado
Se validity_control = true, cada lote tem:
| Campo | Tipo | Descricao |
|---|---|---|
| batch | Texto | Identificador do lote |
| quantity | Decimal | Quantidade total |
| current_quantity | Decimal | Quantidade disponivel |
| sold_quantity | Decimal | Quantidade vendida |
| validity_date | Data | Data de validade |
Calculo
available_quantity = quantity - sold_quantity
Validacao
soma(lotes.quantity) <= stock
Movimentacoes de Estoque
Tipos
| Tipo | Descricao | Efeito |
|---|---|---|
| entry | Entrada | +stock |
| exit | Saida | -stock |
| inventory | Inventario | Ajuste |
| transfer | Transferencia | Move entre depositos |
StockTransaction
Cada movimentacao registra:
| Campo | Descricao |
|---|---|
| quantity | Quantidade |
| signal_quantity | Quantidade com sinal |
| new_unit_cost | Custo unitario |
| average_cost | Custo medio resultante |
Custo Medio
Calculo
custo_medio = (estoque_atual * custo_antigo + nova_qtd * novo_custo) / estoque_total
Exemplo
Tinha: 100 un x R$ 10 = R$ 1.000
Entrou: 50 un x R$ 12 = R$ 600
Total: 150 un
Custo medio: R$ 1.600 / 150 = R$ 10,67
Multi-Loja
Estrutura
Cada produto tem dados por loja:
Produto: Racao Premium
- Loja Centro: preco R$ 50, estoque 100
- Loja Sul: preco R$ 48, estoque 80
- Loja Norte: preco R$ 52, estoque 50
Replicacao
Opcao de replicar precos/impostos para todas as lojas:
| Flag | Efeito |
|---|---|
| replicate_prices | Copia precos para todas as lojas |
| replicate_taxes | Copia impostos para todas as lojas |
Validacoes
| Campo | Regra |
|---|---|
| name | Obrigatorio |
| barcodes | Obrigatorio, 8-14 digitos, unico na conta |
| provider_reference | Unico na conta (se informado) |
| stock_category_id | Obrigatorio |
Escopos de Busca
| Filtro | Descricao |
|---|---|
| search | Nome, codigo de barras, NCM, referencia |
| manufacturer | Por fabricante |
| stock_category | Por categoria |
| stock_subcategory | Por subcategoria |
| pet_specie_ids | Por especie |
Integracao com PDV
Busca por Codigo de Barras
- Usuario digita codigo
- Sistema busca produto
- Adiciona ao carrinho com quantidade informada
Preco Aplicado
Ordem de prioridade:
- Preco promocional (se ativo)
- Desconto progressivo (se quantidade aplicavel)
- Preco de varejo
Permissoes
| Acao | Descricao |
|---|---|
| Criar | Cadastrar novo produto |
| Editar | Alterar dados do produto |
| Excluir | Remover produto |
| Ver estoque | Visualizar estoque |
| Ajustar estoque | Fazer entradas/saidas |
| Alterar precos | Modificar precos |
| Alterar impostos | Configurar impostos |