...
- Integração de pedidos.
- Integração de pedidos.
- Requisição Webhook.
...
1. Integração de pedidos
São disponibilizadas algumas APIs que permitem a integração de pedidos realizados pela plataforma Delivery App. Todas as APIs retornam os dados em formato JSON.
...
1.1.4 Alterar status do pedido
1.1 API de pedidos
1.1.1 Listagem de pedidos POST::/v1/order
O PDV deverá criar uma rotina de consulta na API de listagem de pedidos, fazendo consultas em torno de 60 segundos (recomendado não usar um tempo menor). Será retornada uma lista de pedidos, que deve ser percorrida, usando o ID no próximo passo:
...
- id (integer): id do pedido
- name (string): nome do cliente
- email (string): email do cliente
- phone (string): telefone do cliente
- date (string): data do pedido
- updated_at (string): data de modificação do pedido
- status (integer): 0 = Novo Pedido, 1 = Confirmado, 2 = Entregue, 3 = Cancelado (restaurante), 4 = Enviado, 5 = Cancelado Automaticamente (sistema), 6 = Cancelado, com Pagamento Estornado (restaurante), 7 = Cancelado Automaticamente, com Pagamento Estornado (sistema), 8 = Aguardando aprovação do pagamento online, 9 = Pagamento online reprovado
- tax (decimal): valor da taxa de entrega do pedido
- voucher_code (string): Código do voucher usado
- voucher_discount (decimal): Desconto aplicado ao pedido através do uso do voucher (cupom de desconto)
- payment_method (string): forma de pagamento
- notes (string): observações do pedido
- street (string): rua para entrega
- cep (string): CEP para entrega
- number (string): número para entrega
- city (string): cidade para entrega
- neighborhood (string): bairro para entrega
- complement (string): complemento do endereço para entrega
- reference_point (string): ponto de referência do endereço para entrega
- forma_entrega (integer): forma de entrega do pedido (1 = delivery, 2 = retirar no balcão, 3 = pedir na mesa)
- table_name (string): quando forma_entrega for 3, será retornado o nome da mesa.
- order_number (integer): número do pedido
- troco (decimal): troco para (valor que o cliente irá dar em dinheiro)
- client_id (integer): id do cliente
- payment_online (boolean): se true o pagamento foi feito online pelo app ou web
- latitude (decimal): latitude do endereço de entrega
- longitude (decimal): longitude do endereço de entrega
- cpf_in_note (string): se possuir algum valor indica que o usuário solicitou CPF na nota
- printed (boolean): se comanda do pedido foi impressa
- total_discount (decimal): total de desconto que o pedido recebeu
- taxa_extra (decimal): valor da taxa extra
- taxa_extra_title (string): título do que foi cobrado como taxa extra
- sub_total (decimal): sub total do pedido (total dos produtos comprados)
- total (decimal): total do pedido, valor que cliente pagou (já incluindo taxa de entrega, taxas e descontos)
1.1.2 Listagem de detalhes do pedido POST::/v1/order/{order_id}
É nessa API que o PDV irá integrar os produtos vendidos. A consulta na API de detalhes do pedido retornará todos os detalhes da venda, bem como os produtos vendidos.
...
- Products (Array)
- id (integer): id do produto
- type (string): tipo do item. Pode retornar ‘item’ ou ‘pizza’.
- name (string): nome do produto
- calculation (integer):
- quantity (integer): sempre será 1
- subtotal (decimal): subtotal dos produtos
- Options (Array): as opções são os itens/pizzas em si comprados
- id (integer): id da opção
- title (string): titulo da opção
- price_un (decimal): preço unitário
- quantity (integer): quantidade
- subtotal (decimal): subtotal da opção
- ComplementCategories (Array)
- id (integer): id da categoria de complemento
- title (string): título da categoria de complementos
- Complements (Array)
- id (integer): id do complemento
- title (string): título do complemento
- price_un (decimal): preço do unitário
- quantity (integer): quantidade
- ref (string): código REF de integração
- subtotal (decimal): subtotal do complemento
1.1.3 Formas de Pagamento
Clique aqui para ir ao teste e poderá verificar a api de POST
...
{ "code": 200, "name": "Success", "payment_methods": [ "Dinheiro", "Débito Mastercard", "Débito Visa", "Elo", "Crédito Hipercard" ], "payment_options": [ { "name": "Dinheiro", "ref": "106" }, { "name": "Débito Mastercard", "ref": "100" }, { "name": "Débito Visa", "ref": "101" }, { "name": "Débito Elo", "ref": "105" } ] } |
1.1.4 Alterar status do pedido
É importante o PDV notificar a API Delivery quando houver alguma mudança de status (confirmação do pedido, saiu para entrega, entregue e/ou pronto), e principalmente se houver cancelamento. Pois a API Delivery irá notificar o consumidor via email e push notification, essa notificação é feita através da API de alteração de status.
...
2.1. Integração de cardápio
São disponibilizadas algumas APIs que permitem a integração de cardápio com a plataforma Delivery App, permitindo que o PDV consulte e cadastre produtos, pizzas e categorias e altere sua disponibilidade.
2.1.1 API de produtos
A API de cardápio permite a atualização de itens do cardápio, podendo alterar o título e a disponibilidade, e permite também a atualização das variações dos itens, permitindo alterar preço, título e disponibilidade. Permite também cadastro de Categorias e Pizzas.
2.1.1.1 Cadastro de categoria
Clique aqui para ir ao teste e poderá verificar a api de POST
...
O retorno “code”:201 significa que a categoria foi cadastrada com sucesso. O ID é o ID interno da categoria no Delivery App.
2.1.2 Atualização de categoria
Clique aqui para ir ao teste e poderá verificar a api PUT.
...
Cada categoria tem seu retorno individual, quando atualizada com sucesso será retornado updated: true.
2.1.3 Atualização de item
Clique aqui para ir ao teste e poderá verificar a api PUT.
...
O retorno informa individualmente se o item foi atualizado ou não, se updated = true, o item foi atualizado com sucesso, se falso, não foi possível atualizar e o message deverá conter o motivo de não ter atualizado.
2.1.4 Atualização de variação
Clique aqui para ir ao teste e poderá verificar a api PUT.
...
O retorno informa individualmente se a variação foi atualizado ou não, se updated = true, a variação foi atualizado com sucesso, se falso, não foi possível atualizar e o message deverá conter o motivo de não ter atualizado.
2.1.5 Cadastro de item
Clique aqui para ir ao teste e poderá verificar a api POST.
...
O retorno informa se o item foi cadastrado com "message: Item cadastrado com sucesso".
2.1.6 Cadastro de variações de item
Clique aqui para ir ao teste e poderá verificar a api POST.
...
O retorno informa se o item foi cadastrado com "message: Variação cadastrado com sucesso".
2.1.7 Cadastro de complementos global
Clique aqui para verificar a api POST.
...
{ "code": 200, "name": "Success", "Results": [ { "ref": "222222", "inserted": true }, { "ref": "333333", "inserted": false, "message": "Erro de cadastro de complemento", "Errors": [ "Título não pode ficar em branco", "Título não pode ficar em branco" ]} ] } |
2.1.7.1 Cadastro Categoria de complementos e grupos de complementos
Clique aqui para verificar a api POST.
...
{ "code": 200, "name": "Success", "Results": [ { "ref": "111111", "inserted": true }, { "ref": "222222", "inserted": false, "message": "parâmetro Complements não encontrado ou vazio", "Errors": [ "parâmetro Complements não encontrado ou vazio" ] } ] } |
2.1.7.2 Vincular Grupos de Complementos ao Item
Clique aqui para verificar a api POST.
...
{ "code": 200, "name": "Success", "Results": [ { "ref": "8804505", "inserted": true }, { "ref": "1505", "inserted": false, "message": "Item não encontrado", "Errors": [ "Item não encontrado" ] }, { "ref": "8804505", "inserted": false, "message": "Grupos de complemento não encontrado", "Errors": [ "Grupos de complemento não encontrado" ]} ] } |
2.1.8 Cadastro de complementos padrão
Clique aqui para ir ao teste e poderá verificar a api POST.
...
O retorno informa se o item foi cadastrado com "message: Complemento cadastrado".
2.1.9 Cadastro de sabor de pizza
Clique aqui para ir ao teste e poderá verificar a api POST.
...
O retorno informa se o item foi cadastrado com "message: Sabor cadastrado".
2.1.10 Cadastro de categoria de sabor de pizza
Clique aqui para ir ao teste e poderá verificar a api POST.
...
O retorno informa individualmente se o item foi atualizado ou não, se inserted = true, o item foi atualizado com sucesso, se falso, não foi possível atualizar e o message deverá conter o motivo de não ter atualizado.
2.1.11 Cadastro de tamanho de pizza
Clique aqui para ir ao teste e poderá verificar a api POST.
...
O retorno informa individualmente se o item foi atualizado ou não, se inserted = true, o item foi atualizado com sucesso, se falso, não foi possível atualizar e o message deverá conter o motivo de não ter atualizado.
2.1.12 Cadastro de categoria de tamanho de pizza
Clique aqui para ir ao teste e poderá verificar a api POST.
...
O retorno informa individualmente se o item foi atualizado ou não, se inserted = true, o item foi atualizado com sucesso, se falso, não foi possível atualizar e o message deverá conter o motivo de não ter atualizado.
2. Requisição Webhook
A empresa que desejar dar suporte a comunicação através do recurso de webhook da Neemo deverá implementar uma rota na sua aplicação que receberá uma requisição HTTP POST, essa rota (URL) deverá então ser cadastrada no sistema da Neemo onde poderá ser associada às lojas.
...