Pular para o conteúdo principal

CartItem (Item do Carrinho)

O CartItem representa um item individual dentro de uma venda, podendo ser produto, servico ou pacote.

Descricao

Cada cart item e uma linha na venda, contendo quantidade, preco, desconto e referencias ao item vendido (produto, servico ou pacote). O cart item tambem armazena informacoes de impostos apos a emissao da nota fiscal.

Dados

Informacoes Basicas

CampoTipoObrigatorioDescricao
nameTextoAutoNome do item (copiado do SaleItem)
quantityDecimalSimQuantidade vendida
unit_priceMonetarioSimPreco unitario
discountDecimalNaoDesconto em percentual (0-100)
totalMonetarioCalculadoQuantidade x Preco - Desconto
statusSelecaoAutoSincronizado com status da venda

Informacoes Fiscais

CampoTipoDescricao
tax_calculation_base_valueMonetarioBase de calculo dos impostos
icms_cstTextoCST do ICMS
icms_aliquotDecimalAliquota do ICMS
icms_valueMonetarioValor do ICMS
pis_cstTextoCST do PIS
pis_aliquotDecimalAliquota do PIS
pis_valueMonetarioValor do PIS
pis_unity_aliquotDecimalAliquota unitaria PIS
cofins_cstTextoCST do COFINS
cofins_aliquotDecimalAliquota do COFINS
cofins_valueMonetarioValor do COFINS
cofins_unity_aliquotDecimalAliquota unitaria COFINS

Flags de Comportamento

CampoTipoDescricao
ignore_pdv_discountsBooleanoSe ignora descontos do PDV
request_petBooleanoSe requer vinculo com pet
is_deliveryBooleanoSe e item de entrega

Relacionamentos

Pertence a

EntidadeObrigatorioDescricao
SaleSimVenda pai
AccountSimConta do petshop
StoreSimFilial
CustomerNaoCliente (herdado da venda)
PetCondicionalPet (obrigatorio se request_pet = true)
SaleItemSimProduto/Servico/Pacote vendido

Tipos de Item

SaleProduct (Produto)

  • Possui codigo de barras
  • Controle de estoque
  • Calculo de impostos completo (ICMS, PIS, COFINS)

SaleService (Servico)

  • Vinculado ao Beauty Center ou Clinica
  • Pode exigir pet
  • Gera agendamento ao ser pago

SalePackage (Pacote)

  • Contem multiplos servicos
  • Gera varios agendamentos ao ser pago
  • Pode ter validade

DeliveryItem (Entrega)

  • Representa taxa de entrega
  • Ou servico de taxidog (transporte de pet)

Calculo do Total

total = (quantity * unit_price) - desconto_calculado

desconto_calculado = (quantity * unit_price) * (discount / 100)

Regras de Desconto

  1. Se ignore_pdv_discounts = true: desconto sempre 0
  2. Se venda aplicar modo de desconto: item atualiza desconto
  3. Desconto individual pode ser alterado manualmente

Validacoes

Pet Obrigatorio

Quando request_pet = true:

  • Pet deve ser atribuido antes da venda mudar para "pending"
  • Erro: "Voce precisa vincular um pet aos itens [nome] antes de finalizar"

Estoque (se habilitado)

Quando pdv_settings.forbid_with_negative_stock = true:

  • Quantidade nao pode exceder estoque disponivel
  • Validado apenas para produtos

Sincronizacao de Status

O status do cart item sempre acompanha o status da venda:

Status da VendaStatus do CartItem
openopen
pendingpending
paidpaid
canceledcanceled
partially_canceledpaid (ou canceled individualmente)

Impostos

Quando Sao Preenchidos

Impostos sao preenchidos quando:

  1. Venda muda para status "paid"
  2. Nota fiscal e gerada com sucesso
  3. Sistema extrai dados do JSON da nota

Origem dos Dados

Acoes Disponiveis

AcaoCondicaoDescricao
Editar quantidadeStatus = "open"Alterar quantidade do item
Editar descontoStatus = "open"Alterar desconto individual
RemoverStatus = "open"Remover item da venda
Vincular petStatus = "open"Associar pet ao item
CancelarStatus = "paid"Cancelamento parcial

Cancelamento de Item

Ao cancelar um item individualmente:

  1. Venda muda para "partially_canceled" (se primeira vez)
  2. Total da venda e recalculado
  3. Valor cancelado e registrado
  4. Cliente tem valores recalculados

Integracao com Estoque

Ao Pagar

Para produtos, o estoque e baixado:

  • Cria StockTransaction tipo "exit"
  • Quantidade = quantity do cart item
  • Status = "done"

Ao Cancelar

Estoque e devolvido:

  • Cria StockTransaction tipo "entry"
  • Quantidade = quantity cancelada