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

CampoTipoDescrição
identificador da lojastringstring identificadora da loja à qual o pedido com o SKU cancelado pertence
número do pedidostringidentificador 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

CampoTipoDescrição
storeCodestringstring identificadora da loja à qual o pedido com o SKU cancelado pertence
orderNumberstringidentificador do pedido ao qual o SKU cancelado pertence
productobjectobjeto que agrupa alguns dados sobre o produto cancelado
product.namestringnome
product.keystringidentificador único. Pode ser o SKU, mas não necessariamente.
product.skustringcódigo SKU (Stock Keeping Unit)
orderItemsarraylista 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[].expectedAmountnumberquantidade esperada
orderItems[].missingAmountnumberquantidade faltante
orderItems[].cancellationobjectobjeto com informações sobre cancelamento, caso o item tenha sido cancelado
orderItems[].cancellation.cancelledAtstringtimestamp em UTC que representa o momento em que o item do pedido foi cancelado
orderItems[].cancellation.authorobjectobjeto que agrupa alguns dados da pessoa que realizou o cancelamento do item do pedido
orderItems[].cancellation.author.namestringnome do usuário
orderItems[].cancellation.author.usernamestringnome de usuário usado para acessar o sistema (login)
orderItems[].cancellation.reasonobjectobjeto que agrupa alguns dados sobre o motivo de cancelamento do item de pedido
orderItems[].cancellation.reason.codestringcó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.textstringjustificativa 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
      }
    ]
}