Order

Order representa el contenido del pedido en curso o completado de un usuario.

Representación JSON
{
  "items": [
    {
      object (OrderItem)
    }
  ],
  "metadata": {
    object (OrderMetadata)
  },
  "fulfillment": {
    object (OrderFulfillment)
  },
  "priceInfo": {
    object (OrderPriceInfo)
  },
  "externalOrderId": string,
  "orderPayment": {
    object (OrderPayment)
  }
}
Campos
items[]

object (OrderItem)

Es opcional. Son los artículos del pedido.

metadata

object (OrderMetadata)

Es opcional. Otros metadatos recopilados o inferidos durante el pedido

fulfillment

object (OrderFulfillment)

Es opcional. Es la información de preparación del pedido.

priceInfo

object (OrderPriceInfo)

Es opcional. Es la información del precio del pedido.

externalOrderId

string

Solo salida. Es el identificador externo de este pedido. Se propaga solo si se habilita una integración de punto de venta.

orderPayment

object (OrderPayment)

Es opcional. Es el estado del pago asociado a este pedido.

OrderItem

OrderItem especifica el estado de un Item que forma parte de un Order.

Representación 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

Es opcional. Es un identificador único asignado por el sistema para este elemento.

itemId

string

Obligatorio. Identificador de un elemento del menú, único dentro de su menú.

displayName

string

Solo salida. Es el nombre legible por humanos de esta línea de pedido que se mostrará en las interfaces de usuario.

image

object (Image)

Solo salida. Es la imagen que se mostrará para este elemento en la IU.

basePrice

object (Money)

Solo salida. Es el precio base del artículo. Esto puede verse afectado por los modificadores seleccionados. Es el precio por unidad del artículo.

integrationAttributes

object (ItemIntegrationAttributes)

Solo salida. Son los metadatos asociados con esta entidad que se usan para las integraciones downstream.

modifierGroups[]

object (OrderModifierGroup)

Es opcional. Son los ModifierGroups que se aplican a este artículo.

quantity

integer

Es opcional. Es la cantidad de este artículo en el pedido.

totalPrice

object (Money)

Solo salida. Es el precio total de este artículo de una sola línea, incluidos los modificadores seleccionados y la cantidad de artículos, antes de impuestos. Se usa para mostrar la bolsa por artículo.

categoryIds[]

string

Solo salida. Son los IDs de categoría a los que pertenece el elemento de menú subyacente. Duplica los Item.category_ids del menú para que los clientes puedan agrupar los artículos pedidos por categoría de menú.

OrderModifierGroup

OrderModifierGroup especifica el estado de un ModifierGroup que forma parte de un OrderItem.

Representación JSON
{
  "modifierGroupId": string,
  "displayName": string,
  "integrationAttributes": {
    object (ModifierGroupIntegrationAttributes)
  },
  "modifiers": [
    {
      object (OrderModifier)
    }
  ]
}
Campos
modifierGroupId

string

Obligatorio. Es el identificador de este grupo de modificadores, único dentro de su menú.

displayName

string

Solo salida. Es el nombre del grupo de modificadores, p.ej., "Ingredientes (sándwich)" o "Guarnición para combo mediano".

integrationAttributes

object (ModifierGroupIntegrationAttributes)

Solo salida. Son los metadatos asociados con esta entidad que se usan para las integraciones downstream.

modifiers[]

object (OrderModifier)

Es opcional. Son los modificadores que se aplican a este grupo de modificadores.

OrderModifier

OrderModifier especifica el estado de un modificador que forma parte de un OrderModifierGroup.

Representación 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

Es opcional. Es un identificador único asignado por el sistema para este modificador.

modifierId

string

Obligatorio. Es el identificador de este modificador, único dentro del menú.

displayName

string

Solo salida. Es el nombre visible del modificador que se mostrará en las interfaces de usuario.

priceAdjustment

object (Money)

Solo salida. Es el ajuste de precio asociado con este modificador, si lo hay. Este es el precio por unidad del modificador.

quantity

integer

Es opcional. Es la cantidad de veces que se aplicó esta acción de modificador.

modifierAction

object (OrderModifierAction)

Es opcional. Es la acción del modificador que se aplica a este modificador.

image

object (Image)

Solo salida. Es la imagen que se mostrará para este modificador en la IU.

integrationAttributes

object (ModifierIntegrationAttributes)

Solo salida. Son los metadatos asociados con esta entidad que se usan para las integraciones downstream.

modifierGroups[]

object (OrderModifierGroup)

Es opcional. Son los grupos de modificadores anidados que se aplican a este modificador.

isDefault

boolean

Solo salida. Indica si este modificador es una selección predeterminada para su grupo de modificadores. Se necesita para que los clientes puedan calcular una diferencia de selecciones precisa.

OrderModifierAction

OrderModifierAction especifica el ModifierAction asociado con un OrderModifier aplicado.

Representación JSON
{
  "name": string
}
Campos
name

string

Es opcional. Es el nombre de la acción del modificador, p.ej., "NO", "SIDE", "ADD", "EXTRA".

OrderMetadata

OrderMetadata contiene otros metadatos recopilados o inferidos durante el pedido.

Representación JSON
{
  "collectedCustomerName": string,
  "callerPhoneNumber": string,
  "deliveryAddress": {
    object (DeliveryAddress)
  }
}
Campos
collectedCustomerName

string

Es opcional. Nombre del cliente, recopilado mientras se toma el pedido. Solo se completa cuando el agente está configurado para recopilar el nombre del cliente. Esta información se puede recopilar de forma verbal y puede contener errores ortográficos o de transcripción, por lo que se debe tener cuidado cuando se muestra a los usuarios y no se debe confiar en ella como, por ejemplo, información de pago.

callerPhoneNumber

string

Es opcional. Es el número de teléfono del cliente que realiza el pedido.

deliveryAddress

object (DeliveryAddress)

Es opcional. La dirección de entrega, si el pedido es de entrega

DeliveryAddress

Es la dirección de entrega de un pedido. Podría ser una dirección existente guardada o recopilada.

Representación JSON
{
  "address": {
    object (PostalAddress)
  },
  "validationStatus": enum (ValidationStatus),
  "coordinates": {
    object (LatLng)
  }
}
Campos
address

object (PostalAddress)

Es opcional. Es la dirección de entrega.

validationStatus

enum (ValidationStatus)

Es opcional. Es el estado de validación de la dirección.

coordinates

object (LatLng)

Es opcional. Son las coordenadas geográficas de la dirección. Se usa para validar si la dirección se encuentra dentro del rango de entrega de la tienda.

ValidationStatus

Es el estado de validación de la dirección de entrega. Se determina según la lógica de validación específica del cliente.

Enums
VALIDATION_STATUS_UNSPECIFIED Aún no se validó la dirección.
VALIDATION_STATUS_VALID La dirección es válida.
VALIDATION_STATUS_INVALID La dirección no es válida (no existe, no se puede analizar, etcétera).
VALIDATION_STATUS_OUT_OF_RANGE La dirección existe y se resuelve, pero está fuera del rango de la tienda.
VALIDATION_STATUS_INCOMPLETE_ADDRESS Faltan campos obligatorios en la dirección (falta el número o nombre de la calle, la ciudad, el estado, el código postal, etcétera).

OrderFulfillment

OrderFulfillment contiene información sobre la preparación de pedidos.

Representación JSON
{
  "fulfillmentMethod": enum (FulfillmentMethod),
  "createTime": string,
  "targetFulfillmentTime": string
}
Campos
fulfillmentMethod

enum (FulfillmentMethod)

Es opcional. Es el método de preparación del pedido.

createTime

string (Timestamp format)

Solo salida. Es la hora en la que se creó el pedido.

Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

targetFulfillmentTime

string (Timestamp format)

Es opcional. Es la hora en la que se programa el pedido para su entrega, que se usa para los "pedidos anticipados". Si no se proporciona, se supone que el pedido es para "lo antes posible".

Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

OrderPriceInfo

OrderPriceInfo encapsula los diversos componentes de precio de un pedido.

Representación JSON
{
  "totalPrice": {
    object (Money)
  },
  "subtotalPrice": {
    object (Money)
  },
  "taxPrice": {
    object (Money)
  },
  "discount": {
    object (Money)
  },
  "saving": {
    object (Money)
  },
  "fees": {
    object (Money)
  }
}
Campos
totalPrice

object (Money)

Es opcional. Es el precio total final después de aplicar todos los impuestos, tarifas y descuentos.

subtotalPrice

object (Money)

Es opcional. Es el precio subtotal de todos los artículos y modificadores, antes de impuestos y descuentos.

taxPrice

object (Money)

Es opcional. Es el importe de impuestos que se aplica al pedido.

discount

object (Money)

Es opcional. Es el descuento total aplicado al pedido.

saving

object (Money)

Es opcional. Ahorros de la oferta aplicados al pedido

fees

object (Money)

Es opcional. Son las tarifas totales que se aplican al pedido.

OrderPayment

Es la información relacionada con el pago de un pedido.

Representación JSON
{
  "tippingInfo": {
    object (TippingInfo)
  },
  "loyaltyConsumed": {
    object (LoyaltyAmount)
  },
  "paymentInfo": {
    object (PaymentInfo)
  }
}
Campos
tippingInfo

object (TippingInfo)

Es opcional. Información sobre propinas.

loyaltyConsumed

object (LoyaltyAmount)

Es opcional. Es el importe de lealtad consumido para el pago.

paymentInfo

object (PaymentInfo)

Es opcional. Información sobre la forma de pago utilizada

TippingInfo

Información sobre las propinas.

Representación 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ón tip_type. El importe o porcentaje de la propina tip_type puede ser solo uno de los parámetros siguientes:
amount

object (Money)

Es opcional. Un importe de dinero específico para la propina.

percentageBps

integer

Es opcional. Porcentaje en puntos básicos, p.ej., 450 = 4.5%.

LoyaltyAmount

Representa el importe de lealtad de un cliente.

Representación JSON
{
  "units": string
}
Campos
units

string (int64 format)

Obligatorio. Son los puntos de lealtad.

PaymentInfo

Es la información de pago del usuario.

Representación JSON
{
  "creditCardLastFourDigits": string,
  "creditCardCvv": string,
  "paymentMethod": enum (PaymentMethod)
}
Campos
creditCardLastFourDigits

string

Es opcional. Los últimos cuatro dígitos de la tarjeta de crédito Se usa para verificar el número de tarjeta de crédito en la etapa de pago.

creditCardCvv

string

Es opcional. Es el CVV de la tarjeta de crédito.

paymentMethod

enum (PaymentMethod)

Es opcional. El tipo de forma de pago utilizado

PaymentMethod

Es el tipo de forma de pago.

Enums
PAYMENT_METHOD_UNSPECIFIED Forma de pago no especificada.
PAYMENT_METHOD_CREDIT_CARD Tarjeta de crédito
PAYMENT_METHOD_CASH Efectivo