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 會指定 Item 的狀態,該 Item 是 Order 的一部分。

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,在選單中必須是專屬 ID。

displayName

string

僅供輸出。使用者介面顯示的委刊項名稱,方便使用者辨識。

image

object (Image)

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

basePrice

object (Money)

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

integrationAttributes

object (ItemIntegrationAttributes)

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

modifierGroups[]

object (OrderModifierGroup)

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

quantity

integer

選用。訂單中此項目的數量。

totalPrice

object (Money)

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

categoryIds[]

string

僅供輸出。基礎選單項目所屬的類別 ID。與菜單的 Item.category_ids 相同,因此用戶端可以依菜單類別將訂購商品分組。

OrderModifierGroup

OrderModifierGroup 會指定屬於 OrderItem 的 ModifierGroup 狀態。

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

string

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

displayName

string

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

integrationAttributes

object (ModifierGroupIntegrationAttributes)

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

modifiers[]

object (OrderModifier)

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

OrderModifier

OrderModifier 會指定 Modifier 的狀態,該狀態屬於 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 現金。