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

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

creditCardCvv

string

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

paymentMethod

enum (PaymentMethod)

선택사항입니다. 사용된 결제 수단 유형입니다.

PaymentMethod

결제 수단 유형입니다.

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