Developers

Estrutura e saldo por endereço

Depósitos, endereços e motivos do WMS, e o saldo detalhado por endereço, lote e validade.

Depósitos

GET/wms/storage-locations

Cada loja tem um ou mais depósitos no WMS (estoque da loja, depósito, avaria). O code é o que as movimentações usam em storage_location. O erp_code é o código do mesmo depósito no seu ERP, quando ele existe lá.

type.counts_as_available: false marca depósito cujo saldo não é vendável (avaria, trânsito). Esse saldo entra em quantity_total, mas não em quantity_available, no GET/wms/stock-balances.

Endereços

GET/wms/bins

O endereço é a posição física: rua (aisle), prédio (bay), nível (level) e apartamento (position), dentro de uma zona. O code é o que as movimentações usam em bin.

zone.usage Zona
sales_floor Área de venda
backroom Retaguarda
reserve Pulmão
picking Picking
dock Doca
staging A endereçar: todo depósito tem uma, com o endereço ENDERECAR

Endereço com blocked_putaway não recebe entrada; com blocked_removal, não aceita saída.

Motivos

GET/wms/reasons

Toda entrada e saída leva um motivo (reason), cadastrado no BIX pelo cliente: COMPRA, DEVOLUCAO, TRANSF, AVARIA, CONSUMO... types diz para quais tipos o motivo vale (vazio vale para todos). A venda usa o motivo do sistema VENDA sozinha.

Saldo por endereço

GET/wms/bin-stocks

O detalhe do saldo: cada linha é um endereço + produto + lote + validade + situação.

{
  "store": {"id": 12, "code": "0012", "name": "Loja Centro"},
  "storage_location": "01",
  "bin": "05-003-02",
  "product": {"id": 345, "internal_code": "1001", "ean": "7891234567890",
              "description": "ARROZ TIPO 1 5KG", "unit": "UN"},
  "batch": "L2611",
  "expiry_date": "2027-03-31",
  "stock_status": "available",
  "quantity": 24.0
}

Para o total por loja, use GET/wms/stock-balances, que já soma tudo isso.