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

출력 전용입니다. 이 주문의 외부 식별자입니다. 판매 시점 통합이 사용 설정된 경우에만 채워집니다.

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

(선택사항) 이 항목에 대해 시스템에서 할당된 고유 식별자입니다.

itemId

string

필수 항목입니다. 메뉴 내에서 고유한 메뉴 항목의 식별자입니다.

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은 OrderItem의 일부인 ModifierGroup의 상태를 지정합니다.

JSON 표현
{
  "modifierGroupId": string,
  "displayName": string,
  "integrationAttributes": {
    object (ModifierGroupIntegrationAttributes)
  },
  "modifiers": [
    {
      object (OrderModifier)
    }
  ]
}
필드
modifierGroupId

string

필수 항목입니다. 이 옵션 그룹의 식별자로, 메뉴 내에서 고유합니다.

displayName

string

출력 전용입니다. 수정자 그룹 이름입니다(예: '토핑(샌드위치)' 또는 '중간 콤보 사이드').

integrationAttributes

object (ModifierGroupIntegrationAttributes)

출력 전용입니다. 다운스트림 통합에 사용되는 이 항목과 연결된 메타데이터입니다.

modifiers[]

object (OrderModifier)

(선택사항) 이 옵션 그룹에 적용된 옵션입니다.

OrderModifier

OrderModifier는 OrderModifierGroup의 일부인 Modifier의 상태를 지정합니다.

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

(선택사항) 이 수정자에 대해 시스템에서 할당된 고유 식별자입니다.

modifierId

string

필수 항목입니다. 이 옵션의 식별자로, 메뉴 내에서 고유합니다.

displayName

string

출력 전용입니다. 사용자 인터페이스에 표시할 수정자 표시 이름입니다.

priceAdjustment

object (Money)

출력 전용입니다. 이 수정자와 연결된 가격 조정입니다(있는 경우). 수정자의 단위당 가격입니다.

quantity

integer

(선택사항) 적용된 이 수정자 작업의 수량입니다.

modifierAction

object (OrderModifierAction)

(선택사항) 이 수정자에 적용된 수정자 작업입니다.

image

object (Image)

출력 전용입니다. UI에서 이 수정자에 표시할 이미지입니다.

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)

출력 전용입니다. 주문이 생성된 시간입니다.

생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면 "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" 또는 "2014-10-02T15:01:23+05:30"입니다.

targetFulfillmentTime

string (Timestamp format)

(선택사항) 주문 처리 예정 시간으로, '선주문'에 사용됩니다. 제공되지 않으면 주문이 '가능한 한 빨리'로 간주됩니다.

생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. '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

(선택사항) 신용카드의 마지막 4자리 숫자입니다. 결제 단계에서 신용카드 번호를 확인하는 데 사용됩니다.

creditCardCvv

string

(선택사항) 신용카드의 CVV입니다.

paymentMethod

enum (PaymentMethod)

(선택사항) 사용한 결제 수단 유형

PaymentMethod

결제 수단 유형입니다.

열거형
PAYMENT_METHOD_UNSPECIFIED 지정되지 않은 결제 수단입니다.
PAYMENT_METHOD_CREDIT_CARD 신용카드
PAYMENT_METHOD_CASH 현금