Expedição de pedidos
Quem despacha cada pedido (o seller ou a plataforma), o andamento da separação ao envio e as taxas cobradas quando a plataforma despacha.
Num marketplace, nem sempre quem vende é quem envia. A expedição (fulfillment) registra, para cada pedido ou sub-pedido, quem despacha (fulfilled_by): o próprio seller (lojista) ou o marketplace, com o estoque no armazém da plataforma. Também guarda o andamento da separação ao envio e o código de rastreio.
Quando o módulo fulfillment está ligado, a plataforma cria sozinha a expedição de cada pedido novo, uma por seller. As rotas desta seção servem a quem precisa corrigir isso à mão, andar o estado de uma expedição ou ver as taxas e os números gerais.
Como funciona
status | Significado | Pode ir para |
|---|---|---|
pending | Criada, ainda não separada. | picking, packed, shipped |
picking | Em separação. | packed, shipped |
packed | Embalada, pronta para sair. | shipped |
shipped | Despachada, com rastreio. | delivered, returned |
delivered | Entregue ao cliente. | returned |
returned | Devolvida. Estado final. | nenhum |
Cada passo grava o seu horário (picked_at, packed_at, shipped_at, delivered_at, returned_at).
Conceitos-chave
Quem despacha e a taxa do marketplace
Com fulfilled_by: "marketplace", a plataforma prepara e envia. Em troca, cobra do seller uma taxa igual ao subtotal do pedido multiplicado pela taxa de despacho do seller (em pontos-base: 500 = 5%). A taxa é um registro à parte, listado em Taxas e números. Se o seller não tem taxa configurada, nada é cobrado.
Expedição parcial
Uma expedição pode cobrir só parte dos itens de um pedido (items, is_partial). A criação por esta API não aceita itens: ela sempre cobre o pedido todo.
Pedido e expedição são coisas diferentes
A expedição é o controle de despacho. O status do pedido é outro e continua sendo mudado pela API de pedidos (Alterar o status). Não espere que enviar uma expedição mude o pedido.
Endpoints
| Método e caminho | Para quê | Página |
|---|---|---|
GET /api/v1/admin/fulfillments | Lista com filtros | Consultar |
GET /api/v1/admin/fulfillments/{id} | Lê uma | Consultar |
GET /api/v1/admin/fulfillments/stats | Números gerais | Consultar |
GET /api/v1/admin/fulfillments/fees | Taxas do marketplace | Consultar |
POST /api/v1/admin/fulfillments | Cria | Criar |
PUT /api/v1/admin/fulfillments/{id} | Altera rastreio, estado e notas | Alterar |
POST /api/v1/admin/fulfillments/{id}/ship | Marca como enviada | Enviar e entregar |
POST /api/v1/admin/fulfillments/{id}/deliver | Marca como entregue | Enviar e entregar |
Erros comuns
- Ler
/fulfillments/feessem filtro. Exigevendor_idoufulfillment_id; sem eles, 400. - Passar o estado como letra no
PUT. O corpo aceita só a palavra (shipped); a letra volta 400. - Pular etapas.
pendingnão vai direto adelivered;deliveredsó nasce deshipped. - Enviar sem rastreio. Funciona, mas o cliente não recebe o e-mail de envio.
- Mandar
itemsna criação esperando expedição parcial. O campo é ignorado nesta rota. - Achar que enviar muda o pedido. Mude o status do pedido pela API de pedidos.