Este hook é ativado sempre que um item do pedido é cancelado ou quando um pedido é transferido. Seu propósito é informar de forma automática sobre a indisponibilidade dos produtos (skus) afetados.
Método
POST
Parâmetros de rota suportados
Campo | Tipo | Descrição |
---|---|---|
identificador da loja | string | string identificadora da loja à qual o pedido com o SKU cancelado pertence |
número do pedido | string | identificador do pedido ao qual o SKU cancelado pertence |
Ou seja, um endpoint poderia ter o caminho https://domain.com/stores/{code}/orders/{number}/sku/unavailability
, e na hora do envio o request ser feito para https://domain.com/stores/acme-01/orders/12345-01/sku/unavailability
.
Alguns outros exemplos válidos:
Só com identificador da loja: https://domain.com/stores/{code}/sku/unavailability
Só com número do pedido: https://domain.com/orders/{number}/sku/unavailability
Sem parâmetros: https://domain.com/sku/unavailability
Headers
Qualquer header com valor fixo pode ser configurado
Corpo
Campo | Tipo | Descrição |
---|---|---|
storeCode | string | string identificadora da loja à qual o pedido com o SKU cancelado pertence |
orderNumber | string | identificador do pedido ao qual o SKU cancelado pertence |
product | object | objeto que agrupa alguns dados sobre o produto cancelado |
product.name | string | nome |
product.key | string | identificador único. Pode ser o SKU, mas não necessariamente. |
product.sku | string | código SKU (Stock Keeping Unit) |
orderItems | array | lista com os itens do pedido por product.key. Tem no mínimo um item. Pode ter mais de um item caso múltiplos itens (linhas) do pedido estejam indisponiveis |
orderItems[].expectedAmount | number | quantidade esperada |
orderItems[].missingAmount | number | quantidade faltante |
orderItems[].cancellation | object | objeto com informações sobre cancelamento, caso o item tenha sido cancelado |
orderItems[].cancellation.cancelledAt | string | timestamp em UTC que representa o momento em que o item do pedido foi cancelado |
orderItems[].cancellation.author | object | objeto que agrupa alguns dados da pessoa que realizou o cancelamento do item do pedido |
orderItems[].cancellation.author.name | string | nome do usuário |
orderItems[].cancellation.author.username | string | nome de usuário usado para acessar o sistema (login) |
orderItems[].cancellation.reason | object | objeto que agrupa alguns dados sobre o motivo de cancelamento do item de pedido |
orderItems[].cancellation.reason.code | string | código de identificação do motivo de cancelamento. Os valores possíveis são: NoReplacementsFound, NoAlternativesAccepted, OutOfStock, Damaged, Overdue, Seasonal, ExternalSystem, Other |
orderItems[].cancellation.reason.text | string | justificativa textual escrita pela pessoa que cancelou o pedido. Nem sempre será enviada |
Informações sobre cancelamento
As informações sobre o cancelamento não serão enviadas no corpo da requisição quando o gatilho para este hook for uma transferência de pedido para outra loja, pois neste caso, nenhum item do pedido foi cancelado.
Exemplo do corpo da requisição que será enviado quando o item foi cancelado
{
"storeCode": "acme-01",
"orderNumber": "12345-01",
"product": {
"name": "Cadeira de plástico",
"key": "123",
"sku": "123"
},
"orderItems":[
{
"expectedAmount":3.0,
"missingAmount":3.0,
"cancellation":{
"cancelledAt":"2022-04-11T15:23:000Z",
"author":{
"name":"John Doe",
"username":"john.doe"
},
"reason":{
"code":"OutOfStock",
"text":"Voluptatum eius vero hic voluptatem voluptas."
}
}
}
]
}
Exemplo do corpo da requisição que será enviado quando o item pertence a um pedido que foi transferido
{
"storeCode": "acme-01",
"orderNumber": "12345-01",
"product": {
"name": "Cadeira de plástico",
"key": "123",
"sku": "123"
},
"orderItems":[
{
"expectedAmount":3.0,
"missingAmount":3.0
}
]
}