Pedido

Criando um pedido

Um pedido é feito ao confirmar um orçamento. Com o id do orçamento, faz-se uma requisição ao recurso de pedido:

POST https://staging.loggi.com/api/v1/pedidos/[ id do orçamento]/confirmar/

Você poderá usar um POST para a propriedade resource_uri, resultande da criação de um orçamento. Com o campo payment_method:

  • payment_method: ID inteiro identificando com qual método de pagamento devemos fechar o pedido. Ver Métodos de Pagamento para mais informações.

Exemplo da requisição:

{"payment_method":101}

No retorno, guarde o campo ‘id’ do objeto. Este campo lhe permitirá acompanhar o pedido.

Status de um pedido

Uma vez feito um pedido, ao armazenar seu ID, podemos fazer um request para os detalhes de um pedido:

GET https://staging.loggi.com/api/v1/pedidos-status/[id do pedido]/

Através deste recurso podemos saber:

  • Status:
    • allocating: Pedido em alocação, procurando um mensageiro para atendê-lo;
    • accepted: Pedido aceito, mensageiro a caminho;
    • started: Mensageiro já chegou ao menos no primeiro ponto;
    • finished: Pedido finalizado;
    • cancelled: Pedido cancelado, sem cobrança;
    • cancelledWithCharge: Pedido cancelado com cobrança.

Exemplo de retorno:

{
     "completion_eta":"2013-12-03T12:30:04",
     "driver":{
        "position":null
     },
     "id":15524,
     "progress":1,
     "status":"finished",
     "task":{
        "action":true,
        "waypoint":1
     },
     "waypoints":[
        {
           "arrived_at":"2013-12-03T12:13:33",
           "arrived_at_eta":null,
           "completed_at":"2013-12-03T12:18:31",
           "completed_at_eta":null,
           "current":false,
           "minutes_waiting":4.0,
           "minutes_waiting_overtime":-16.0
        },
        {
           "arrived_at":"2013-12-03T12:27:12",
           "arrived_at_eta":null,
           "completed_at":"2013-12-03T12:30:04",
           "completed_at_eta":null,
           "current":true,
           "minutes_waiting":2.0,
           "minutes_waiting_overtime":-18.0
        }
     ]
 }

Informação de um pedido

Após confirmado um pedido é possível obter as informações para apresentação do mesmo.

Endereço:

GET http://staging.loggi.com/api/v1/pedidos-info/[id do pedido]

Resposta:

{
    "accepted": 1408131253,
    "company": {
        "id": 3,
        "name": "Loggi Tecnologia"
    },
    "created": 1408131175,
    "customer_name": "Bruna Alvarenga",
    "distance": 3396,
    "driver": {
        "cnpj": "16890506000153",
        "first_name": "Renan",
        "full_name": "Renan Ribeiro",
        "id": 1909,
        "last_name": "Ribeiro",
        "location": null,
        "mobile": "11996147463",
        "photo_urls": {
            "default": {
                "width": 50,
                "height": 50,
            },
            "profile-edit-view": {
                "width": 100,
                "height": 100,
            },
            "profile-high-res": {
                "width": 200,
                "height": 200,
            }
        }
        "rating": 0
    },
    "finished": 1408132523,
    "id": 31644,
    "pricing": {
        "id": 35719,
        "resource_uri": "/api/v1/preco-calculado/35719/"
    },
    "started": 1408131253,
    "status": "finished",
    "transport_type": "2",
    "waypoints": [
        {
            "address_complement": "",
            "address_formatted": "Rua Nova Cidade, 382",
            "address_number": "382",
            "address_st": "Rua Nova Cidade",
            "arrived_at": 1408132438,
            "completed_at": 1408132487,
            "e_receipt": {
                "contact_id": null,
                "contact_name": "Bruna Alvarenga",
                "signature": "http://media.development.loggi.com:8081/orders/31644/a9685714bf0af12510f65e378c6627e0/wp-0-protocolo.png",
                "status": "Realizado com sucesso",
                "status_code": 2
            },
            "index": 0,
            "instructions": "Retirar envelope com Bruna.",
            "leg_distance": 3396
        },
        {
            "address_complement": "2\u00ba andar",
            "address_formatted": "Avenida Cidade Jardim, 400 - 2\u00ba andar",
            "address_number": "400",
            "address_st": "Avenida Cidade Jardim",
            "arrived_at": 1408132496,
            "completed_at": 1408132523,
            "e_receipt": {
                "contact_id": null,
                "contact_name": "Kelli Macedo",
                "signature": "http://media.development.loggi.com:8081/orders/31644/a9685714bf0af12510f65e378c6627e0/wp-1-protocolo.png",
                "status": "Realizado com sucesso",
                "status_code": 2
            },
            "index": 1,
            "instructions": "Entregar em m\u00e3os, para Kelli Macedo.",
            "leg_distance": 0
        }
    ]
}

Listagem

Você pode obter as informações sobre os pedidos que te pertencem de uma só vez:

GET https://staging.loggi.com/api/v1/pedidos-status/

Os pedidos podem ser retornados comm os seguites filtros, sendo necessário passar ao menos um dos itens contendo _id:

Campo Descrição Req
ids Lista de IDs  
statuses Lista de estados  
client_id ID do cliente chamador
company_id ID da compania
driver_id ID do motorista

Por exemplo, um pedido em execução pode ter como status allocating ou started. Para listar os pedidos em aberto da sua empresa:

GET https://staging.loggi.com/api/v1/pedidos-status/?company_id=4343&status=allocating,started

Cancelamento

Para efetuar o cancelamento do pedido, é necessário chamar o método cancelar na pk do pedido, conforme segue:

POST https://staging.loggi.com/api/v1/pedidos/[id]/cancelar/

É importante lembrar que, um pedido é cancelável apenas enquanto não foi alocado, isso é, enquanto nenhum mensageiro aceitou o pedido.

O retorno será o objeto pedido, com o campo status indicando cancelamento.