Novo evento de alteração de pedidos
Novo evento pode ser gerado quando ocorre cancelamento parcial (alguns itens) de um pedido
Quando um cliente faz um pedido no iFood, seja uma refeição ou produtos de mercado, esperamos que tudo ocorra bem e o pedido chegue conforme planejado. Mas existe a possibilidade de algo não sair como desejado, como a falta de um ingrediente necessário para o preparo do seu prato ou falta de um item do pedido. Além disso, é possível que a loja se esqueça de enviar algum item. Nesses cenários, pode ser necessário alterar um pedido antes dele ser entregue ou até mesmo após a entrega.
Quando isso acontecer será disponibilizado um novo evento (ORDER_PATCHED) através do endpoint de polling (módulo pedidos), indicando que houve alguma alteração em um pedido.
Cenários onde é permitida uma alteração de pedido
Com o novo evento, um pedido poderá ser alterado nos seguintes cenários:
- Se o pedido foi entregue incompleto
- Se o item estava inapropriado para consumo
- Se o item estava errado
- Se o item estava revirado
Note que os cenários descritos acima são todos após a conclusão do pedido.
Futuramente, é possível que existam cenários de alteração antes da conclusão do pedido, seja para substituir ou adicionar um item.
Tipos de alteração possíveis
Existem 2 tipos mais comuns de alteração de um pedido.
Alteração de Item
Ocorre quando há alguma alteração na quantidade ou unidade de medida (g, kg, ml, L) de algum item do pedido.
Exemplo: alteração de item de hortifruti, carnes e frios, cujo valor final depende do peso.
Exclusão de Item
Ocorre quando um item é removido do pedido. Isso pode acontecer quando o pedido é entregue faltando algum item.
Exemplo: quando a loja esquece de enviar o refrigerante. Nesse cenário, o cliente pode entrar em contato com o time de atendimento do iFood que pode então registrar a exclusão do item.
Além desses dois tipos, pode ser possível outros tipos de alteração (atualmente somente disponível para mercado).
Substituição de Item
Pode acontecer quando um item do pedido está em falta e precisa ser substituído por outro.
Exemplo: substituir um refrigerante de um sabor em falta por outro sabor disponível.
Adição de Item
Esse tipo de alteração pode acontecer em compras de mercado quando por exemplo a loja não tem a quantidade de itens de um produto do pedido e pode adicionar um produto similar.
Exemplo: o cliente pediu 4 detergentes de uma marca mas a loja só tem 3 dessa marca em estoque. Ela pode então adicionar 1 quarto item de outra marca.
Exemplos de formato dos eventos
Alteração de item
{
"id": "d585214c-b95a-4c4d-9d05-16f7d8f99999",
"code": "OPA",
"fullcode": "ORDER_PATCHED",
"orderId": "169e6c99-93e9-43b2-981a-498817088888",
"merchantId": "169e6c99-93e9-43b2-981a-498817088888",
"createdAt": "2020-01-01T00:00:00.000Z",
"metadata": {
"changes": [
{
"changeType": "EDIT_ITEMS",
"items": [
{
"id": "3dc09021-be6b-4be6-92a1-15a07b464141",
"uniqueId": "3dc09021-be6b-4be6-92a1-15a07b464141", "externalCode": "123",
"changes": {
"optionsChanges": [
{
"changeType": "ADD_OPTIONS",
"options": [
{
"id": "d585214c-b95a-4c4d-9d05-16f7d8f99999",
"externalCode": "1234567",
"quantity": 1,
"unitPrice": 2
}
]
},
{
"changeType": "EDIT_OPTIONS",
"options": [
{
"id": "d585214c-b95a-4c4d-9d05-16f7d8f98799",
"quantity": {
"from": 2,
"to": 1
},
"unitPrice": 7
}
]
},
{
"changeType": "DELETE_OPTIONS",
"options": [
{
"id": "d585214c-b95a-4c4d-9d05-16f7d8f98789"
}
]
}
],
"quantity": {
"from": "1",
"to": "800"
},
"unit": {
"from": "KG",
"to": "g"
}
},
"unitPrice": 20,
"optionsPrice": {
"from": 8.5,
"to": 2
},
"totalPrice": {
"from": 28.5,
"to": 22
}
}
]
}
],
"total": {
"subtotal": {
"from": 28.5,
"to": 22
}
},
"payments": {
"methods": [
{
"value": 22,
"currency": "BRL",
"type": "ONLINE",
"method": "CREDIT / DEBIT / MEAL_VOUCHER / FOOD_VOUCHER",
"card": {
"brand": "Nome da Bandeira"
}
}
]
}
}
}
Exclusão de item
{
"id": "d585214c-b95a-4c4d-9d05-16f7d8f99999",
"code": "OPA",
"fullcode": "ORDER_PATCHED",
"orderId": "169e6c99-93e9-43b2-981a-498817088888",
"merchantId": "169e6c99-93e9-43b2-981a-498817088888",
"createdAt": "2020-01-01T00:00:00.000Z",
"metadata": {
"changes": [
{
"changeType": "DELETE_ITEMS",
"items": [
{
"id": "d585214c-b95a-4c4d-9d05-16f7d8f99999",
"uniqueId": "3dc09021-be6b-4be6-92a1-15a07b464141",
"externalCode": "123"
}
]
}
],
"total": {
"subtotal": {
"from": 100,
"to": 80
}
},
"payments": {
"methods": [
{
"value": 20,
"currency": "BRL",
"type": "ONLINE",
"method": "CREDIT / DEBIT / MEAL_VOUCHER / FOOD_VOUCHER",
"card": {
"brand": "Nome da Bandeira"
}
}
]
}
}
}
Substituição de item
{
"id": "d585214c-b95a-4c4d-9d05-16f7d8f99999",
"code": "OPA",
"fullcode": "ORDER_PATCHED",
"orderId": "169e6c99-93e9-43b2-981a-498817088888",
"merchantId": "169e6c99-93e9-43b2-981a-498817088888",
"createdAt": "2020-01-01T00:00:00.000Z",
"metadata": {
"changes": [
{
"changeType": "DELETE_ITEMS",
...
},
{
"changeType": "ADD_ITEMS",
...
}
],
"total": {
"subtotal": {
"from": 100,
"to": 80
}
},
"payments": {
"methods": [
{
"value": 20,
"currency": "BRL",
"type": "ONLINE",
"method": "CREDIT / DEBIT / MEAL_VOUCHER / FOOD_VOUCHER",
"card": {
"brand": "Nome da Bandeira"
}
}
]
}
}
}
Adição de item
{
"id": "d585214c-b95a-4c4d-9d05-16f7d8f99999",
"code": "OPA",
"fullcode": "ORDER_PATCHED",
"orderId": "169e6c99-93e9-43b2-981a-498817088888",
"merchantId": "169e6c99-93e9-43b2-981a-498817088888",
"createdAt": "2020-01-01T00:00:00.000Z",
"metadata": {
"changes": [
{
"changeType": "ADD_ITEMS",
"items": [
{
"id": "169e6c99-93e9-43b2-981a-498817088888",
"uniqueId": "3dc09021-be6b-4be6-92a1-15a07b464141",
"externalCode": "123",
"options": [
{
"id": "3dc09021-be6b-4be6-92a1-15a07b464141",
"quantity": 1,
"externalCode": "123",
"unitPrice": 7.5
}
],
"unitPrice": 20,
"optionsPrice": 7.5,
"totalPrice": 27.5
}
]
}
],
"total": {
"subtotal": {
"from": 20,
"to": 27.5
}
},
"payments": {
"methods": [
{
"value": 27.5,
"currency": "BRL",
"type": "ONLINE",
"method": "CREDIT / DEBIT / MEAL_VOUCHER / FOOD_VOUCHER",
"card": {
"brand": "Nome da Bandeira"
}
}
]
}
}
}
A importância do tratamento do evento
As alterações podem gerar impactos no faturamento (valores a receber do iFood) e também nos relatórios de vendas/conciliação.
O tratamento desse novo evento vai garantir que não haverá divergências tanto na conciliação como nos valores dos repasses a serem recebidos do iFood.
Por isso é muito importante que o aplicativo (PDV) seja capaz de tratar esse novo evento e atualizar o valor final dos pedidos e informações de pagamento.