Order

El pedido representa el contenido de un 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 cumplimiento 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 de pago asociado a este pedido.

OrderItem

OrderItem especifica el estado de un elemento que forma parte de un pedido.

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. Nombre legible por humanos de este concepto que se mostrará en las interfaces de usuario.

image

object (Image)

Solo salida. 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 a esta entidad que se usan para las integraciones posteriores.

modifierGroups[]

object (OrderModifierGroup)

Es opcional. Es la lista de ModifierGroups aplicados a este elemento.

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 concepto, incluidos los modificadores seleccionados y que refleja la cantidad del artículo, sin impuestos. Se usa para mostrar la bolsa por artículo.

categoryIds[]

string

Solo salida. Son los IDs de las categorías a las que pertenece el elemento de menú subyacente. Refleja los Item.category_ids del menú para que los clientes puedan agrupar los artículos pedidos por categoría del 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, que es único dentro de su menú.

displayName

string

Solo salida. Nombre del grupo de modificadores, p.ej., "Aderezos (sándwich)" o "Guarnición para combo mediano".

integrationAttributes

object (ModifierGroupIntegrationAttributes)

Solo salida. Son los metadatos asociados a esta entidad que se usan para las integraciones posteriores.

modifiers[]

object (OrderModifier)

Es opcional. Son los modificadores aplicados 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. Identificador de este modificador, que es ú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 a este modificador, si corresponde. Es el precio por unidad del modificador.

quantity

integer

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

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 a esta entidad que se usan para las integraciones posteriores.

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 precisa en las selecciones.

OrderModifierAction

OrderModifierAction especifica el ModifierAction asociado a un OrderModifier aplicado.

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

string

Es opcional. 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 durante la toma del 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 podría contener errores ortográficos o de transcripción, por lo que se debe tener cuidado al mostrarla 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. 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 guardada o recopilada existente.

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 está 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 el cumplimiento del pedido.

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

enum (FulfillmentMethod)

Es opcional. Es el método de cumplimiento del pedido.

createTime

string (Timestamp format)

Solo salida. Fecha y hora en 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 fecha y hora en que se programó el cumplimiento del pedido, que se usa para el "pedido anticipado". 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 distintos 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, comisiones y descuentos.

subtotalPrice

object (Money)

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

taxPrice

object (Money)

Es opcional. Es el importe de impuestos aplicado al pedido.

discount

object (Money)

Es opcional. Descuento total aplicado al pedido

saving

object (Money)

Es opcional. Ahorro de la oferta aplicado al pedido

fees

object (Money)

Es opcional. Comisiones totales aplicadas 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 que se consumió para el pago.

paymentInfo

object (PaymentInfo)

Es opcional. Es la 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. Es el importe o el porcentaje de la propina. tip_type puede ser solo uno de los parámetros siguientes:
amount

object (Money)

Es opcional. Es una cantidad de dinero específica para la propina.

percentageBps

integer

Es opcional. Es el 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. Es el tipo de forma de pago que se usó.

PaymentMethod

Es el tipo de forma de pago.

Enums
PAYMENT_METHOD_UNSPECIFIED Forma de pago sin especificar.
PAYMENT_METHOD_CREDIT_CARD Tarjeta de crédito
PAYMENT_METHOD_CASH Efectivo