Pular para o conteúdo principal

Finaliza (ou rascunha) o packing de um pedido

POST 

/fulfillment/packing/order/:idorder

Coração do fluxo de packing. Dois modos:

Modo Rascunho (Draft=1): apenas grava o body como rascunho temporário sob a chave PickingList:<IDPickingList> (TTL 4 dias). Não toca em banco. Retorna "sucesso". É chamado a cada bipagem pelo frontend para preservar o progresso do operador.

Modo Final (sem Draft): processa o packing completo:

  1. Conferência: compara Items enviados com StockKeepingUnitMovement do pedido. Em caso de divergência, falha com mensagem detalhada (itens não enviados / a maior / a menor). Aceita divergência apenas quando PartialInvoice=1 (com privilégio + parametrização habilitada).
  2. Faturamento parcial: quando há differenceSentLessQty, ajusta StockKeepingUnitMovement proporcionalmente, recalcula PriceSellingTotal e reescala Value. Se AutomaticTransferPartialInvoiceWarehousePacking configurado, transfere itens removidos para o endereço de Quarentena.
  3. Validação de série: para SKUs com SerialNumber=1, valida e amarra cada serial via StockKeepingUnitSerialNumber.
  4. Reconciliação de volumes: cria/apaga linhas em Packages para bater com QuantityPackages; salva dimensões dos volumes vindas em Volumes[].
  5. Embalagens: para cada item em Packages[], insere a linha de embalagem no pedido (com PriceSelling=0).
  6. NF-e: dispara a emissão da nota fiscal, a menos que NoInvoke=1.
  7. Transição de status: com transportadora + romaneio habilitado → status 6 + adiciona ao romaneio aberto. Com SetShippedAfterPacking=1 ou IDOrderStatusTo, dispara a mudança de status do pedido (geralmente para 7 Enviado). Caso contrário → status 22 (Aguardando romaneio).
  8. Picking-list status: marca como 5 (Concluído) quando todos os pedidos terminaram, ou 4 (Em packing) caso contrário.

Aplica debounce de 3s (MD5 do body) para evitar disparo duplicado pelo operador.

Retorna o detalhe atualizado do pedido.

Quando a parametrização Ignorar itens de serviço no faturamento (IgnoreServiceItemsOnInvoice) está habilitada, os itens cujo SKU é do tipo Serviço são desconsiderados da conferência — não precisam ser enviados em Items.

Request

Responses

Em modo Rascunho: literal "sucesso". Em modo Final: detalhe do pedido (resultado de OrderGet).