Monitorando suas entregas e pedidos

Principais queries

Você consegue obter informações sobre suas entregas e pedidos usando as seguintes queries:

querydescriçãoreferência
allPackagesretorna todas os pacotes das últimas 10 horas
searchOrdersretorna todos os pedidos das últimas 10 horas que conformam a string de busca (uma busca vazia retornará todos os pedidos)
packageOrderretorna o pedido que contém a entrega passada no input
orderretorna o pedido requisitado
packageretorna o pacote requisitado

Monitorando um pedido (OrderNode)

O estado do pedido pode ser obtido com no nó status dentro do OrderNode. Para isso, você pode usar qualquer query que retorne esse tipo de nó. e.g.:

query {
    packageOrder(packageId: 80455) {
        status
    }
}
  • Após a criação do pedido, nós vamos tentar localizar o mensageiro mais próximo para realizar a entrega. Nesse momento o estado do pacote é allocating.
  • Quando o mensageiro é encontrado, o estado do pedido vai para accepted.
  • Quando o mensageiro chega no ponto de retirada, o estado muda para started.
  • Quando todos os pacotes de uma entrega são finalmente estregues para seus destinatários, o estado do pedido muda para finished.
  • Se nós não conseguirmos encontrar um mensageiro em 10 minutos, o estado do pedido muda para dropped. Nós não refazemos o pedido automaticamente, você precisa usar a chamada para refazer pedidos.
    Quando um pedido é cancelado: cancelled
  • Se ainda não tínhamos um mensageiro para aquela entrega, o pedido é cancelado sem cobrança.
  • Se um mensageiro já havia sido alocado, o pedido é cancelado com cobrança, significando que vamos cobrar o valor de corrida mínima naquele pedido.

Refazendo seu pedido (redoOrder)

Quando um pedido fica com o estado de dropped, é possível refazê-lo com a chamada redoOrder. Essa chamada recebe o id do pedido com falha na alocação.
Ela tem como parâmetro apenas o pk do pedido Refazer um pedido

e.g.

mutation {
    redoOrder(input: {id: 2}) {
        success
        order {
            id
            pk
            status
            packages {
                pk
                status
                statusCode
                statusCodeDisplay
            }
        }
    }
}

e obtenha como resposta:

{"data": {
    "redoOrder": {
      "success": true,
      "order": {
        "id": "T3JkZXJOb2RlOjM=",
        "pk": 3,
        "status": "allocating",
        "packages": [
          {
            "pk": 1,
            "status": "allocating",
            "statusCode": 1,
            "statusCodeDisplay": "Agendado"
          }
        ]
      }
    }
  }
}

Monitorando um Pacote (PackageNode)

Dentro do nó de pacote (PackageNode), temos alguns nós importantes:

descriçãoreferência
pka chave primária e identificação única de um pacote, não use o campo id
statusestado atual do pacote
statusCodecódigo do estado atual do pacote
statusCodeDisplaystring humana de acordo com o statusCode

Status possíveis de um pacote

statusdescrição
AllocatingA loggi está procurando um mensageiro para fazer a entrega
Going to pickupUm mensageiro foi encontrado e alocado e está indo para o ponto de retirada.
PickupO mensageiro alocado está no ponto de retirada.
Going to deliverO mensageiro saiu do ponto de retirada e está a caminho do ponto de entrega.
DeliverO mensageiro está no ponto de entrega, fazendo a mesma.
DeliveredO pacote foi entregue pelo mensageiro.
Failedum erro ocorreu durante a retirada ou entrega desse pacote, olhe a tabela abaixo para obter mais detalhes.

StatusCode possíveis de um pacote

statusCodestatusCodeDisplay
0Não disponível
1Agendado
2Entregue
3Retirado
4Indo retirar
5Em rota de entrega
7Indo para retorno
9Retornado para o cliente
11Recusado pelo destinatário
12Destinatário ausente
13Endereço errado
14Mercadoria avariada
15Pacote extraviado
16Falha
17Pacote cancelado
18Pacote muito grande
19Pacote não encontrado
20Roubo / Furto
23Entrega prejudicada
31Pacote não retirado