Order

Order representa o conteúdo de um pedido em andamento ou concluído de um usuário.

Representação JSON
{
  "items": [
    {
      object (OrderItem)
    }
  ],
  "metadata": {
    object (OrderMetadata)
  },
  "fulfillment": {
    object (OrderFulfillment)
  },
  "priceInfo": {
    object (OrderPriceInfo)
  },
  "externalOrderId": string,
  "orderPayment": {
    object (OrderPayment)
  }
}
Campos
items[]

object (OrderItem)

Opcional. Os itens do pedido.

metadata

object (OrderMetadata)

Opcional. Outros metadados coletados ou inferidos durante o pedido.

fulfillment

object (OrderFulfillment)

Opcional. As informações de processamento do pedido.

priceInfo

object (OrderPriceInfo)

Opcional. Informações de preço do pedido.

externalOrderId

string

Apenas saída. O identificador externo do pedido. Preenchido apenas se uma integração de ponto de venda estiver ativada.

orderPayment

object (OrderPayment)

Opcional. O estado de pagamento associado a este pedido.

OrderItem

OrderItem especifica o estado de um Item que faz parte de um Order.

Representação JSON
{
  "uid": string,
  "itemId": string,
  "displayName": string,
  "image": {
    object (Image)
  },
  "basePrice": {
    object (Money)
  },
  "integrationAttributes": {
    object (ItemIntegrationAttributes)
  },
  "modifierGroups": [
    {
      object (OrderModifierGroup)
    }
  ],
  "quantity": integer,
  "totalPrice": {
    object (Money)
  },
  "categoryIds": [
    string
  ]
}
Campos
uid

string

Opcional. Um identificador exclusivo atribuído pelo sistema para este item.

itemId

string

Obrigatório. Identificador de um item no menu, exclusivo dentro do menu.

displayName

string

Apenas saída. Nome legível por humanos para que esse item de linha seja mostrado nas interfaces do usuário.

image

object (Image)

Apenas saída. Imagem a ser exibida para este item na UI.

basePrice

object (Money)

Apenas saída. O preço base do item. Isso pode ser afetado pelos modificadores selecionados. É o preço por unidade do item.

integrationAttributes

object (ItemIntegrationAttributes)

Apenas saída. Metadados associados a essa entidade usados para integrações downstream.

modifierGroups[]

object (OrderModifierGroup)

Opcional. ModifierGroups aplicados a este item.

quantity

integer

Opcional. A quantidade desse item no pedido.

totalPrice

object (Money)

Apenas saída. O preço total do item de linha, incluindo os modificadores selecionados e refletindo a quantidade de itens, antes dos tributos. Usado para exibir as sacolas por item.

categoryIds[]

string

Apenas saída. IDs de categoria a que o item de menu pertence. Espelha o Item.category_ids do menu para que os clientes possam agrupar os itens pedidos por categoria do menu.

OrderModifierGroup

OrderModifierGroup especifica o estado de um ModifierGroup que faz parte de um OrderItem.

Representação JSON
{
  "modifierGroupId": string,
  "displayName": string,
  "integrationAttributes": {
    object (ModifierGroupIntegrationAttributes)
  },
  "modifiers": [
    {
      object (OrderModifier)
    }
  ]
}
Campos
modifierGroupId

string

Obrigatório. Identificador do grupo de modificadores, exclusivo no menu.

displayName

string

Apenas saída. O nome do grupo de modificadores, por exemplo, "Coberturas (sanduíche)" ou "Acompanhamento para combo médio".

integrationAttributes

object (ModifierGroupIntegrationAttributes)

Apenas saída. Metadados associados a essa entidade usados para integrações downstream.

modifiers[]

object (OrderModifier)

Opcional. Os modificadores aplicados a esse grupo.

OrderModifier

OrderModifier especifica o estado de um modificador que faz parte de um OrderModifierGroup.

Representação JSON
{
  "uid": string,
  "modifierId": string,
  "displayName": string,
  "priceAdjustment": {
    object (Money)
  },
  "quantity": integer,
  "modifierAction": {
    object (OrderModifierAction)
  },
  "image": {
    object (Image)
  },
  "integrationAttributes": {
    object (ModifierIntegrationAttributes)
  },
  "modifierGroups": [
    {
      object (OrderModifierGroup)
    }
  ],
  "isDefault": boolean
}
Campos
uid

string

Opcional. Um identificador exclusivo atribuído pelo sistema para esse modificador.

modifierId

string

Obrigatório. Identificador do modificador, exclusivo no cardápio.

displayName

string

Apenas saída. O nome de exibição do modificador que vai aparecer nas interfaces do usuário.

priceAdjustment

object (Money)

Apenas saída. O ajuste de preço associado a esse modificador, se houver. É o preço por unidade do modificador.

quantity

integer

Opcional. A quantidade de ações de modificador aplicadas.

modifierAction

object (OrderModifierAction)

Opcional. A ação do modificador aplicada a este modificador.

image

object (Image)

Apenas saída. Imagem a ser exibida para esse modificador na UI.

integrationAttributes

object (ModifierIntegrationAttributes)

Apenas saída. Metadados associados a essa entidade usados para integrações downstream.

modifierGroups[]

object (OrderModifierGroup)

Opcional. Grupos de modificadores aninhados aplicados a este modificador.

isDefault

boolean

Apenas saída. Se esse modificador é uma seleção padrão para o grupo de modificadores. Necessário para que os clientes possam calcular uma diferença de seleções precisa.

OrderModifierAction

OrderModifierAction especifica a ModifierAction associada a um OrderModifier aplicado.

Representação JSON
{
  "name": string
}
Campos
name

string

Opcional. O nome da ação do modificador, por exemplo, "NO", "SIDE", "ADD", "EXTRA".

OrderMetadata

OrderMetadata contém outros metadados coletados ou inferidos durante o pedido.

Representação JSON
{
  "collectedCustomerName": string,
  "callerPhoneNumber": string,
  "deliveryAddress": {
    object (DeliveryAddress)
  }
}
Campos
collectedCustomerName

string

Opcional. Nome do cliente, coletado ao receber o pedido. Preenchido apenas quando o agente está configurado para coletar o nome do cliente. Esses dados podem ser coletados verbalmente e conter erros de ortografia ou transcrição. Por isso, é preciso ter cuidado ao mostrá-los aos usuários, e eles não devem ser usados como informações de pagamento, por exemplo.

callerPhoneNumber

string

Opcional. O número de telefone do cliente que está fazendo o pedido.

deliveryAddress

object (DeliveryAddress)

Opcional. O endereço de entrega, se o pedido for de entrega.

DeliveryAddress

O endereço de entrega de um pedido. Pode ser um endereço salvo ou coletado.

Representação JSON
{
  "address": {
    object (PostalAddress)
  },
  "validationStatus": enum (ValidationStatus),
  "coordinates": {
    object (LatLng)
  }
}
Campos
address

object (PostalAddress)

Opcional. O endereço de entrega.

validationStatus

enum (ValidationStatus)

Opcional. O status de validação do endereço.

coordinates

object (LatLng)

Opcional. As coordenadas geográficas do endereço. Usado para validar se o endereço está dentro do raio de entrega da loja.

ValidationStatus

O status de validação do endereço de entrega. Ele é determinado pela lógica de validação específica do cliente.

Tipos enumerados
VALIDATION_STATUS_UNSPECIFIED O endereço ainda não foi validado.
VALIDATION_STATUS_VALID O endereço é válido.
VALIDATION_STATUS_INVALID O endereço é inválido (não existe, não pode ser analisado etc.).
VALIDATION_STATUS_OUT_OF_RANGE O endereço existe e foi resolvido, mas está fora do alcance da loja.
VALIDATION_STATUS_INCOMPLETE_ADDRESS O endereço não tem os campos obrigatórios (número/nome da rua, cidade, estado, CEP etc.)

OrderFulfillment

OrderFulfillment contém informações sobre o atendimento do pedido.

Representação JSON
{
  "fulfillmentMethod": enum (FulfillmentMethod),
  "createTime": string,
  "targetFulfillmentTime": string
}
Campos
fulfillmentMethod

enum (FulfillmentMethod)

Opcional. O método de atendimento do pedido.

createTime

string (Timestamp format)

Apenas saída. A data e o horário em que o pedido foi criado.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

targetFulfillmentTime

string (Timestamp format)

Opcional. O horário em que o pedido está programado para ser atendido, usado para "pedidos antecipados". Se não for fornecido, o pedido será considerado "o mais rápido possível".

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

OrderPriceInfo

OrderPriceInfo encapsula os vários componentes de preço de um pedido.

Representação JSON
{
  "totalPrice": {
    object (Money)
  },
  "subtotalPrice": {
    object (Money)
  },
  "taxPrice": {
    object (Money)
  },
  "discount": {
    object (Money)
  },
  "saving": {
    object (Money)
  },
  "fees": {
    object (Money)
  }
}
Campos
totalPrice

object (Money)

Opcional. O preço total final após a aplicação de todos os tributos, taxas e descontos.

subtotalPrice

object (Money)

Opcional. O preço subtotal de todos os itens e modificadores, antes de tributos e descontos.

taxPrice

object (Money)

Opcional. O valor dos tributos aplicados ao pedido.

discount

object (Money)

Opcional. Desconto total aplicado ao pedido

saving

object (Money)

Opcional. Economia da transação aplicada ao pedido

fees

object (Money)

Opcional. Total de taxas aplicadas ao pedido

OrderPayment

As informações de pagamento de um pedido.

Representação JSON
{
  "tippingInfo": {
    object (TippingInfo)
  },
  "loyaltyConsumed": {
    object (LoyaltyAmount)
  },
  "paymentInfo": {
    object (PaymentInfo)
  }
}
Campos
tippingInfo

object (TippingInfo)

Opcional. Informações sobre gorjetas.

loyaltyConsumed

object (LoyaltyAmount)

Opcional. Valor de fidelidade consumido para o pagamento.

paymentInfo

object (PaymentInfo)

Opcional. Informações sobre a forma de pagamento usada.

TippingInfo

Informações sobre gorjetas.

Representação JSON
{

  // Union field tip_type can be only one of the following:
  "amount": {
    object (Money)
  },
  "percentageBps": integer
  // End of list of possible types for union field tip_type.
}
Campos
Campo de união tip_type. O valor ou a porcentagem da gorjeta. tip_type pode ser apenas de um dos tipos a seguir:
amount

object (Money)

Opcional. Um valor específico em dinheiro para a gorjeta.

percentageBps

integer

Opcional. Porcentagem em pontos-base, por exemplo, 450 = 4,5%.

LoyaltyAmount

Representa o valor de fidelidade de um cliente.

Representação JSON
{
  "units": string
}
Campos
units

string (int64 format)

Obrigatório. Os pontos de fidelidade.

PaymentInfo

Informações de pagamento do usuário.

Representação JSON
{
  "creditCardLastFourDigits": string,
  "creditCardCvv": string,
  "paymentMethod": enum (PaymentMethod)
}
Campos
creditCardLastFourDigits

string

Opcional. Os últimos quatro dígitos do cartão de crédito. Isso é usado para verificar o número do cartão de crédito na etapa de pagamento.

creditCardCvv

string

Opcional. CVV do cartão de crédito.

paymentMethod

enum (PaymentMethod)

Opcional. Forma de pagamento usada.

PaymentMethod

O tipo de forma de pagamento.

Tipos enumerados
PAYMENT_METHOD_UNSPECIFIED Forma de pagamento não especificada.
PAYMENT_METHOD_CREDIT_CARD Cartão de crédito.
PAYMENT_METHOD_CASH Dinheiro.