Order

Order 代表使用者進行中或已完成訂單的內容。

JSON 表示法
{
  "items": [
    {
      object (OrderItem)
    }
  ],
  "metadata": {
    object (OrderMetadata)
  },
  "fulfillment": {
    object (OrderFulfillment)
  },
  "priceInfo": {
    object (OrderPriceInfo)
  },
  "externalOrderId": string,
  "orderPayment": {
    object (OrderPayment)
  }
}
欄位
items[]

object (OrderItem)

選用。訂單中的商品。

metadata

object (OrderMetadata)

選用。在訂購期間收集或推論的其他中繼資料。

fulfillment

object (OrderFulfillment)

選用。訂單的出貨資訊。

priceInfo

object (OrderPriceInfo)

選用。訂單的價格資訊。

externalOrderId

string

僅供輸出。這筆訂單的外部 ID。只有在啟用銷售點整合功能時,系統才會填入資料。

orderPayment

object (OrderPayment)

選用。與這筆訂單相關聯的付款狀態。

OrderItem

OrderItem 會指定訂單中某個項目的狀態。

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
  ]
}
欄位
uid

string

選用。系統為這個項目指派的專屬 ID。

itemId

string

這是必要旗標,菜單中品項的 ID,在菜單中不得重複。

displayName

string

僅供輸出。這個委刊項在使用者介面中顯示的名稱,應為人類可讀。

image

object (Image)

僅供輸出。在 UI 中為這個項目顯示的圖片。

basePrice

object (Money)

僅供輸出。商品的底價。這可能會受到所選修飾標記的影響。這是商品的單價。

integrationAttributes

object (ItemIntegrationAttributes)

僅供輸出。與這個實體相關聯的中繼資料,用於下游整合。

modifierGroups[]

object (OrderModifierGroup)

選用。套用至此項目的 ModifierGroups。

quantity

integer

選用。訂單中的商品數量。

totalPrice

object (Money)

僅供輸出。這個明細項目的總價,包含所選修飾符,並反映商品數量 (稅前)。用於顯示每項商品的購物袋。

categoryIds[]

string

僅供輸出。基礎選單項目所屬的類別 ID。反映菜單的 Item.category_ids,讓用戶端能依菜單類別將訂購的品項分組。

OrderModifierGroup

OrderModifierGroup 會指定 ModifierGroup 的狀態,而 ModifierGroup 是 OrderItem 的一部分。

JSON 表示法
{
  "modifierGroupId": string,
  "displayName": string,
  "integrationAttributes": {
    object (ModifierGroupIntegrationAttributes)
  },
  "modifiers": [
    {
      object (OrderModifier)
    }
  ]
}
欄位
modifierGroupId

string

這是必要旗標,這個修飾符群組的 ID,在所屬菜單中不得重複。

displayName

string

僅供輸出。修飾符群組名稱,例如「配料 (三明治)」或「中份套餐配菜」。

integrationAttributes

object (ModifierGroupIntegrationAttributes)

僅供輸出。與這個實體相關聯的中繼資料,用於下游整合。

modifiers[]

object (OrderModifier)

選用。套用至這個修飾符群組的修飾符。

OrderModifier

OrderModifier 會指定修飾符的狀態,該修飾符屬於 OrderModifierGroup。

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
}
欄位
uid

string

選用。系統指派給這個修飾符的專屬 ID。

modifierId

string

這是必要旗標,這個修改項目的 ID,在菜單中不得重複。

displayName

string

僅供輸出。使用者介面上顯示的修飾符顯示名稱。

priceAdjustment

object (Money)

僅供輸出。與這個修飾符相關聯的價格調整項 (如有)。這是修飾符的每單位價格。

quantity

integer

選用。套用這項修飾符動作的數量。

modifierAction

object (OrderModifierAction)

選用。套用至這個修飾符的修飾符動作。

image

object (Image)

僅供輸出。在使用者介面中顯示這個修飾符的圖片。

integrationAttributes

object (ModifierIntegrationAttributes)

僅供輸出。與這個實體相關聯的中繼資料,用於下游整合。

modifierGroups[]

object (OrderModifierGroup)

選用。套用至這個修飾符的巢狀修飾符群組。

isDefault

boolean

僅供輸出。這個修飾符是否為所屬修飾符群組的預設選項。用戶端需要這項資訊,才能準確計算選取項目差異。

OrderModifierAction

OrderModifierAction 會指定與已套用 OrderModifier 相關聯的 ModifierAction。

JSON 表示法
{
  "name": string
}
欄位
name

string

選用。修飾符動作名稱,例如「NO」、「SIDE」、「ADD」、「EXTRA」。

OrderMetadata

OrderMetadata 包含在訂單期間收集或推論的其他中繼資料。

JSON 表示法
{
  "collectedCustomerName": string,
  "callerPhoneNumber": string,
  "deliveryAddress": {
    object (DeliveryAddress)
  }
}
欄位
collectedCustomerName

string

選用。顧客姓名 (在接單時收集)。只有在代理設定為收集顧客姓名時,才會填入資料。這項資訊可能是透過口頭收集,可能含有拼寫錯誤或轉錄錯誤,因此向使用者顯示時應多加留意,且不應視為付款資訊等。

callerPhoneNumber

string

選用。下單顧客的電話號碼。

deliveryAddress

object (DeliveryAddress)

選用。外送訂單的寄送地址。

DeliveryAddress

訂單的寄送地址。可能是現有已儲存或收集的地址。

JSON 表示法
{
  "address": {
    object (PostalAddress)
  },
  "validationStatus": enum (ValidationStatus),
  "coordinates": {
    object (LatLng)
  }
}
欄位
address

object (PostalAddress)

選用。寄送地址。

validationStatus

enum (ValidationStatus)

選用。地址的驗證狀態。

coordinates

object (LatLng)

選用。地址的地理座標。用於驗證地址是否在商店的配送範圍內。

ValidationStatus

寄送地址的驗證狀態。這取決於用戶端專屬的驗證邏輯。

列舉
VALIDATION_STATUS_UNSPECIFIED 地址尚未通過驗證。
VALIDATION_STATUS_VALID 地址有效。
VALIDATION_STATUS_INVALID 地址無效 (不存在、無法剖析等)
VALIDATION_STATUS_OUT_OF_RANGE 地址存在且已解析,但超出商店範圍。
VALIDATION_STATUS_INCOMPLETE_ADDRESS 地址缺少必填欄位 (缺少門牌號碼/街道名稱、城市、州/省、郵遞區號等)

OrderFulfillment

OrderFulfillment 包含訂單出貨資訊。

JSON 表示法
{
  "fulfillmentMethod": enum (FulfillmentMethod),
  "createTime": string,
  "targetFulfillmentTime": string
}
欄位
fulfillmentMethod

enum (FulfillmentMethod)

選用。訂單的出貨方式。

createTime

string (Timestamp format)

僅供輸出。訂單建立時間。

使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例:"2014-10-02T15:01:23Z"、"2014-10-02T15:01:23.045123456Z" 或 "2014-10-02T15:01:23+05:30"。

targetFulfillmentTime

string (Timestamp format)

選用。訂單預定出貨時間,用於「預先訂購」。如未提供,系統會假設訂單為「盡快」。

使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例:"2014-10-02T15:01:23Z"、"2014-10-02T15:01:23.045123456Z" 或 "2014-10-02T15:01:23+05:30"。

OrderPriceInfo

OrderPriceInfo 封裝訂單的各種價格元件。

JSON 表示法
{
  "totalPrice": {
    object (Money)
  },
  "subtotalPrice": {
    object (Money)
  },
  "taxPrice": {
    object (Money)
  },
  "discount": {
    object (Money)
  },
  "saving": {
    object (Money)
  },
  "fees": {
    object (Money)
  }
}
欄位
totalPrice

object (Money)

選用。計入所有稅金、費用和折扣後的最終總價。

subtotalPrice

object (Money)

選用。所有品項和修飾符的小計價格,稅前且不含折扣。

taxPrice

object (Money)

選用。訂單套用的稅額。

discount

object (Money)

選用。訂單套用的總折扣

saving

object (Money)

選用。訂單已套用特惠折扣

fees

object (Money)

選用。訂單總費用

OrderPayment

訂單的付款相關資訊。

JSON 表示法
{
  "tippingInfo": {
    object (TippingInfo)
  },
  "loyaltyConsumed": {
    object (LoyaltyAmount)
  },
  "paymentInfo": {
    object (PaymentInfo)
  }
}
欄位
tippingInfo

object (TippingInfo)

選用。小費資訊。

loyaltyConsumed

object (LoyaltyAmount)

選用。付款時使用的會員點數。

paymentInfo

object (PaymentInfo)

選用。所用付款方式的相關資訊。

TippingInfo

小費相關資訊。

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.
}
欄位
聯集欄位 tip_type。小費金額或百分比。tip_type 只能是下列其中一個設定:
amount

object (Money)

選用。小費的具體金額。

percentageBps

integer

選用。以基點表示的百分比,例如 450 = 4.5%。

LoyaltyAmount

代表顧客的會員點數。

JSON 表示法
{
  "units": string
}
欄位
units

string (int64 format)

這是必要旗標,會員點數。

PaymentInfo

使用者的付款資訊。

JSON 表示法
{
  "creditCardLastFourDigits": string,
  "creditCardCvv": string,
  "paymentMethod": enum (PaymentMethod)
}
欄位
creditCardLastFourDigits

string

選用。信用卡末四碼。這項資訊會在付款階段用於驗證信用卡號碼。

creditCardCvv

string

選用。信用卡的 CVV。

paymentMethod

enum (PaymentMethod)

選用。使用的付款方式類型。

PaymentMethod

付款方式類型。

列舉
PAYMENT_METHOD_UNSPECIFIED 未指定付款方式。
PAYMENT_METHOD_CREDIT_CARD 信用卡。
PAYMENT_METHOD_CASH 現金。