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
}
]
}
