Endpoint responsável por criar um checkout, ou adicionar itens a um checkout existente. Também é capaz de criar pedido, ondas e armazenagens (ambas já concluídas) caso necessário.
Atenção
O corpo da requisição indicado abaixo é o padrão desejado pelo Nexp. No entanto, caso necessário é possível enviar um corpo customizado.
Identificadores
Abaixo estão definidos os campos que o Nexp usa para identificar os "elementos" envolvidos na criação do checkout. Quando um elemento não for encontrado, por exemplo, isso significa que os valores dos campos de identificação não batem com nenhum valor na base do Nexp.
- Loja: campo
$.store
; - Pedido: loja + campo
$.orderNumber
; - Item de pedido: pedido + campo
$.items[].orderItemId
(o código do item de pedido na base
do Nexp vem do campo$.items[].itemId
no payload de pedido); - Depósito do item de pedido: loja + campo
$.items[].storageName
; - Número do checkout: campo
$.externalNumber
; - Número do item de checkout: checkout + campo
$.items[].itemNumber
.
Regras
- Caso o pedido não exista, o Nexp tentará criá-lo;
- Caso o pedido já exista, o Nexp tentará criar os eventuais itens que ainda não existem nesse pedido;
- Caso item de pedido já existente ainda não esteja separado, ele é separado com sucesso automaticamente;
- Uma onda é criada para cada grupo de itens de pedido de mesmo tipo (comum ou expresso) que ainda não estejam em onda. Nesse
caso, a onda criada e concluída com sucesso automaticamente; - Caso a armazenagem não exista para uma determinada combinação de pedido e onda, uma nova é criada e concluída automaticamente;
- Caso o checkout não exista, um novo é criado;
- Caso o checkout já exista mas hajam itens de checkout que ainda não existem, eles são criados e vinculados ao checkout existente.
Exemplo de payload de sucesso (200 OK)
Ver mais detalhes na seção de respostas. O valor do campo $.content.protocol
pode ser informado para a Logstore em caso de problemas, para que possamos identificar o request.
Formato do payload de erro
Toda validação que resulta em um erro é representada pela resposta com status 409 (Conflict), e o corpo da resposta é um JSON num formato padrão, conforme abaixo. Verifique as possibilidades na seção de resposta para os erros específicos.
{
"statusCode":409,
"content":{
"error":{
"code":"CodigoDeErroMacro",
"details":{
"errors":[
{
"code":1,
"params":[
{}
]
}
]
}
}
},
"hasError":true,
"data":null
}