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
}
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.

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