Atenção
Para não ter diferenças de preço entre a estimativa e a criação do pedido, é necessário passar os mesmos endereços nas duas requisições.
Requisição
Substitua as variáveis e use esta consulta:
query {
estimateCreateOrder(
pickups: [
{
address: {
address: "ENDERECO_COLETA"
complement: "COMPLEMENTO_COLETA"
}
instructions: "INSTRUCOES_COLETA"
}
]
packages: [
{
pickupIndex: 0
recipient: { name: "NOME_DESTINATARIO_1", phone: "FONE_DESTINATARIO_1" }
address: {
address: "ENDERECO_ENTREGA_1"
complement: "COMPLEMENTO_ENTREGA_1"
}
instructions: "INSTRUCOES_ENTREGA_1"
}
{
pickupIndex: 0
recipient: { name: "NOME_DESTINATARIO_2", phone: "FONE_DESTINATARIO_2" }
address: {
address: "ENDERECO_ENTREGA_2"
complement: "COMPLEMENTO_ENTREGA_2"
}
instructions: "INSTRUCOES_ENTREGA_2"
}
]
) {
totalEstimate {
totalCost
totalEta
totalDistance
}
packagesWithErrors {
originalIndex
error
resolvedAddress
}
}
}
Argumentos
Nome | Tipo | Descrição |
---|---|---|
pickups | Pickup | Ponto de coleta. |
packages | List(Package) | Lista de pontos de entrega. |
Pickup
Atenção
A API só aceita um único ponto de coleta.
Nome | Tipo | Descrição | Exemplo |
---|---|---|---|
address | Address | Endereço de coleta. | |
instructions | String | Instruções de coleta. | "Retirar pacote com Jorge" |
Address
Atenção
Sempre informe o endereço mais completo possível. Inclua rua, número, bairro, cidade, estado, CEP e complemento. Mais informações aqui.
Nome | Tipo | Descrição | Exemplo |
---|---|---|---|
address | String | Endereço completo. | "Av. Paulista, 100 - Bela Vista, São Paulo - SP, Brasil" |
complement | String | Complemento do endereço. | "Apto 302" |
Package
Atenção
A API não bloqueia, mas não é recomendado criar um pedido com mais de 20 pontos de entrega.
Recipient
Nome | Tipo | Descrição | Exemplo |
---|---|---|---|
name | String | Nome. | "Maria Júlia" |
email | String | E-mail. | "[email protected]" |
phone | String | Número celular. | "31996412605" |
Exemplo
Pedido com um único ponto de entrega
query {
estimateCreateOrder(
pickups: [
{
address: {
address: "Rua Curupaiti, 513, Padre Eustáquio, Belo Horizonte"
complement: "8o andar"
}
instructions: "Retirar pedido com Jorge"
}
]
packages: [
{
pickupIndex: 0
recipient: { name: "Engenharia Reversa Corp", phone: "1122819603" }
address: {
address: "R. Rio Grande do Sul, 499 - Centro, Belo Horizonte - MG, 30180-916"
complement: "Apto 133"
}
instructions: "Entregar pedido para Spinoza"
}
]
) {
totalEstimate {
totalCost
totalEta
totalDistance
}
packagesWithErrors {
originalIndex
error
resolvedAddress
}
}
}
Pedido com dois pontos de entrega
query {
estimateCreateOrder(
pickups: [
{
address: {
address: "Rua Curupaiti, 513, Padre Eustáquio, Belo Horizonte"
complement: "8o andar"
}
instructions: "Retirar pedido com Jorge"
}
]
packages: [
{
pickupIndex: 0
recipient: { name: "Engenharia Reversa Corp", phone: "1122819603" }
address: {
address: "R. Rio Grande do Sul, 499 - Centro, Belo Horizonte - MG, 30180-916"
complement: "Apto 133"
}
instructions: "Entregar pedido para Spinoza"
}
{
pickupIndex: 0
recipient: { name: "Engenharia Reversa Corp", phone: "1122819603" }
address: {
address: "Rua Mantena, 290, Ouro Preto, Belo Horizonte"
complement: "Apto 200"
}
instructions: "Entregar pedido para Spinoza"
}
]
) {
totalEstimate {
totalCost
totalEta
totalDistance
}
packagesWithErrors {
originalIndex
error
resolvedAddress
}
}
}
Resposta
Campos
Nome | Tipo | Descrição |
---|---|---|
totalEstimate | TotalEstimate | Estimativa do pedido. |
packagesWithErrors | List<PackageError> | Lista de pacotes com erro |
TotalEstimate
Nome | Tipo | Descrição |
---|---|---|
totalCost | String | Custo total do pedido. |
totalEta | Float | Tempo total estimado da rota de entrega. |
totalDistance | Float | Distância total (em quilômetros) a ser percorrida na rota. |
PackageError
Nome | Tipo | Descrição |
---|---|---|
originalIndex | Int | Ordem do endereço na requisição. |
error | String | Mensagem de erro. |
resolvedAddress | String | Endereço resolvido pela API. |
Exemplos
Sucesso
{
"data": {
"estimateCreateOrder": {
"totalEstimate": {
"totalCost": "15.19",
"totalEta": 1329.0,
"totalDistance": 4.81
},
"packagesWithErrors": []
}
}
}
Erros
APIKey ou email inválidos
{
"errors": [
{
"message": "You must be logged in",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"estimateCreateOrder"
]
}
],
"data": {
"estimateCreateOrder": null
}
}
Rota com cidades diferentes
{
"data": {
"estimateCreateOrder": {
"totalEstimate": null,
"packagesWithErrors": [
{
"originalIndex": 1,
"error": "Local fora da área de cobertura para a cidade São Paulo",
"resolvedAddress": "R. Maj. Lage, 84 - Ouro Preto, Belo Horizonte - MG, 31310-200, Brazil"
}
]
}
}
}