처리 작업 스키마

이 페이지에서는 Ordering End-to-End Built-in Action API로 작업할 때 fulfillment 웹 서비스 (Ordering End-to-End API)의 페이로드를 설명합니다. 이 정보의 머신이 읽을 수 있는 버전을 얻으려면 JSON 스키마를 다운로드하면 됩니다.

기본 유형

장바구니

주문 세부정보 및 요청의 수령 여부 포함 배송을 예로 들 수 있습니다 장바구니에는 배송 세부정보, 봉사료, 배송 상품도 포함되어 있습니다. 있습니다. Cart 객체는 Checkout AppRequest.f에 정의되어 있습니다. Checkout AppResponse에 장바구니 사본을 포함합니다.

다음 표에는 Cart 유형의 속성이 나와 있습니다.

속성 유형 설명
@type 컨스트

이 객체의 유형입니다. 상위 장바구니 객체가 ProposedOrder의 일부인 경우 이 필드를 생략합니다.

값: type.googleapis.com/google.actions.v2.orders.Cart

id String

장바구니의 ID입니다(선택사항).

merchant Merchant

이 장바구니와 연결된 판매자입니다.

lineItems 목록<LineItem>

필수 항목입니다.

사용자가 주문하는 상품 또는 서비스의 목록입니다.

항목이 1개 이상이어야 합니다.

promotions 목록<Promotion>

이 장바구니에 적용된 프로모션입니다. 현재 하나의 프로모션만 지원됩니다.

notes String

주문 또는 배송 안내에 관한 참고사항

extension FoodCartExtension

fulfillment 환경설정 등 사용자에 관한 세부정보를 정의합니다.

다음 예는 Cart 요소를 보여줍니다.

예시 1

{
  "@type": "type.googleapis.com/google.actions.v2.orders.Cart",
  "merchant": {
    "id": "https://www.exampleprovider.com/merchant/id1",
    "name": "Cucina Venti"
  },
  "lineItems": [
    {
      "name": "Sizzling Prawns Dinner",
      "type": "REGULAR",
      "id": "sample_item_offer_id_1",
      "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
      "quantity": 1,
      "price": {
        "type": "ESTIMATE",
        "amount": {
          "currencyCode": "USD",
          "units": "16",
          "nanos": 750000000
        }
      },
      "subLines": [
        {
          "note": "Notes for this item."
        }
      ],
      "extension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
        "options": [
          {
            "id": "sample_addon_offer_id_1",
            "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
            "name": "Honey Mustard",
            "price": {
              "currencyCode": "USD"
            },
            "quantity": 1
          },
          {
            "id": "sample_addon_offer_id_2",
            "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
            "name": "BBQ Sauce",
            "price": {
              "currencyCode": "USD",
              "nanos": 500000000
            },
            "quantity": 1
          }
        ]
      }
    }
  ],
  "extension": {
    "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
    "fulfillmentPreference": {
      "fulfillmentInfo": {
        "delivery": {
          "deliveryTimeIso8601": "P0M"
        }
      }
    },
    "location": {
      "coordinates": {
        "latitude": 37.788783,
        "longitude": -122.41384
      },
      "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States",
      "zipCode": "94043",
      "city": "Mountain View",
      "postalAddress": {
        "regionCode": "US",
        "postalCode": "94043",
        "administrativeArea": "CA",
        "locality": "Mountain View",
        "addressLines": [
          "1350 Charleston Road"
        ]
      },
      "notes": "Gate code is #111"
    }
  }
}

예 2

{
  "merchant": {
    "id": "https://www.exampleprovider.com/merchant/id1",
    "name": "Falafel Bite"
  },
  "lineItems": [
    {
      "name": "Pita Chips",
      "type": "REGULAR",
      "id": "sample_item_offer_id_1",
      "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
      "quantity": 1,
      "price": {
        "type": "ESTIMATE",
        "amount": {
          "currencyCode": "USD",
          "units": "2",
          "nanos": 750000000
        }
      },
      "subLines": [
        {
          "note": "Notes for this item."
        }
      ],
      "extension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
        "options": [
          {
            "id": "sample_addon_offer_id_1",
            "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
            "name": "Honey Mustard",
            "price": {
              "currencyCode": "USD"
            },
            "quantity": 1
          },
          {
            "id": "sample_addon_offer_id_2",
            "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
            "name": "BBQ Sauce",
            "price": {
              "currencyCode": "USD",
              "nanos": 500000000
            },
            "quantity": 1
          }
        ]
      }
    },
    {
      "name": "Chicken Shwarma Wrap",
      "type": "REGULAR",
      "id": "sample_item_offer_id_2",
      "offerId": "https://www.exampleprovider.com/menu/item/offer/id2",
      "quantity": 1,
      "price": {
        "type": "ESTIMATE",
        "amount": {
          "currencyCode": "USD",
          "units": "8"
        }
      },
      "extension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
      }
    },
    {
      "name": "Greek Salad",
      "type": "REGULAR",
      "id": "sample_item_offer_id_3",
      "offerId": "https://www.exampleprovider.com/menu/item/offer/id3",
      "quantity": 1,
      "price": {
        "type": "ESTIMATE",
        "amount": {
          "currencyCode": "USD",
          "units": "9",
          "nanos": 990000000
        }
      },
      "extension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
      }
    },
    {
      "name": "Prawns Biryani",
      "type": "REGULAR",
      "id": "sample_item_offer_id_4",
      "offerId": "https://www.exampleprovider.com/menu/item/offer/id4",
      "quantity": 1,
      "price": {
        "type": "ESTIMATE",
        "amount": {
          "currencyCode": "USD",
          "units": "15",
          "nanos": 990000000
        }
      },
      "extension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
      }
    }
  ],
  "extension": {
    "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
    "fulfillmentPreference": {
      "fulfillmentInfo": {
        "delivery": {
          "deliveryTimeIso8601": "P90M"
        }
      }
    },
    "location": {
      "coordinates": {
        "latitude": 37.788783,
        "longitude": -122.41384
      },
      "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States",
      "zipCode": "94043",
      "city": "Mountain View",
      "postalAddress": {
        "regionCode": "US",
        "postalCode": "94043",
        "administrativeArea": "CA",
        "locality": "Mountain View",
        "addressLines": [
          "1350 Charleston Road"
        ]
      },
      "notes": "Gate code is #111"
    }
  }
}

문의

주문을 받는 사람에 대한 세부정보를 지정합니다. 다음에서만 사용할 수 있습니다. AppResponse

다음 표에는 Contact 유형의 속성이 나와 있습니다.

속성 유형 설명
displayName String

표시하려는 주문을 받는 사람의 이름입니다. firstName과 lastName이 지정되지 않은 경우 이 필드를 사용합니다.

예: Lovefood Ordering

email String

주문 상품을 수령하는 사람의 이메일 주소

예: ilovefood@example.com

firstName String

주문을 받는 사람의 이름입니다.

예: Lovefood

lastName String

주문을 받는 사람의 성

예: Ordering

phoneNumber String

국가 코드를 포함한 주문 상품을 수령하는 사람의 전화번호

예: +16501234567

emailVerified Boolean

주문 상품을 받는 사람이 Google 계정으로 로그인했는지 여부를 나타냅니다.

다음 예는 Contact 요소를 보여줍니다.

{
  "displayName": "Lovefood Ordering",
  "email": "ilovefood@example.com",
  "phoneNumber": "+16501234567"
}

CustomPushMessage

요청의 OrderUpdate를 포함합니다.

다음 표에는 CustomPushMessage 유형의 속성이 나와 있습니다.

속성 유형 설명
orderUpdate OrderUpdate

필수 항목입니다.

주문 정보가 업데이트되었습니다.

다음 예는 CustomPushMessage 요소를 보여줍니다.

{
  "orderUpdate": {
    "actionOrderId": "sample_action_order_id",
    "orderState": {
      "state": "IN_TRANSIT",
      "label": "Order is on the way"
    },
    "inTransitInfo": {
      "updatedTime": "2017-07-17T12:00:00Z"
    },
    "updateTime": "2017-07-17T12:00:00Z",
    "orderManagementActions": [
      {
        "type": "CUSTOMER_SERVICE",
        "button": {
          "title": "Contact customer service",
          "openUrlAction": {
            "url": "mailto:support@example.com"
          }
        }
      },
      {
        "type": "EMAIL",
        "button": {
          "title": "Email restaurant",
          "openUrlAction": {
            "url": "mailto:person@example.com"
          }
        }
      },
      {
        "type": "CALL_RESTAURANT",
        "button": {
          "title": "Call restaurant",
          "openUrlAction": {
            "url": "tel:+16505554679"
          }
        }
      }
    ],
    "receipt": {
      "userVisibleOrderId": "userVisibleId1234"
    },
    "infoExtension": {
      "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension",
      "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z"
    }
  }
}

DeliveryInfo

다음 표에는 DeliveryInfo 유형의 속성이 나와 있습니다.

속성 유형 설명
deliveryTimeIso8601 String

예상 배송 시간(ISO 8601 타임스탬프 형식): "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" 또는 기간 형식: 'P(n)Y(n)M(n)DT(n)H(n)M(n)S'. 예를 들어 PT90M은 90분의 지속 시간을 나타냅니다. 기본값 'PT0M'은 선호하는 배송 기간을 최대한 빨리 지정함을 나타냅니다. 참조: https://ko.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations 결제 응답을 통해 예상 배송 기간을 업데이트하려면 이 속성을 사용하세요.

예: PT90M

다음 예는 DeliveryInfo 요소를 보여줍니다.

{
  "deliveryTimeIso8601": "PT90M"
}

면책조항

다음 표에는 Disclaimer 유형의 속성이 나와 있습니다.

속성 유형 설명
predefinedMessage PredefinedMessage

필수 항목입니다.

결제 시 사전 정의된 면책 조항 메시지를 표시합니다.

feeAmount Money

파트너가 이 주문에 대해 판매자에게 N 금액의 수수료를 청구합니다.

feeAmountRange FeeAmountRange

파트너는 주문당 N~M의 수수료를 식당에 청구합니다.

feePercent 숫자

파트너가 이 주문에 대해 판매자에게 N% 의 수수료를 청구합니다.

feePercentRange FeePercentRange

파트너는 주문당 N% ~M% 의 수수료를 판매자에게 청구합니다.

다음 예는 Disclaimer 요소를 보여줍니다.

예시 1

{
  "predefinedMessage": "NEW_YORK_DELIVERY_FEE_TIP_DISCLAIMER"
}

예 2

{
  "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE"
}

예시 3

{
  "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE",
  "feePercent": 25
}

예 4

{
  "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE",
  "feePercentRange": {
    "minFeePercent": 20,
    "maxFeePercent": 30
  }
}

예시 5

{
  "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE",
  "feeAmount": {
    "currencyCode": "AUD",
    "units": 2,
    "nanos": 500000000
  }
}

예시 6

{
  "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE",
  "feeAmountRange": {
    "minFeeAmount": {
      "currencyCode": "AUD",
      "units": 2,
      "nanos": 500000000
    },
    "maxFeeAmount": {
      "currencyCode": "AUD",
      "units": 10,
      "nanos": 0
    }
  }
}

오류

Error 유형에 사용 가능한 값은 다음과 같습니다.

  • CLOSED: 음식점은 주문 시간에 영업을 하지 않습니다.
  • NO_CAPACITY: 사용 가능한 서비스 용량이 없습니다 (예: 피크 시간으로 인해 일시적인 중단).
  • NO_COURIER_AVAILABLE: 배송 인력이 제한되어 주문을 처리할 수 없습니다.
  • REQUIREMENTS_NOT_MET: 주문 수락을 위한 제약 조건이 충족되지 않았습니다 (예: 최소 장바구니 크기).
  • UNAVAILABLE_SLOT: DeliveryInfo 또는 PickupInfo에서 지정한 주문 시점에 주문을 미리 처리할 수 없습니다.
  • OUT_OF_SERVICE_AREA: 주문이 사용자 주소로 배송될 수 없습니다.
  • PROMO_EXPIRED: 프로모션이 만료되어 적용할 수 없습니다.
  • PROMO_NOT_APPLICABLE: 다른 프로모션 코드 오류에 해당하지 않는 경우 프로모션 코드 적용에 실패한 모든 사례를 포착하는 일반 오류 코드입니다.
  • PROMO_NOT_RECOGNIZED: 쿠폰 코드를 인식할 수 없습니다.
  • PROMO_ORDER_INELIGIBLE: 현재 주문에는 이 쿠폰을 사용할 수 없습니다.
  • PROMO_USER_INELIGIBLE: 현재 사용자는 이 쿠폰을 사용할 수 없습니다.
  • AVAILABILITY_CHANGED: 항목을 더 이상 구매할 수 없거나 항목이 요청을 처리하기에 부족합니다.
  • INCORRECT_PRICE: 수수료 또는 총액의 가격 오류입니다.
  • INVALID: LineItem, FulfillmentOption 또는 프로모션에 잘못된 데이터가 포함되어 있습니다.
  • NOT_FOUND: LineItem, FulfillmentOption 또는 프로모션을 찾을 수 없습니다.
  • PRICE_CHANGED: 상품 가격이 변경되었습니다.

FeeAmountRange

다음 표에는 FeeAmountRange 유형의 속성이 나와 있습니다.

속성 유형 설명
minFeeAmount Money

청구되는 수수료 금액의 하한입니다.

maxFeeAmount Money

청구되는 수수료 금액의 상한선..

FeePercentRange

다음 표에는 FeePercentRange 유형의 속성이 나와 있습니다.

속성 유형 설명
minFeePercent 숫자

청구된 수수료율의 하한입니다.

maxFeePercent 숫자

청구된 수수료 비율의 상한선입니다.

FoodCartExtension

처리 환경설정과 같은 사용자 세부정보가 포함됩니다.

다음 표에는 FoodCartExtension 유형의 속성이 나와 있습니다.

속성 유형 설명
@type 컨스트

이 확장 프로그램의 유형입니다. 이 필드는 항상 'type.googleapis.com/google.actions.v2.orders.FoodCartExtension'으로 설정됩니다.

값: type.googleapis.com/google.actions.v2.orders.FoodCartExtension

contact Contact

주문 상품을 수령하는 사람의 연락처 정보 세부정보에는 사용자의 이름, 전화번호, 이메일 주소가 포함됩니다.

fulfillmentPreference FulfillmentOption

필수 항목입니다.

사용자의 처리 환경설정

location Location

CheckoutRequestMessage에서 이 필드는 주문이 배송되는 경우 필수인 배송지 주소를 지정합니다. 테이크아웃 또는 포장 주문인 경우 이 필드가 메시지에 포함되지 않습니다.

다음 예는 FoodCartExtension 요소를 보여줍니다.

예시 1

{
  "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
  "fulfillmentPreference": {
    "fulfillmentInfo": {
      "delivery": {
        "deliveryTimeIso8601": "P0M"
      }
    }
  },
  "location": {
    "coordinates": {
      "latitude": 37.788783,
      "longitude": -122.41384
    },
    "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States",
    "zipCode": "94043",
    "city": "Mountain View",
    "postalAddress": {
      "regionCode": "US",
      "postalCode": "94043",
      "administrativeArea": "CA",
      "locality": "Mountain View",
      "addressLines": [
        "1350 Charleston Road"
      ]
    },
    "notes": "Gate code is #111"
  }
}

예 2

{
  "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
  "fulfillmentPreference": {
    "fulfillmentInfo": {
      "pickup": {
        "pickupTimeIso8601": "P0M"
      }
    }
  },
  "contact": {
    "displayName": "Lovefood Ordering",
    "email": "ilovefood@example.com",
    "phoneNumber": "+16501234567"
  }
}

FoodErrorExtension

요청을 처리하는 동안 발생한 하나 이상의 오류를 식별합니다. 다음 표에서는 FoodErrorExtension 유형의 필드를 설명합니다. CheckoutResponse에서 오류를 전송할 수 있습니다.

다음 표에는 FoodErrorExtension 유형의 속성이 나와 있습니다.

속성 유형 설명
@type 컨스트

필수 항목입니다.

이 확장 프로그램의 유형입니다.

값: type.googleapis.com/google.actions.v2.orders.FoodErrorExtension

foodOrderErrors 목록<FoodOrderError>

필수 항목입니다.

발생한 오류를 설명하는 FoodOrderError 객체의 배열입니다. 장바구니 또는 상품당 오류 1개를 사용하는 것이 좋습니다.

항목이 1개 이상이어야 합니다.

correctedProposedOrder ProposedOrder

필요한 경우 foodOrderErrors.error = "UNAVAILABLE_SLOT", "PROMO_EXPIRED", "PROMO_NOT_APPLICABLE", "PROMO_NOT_RECOGNIZED", "PROMO_ORDER_INELIGIBLE", "PROMO_USER_INELIGIBLE", "AVAILABILITY_CHANGED", "INCORRECT_PRICE", "INVALID", "NOT_FOUND", or "PRICE_CHANGED"

수정사항이 포함된 새로운 제안 주문입니다. 원래 ProposedOrder에 복구 가능한 오류가 있으면 이 객체를 반환합니다. 예를 들어 장바구니에 있는 하나 이상의 광고 항목 가격이 변경되면 복구할 수 있는 오류입니다. 유효한 ProposedOrder가 있는 복구 가능한 오류는 사용자에게 장바구니 검토를 요구하지 않고 확인 단계로 진행됩니다.

paymentOptions PaymentOptions

필요한 경우 foodOrderErrors.error = "UNAVAILABLE_SLOT", "PROMO_EXPIRED", "PROMO_NOT_APPLICABLE", "PROMO_NOT_RECOGNIZED", "PROMO_ORDER_INELIGIBLE", "PROMO_USER_INELIGIBLE", "AVAILABILITY_CHANGED", "INCORRECT_PRICE", "INVALID", "NOT_FOUND", or "PRICE_CHANGED"

사용자에 대해 선택된 기본 결제 옵션입니다.

additionalPaymentOptions 목록<PaymentOptions>

사용자가 대체 결제 옵션을 사용할 수 있습니다.

다음 예는 FoodErrorExtension 요소를 보여줍니다.

{
  "@type": "type.googleapis.com/google.actions.v2.orders.FoodErrorExtension",
  "foodOrderErrors": [
    {
      "error": "PRICE_CHANGED",
      "id": "sample_item_offer_id_1",
      "description": "The price has changed.",
      "updatedPrice": {
        "currencyCode": "USD",
        "units": "2",
        "nanos": 750000000
      }
    },
    {
      "error": "PRICE_CHANGED",
      "id": "sample_item_offer_id_2",
      "description": "The price has changed.",
      "updatedPrice": {
        "currencyCode": "USD",
        "units": "8"
      }
    }
  ],
  "correctedProposedOrder": {
    "id": "sample_corrected_proposed_order_id_1",
    "otherItems": [
      {
        "name": "New customer discount",
        "price": {
          "type": "ESTIMATE",
          "amount": {
            "currencyCode": "USD",
            "units": "-5",
            "nanos": -500000000
          }
        },
        "type": "DISCOUNT"
      },
      {
        "name": "Delivery fee",
        "price": {
          "type": "ESTIMATE",
          "amount": {
            "currencyCode": "USD",
            "units": "3",
            "nanos": 500000000
          }
        },
        "type": "DELIVERY"
      },
      {
        "name": "Tax",
        "price": {
          "type": "ESTIMATE",
          "amount": {
            "currencyCode": "USD",
            "units": "1",
            "nanos": 500000000
          }
        },
        "type": "TAX"
      }
    ],
    "cart": {
      "merchant": {
        "id": "https://www.exampleprovider.com/merchant/id1",
        "name": "Falafel Bite"
      },
      "lineItems": [
        {
          "name": "Pita Chips",
          "type": "REGULAR",
          "id": "sample_item_offer_id_1",
          "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
          "quantity": 1,
          "price": {
            "type": "ESTIMATE",
            "amount": {
              "currencyCode": "USD",
              "units": "2",
              "nanos": 750000000
            }
          },
          "subLines": [
            {
              "note": "Notes for this item."
            }
          ],
          "extension": {
            "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
            "options": [
              {
                "id": "sample_addon_offer_id_1",
                "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
                "name": "Honey Mustard",
                "price": {
                  "currencyCode": "USD"
                },
                "quantity": 1
              },
              {
                "id": "sample_addon_offer_id_2",
                "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
                "name": "BBQ Sauce",
                "price": {
                  "currencyCode": "USD",
                  "nanos": 500000000
                },
                "quantity": 1
              }
            ]
          }
        },
        {
          "name": "Chicken Shwarma Wrap",
          "type": "REGULAR",
          "id": "sample_item_offer_id_2",
          "offerId": "https://www.exampleprovider.com/menu/item/offer/id2",
          "quantity": 1,
          "price": {
            "type": "ESTIMATE",
            "amount": {
              "currencyCode": "USD",
              "units": "8"
            }
          },
          "extension": {
            "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
          }
        },
        {
          "name": "Greek Salad",
          "type": "REGULAR",
          "id": "sample_item_offer_id_3",
          "offerId": "https://www.exampleprovider.com/menu/item/offer/id3",
          "quantity": 1,
          "price": {
            "type": "ESTIMATE",
            "amount": {
              "currencyCode": "USD",
              "units": "9",
              "nanos": 990000000
            }
          },
          "extension": {
            "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
          }
        },
        {
          "name": "Prawns Biryani",
          "type": "REGULAR",
          "id": "sample_item_offer_id_4",
          "offerId": "https://www.exampleprovider.com/menu/item/offer/id4",
          "quantity": 1,
          "price": {
            "type": "ESTIMATE",
            "amount": {
              "currencyCode": "USD",
              "units": "15",
              "nanos": 990000000
            }
          },
          "extension": {
            "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
          }
        }
      ],
      "extension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
        "fulfillmentPreference": {
          "fulfillmentInfo": {
            "delivery": {
              "deliveryTimeIso8601": "P90M"
            }
          }
        },
        "location": {
          "coordinates": {
            "latitude": 37.788783,
            "longitude": -122.41384
          },
          "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States",
          "zipCode": "94043",
          "city": "Mountain View",
          "postalAddress": {
            "regionCode": "US",
            "postalCode": "94043",
            "administrativeArea": "CA",
            "locality": "Mountain View",
            "addressLines": [
              "1350 Charleston Road"
            ]
          },
          "notes": "Gate code is #111"
        }
      }
    },
    "totalPrice": {
      "type": "ESTIMATE",
      "amount": {
        "currencyCode": "USD",
        "units": "36",
        "nanos": 730000000
      }
    },
    "extension": {
      "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension",
      "availableFulfillmentOptions": [
        {
          "fulfillmentInfo": {
            "delivery": {
              "deliveryTimeIso8601": "P90M"
            }
          },
          "expiresAt": "2017-07-17T12:30:00Z"
        }
      ]
    }
  },
  "paymentOptions": {
    "googleProvidedOptions": {
      "tokenizationParameters": {
        "tokenizationType": "PAYMENT_GATEWAY",
        "parameters": {
          "gateway": "stripe",
          "stripe:publishableKey": "pk_live_stripe_client_key",
          "stripe:version": "2017-04-06"
        }
      },
      "supportedCardNetworks": [
        "AMEX",
        "DISCOVER",
        "MASTERCARD",
        "JCB",
        "VISA"
      ],
      "prepaidCardDisallowed": true
    }
  }
}

FoodItemExtension

식품의 부가기능을 정의합니다.

다음 표에는 FoodItemExtension 유형의 속성이 나와 있습니다.

속성 유형 설명
@type 컨스트

필수 항목입니다.

이 확장 프로그램의 유형입니다. 이 필드는 항상 'type.googleapis.com/google.actions.v2.orders.FoodItemExtension'으로 설정됩니다.

값: type.googleapis.com/google.actions.v2.orders.FoodItemExtension

options 목록<FoodItemOption>

옵션은 부가기능 항목 또는 부가기능 집합이 포함된 부가기능 그룹일 수 있습니다.

다음 예는 FoodItemExtension 요소를 보여줍니다.

{
  "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
  "options": [
    {
      "id": "sample_addon_offer_id_1",
      "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
      "name": "Honey Mustard",
      "price": {
        "currencyCode": "USD"
      },
      "quantity": 1
    },
    {
      "id": "sample_addon_offer_id_2",
      "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
      "name": "BBQ Sauce",
      "price": {
        "currencyCode": "USD",
        "nanos": 500000000
      },
      "quantity": 1,
      "subOptions": [
        {
          "id": "10239138",
          "offerId": "912391723",
          "name": "Fries",
          "price": {
            "currencyCode": "USD",
            "units": "2",
            "nanos": 230000000
          },
          "quantity": 1
        }
      ]
    }
  ]
}

FoodItemOption

다음 표에는 FoodItemOption 유형의 속성이 나와 있습니다.

속성 유형 설명
id String

Google에서 할당한 고유 ID FoodOrderError 또는 AsyncOrderUpdateRequest를 전송할 때 이 필드를 사용하여 장바구니에 동일한 offerId의 상품이 두 개 이상 포함된 경우를 구분할 수 있습니다.

예: 39231093

offerId String

상품의 혜택 ID입니다.

예: 912835081

name String

옵션 이름입니다.

예: Honey Mustard

price Money
note String

옵션과 관련된 참고사항입니다.

quantity 숫자

항목인 옵션의 경우 항목 수입니다.

예: 3

subOptions 목록<FoodItemOption>

옵션의 하위 옵션입니다(있는 경우).

예: [ { "id": "71283712", "offerId": "51209121", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "units": "3", "nanos": 780000000 }, "quantity": 2 }, { "id": "102941024", "offerId": "12084102", "name": "Ketchup", "price": { "currencyCode": "USD", "units": "2", "nanos": 980000000 }, "quantity": 6 } ]

다음 예는 FoodItemOption 요소를 보여줍니다.

예시 1

{
  "id": "10293231",
  "offerId": "1918491",
  "name": "Honey Mustard",
  "price": {
    "currencyCode": "USD",
    "units": "1",
    "nanos": 250000000
  },
  "quantity": 5
}

예 2

{
  "id": "123166552",
  "offerId": "912849184",
  "name": "Make It A Meal",
  "price": {
    "currencyCode": "USD",
    "units": "3",
    "nanos": 730000000
  },
  "quantity": 1,
  "subOptions": [
    {
      "id": "10239138",
      "offerId": "912391723",
      "name": "Fries",
      "price": {
        "currencyCode": "USD",
        "units": "2",
        "nanos": 230000000
      },
      "quantity": 1
    },
    {
      "id": "57159183",
      "offerId": "81837123",
      "name": "Drink",
      "price": {
        "currencyCode": "USD",
        "units": "3",
        "nanos": 130000000
      },
      "quantity": 1
    }
  ]
}

FoodOrderError

CheckoutResponse의 오류에 관한 세부정보가 포함되어 있습니다.

다음 표에는 FoodOrderError 유형의 속성이 나와 있습니다.

속성 유형 설명
error Error

필수 항목입니다.

id String

필요한 경우 error = "AVAILABILITY_CHANGED", "INCORRECT_PRICE", "PRICE_CHANGED", "INVALID", or "NOT_FOUND"

상품 수준 오류의 경우 필수 입력란입니다. Google에서 할당한 LineItem.id(메뉴 항목의 경우) 또는 FoodItemOption.id(부가기능의 경우)입니다.

description String

오류에 대한 설명입니다. 이 설명은 내부 로깅용이며 사용자에게는 표시되지 않습니다.

updatedPrice Money

필요한 경우 error = "PRICE_CHANGED"

오류가 발생한 상품의 새로운 가격입니다. 오류가 'PRICE_CHANGED'인 경우에만 필요합니다.

availableQuantity 정수

필요한 경우 error = "INVALID", or "NOT_FOUND"

오류가 발생한 상품의 새 재고 수량입니다. 오류가 'INVALID'인 경우에만 필요합니다. 또는 'NOT_FOUND'. 'INVALID'의 경우 값이 0이어야 합니다. 'NOT_FOUND'입니다.

다음 예는 FoodOrderError 요소를 보여줍니다.

예시 1

{
  "error": "CLOSED",
  "description": "This store is currently reachable. Please try again later."
}

예 2

{
  "error": "PRICE_CHANGED",
  "id": "french_fries",
  "description": "The price has changed.",
  "updatedPrice": {
    "currencyCode": "USD",
    "units": "2",
    "nanos": 750000000
  }
}

FoodOrderExtension

주문의 처리 정보가 포함됩니다.

다음 표에는 FoodOrderExtension 유형의 속성이 나와 있습니다.

속성 유형 설명
@type 컨스트

이 확장 프로그램의 유형입니다. 이 입력란은 항상 'type.googleapis.com/google.actions.v2.orders.FoodOrderExtension'으로 설정됩니다.

값: type.googleapis.com/google.actions.v2.orders.FoodOrderExtension

availableFulfillmentOptions 목록<FulfillmentOption>

주문에 사용 가능한 처리 옵션을 나타냅니다.

optinForRemarketing Boolean

마케팅 채널 수신 동의를 위한 사용자 요청입니다. 기본적으로 사용자 동의 없이 마케팅 콘텐츠를 전송할 수 없습니다. optinFor리마케팅이 true이면 사용자를 구독할 수 있습니다. optinFor리마케팅이 false이거나 존재하지 않는 경우 시스템에서 구독 상태를 그대로 유지해야 합니다. 사용자는 Google을 통해 수신을 거부할 수 없으며 마케팅 채널에서 제공하는 수신 거부 기능을 통해서만 수신 해제할 수 있습니다. 이 플래그는 SubmitOrderRequestMessage에만 있습니다.

다음 예는 FoodOrderExtension 요소를 보여줍니다.

예시 1

{
  "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension",
  "availableFulfillmentOptions": [
    {
      "fulfillmentInfo": {
        "delivery": {
          "deliveryTimeIso8601": "P0M"
        }
      },
      "expiresAt": "2017-07-17T12:30:00Z"
    }
  ]
}

예 2

{
  "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension",
  "availableFulfillmentOptions": [
    {
      "fulfillmentInfo": {
        "pickup": {
          "pickupTimeIso8601": "P0M"
        }
      },
      "expiresAt": "2020-08-20T11:41:00Z"
    }
  ],
  "optinForRemarketing": true
}

FulfillmentOption

다음과 같은 방법으로 FulfillmentOption 객체를 사용할 수 있습니다.
  • Checkout AppRequestSubmit AppRequest, Cart.extension.fulfillmentPreference: 사용자의 환경설정 저장 (전송) 또는 승차). 결제 요청이 전송될 때 가격은 항상 0입니다.
  • Checkout AppResponse에서 ProposedOrder.extension.availableFulfillmentOptions: 하나 이상의 게재 옵션을 정의합니다 (현재는 하나의 옵션만 지원됨). 다음에서 기본 옵션을 LineItem로 지정합니다. ProposedOrder.otherItems입니다. offerId FulfillmentOptionProposedOrder.otherItems에 지정된 LineItem입니다.

다음 표에는 FulfillmentOption 유형의 속성이 나와 있습니다.

속성 유형 설명
offerId String

이 처리 옵션의 고유 식별자입니다(있는 경우).

fulfillmentInfo FulfillmentOptionInfo

필수 항목입니다.

expiresAt ISO 타임스탬프

이 처리 옵션이 만료되는 시간입니다.

price Money

이 옵션의 비용입니다.

다음 예는 FulfillmentOption 요소를 보여줍니다.

{
  "offerId": "offer5",
  "fulfillmentInfo": {
    "pickup": {
      "pickupTimeIso8601": "P0M"
    }
  },
  "expiresAt": "2019-05-02T00:00:00-07:00",
  "price": {
    "currencyCode": "USD",
    "units": "5",
    "nanos": 230000000
  }
}

FulfillmentOptionInfo

FulfillmentInfo 관련 정보를 정의합니다.

다음 표에는 FulfillmentOptionInfo 유형의 속성이 나와 있습니다.

속성 유형 설명
다음 속성 그룹 중 하나만 필요합니다.
delivery 그룹 1 DeliveryInfo

있는 경우 전송 순서를 나타냅니다.

pickup 그룹 2 PickupInfo

있는 경우 수령 주문을 나타냅니다.

이미지

다음 표에는 Image 유형의 속성이 나와 있습니다.

속성 유형 설명
sourceUrl String

필수 항목입니다.

이미지의 URL입니다. 이미지는 최소 72x72픽셀이어야 합니다. 최상의 결과를 얻으려면 216x216픽셀 이상의 이미지를 사용하세요. 이미지는 6MB 및 64메가픽셀 미만이어야 합니다.

LineItem

장바구니의 콘텐츠 (Cart.lineItems) 또는 상품의 추가 요금을 정의합니다. 주문 (ProposedOrder.otherItems)

다음 표에는 LineItem 유형의 속성이 나와 있습니다.

속성 유형 설명
id String

필요한 경우 type = "REGULAR"

장바구니에 있는 상품 (ProposedOrder.cart.lineItems[0].id)의 경우 주문을 생성할 때 Google에서 생성한 고유 ID입니다. 배송비 및 세금 등의 항목을 추가하는 데 사용되는 ProposedOrder.otherItems[0].id의 광고 항목 (ProposedOrder.otherItems[0].id)의 경우 제공업체가 ID 값을 정의합니다. 예를 들어 장바구니에 준비 방법이 다른 동일한 항목이 두 개 있습니다 (예: 토핑 세트가 다른 미디엄 피자 두 개). 이 경우 두 항목 모두 기본 offerId가 동일합니다. 상품이 거부되었음을 나타내기 위해 주문 업데이트 요청을 보낼 때 이 ID를 구분자로 사용합니다. 즉, 피자 중 하나가 특정 토핑이 없어서 거부된 경우 ID는 Google에서 사용자가 참조하는 순서에서 어떤 항목을 확인하는 데 도움이 됩니다. 이 필드는 otherItems를 제외하고 필수입니다.

name String

필수 항목입니다.

광고 항목의 이름입니다. 사용자에게 표시되는 문자열이며 '배송비', '서비스 요금', '세금'과 같이 가능한 경우 문장 첫 글자를 대문자로 표기해야 합니다. 이 입력란은 사용자에 대해 100자(영문 기준)에서 잘립니다.

type LineItemType

필수 항목입니다.

quantity 정수

필요한 경우 type = "REGULAR"

포함된 항목 수입니다. ProposedOrder.otherItems에는 적용되지 않습니다.

description String

항목의 설명입니다.

price Price

필수 항목입니다.

상품의 가격입니다. 이 값은 이 광고 항목에 대한 모든 상품 또는 서비스의 총 가격을 반영합니다 (즉, 부가 항목 비용을 더하고 수량을 곱함). 예: 가격이 $10인 상품의 수량이 3개라면 가격은 $30입니다. 기본 가격이 5,000원이고 부가 채널이 1,000원인 피자 1개의 경우 가격은 6,000원입니다. 기본 가격이 5,000원이고 부가 채널이 각각 1,000원인 피자 2개 (수량 = 2)의 가격은 12,000원입니다. 가격이 '0'이어도 각 LineItem에는 가격이 있어야 합니다. 유형이 DISCOUNT인 경우 값을 음수로 지정합니다 (예: '-2').

subLines 목록<SublineNote>

선택사항이며 유형이 'REGULAR'인 경우에만 유효합니다. 결제 요청 및 주문 제출 요청의 이 입력란을 통해 사용자의 상품별 메모를 보낼 수 있습니다. 메모를 제공했을 때 판매자가 메모를 받도록 합니다. 요청에 subLines[0].note로 표시되며, 요청에 있을 때 이 필드에 제공되는 유일한 값입니다.

항목이 1개 이하여야 합니다.

offerId String

필요한 경우 type = "REGULAR"

항목에 관한 MenuItem의 제공 ID입니다. ProposedOrder.otherItems에는 적용되지 않습니다.

extension FoodItemExtension

식품의 부가기능을 정의합니다.

다음 예는 LineItem 요소를 보여줍니다.

예시 1

{
  "name": "New customer discount",
  "price": {
    "type": "ESTIMATE",
    "amount": {
      "currencyCode": "USD",
      "units": "-5",
      "nanos": -500000000
    }
  },
  "type": "DISCOUNT"
}

예 2

{
  "name": "Pita Chips",
  "type": "REGULAR",
  "id": "sample_item_offer_id_1",
  "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
  "quantity": 1,
  "price": {
    "type": "ESTIMATE",
    "amount": {
      "currencyCode": "USD",
      "units": "2",
      "nanos": 750000000
    }
  },
  "subLines": [
    {
      "note": "Notes for this item."
    }
  ],
  "extension": {
    "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
    "options": [
      {
        "id": "sample_addon_offer_id_1",
        "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
        "name": "Honey Mustard",
        "price": {
          "currencyCode": "USD"
        },
        "quantity": 1
      },
      {
        "id": "sample_addon_offer_id_2",
        "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
        "name": "BBQ Sauce",
        "price": {
          "currencyCode": "USD",
          "nanos": 500000000
        },
        "quantity": 1
      }
    ]
  }
}

LineItemType

LineItemType 유형에 사용 가능한 값은 다음과 같습니다.

  • REGULAR: 상품 광고 항목입니다. Cart.lineItems에 적용됩니다.
  • TAX: 세금 광고 항목입니다. ProposedOrder.otherItems에 적용할 수 있습니다.
  • DISCOUNT: 할인 광고 항목입니다. 가격은 음수여야 합니다. ProposedOrder.otherItems에 적용할 수 있습니다.
  • GRATUITY: 봉사료 광고 항목. 일반적으로 사용자가 선택한 팁의 SubmitOrderRequestMessage를 위해 예약됩니다. ProposedOrder.otherItems에 적용할 수 있습니다.
  • DELIVERY: 게재 광고 항목입니다. ProposedOrder.otherItems에 적용할 수 있습니다.
  • SUBTOTAL: 소계 광고 항목. ProposedOrder.otherItems에 적용할 수 있습니다.
  • FEE: 다른 유형에 포함되지 않는 추가 광고 항목입니다. ProposedOrder.otherItems에 적용할 수 있습니다.

위치

음식 주문을 위한 주소를 지정합니다. Location 유형은 Cart 을 사용하여 배송 주문의 목적지만 나타낼 수 있습니다. 최종 위치는 TransactionDecisionValue 주문 내역을 확인할 수 있습니다. 수령이 지정된 주문인 경우 위치는 전혀 포함되지 않습니다 (빈 클래스도 아님).

다음 표에는 Location 유형의 속성이 나와 있습니다.

속성 유형 설명
coordinates Coordinates
formattedAddress String

위치의 표시 주소입니다.

예: 1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States

postalAddress PostalAddress
zipCode String

예: 90210

city String

도시 이름입니다.

예: Los Angeles

notes String

게이트 코드와 같은 위치에 대한 메모입니다. 500자(영문 기준) 이하여야 합니다.

예: Gate code is #111

다음 예는 Location 요소를 보여줍니다.

{
  "coordinates": {
    "latitude": 37.788783,
    "longitude": -122.41384
  },
  "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States",
  "zipCode": "94043",
  "city": "Mountain View",
  "postalAddress": {
    "regionCode": "US",
    "postalCode": "94043",
    "administrativeArea": "CA",
    "locality": "Mountain View",
    "addressLines": [
      "1350 Charleston Road"
    ]
  },
  "notes": "Gate code is #111"
}

판매자

다음 표에는 Merchant 유형의 속성이 나와 있습니다.

속성 유형 설명
id String

판매자의 ID입니다. 지정된 경우 레스토랑 피드의 Restaurant.@id와 일치합니다.

예: https://www.exampleprovider.com/merchant/id1

name String

필수 항목입니다.

사용자가 볼 수 있는 판매자 이름입니다.

예: Falafel Bite

다음 예는 Merchant 요소를 보여줍니다.

{
  "id": "https://www.exampleprovider.com/merchant/id1",
  "name": "Falafel Bite"
}

Money

다음 표에는 Money 유형의 속성이 나와 있습니다.

속성 유형 설명
currencyCode String

필수 항목입니다.

ISO 4217 형식의 3자리 통화 코드입니다.

예: USD

units String

금액의 전체 단위입니다. 예를 들어currencyCode가 'USD'인 경우 '1'입니다. 단위는 미화 1달러입니다.

예: 36

nanos 정수

금액의 나노 (10^-9) 단위 숫자입니다. 값은 -999,999,999 이상 +999,999,999 이하여야 합니다. 다음 규칙을 사용하세요. 단위가 양수이면 나노가 양수 또는 0이어야 합니다. 단위가 0인 경우에는 나노가 양수, 0 또는 음수가 될 수 있습니다. 단위가 음수이면 나노가 음수 또는 0이어야 합니다. 예를 들어 $-1.75는 단위 = -1, 나노값 = -750,000,000으로 표시됩니다.

예: 730000000

다음 예는 Money 요소를 보여줍니다.

예시 1

{
  "currencyCode": "USD",
  "units": "36",
  "nanos": 730000000
}

예 2

{
  "currencyCode": "EUR",
  "units": "10"
}

주문

세금, 수수료, 배송료가 포함된 최종 주문이 포함됩니다. 결제 정보도 표시됩니다 이 객체는 Submit AppRequest

다음 표에는 Order 유형의 속성이 나와 있습니다.

속성 유형 설명
finalOrder ProposedOrder

필수 항목입니다.

주문을 발생시킨 제안된 주문입니다.

googleOrderId String

필수 항목입니다.

Google에서 할당한 주문 ID입니다. 이 ID는 주문의 전체 수명 주기 동안 안정적이어야 합니다. 이 ID는 최종 사용자에게는 표시되지 않습니다.

orderDate ISO 타임스탬프

필수 항목입니다.

주문이 생성된 날짜 및 시간입니다.

paymentInfo PaymentInfo

필수 항목입니다.

이 주문의 결제에 해당하는 결제 정보입니다.

다음 예는 Order 요소를 보여줍니다.

{
  "finalOrder": {
    "cart": {
      "notes": "Guest prefers their food to be hot when it is delivered.",
      "merchant": {
        "id": "https://www.exampleprovider.com/merchant/id1",
        "name": "Cucina Venti"
      },
      "lineItems": [
        {
          "name": "Sizzling Prawns Dinner",
          "type": "REGULAR",
          "id": "sample_item_offer_id_1",
          "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
          "quantity": 1,
          "price": {
            "type": "ESTIMATE",
            "amount": {
              "currencyCode": "USD",
              "units": "16",
              "nanos": 750000000
            }
          },
          "subLines": [
            {
              "note": "Notes for this item."
            }
          ],
          "extension": {
            "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
            "options": [
              {
                "id": "sample_addon_offer_id_1",
                "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
                "name": "Honey Mustard",
                "price": {
                  "currencyCode": "USD"
                },
                "quantity": 1
              },
              {
                "id": "sample_addon_offer_id_2",
                "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
                "name": "BBQ Sauce",
                "price": {
                  "currencyCode": "USD",
                  "nanos": 500000000
                },
                "quantity": 1
              }
            ]
          }
        }
      ],
      "extension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
        "fulfillmentPreference": {
          "fulfillmentInfo": {
            "pickup": {
              "pickupTimeIso8601": "P0M"
            }
          }
        },
        "contact": {
          "displayName": "Lovefood Ordering",
          "email": "ilovefood@example.com",
          "phoneNumber": "+16501234567"
        }
      }
    },
    "otherItems": [
      {
        "name": "Service fee",
        "type": "FEE",
        "price": {
          "type": "ESTIMATE",
          "amount": {
            "currencyCode": "USD",
            "units": "3",
            "nanos": 500000000
          }
        }
      },
      {
        "name": "Tax",
        "type": "TAX",
        "price": {
          "type": "ESTIMATE",
          "amount": {
            "currencyCode": "USD",
            "units": "1",
            "nanos": 370000000
          }
        }
      },
      {
        "name": "Tip",
        "type": "GRATUITY",
        "price": {
          "type": "ESTIMATE",
          "amount": {
            "currencyCode": "USD",
            "units": "2",
            "nanos": 590000000
          }
        }
      }
    ],
    "totalPrice": {
      "type": "ESTIMATE",
      "amount": {
        "currencyCode": "USD",
        "units": "23",
        "nanos": 710000000
      }
    },
    "id": "sample_final_order_id",
    "extension": {
      "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension",
      "availableFulfillmentOptions": [
        {
          "fulfillmentInfo": {
            "pickup": {
              "pickupTimeIso8601": "P0M"
            }
          },
          "expiresAt": "2017-07-17T12:30:00Z"
        }
      ],
      "optinForRemarketing": true
    }
  },
  "googleOrderId": "sample_google_order_id",
  "orderDate": "2017-07-17T12:00:00Z",
  "paymentInfo": {
    "displayName": "Visa\u2006****\u20061111",
    "googleProvidedPaymentInstrument": {
      "instrumentToken": "abcd"
    },
    "paymentType": "PAYMENT_CARD"
  }
}

OrderUpdate

다음 표에서는 AppResponse에 포함되어 있습니다.

다음 표에는 OrderUpdate 유형의 속성이 나와 있습니다.

속성 유형 설명
actionOrderId String

필수 항목입니다.

업데이트가 전송되는 주문을 식별하는 데 사용되는 통합업체 시스템 내 주문의 고유 ID입니다. 'CREATED'에 대해 OrderUpdate에서 receive.user_visible_order_id가 한 번 이상 제공되지 않은 경우 주문인 경우 이 ID가 입력된 사용자 표시 ID가 Google 주문 카드에 표시됩니다.

orderState OrderState

필수 항목입니다.

주문의 새 상태입니다.

lineItemUpdates 맵<문자열, LineItemUpdate>
updateTime ISO 타임스탬프

필수 항목입니다.

주문이 업데이트된 시간입니다.

orderManagementActions 목록<OrderManagementAction>

지원팀에 문의 및 주문 세부정보 보기와 같은 주문 후 작업

항목 1개 이상 항목 6개 이하여야 합니다.

rejectionInfo RejectionInfo

필요한 경우 orderState.state = "REJECTED"

cancellationInfo CancellationInfo

필요한 경우 orderState.state = "CANCELLED"

inTransitInfo InTransitInfo

이 필드는 지원 중단되었습니다.

fulfillmentInfo FulfillmentInfo

이 필드는 지원 중단되었습니다.

receipt Receipt

필요한 경우 orderState.state = "CONFIRMED", "IN_PREPARATION", or "READY_FOR_PICKUP"

영수증에 사용자에게 표시되는 주문 ID를 제공합니다.

totalPrice Price

총 주문 가격입니다.

infoExtension FoodOrderUpdateExtension

예상 배송 시간 또는 수령 간격과 같은 주문 업데이트에 관한 세부정보를 정의합니다.

다음 예는 OrderUpdate 요소를 보여줍니다.

{
  "actionOrderId": "sample_action_order_id",
  "orderState": {
    "state": "CONFIRMED",
    "label": "Provider confirmed"
  },
  "totalPrice": {
    "type": "ESTIMATE",
    "amount": {
      "currencyCode": "USD",
      "units": "41",
      "nanos": 600000000
    }
  },
  "lineItemUpdates": {
    "sample_item_id_1": {
      "price": {
        "type": "ESTIMATE",
        "amount": {
          "currencyCode": "USD",
          "units": "3",
          "nanos": 500000000
        }
      },
      "reason": "This item has an updated price."
    }
  },
  "receipt": {
    "userVisibleOrderId": "userVisibleId1234"
  },
  "updateTime": "2017-07-17T12:00:00Z",
  "orderManagementActions": [
    {
      "type": "CUSTOMER_SERVICE",
      "button": {
        "title": "Contact customer service",
        "openUrlAction": {
          "url": "mailto:support@example.com"
        }
      }
    },
    {
      "type": "EMAIL",
      "button": {
        "title": "Email restaurant",
        "openUrlAction": {
          "url": "mailto:person@example.com"
        }
      }
    },
    {
      "type": "CALL_RESTAURANT",
      "button": {
        "title": "Call restaurant",
        "openUrlAction": {
          "url": "tel:+16505554679"
        }
      }
    }
  ],
  "infoExtension": {
    "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension",
    "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z"
  }
}

PickupInfo

다음 표에는 PickupInfo 유형의 속성이 나와 있습니다.

속성 유형 설명
pickupTimeIso8601 String

예상 수령 시간(ISO 8601 타임스탬프 형식): "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" 또는 기간 형식: 'P(n)Y(n)M(n)DT(n)H(n)M(n)S'. 예를 들어 PT90M은 90분의 지속 시간을 나타냅니다. 기본값 'PT0M'은 선호하는 승차 시간이 최대한 빠르다는 것을 나타냅니다. 참조: https://ko.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations 결제 응답 시 예상 수령 시간을 업데이트하려면 이 속성을 사용합니다.

예: PT90M

다음 예는 PickupInfo 요소를 보여줍니다.

{
  "pickupTimeIso8601": "PT90M"
}

PostalAddress

다음 표에는 PostalAddress 유형의 속성이 나와 있습니다.

속성 유형 설명
regionCode String

필수 항목입니다.

2자리 국가 코드입니다.

예: US

postalCode String

우편번호입니다.

예: 94043

administrativeArea String

국가 또는 지역의 주소에 사용되는 최상위 행정 구역 단위입니다. 주, 도, 현이 될 수 있습니다.

예: CA

locality String

이 위치의 시/군/구입니다. 지역이 잘 정의되어 있지 않거나 이 구조에 맞지 않는 지역에서는 지역을 지정하지 말고 addressLines 필드를 사용하세요.

예: Mountain View

addressLines List<String>

상세 주소를 지정하는 데 사용할 수 있는 하나 이상의 줄입니다. 이 입력란은 불분명한 지역을 포함할 수 있으므로 수정해서는 안 됩니다.

예: [ "1350 Charleston Road" ]

recipients List<String>

주문의 수신자 목록입니다. 이 필드는 billingAddress에서만 사용할 수 있습니다.

다음 예는 PostalAddress 요소를 보여줍니다.

{
  "regionCode": "US",
  "postalCode": "94043",
  "administrativeArea": "CA",
  "locality": "Mountain View",
  "addressLines": [
    "1350 Charleston Road"
  ]
}

가격

다음 표에는 Price 유형의 속성이 나와 있습니다.

속성 유형 설명
type Enum [ "ESTIMATE", "ACTUAL" ]

필수 항목입니다.

프로모션 쿠폰 코드

amount Money

필수 항목입니다.

프로모션

다음 표에는 Promotion 유형의 속성이 나와 있습니다.

속성 유형 설명
coupon String

필수 항목입니다.

프로모션 쿠폰 코드

ProposedOrder

다음 표에는 ProposedOrder 유형의 속성이 나와 있습니다.

속성 유형 설명
id String

제안된 주문의 ID입니다(선택사항).

cart Cart

필수 항목입니다.

사용자의 항목입니다.

otherItems 목록<LineItem>

배송비, 기타 수수료, 세금 등 제공업체가 추가하는 항목입니다. otherItems에는 사용자가 추가한 봉사료 및/또는 할인이 포함될 수 있습니다.

항목이 10개 이하여야 합니다.

image Image

제안된 주문과 관련된 이미지입니다.

totalPrice Price

필수 항목입니다.

제안된 주문의 총 가격입니다.

extension FoodOrderExtension

필수 항목입니다.

음식 주문의 처리 정보를 정의합니다.

disclaimers 목록<Disclaimer>

주문 전 UI에 표시되는 면책 조항 메시지에 해당합니다.

다음 예는 ProposedOrder 요소를 보여줍니다.

{
  "id": "sample_proposed_order_id_1",
  "otherItems": [
    {
      "name": "New customer discount",
      "price": {
        "type": "ESTIMATE",
        "amount": {
          "currencyCode": "USD",
          "units": "-5",
          "nanos": -500000000
        }
      },
      "type": "DISCOUNT"
    },
    {
      "name": "Delivery fee",
      "price": {
        "type": "ESTIMATE",
        "amount": {
          "currencyCode": "USD",
          "units": "3",
          "nanos": 500000000
        }
      },
      "type": "DELIVERY"
    },
    {
      "name": "Tax",
      "price": {
        "type": "ESTIMATE",
        "amount": {
          "currencyCode": "USD",
          "units": "1",
          "nanos": 500000000
        }
      },
      "type": "TAX"
    }
  ],
  "cart": {
    "merchant": {
      "id": "https://www.exampleprovider.com/merchant/id1",
      "name": "Falafel Bite"
    },
    "lineItems": [
      {
        "name": "Pita Chips",
        "type": "REGULAR",
        "id": "sample_item_offer_id_1",
        "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
        "quantity": 1,
        "price": {
          "type": "ESTIMATE",
          "amount": {
            "currencyCode": "USD",
            "units": "2",
            "nanos": 750000000
          }
        },
        "subLines": [
          {
            "note": "Notes for this item."
          }
        ],
        "extension": {
          "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
          "options": [
            {
              "id": "sample_addon_offer_id_1",
              "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
              "name": "Honey Mustard",
              "price": {
                "currencyCode": "USD"
              },
              "quantity": 1
            },
            {
              "id": "sample_addon_offer_id_2",
              "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
              "name": "BBQ Sauce",
              "price": {
                "currencyCode": "USD",
                "nanos": 500000000
              },
              "quantity": 1
            }
          ]
        }
      },
      {
        "name": "Chicken Shwarma Wrap",
        "type": "REGULAR",
        "id": "sample_item_offer_id_2",
        "offerId": "https://www.exampleprovider.com/menu/item/offer/id2",
        "quantity": 1,
        "price": {
          "type": "ESTIMATE",
          "amount": {
            "currencyCode": "USD",
            "units": "8"
          }
        },
        "extension": {
          "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
        }
      },
      {
        "name": "Greek Salad",
        "type": "REGULAR",
        "id": "sample_item_offer_id_3",
        "offerId": "https://www.exampleprovider.com/menu/item/offer/id3",
        "quantity": 1,
        "price": {
          "type": "ESTIMATE",
          "amount": {
            "currencyCode": "USD",
            "units": "9",
            "nanos": 990000000
          }
        },
        "extension": {
          "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
        }
      },
      {
        "name": "Prawns Biryani",
        "type": "REGULAR",
        "id": "sample_item_offer_id_4",
        "offerId": "https://www.exampleprovider.com/menu/item/offer/id4",
        "quantity": 1,
        "price": {
          "type": "ESTIMATE",
          "amount": {
            "currencyCode": "USD",
            "units": "15",
            "nanos": 990000000
          }
        },
        "extension": {
          "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
        }
      }
    ],
    "extension": {
      "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
      "fulfillmentPreference": {
        "fulfillmentInfo": {
          "delivery": {
            "deliveryTimeIso8601": "P90M"
          }
        }
      },
      "location": {
        "coordinates": {
          "latitude": 37.788783,
          "longitude": -122.41384
        },
        "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States",
        "zipCode": "94043",
        "city": "Mountain View",
        "postalAddress": {
          "regionCode": "US",
          "postalCode": "94043",
          "administrativeArea": "CA",
          "locality": "Mountain View",
          "addressLines": [
            "1350 Charleston Road"
          ]
        },
        "notes": "Gate code is #111"
      }
    }
  },
  "totalPrice": {
    "type": "ESTIMATE",
    "amount": {
      "currencyCode": "USD",
      "units": "36",
      "nanos": 730000000
    }
  },
  "extension": {
    "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension",
    "availableFulfillmentOptions": [
      {
        "fulfillmentInfo": {
          "delivery": {
            "deliveryTimeIso8601": "P0M"
          }
        },
        "expiresAt": "2017-07-17T12:30:00Z"
      }
    ]
  }
}

SublineNote

다음 표에는 SublineNote 유형의 속성이 나와 있습니다.

속성 유형 설명
note String

필수 항목입니다.

타임스탬프

다음 형식의 날짜 및 시간입니다. "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"

TransactionDecisionValue

Order를 포함합니다.

다음 표에는 TransactionDecisionValue 유형의 속성이 나와 있습니다.

속성 유형 설명
order Order

필수 항목입니다.

결제 세부정보가 포함된 주문입니다.

다음 예는 TransactionDecisionValue 요소를 보여줍니다.

{
  "order": {
    "finalOrder": {
      "cart": {
        "notes": "Guest prefers their food to be hot when it is delivered.",
        "merchant": {
          "id": "https://www.exampleprovider.com/merchant/id1",
          "name": "Cucina Venti"
        },
        "lineItems": [
          {
            "name": "Sizzling Prawns Dinner",
            "type": "REGULAR",
            "id": "sample_item_offer_id_1",
            "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
            "quantity": 1,
            "price": {
              "type": "ESTIMATE",
              "amount": {
                "currencyCode": "USD",
                "units": "16",
                "nanos": 750000000
              }
            },
            "subLines": [
              {
                "note": "Notes for this item."
              }
            ],
            "extension": {
              "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
              "options": [
                {
                  "id": "sample_addon_offer_id_1",
                  "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
                  "name": "Honey Mustard",
                  "price": {
                    "currencyCode": "USD"
                  },
                  "quantity": 1
                },
                {
                  "id": "sample_addon_offer_id_2",
                  "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
                  "name": "BBQ Sauce",
                  "price": {
                    "currencyCode": "USD",
                    "nanos": 500000000
                  },
                  "quantity": 1
                }
              ]
            }
          }
        ],
        "extension": {
          "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
          "fulfillmentPreference": {
            "fulfillmentInfo": {
              "pickup": {
                "pickupTimeIso8601": "P0M"
              }
            }
          },
          "contact": {
            "displayName": "Lovefood Ordering",
            "email": "ilovefood@example.com",
            "phoneNumber": "+16501234567"
          }
        }
      },
      "otherItems": [
        {
          "name": "Service fee",
          "type": "FEE",
          "price": {
            "type": "ESTIMATE",
            "amount": {
              "currencyCode": "USD",
              "units": "3",
              "nanos": 500000000
            }
          }
        },
        {
          "name": "Tax",
          "type": "TAX",
          "price": {
            "type": "ESTIMATE",
            "amount": {
              "currencyCode": "USD",
              "units": "1",
              "nanos": 370000000
            }
          }
        },
        {
          "name": "Tip",
          "type": "GRATUITY",
          "price": {
            "type": "ESTIMATE",
            "amount": {
              "currencyCode": "USD",
              "units": "2",
              "nanos": 590000000
            }
          }
        }
      ],
      "totalPrice": {
        "type": "ESTIMATE",
        "amount": {
          "currencyCode": "USD",
          "units": "23",
          "nanos": 710000000
        }
      },
      "id": "sample_final_order_id",
      "extension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension",
        "availableFulfillmentOptions": [
          {
            "fulfillmentInfo": {
              "pickup": {
                "pickupTimeIso8601": "P0M"
              }
            },
            "expiresAt": "2017-07-17T12:30:00Z"
          }
        ],
        "optinForRemarketing": true
      }
    },
    "googleOrderId": "sample_google_order_id",
    "orderDate": "2017-07-17T12:00:00Z",
    "paymentInfo": {
      "displayName": "Visa\u2006****\u20061111",
      "googleProvidedPaymentInstrument": {
        "instrumentToken": "abcd"
      },
      "paymentType": "PAYMENT_CARD"
    }
  }
}

처리 요청

AppRequest

다음 표에는 AppRequest 유형의 속성이 나와 있습니다.

속성 유형 설명
isInSandbox Boolean

후속 트랜잭션이 샌드박스 환경에서 수행되는지 여부를 나타냅니다.

conversation Conversation
inputs 목록<Input>

필수 항목입니다.

장바구니 결제에 대한 예상 인수가 포함됩니다.

정확히 항목 1개가 있어야 합니다.

다음 예는 AppRequest 요소를 보여줍니다.

예시 1

{
  "isInSandbox": true,
  "inputs": [
    {
      "intent": "actions.foodordering.intent.CHECKOUT",
      "arguments": [
        {
          "extension": {
            "@type": "type.googleapis.com/google.actions.v2.orders.Cart",
            "merchant": {
              "id": "https://www.exampleprovider.com/merchant/id1",
              "name": "Cucina Venti"
            },
            "lineItems": [
              {
                "name": "Sizzling Prawns Dinner",
                "type": "REGULAR",
                "id": "sample_item_offer_id_1",
                "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
                "quantity": 1,
                "price": {
                  "type": "ESTIMATE",
                  "amount": {
                    "currencyCode": "USD",
                    "units": "16",
                    "nanos": 750000000
                  }
                },
                "subLines": [
                  {
                    "note": "Notes for this item."
                  }
                ],
                "extension": {
                  "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
                  "options": [
                    {
                      "id": "sample_addon_offer_id_1",
                      "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
                      "name": "Honey Mustard",
                      "price": {
                        "currencyCode": "USD"
                      },
                      "quantity": 1
                    },
                    {
                      "id": "sample_addon_offer_id_2",
                      "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
                      "name": "BBQ Sauce",
                      "price": {
                        "currencyCode": "USD",
                        "nanos": 500000000
                      },
                      "quantity": 1
                    }
                  ]
                }
              }
            ],
            "extension": {
              "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
              "fulfillmentPreference": {
                "fulfillmentInfo": {
                  "delivery": {
                    "deliveryTimeIso8601": "P0M"
                  }
                }
              },
              "location": {
                "coordinates": {
                  "latitude": 37.788783,
                  "longitude": -122.41384
                },
                "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States",
                "zipCode": "94043",
                "city": "Mountain View",
                "postalAddress": {
                  "regionCode": "US",
                  "postalCode": "94043",
                  "administrativeArea": "CA",
                  "locality": "Mountain View",
                  "addressLines": [
                    "1350 Charleston Road"
                  ]
                },
                "notes": "Gate code is #111"
              }
            }
          }
        }
      ]
    }
  ]
}

예 2

{
  "isInSandbox": true,
  "inputs": [
    {
      "intent": "actions.intent.TRANSACTION_DECISION",
      "arguments": [
        {
          "transactionDecisionValue": {
            "order": {
              "finalOrder": {
                "cart": {
                  "notes": "Guest prefers their food to be hot when it is delivered.",
                  "merchant": {
                    "id": "https://www.exampleprovider.com/merchant/id1",
                    "name": "Cucina Venti"
                  },
                  "lineItems": [
                    {
                      "name": "Sizzling Prawns Dinner",
                      "type": "REGULAR",
                      "id": "sample_item_offer_id_1",
                      "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
                      "quantity": 1,
                      "price": {
                        "type": "ESTIMATE",
                        "amount": {
                          "currencyCode": "USD",
                          "units": "16",
                          "nanos": 750000000
                        }
                      },
                      "subLines": [
                        {
                          "note": "Notes for this item."
                        }
                      ],
                      "extension": {
                        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
                        "options": [
                          {
                            "id": "sample_addon_offer_id_1",
                            "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
                            "name": "Honey Mustard",
                            "price": {
                              "currencyCode": "USD"
                            },
                            "quantity": 1
                          },
                          {
                            "id": "sample_addon_offer_id_2",
                            "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
                            "name": "BBQ Sauce",
                            "price": {
                              "currencyCode": "USD",
                              "nanos": 500000000
                            },
                            "quantity": 1
                          }
                        ]
                      }
                    }
                  ],
                  "extension": {
                    "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
                    "fulfillmentPreference": {
                      "fulfillmentInfo": {
                        "pickup": {
                          "pickupTimeIso8601": "P0M"
                        }
                      }
                    },
                    "contact": {
                      "displayName": "Lovefood Ordering",
                      "email": "ilovefood@example.com",
                      "phoneNumber": "+16501234567"
                    }
                  }
                },
                "otherItems": [
                  {
                    "name": "Service fee",
                    "type": "FEE",
                    "price": {
                      "type": "ESTIMATE",
                      "amount": {
                        "currencyCode": "USD",
                        "units": "3",
                        "nanos": 500000000
                      }
                    }
                  },
                  {
                    "name": "Tax",
                    "type": "TAX",
                    "price": {
                      "type": "ESTIMATE",
                      "amount": {
                        "currencyCode": "USD",
                        "units": "1",
                        "nanos": 370000000
                      }
                    }
                  },
                  {
                    "name": "Tip",
                    "type": "GRATUITY",
                    "price": {
                      "type": "ESTIMATE",
                      "amount": {
                        "currencyCode": "USD",
                        "units": "2",
                        "nanos": 590000000
                      }
                    }
                  }
                ],
                "totalPrice": {
                  "type": "ESTIMATE",
                  "amount": {
                    "currencyCode": "USD",
                    "units": "23",
                    "nanos": 710000000
                  }
                },
                "id": "sample_final_order_id",
                "extension": {
                  "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension",
                  "availableFulfillmentOptions": [
                    {
                      "fulfillmentInfo": {
                        "pickup": {
                          "pickupTimeIso8601": "P0M"
                        }
                      },
                      "expiresAt": "2017-07-17T12:30:00Z"
                    }
                  ],
                  "optinForRemarketing": true
                }
              },
              "googleOrderId": "sample_google_order_id",
              "orderDate": "2017-07-17T12:00:00Z",
              "paymentInfo": {
                "displayName": "Visa\u2006****\u20061111",
                "googleProvidedPaymentInstrument": {
                  "instrumentToken": "abcd"
                },
                "paymentType": "PAYMENT_CARD"
              }
            }
          }
        }
      ]
    }
  ]
}

CheckoutRequestMessage

CheckoutRequestMessageAppRequest입니다. (actions.foodordering.intent.CHECKOUT 인텐트 사용)

SubmitOrderRequestMessage

SubmitOrderRequestMessageAppRequest입니다. (actions.foodordering.intent.TRANSACTION_DECISION 인텐트 사용)

대화

Conversation는 세션 하나에서만 고유합니다. 이를 사용하여 여러 개의 필요한 경우 CheckoutSubmitOrder 작업을 함께 사용합니다.

다음 표에는 Conversation 유형의 속성이 나와 있습니다.

속성 유형 설명
conversationId String

필수 항목입니다.

대화의 고유 ID입니다.

다음 예는 Conversation 요소를 보여줍니다.

{
  "conversationId": "CQnJ7Z4i7UmvEZ9ph3AxyZRJ"
}

입력

장바구니 결제에 필요한 인수입니다.

다음 표에는 Input 유형의 속성이 나와 있습니다.

속성 유형 설명
intent Enum [ "actions.foodordering.intent.CHECKOUT", "actions.intent.TRANSACTION_DECISION" ]

필수 항목입니다.

'actions.foodordering.intent.CHECKOUT'으로 설정합니다 결제 요청 메시지 또는 'actions.intent.TRANSACTION_DECISION' 주문 제출 요청 메시지

arguments 목록<Argument>

필수 항목입니다.

결제할 장바구니 또는 주문할 주문이 포함되어 있습니다.

정확히 항목 1개가 있어야 합니다.

인수

사용자가 결제하려는 식품의 세부정보가 포함되어 있습니다. 결제의 경우 연장만 적용됩니다. 주문 제출의 경우transactionDecisionValue만 적용할 수 있습니다.

다음 표에는 Argument 유형의 속성이 나와 있습니다.

속성 유형 설명
다음 속성 그룹 중 하나만 필요합니다.
extension 그룹 1 Cart

사용자가 결제하려는 식품을 자세히 설명합니다.

transactionDecisionValue 그룹 2 TransactionDecisionValue

여기에는 결제 세부정보와 함께 주문이 포함됩니다.

처리 응답

AppResponse

다음 표에는 AppResponse 유형의 속성이 나와 있습니다.

속성 유형 설명
expectUserResponse 컨스트

false로 설정합니다.

값: False

finalResponse FinalResponse

필수 항목입니다.

장바구니 결제에 대한 응답이 포함됩니다.

다음 예는 AppResponse 요소를 보여줍니다.

예시 1

{
  "expectUserResponse": false,
  "finalResponse": {
    "richResponse": {
      "items": [
        {
          "structuredResponse": {
            "checkoutResponse": {
              "proposedOrder": {
                "id": "sample_proposed_order_id_1",
                "otherItems": [
                  {
                    "name": "New customer discount",
                    "price": {
                      "type": "ESTIMATE",
                      "amount": {
                        "currencyCode": "USD",
                        "units": "-5",
                        "nanos": -500000000
                      }
                    },
                    "type": "DISCOUNT"
                  },
                  {
                    "name": "Delivery fee",
                    "price": {
                      "type": "ESTIMATE",
                      "amount": {
                        "currencyCode": "USD",
                        "units": "3",
                        "nanos": 500000000
                      }
                    },
                    "type": "DELIVERY"
                  },
                  {
                    "name": "Tax",
                    "price": {
                      "type": "ESTIMATE",
                      "amount": {
                        "currencyCode": "USD",
                        "units": "1",
                        "nanos": 500000000
                      }
                    },
                    "type": "TAX"
                  }
                ],
                "cart": {
                  "merchant": {
                    "id": "https://www.exampleprovider.com/merchant/id1",
                    "name": "Falafel Bite"
                  },
                  "lineItems": [
                    {
                      "name": "Pita Chips",
                      "type": "REGULAR",
                      "id": "sample_item_offer_id_1",
                      "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
                      "quantity": 1,
                      "price": {
                        "type": "ESTIMATE",
                        "amount": {
                          "currencyCode": "USD",
                          "units": "2",
                          "nanos": 750000000
                        }
                      },
                      "subLines": [
                        {
                          "note": "Notes for this item."
                        }
                      ],
                      "extension": {
                        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
                        "options": [
                          {
                            "id": "sample_addon_offer_id_1",
                            "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
                            "name": "Honey Mustard",
                            "price": {
                              "currencyCode": "USD"
                            },
                            "quantity": 1
                          },
                          {
                            "id": "sample_addon_offer_id_2",
                            "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
                            "name": "BBQ Sauce",
                            "price": {
                              "currencyCode": "USD",
                              "nanos": 500000000
                            },
                            "quantity": 1
                          }
                        ]
                      }
                    },
                    {
                      "name": "Chicken Shwarma Wrap",
                      "type": "REGULAR",
                      "id": "sample_item_offer_id_2",
                      "offerId": "https://www.exampleprovider.com/menu/item/offer/id2",
                      "quantity": 1,
                      "price": {
                        "type": "ESTIMATE",
                        "amount": {
                          "currencyCode": "USD",
                          "units": "8"
                        }
                      },
                      "extension": {
                        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
                      }
                    },
                    {
                      "name": "Greek Salad",
                      "type": "REGULAR",
                      "id": "sample_item_offer_id_3",
                      "offerId": "https://www.exampleprovider.com/menu/item/offer/id3",
                      "quantity": 1,
                      "price": {
                        "type": "ESTIMATE",
                        "amount": {
                          "currencyCode": "USD",
                          "units": "9",
                          "nanos": 990000000
                        }
                      },
                      "extension": {
                        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
                      }
                    },
                    {
                      "name": "Prawns Biryani",
                      "type": "REGULAR",
                      "id": "sample_item_offer_id_4",
                      "offerId": "https://www.exampleprovider.com/menu/item/offer/id4",
                      "quantity": 1,
                      "price": {
                        "type": "ESTIMATE",
                        "amount": {
                          "currencyCode": "USD",
                          "units": "15",
                          "nanos": 990000000
                        }
                      },
                      "extension": {
                        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
                      }
                    }
                  ],
                  "extension": {
                    "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
                    "fulfillmentPreference": {
                      "fulfillmentInfo": {
                        "delivery": {
                          "deliveryTimeIso8601": "P90M"
                        }
                      }
                    },
                    "location": {
                      "coordinates": {
                        "latitude": 37.788783,
                        "longitude": -122.41384
                      },
                      "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States",
                      "zipCode": "94043",
                      "city": "Mountain View",
                      "postalAddress": {
                        "regionCode": "US",
                        "postalCode": "94043",
                        "administrativeArea": "CA",
                        "locality": "Mountain View",
                        "addressLines": [
                          "1350 Charleston Road"
                        ]
                      },
                      "notes": "Gate code is #111"
                    }
                  }
                },
                "totalPrice": {
                  "type": "ESTIMATE",
                  "amount": {
                    "currencyCode": "USD",
                    "units": "36",
                    "nanos": 730000000
                  }
                },
                "extension": {
                  "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension",
                  "availableFulfillmentOptions": [
                    {
                      "fulfillmentInfo": {
                        "delivery": {
                          "deliveryTimeIso8601": "P0M"
                        }
                      },
                      "expiresAt": "2017-07-17T12:30:00Z"
                    }
                  ]
                }
              },
              "paymentOptions": {
                "googleProvidedOptions": {
                  "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": {  \"merchantId\": \"Merchant ID\",  \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [  {    \"type\": \"CARD\",    \"parameters\": {      \"allowedAuthMethods\": [        \"PAN_ONLY\"      ],      \"allowedCardNetworks\": [        \"VISA\",        \"AMEX\",        \"MASTERCARD\"      ],      \"billingAddressRequired\": false    },    \"tokenizationSpecification\": {      \"type\": \"PAYMENT_GATEWAY\",      \"parameters\": {        \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\",        \"gateway\": \"stripe\",        \"stripe:version\": \"2019-05-16\"      }    }  }],\"transactionInfo\": {  \"currencyCode\": \"AUD\",  \"totalPriceStatus\": \"ESTIMATED\",  \"totalPrice\": \"1.0\"}}"
                }
              },
              "additionalPaymentOptions": [
                {
                  "actionProvidedOptions": {
                    "paymentType": "ON_FULFILLMENT",
                    "displayName": "Cash on delivery."
                  }
                }
              ]
            }
          }
        }
      ]
    }
  }
}

예 2

{
  "expectUserResponse": false,
  "finalResponse": {
    "richResponse": {
      "items": [
        {
          "structuredResponse": {
            "orderUpdate": {
              "actionOrderId": "sample_action_order_id",
              "orderState": {
                "state": "CONFIRMED",
                "label": "Provider confirmed"
              },
              "receipt": {
                "userVisibleOrderId": "userVisibleId1234"
              },
              "updateTime": "2017-07-17T12:00:00Z",
              "orderManagementActions": [
                {
                  "type": "CUSTOMER_SERVICE",
                  "button": {
                    "title": "Contact customer service",
                    "openUrlAction": {
                      "url": "mailto:support@example.com"
                    }
                  }
                },
                {
                  "type": "CUSTOMER_SERVICE",
                  "button": {
                    "title": "Call customer service",
                    "openUrlAction": {
                      "url": "tel:+18005554679"
                    }
                  }
                },
                {
                  "type": "EMAIL",
                  "button": {
                    "title": "Email restaurant",
                    "openUrlAction": {
                      "url": "mailto:person@example.com"
                    }
                  }
                },
                {
                  "type": "CALL_RESTAURANT",
                  "button": {
                    "title": "Call restaurant",
                    "openUrlAction": {
                      "url": "tel:+16505554679"
                    }
                  }
                }
              ],
              "infoExtension": {
                "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension",
                "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z"
              }
            }
          }
        }
      ]
    }
  }
}

예시 3

{
  "expectUserResponse": false,
  "finalResponse": {
    "richResponse": {
      "items": [
        {
          "structuredResponse": {
            "error": {
              "@type": "type.googleapis.com/google.actions.v2.orders.FoodErrorExtension",
              "foodOrderErrors": [
                {
                  "error": "CLOSED",
                  "description": "The restaurant is closed."
                }
              ]
            }
          }
        }
      ]
    }
  }
}

예 4

{
  "expectUserResponse": false,
  "finalResponse": {
    "richResponse": {
      "items": [
        {
          "structuredResponse": {
            "checkoutResponse": {
              "proposedOrder": {
                "otherItems": [
                  {
                    "name": "Delivery Fees",
                    "subLines": [],
                    "price": {
                      "type": "ESTIMATE",
                      "amount": {
                        "currencyCode": "USD",
                        "units": "3",
                        "nanos": 500000000
                      }
                    },
                    "type": "DELIVERY"
                  },
                  {
                    "name": "Tax",
                    "subLines": [],
                    "price": {
                      "type": "ESTIMATE",
                      "amount": {
                        "currencyCode": "USD",
                        "units": "1",
                        "nanos": 370000000
                      }
                    },
                    "type": "TAX"
                  },
                  {
                    "name": "Promotion",
                    "subLines": [],
                    "price": {
                      "type": "ESTIMATE",
                      "amount": {
                        "currencyCode": "USD",
                        "units": "-5",
                        "nanos": 0
                      }
                    },
                    "id": "OWG_ACTIVE_CODE",
                    "type": "DISCOUNT"
                  }
                ],
                "cart": {
                  "merchant": {
                    "id": "https://www.exampleprovider.com/merchant/id1",
                    "name": "Falafel Bite"
                  },
                  "lineItems": [
                    {
                      "name": "Pita Chips",
                      "type": "REGULAR",
                      "id": "sample_item_offer_id_1",
                      "quantity": 1,
                      "price": {
                        "type": "ESTIMATE",
                        "amount": {
                          "currencyCode": "USD",
                          "units": "2",
                          "nanos": 750000000
                        }
                      },
                      "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
                      "extension": {
                        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
                      }
                    }
                  ],
                  "promotions": [
                    {
                      "coupon": "OWG_ACTIVE_CODE"
                    }
                  ],
                  "extension": {
                    "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
                    "fulfillmentPreference": {
                      "fulfillmentInfo": {
                        "pickup": {
                          "pickupTimeIso8601": "P0M"
                        }
                      }
                    }
                  }
                },
                "totalPrice": {
                  "type": "ESTIMATE",
                  "amount": {
                    "currencyCode": "USD",
                    "units": "14",
                    "nanos": 860000000
                  }
                },
                "extension": {
                  "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension",
                  "availableFulfillmentOptions": [
                    {
                      "fulfillmentInfo": {
                        "pickup": {
                          "pickupTimeIso8601": "P0M"
                        }
                      },
                      "expiresAt": "2018-04-10T01:20:08.471Z"
                    }
                  ]
                }
              },
              "paymentOptions": {
                "googleProvidedOptions": {
                  "tokenizationParameters": {
                    "tokenizationType": "PAYMENT_GATEWAY",
                    "parameters": {
                      "gateway": "stripe",
                      "stripe:publishableKey": "pk_live_stripe_client_key",
                      "stripe:version": "2017-04-06"
                    }
                  },
                  "supportedCardNetworks": [
                    "AMEX",
                    "DISCOVER",
                    "MASTERCARD",
                    "VISA",
                    "JCB"
                  ],
                  "prepaidCardDisallowed": true,
                  "billingAddressRequired": true
                }
              }
            }
          }
        }
      ]
    }
  }
}

CheckoutResponseMessage

CheckoutResponseMessage은 다음 항목이 있는 AppResponse입니다. checkoutResponse 또는 error StructuredResponse:

SubmitOrderResponseMessage

SubmitOrderResponseMessage은 다음 항목이 있는 AppResponse입니다. StructuredResponseorderUpdate

FinalResponse

장바구니 결제 또는 SubmitOrderRequestMessage에 대한 응답입니다.

다음 표에는 FinalResponse 유형의 속성이 나와 있습니다.

속성 유형 설명
richResponse RichResponse

필수 항목입니다.

CheckoutRequestMessage 또는 SubmitOrderRequestMessage에 대한 응답이 포함됩니다.

CheckoutResponse

다음 표에는 CheckoutResponse 유형의 속성이 나와 있습니다.

속성 유형 설명
proposedOrder ProposedOrder

필수 항목입니다.

거래에 사용할 제안된 주문입니다.

paymentOptions PaymentOptions

필수 항목입니다.

사용자에 대해 선택된 기본 결제 옵션

additionalPaymentOptions 목록<PaymentOptions>

사용자가 대체 결제 옵션을 사용할 수 있습니다.

다음 예는 CheckoutResponse 요소를 보여줍니다.

{
  "proposedOrder": {
    "id": "sample_proposed_order_id_1",
    "otherItems": [
      {
        "name": "New customer discount",
        "price": {
          "type": "ESTIMATE",
          "amount": {
            "currencyCode": "USD",
            "units": "-5",
            "nanos": -500000000
          }
        },
        "type": "DISCOUNT"
      },
      {
        "name": "Delivery fee",
        "price": {
          "type": "ESTIMATE",
          "amount": {
            "currencyCode": "USD",
            "units": "3",
            "nanos": 500000000
          }
        },
        "type": "DELIVERY"
      },
      {
        "name": "Tax",
        "price": {
          "type": "ESTIMATE",
          "amount": {
            "currencyCode": "USD",
            "units": "1",
            "nanos": 500000000
          }
        },
        "type": "TAX"
      }
    ],
    "cart": {
      "merchant": {
        "id": "https://www.exampleprovider.com/merchant/id1",
        "name": "Falafel Bite"
      },
      "lineItems": [
        {
          "name": "Pita Chips",
          "type": "REGULAR",
          "id": "sample_item_offer_id_1",
          "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
          "quantity": 1,
          "price": {
            "type": "ESTIMATE",
            "amount": {
              "currencyCode": "USD",
              "units": "2",
              "nanos": 750000000
            }
          },
          "subLines": [
            {
              "note": "Notes for this item."
            }
          ],
          "extension": {
            "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
            "options": [
              {
                "id": "sample_addon_offer_id_1",
                "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
                "name": "Honey Mustard",
                "price": {
                  "currencyCode": "USD"
                },
                "quantity": 1
              },
              {
                "id": "sample_addon_offer_id_2",
                "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
                "name": "BBQ Sauce",
                "price": {
                  "currencyCode": "USD",
                  "nanos": 500000000
                },
                "quantity": 1
              }
            ]
          }
        },
        {
          "name": "Chicken Shwarma Wrap",
          "type": "REGULAR",
          "id": "sample_item_offer_id_2",
          "offerId": "https://www.exampleprovider.com/menu/item/offer/id2",
          "quantity": 1,
          "price": {
            "type": "ESTIMATE",
            "amount": {
              "currencyCode": "USD",
              "units": "8"
            }
          },
          "extension": {
            "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
          }
        },
        {
          "name": "Greek Salad",
          "type": "REGULAR",
          "id": "sample_item_offer_id_3",
          "offerId": "https://www.exampleprovider.com/menu/item/offer/id3",
          "quantity": 1,
          "price": {
            "type": "ESTIMATE",
            "amount": {
              "currencyCode": "USD",
              "units": "9",
              "nanos": 990000000
            }
          },
          "extension": {
            "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
          }
        },
        {
          "name": "Prawns Biryani",
          "type": "REGULAR",
          "id": "sample_item_offer_id_4",
          "offerId": "https://www.exampleprovider.com/menu/item/offer/id4",
          "quantity": 1,
          "price": {
            "type": "ESTIMATE",
            "amount": {
              "currencyCode": "USD",
              "units": "15",
              "nanos": 990000000
            }
          },
          "extension": {
            "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
          }
        }
      ],
      "extension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
        "fulfillmentPreference": {
          "fulfillmentInfo": {
            "delivery": {
              "deliveryTimeIso8601": "P90M"
            }
          }
        },
        "location": {
          "coordinates": {
            "latitude": 37.788783,
            "longitude": -122.41384
          },
          "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States",
          "zipCode": "94043",
          "city": "Mountain View",
          "postalAddress": {
            "regionCode": "US",
            "postalCode": "94043",
            "administrativeArea": "CA",
            "locality": "Mountain View",
            "addressLines": [
              "1350 Charleston Road"
            ]
          },
          "notes": "Gate code is #111"
        }
      }
    },
    "totalPrice": {
      "type": "ESTIMATE",
      "amount": {
        "currencyCode": "USD",
        "units": "36",
        "nanos": 730000000
      }
    },
    "extension": {
      "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension",
      "availableFulfillmentOptions": [
        {
          "fulfillmentInfo": {
            "delivery": {
              "deliveryTimeIso8601": "P0M"
            }
          },
          "expiresAt": "2017-07-17T12:30:00Z"
        }
      ]
    }
  },
  "paymentOptions": {
    "googleProvidedOptions": {
      "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": {  \"merchantId\": \"Merchant ID\",  \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [  {    \"type\": \"CARD\",    \"parameters\": {      \"allowedAuthMethods\": [        \"PAN_ONLY\"      ],      \"allowedCardNetworks\": [        \"VISA\",        \"AMEX\",        \"MASTERCARD\"      ],      \"billingAddressRequired\": false    },    \"tokenizationSpecification\": {      \"type\": \"PAYMENT_GATEWAY\",      \"parameters\": {        \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\",        \"gateway\": \"stripe\",        \"stripe:version\": \"2019-05-16\"      }    }  }],\"transactionInfo\": {  \"currencyCode\": \"AUD\",  \"totalPriceStatus\": \"ESTIMATED\",  \"totalPrice\": \"1.0\"}}"
    }
  },
  "additionalPaymentOptions": [
    {
      "actionProvidedOptions": {
        "paymentType": "ON_FULFILLMENT",
        "displayName": "Cash on delivery."
      }
    }
  ]
}

항목

장바구니 결제 또는 SubmitOrderRequestMessage에 대한 응답이 포함됩니다.

다음 표에는 Item 유형의 속성이 나와 있습니다.

속성 유형 설명
structuredResponse StructuredResponse

필수 항목입니다.

RichResponse

장바구니 결제에 대한 응답이 포함됩니다.

다음 표에는 RichResponse 유형의 속성이 나와 있습니다.

속성 유형 설명
items 목록<Item>

필수 항목입니다.

정확히 항목 1개가 있어야 합니다.

StructuredResponse

CheckoutResponseMessage의 경우 다음 중 하나일 수 있습니다. CheckoutResponse 결제 성공을 나타냅니다. OR FoodErrorExtension: 결제 중 실패를 나타냅니다. 응답에는 수정된 ProposedOrder 및 PaymentOptions 또는 PaymentOptions가 없는 오류 메시지가 포함될 수 있습니다. SubmitOrderResponseMessage의 경우 orderUpdate만 적용할 수 있습니다.

다음 표에는 StructuredResponse 유형의 속성이 나와 있습니다.

속성 유형 설명
다음 속성 그룹 중 하나만 필요합니다.
checkoutResponse 그룹 1 CheckoutResponse

확인한 상품(세금, 할인)

error 그룹 2 FoodErrorExtension

장바구니 상품에서 오류가 발견되었습니다. 오류의 특성에 따라 이 속성에는 수정된 ProposedOrder 및 PaymentOptions가 포함되거나 PaymentOptions가 없는 오류 메시지만 포함될 수 있습니다.

orderUpdate 그룹 3 OrderUpdate

비동기식 주문 업데이트

이 섹션에서는 요청을 구성하는 상위 수준 유형과 일반적인 음식 주문 내장 작업 상호작용의 응답입니다.

AsyncOrderUpdateRequestMessage

주문이 제출 및 확인된 후 사용자에게 변경사항을 알립니다. 예를 들어 주문 상품이 배송 중이거나 배송 상품이 배송 중인지 사용자에게 알릴 수 있습니다. 가격이 변경되었습니다. 자세한 내용은 다음을 참조하시기 바랍니다.

다음 표에는 AsyncOrderUpdateRequestMessage 유형의 속성이 나와 있습니다.

속성 유형 설명
isInSandbox Boolean

이 업데이트가 전송된 주문이 샌드박스 결제임을 나타냅니다.

customPushMessage CustomPushMessage

필수 항목입니다.

요청에 대한 OrderUpdate를 포함합니다.

다음 예는 AsyncOrderUpdateRequestMessage 요소를 보여줍니다.

{
  "isInSandbox": true,
  "customPushMessage": {
    "orderUpdate": {
      "actionOrderId": "sample_action_order_id",
      "orderState": {
        "state": "IN_TRANSIT",
        "label": "Order is on the way"
      },
      "inTransitInfo": {
        "updatedTime": "2017-07-17T12:00:00Z"
      },
      "updateTime": "2017-07-17T12:00:00Z",
      "receipt": {
        "userVisibleOrderId": "userVisibleId1234"
      },
      "orderManagementActions": [
        {
          "type": "CUSTOMER_SERVICE",
          "button": {
            "title": "Contact customer service",
            "openUrlAction": {
              "url": "mailto:support@example.com"
            }
          }
        },
        {
          "type": "EMAIL",
          "button": {
            "title": "Email restaurant",
            "openUrlAction": {
              "url": "mailto:person@example.com"
            }
          }
        },
        {
          "type": "CALL_RESTAURANT",
          "button": {
            "title": "Call restaurant",
            "openUrlAction": {
              "url": "tel:+16505554679"
            }
          }
        }
      ],
      "infoExtension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension",
        "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z"
      }
    }
  }
}

AsyncOrderUpdateResponseMessage

AsyncOrderUpdateRequestMessage를 성공적으로 전송하면 Google이 응답합니다. HTTP 200 상태와 본문이 비어 있습니다 업데이트에 실패하면 Google에서는 주문 업데이트에 실패한 이유에 관한 세부정보를 응답으로 제공합니다.

주문 업데이트 유형

버튼

사용자 상호작용을 제공하기 위해 추가할 수 있는 사용자 인터페이스 요소를 정의합니다.

다음 표에는 Button 유형의 속성이 나와 있습니다.

속성 유형 설명
title String

필수 항목입니다.

표시 라벨 적절한 렌더링을 위해 30자(영문 기준) 이하의 문장을 사용하세요.

예: Contact us

openUrlAction OpenUrlAction

필수 항목입니다.

다음 예는 Button 요소를 보여줍니다.

{
  "title": "Send us feedback",
  "openUrlAction": {
    "url": "mailto:person@example.com"
  }
}

CancellationInfo

다음 표에는 CancellationInfo 유형의 속성이 나와 있습니다.

속성 유형 설명
reason String

필수 항목입니다.

OrderState.state가 'CANCELLED'인 경우 거부에 대한 표시 가능한 텍스트 이유입니다.

예: Restaurant closed

다음 예는 CancellationInfo 요소를 보여줍니다.

{
  "reason": "Insufficient inventory"
}

FoodOrderUpdateExtension

이 유형은 사용자에게 주문이 이루어지는 예상 간격을 제공합니다. 배송 완료 또는 수령 준비 완료입니다. 이 확장 프로그램을 OrderUpdate 정보를 사용할 수 있거나 마지막으로 전송된 이후 변경된 경우.

처리 간격에 대한 보수적인 추정치를 제공하여 사용자가 항상 충족되어야 합니다. 예를 들어 주문 금액이 13:00에 전송된 경우 예상 간격을 오늘 12시 45분과 같이 교통 상황에 따른 변동성과 일치 13:15까지 표시됩니다.

ISO 8601 기간 또는 타임스탬프는 OrderUpdateupdateTime (본질적으로 '현재')를 updateTime + duration '지금'이 아니면 이 형식을 사용하지 마세요. 실제로는 합리적인 기대입니다.

ISO 8601 간격은 간격의 끝입니다.

다음 표에는 FoodOrderUpdateExtension 유형의 속성이 나와 있습니다.

속성 유형 설명
@type 컨스트

이 확장 프로그램의 유형입니다. 이 필드는 항상 'type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension'으로 설정됩니다.

값: type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension

estimatedFulfillmentTimeIso8601 String

주문 상품이 배송되거나 수령이 가능할 것으로 예상되는 시간입니다. 문자열은 ISO 8601 형식이어야 하며 고정된 단일 시간이 아닌 간격과 일치해야 합니다. 허용되는 규칙은 간격, 기간, 날짜/시간입니다. 이 필드는 정보를 사용할 수 있게 되거나 조기 또는 지연된 도착과 같은 변경사항이 있을 때 SubmitOrderResponseMessage 또는 AsyncOrderUpdateRequestMessage로 전송할 수 있습니다.

예: 2017-07-17T13:00:00Z/2017-07-17T13:30:00Z

foodOrderErrors 목록<FoodOrderError>

주문 후 발생한 오류를 설명합니다. 장바구니 또는 상품당 오류 1개를 사용하는 것이 좋습니다. DeclineionInfo에서 다루지 않는 오류에는 FoodOrderUpdateExtension.FoodOrderErrors를 사용하세요.

항목이 1개 이상이어야 합니다.

다음 예는 FoodOrderUpdateExtension 요소를 보여줍니다.

예시 1

{
  "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension",
  "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z"
}

예 2

{
  "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension",
  "foodOrderErrors": [
    {
      "error": "NO_CAPACITY",
      "description": "Sorry, the restaurant cannot take your order right now."
    }
  ]
}

FulfillmentInfo

<ph type="x-smartling-placeholder">

다음 표에는 FulfillmentInfo 유형의 속성이 나와 있습니다.

속성 유형 설명
다음 속성 그룹 중 하나만 필요합니다.
deliveryTime 그룹 1 ISO 타임스탬프

FoodOrderingUpdateExtension 메시지에 예상FulfillmentTimeIso8601 사용

pickupTime 그룹 2 ISO 타임스탬프

FoodOrderingUpdateExtension 메시지에 예상FulfillmentTimeIso8601 사용

다음 예는 FulfillmentInfo 요소를 보여줍니다.

예시 1

{
  "deliveryTime": "2017-05-10T02:36:38.803Z"
}

예 2

{
  "pickupTime": "2019-12-26T07:24:27.803Z"
}

InTransitInfo

<ph type="x-smartling-placeholder">

다음 표에는 InTransitInfo 유형의 속성이 나와 있습니다.

속성 유형 설명
updatedTime ISO 타임스탬프

FoodOrderingUpdateExtension 메시지에 예상FulfillmentTimeIso8601 사용

다음 예는 InTransitInfo 요소를 보여줍니다.

{
  "updatedTime": "2017-05-10T02:36:38.803Z"
}

LineItemUpdate

다음 표에는 LineItemUpdate 유형의 속성이 나와 있습니다.

속성 유형 설명
orderState OrderState
price Price
reason String

변경 이유입니다. 가격 변경에 필요합니다.

다음 예는 LineItemUpdate 요소를 보여줍니다.

{
  "orderState": {
    "state": "CONFIRMED",
    "label": "Provider confirmed"
  },
  "price": {
    "type": "ESTIMATE",
    "amount": {
      "currencyCode": "USD",
      "units": "5",
      "nanos": 500000000
    }
  },
  "reason": "Menu updated prices."
}

OpenUrlAction

다음 표에는 OpenUrlAction 유형의 속성이 나와 있습니다.

속성 유형 설명
url String

필수 항목입니다.

버튼을 클릭하거나 터치하여 트리거되는 작업입니다. 적용 가능한 접두사 목록은 orderManagementActionType에 따라 다릅니다. 'EMAIL': 접두사는 'mailto'여야 합니다. 'CALL': 접두사는 'tel'이어야 합니다. 'CUSTOMER_SERVICE': 접두사는 'mailto', 'tel', 'http' 또는 'https'여야 합니다.

예: https://www.google.com

OrderManagementAction

주문 관리를 사용하면 사용자가 주문 후 지원을 받을 수 있으며 제출 주문 내 각 OrderUpdate AppResponse 이후에 AsyncOrderUpdateRequestMessage 특정 주문에 전송되는 주문 관리 작업은 있습니다.

예를 들어 'CREATED' CUSTOMER_SERVICE는 고객 지원 전화에 문의할 수 있습니다. 그런 다음 '확인됨' 주, CUSTOMER_SERVICE 전화를 받을 수 있는 최선의 방법이 될 경우 고객 담당자에게 연락합니다. 마찬가지로 주문이 'FULFILLED' 상태인 경우 주 CUSTOMER_SERVICE에서 지원 이메일 주소를 참조할 수 있습니다.

다음 표에는 OrderManagementAction 유형의 속성이 나와 있습니다.

속성 유형 설명
type OrderManagementActionType

필수 항목입니다.

button Button

필수 항목입니다.

다음 예는 OrderManagementAction 요소를 보여줍니다.

예시 1

{
  "type": "CUSTOMER_SERVICE",
  "button": {
    "title": "Contact customer service",
    "openUrlAction": {
      "url": "mailto:support@example.com"
    }
  }
}

예 2

{
  "type": "EMAIL",
  "button": {
    "title": "Email restaurant",
    "openUrlAction": {
      "url": "mailto:person@example.com"
    }
  }
}

OrderManagementActionType

OrderManagementAction와 관련된 유형을 정의합니다.

OrderManagementActionType 유형에 사용 가능한 값은 다음과 같습니다.

  • CUSTOMER_SERVICE: 주문 확인 페이지에 표시될 고객 서비스의 이메일 또는 연락처 번호입니다. 필수 항목입니다. openUrlAction.url 접두사는 'mailto', 'tel', 'http' 또는 'https'여야 합니다.
  • EMAIL: 주문 세부정보 페이지에서만 이메일을 보낼 수 있습니다. openUrlAction.url 접두사는 'mailto'여야 합니다.
  • CALL_DRIVER: 주문 세부정보 페이지의 통화 작업만 가능합니다. openUrlAction.url 접두사는 'tel'이어야 합니다.
  • CALL_RESTAURANT: 주문 세부정보 페이지의 통화 작업만 가능합니다. openUrlAction.url 접두사는 'tel'이어야 합니다.

OrderState

주문의 현재 상태입니다. 또한 OrderState의 각 state 값도 의 구매 상태를 나타냅니다. myaccount.google.com으로 로그인합니다.

다음 표에는 OrderState 유형의 속성이 나와 있습니다.

속성 유형 설명
state OrderStateEnum

필수 항목입니다.

label String

필수 항목입니다.

사용자에게 표시되는 상태의 표시 문자열입니다. 첫 글자는 대문자로 표기합니다.

예: Your order has been received

다음 예는 OrderState 요소를 보여줍니다.

{
  "state": "CONFIRMED",
  "label": "Provider confirmed"
}

OrderStateEnum

OrderState와 관련된 유형을 정의합니다.

OrderStateEnum 유형에 사용 가능한 값은 다음과 같습니다.

  • CREATED: 통합업체에서 생성했으며 제공업체의 확인을 기다리는 중입니다. 'Ordered' 구매 상태
  • CONFIRMED: 제공업체에서 주문을 확인했으며 활성 상태입니다. 'Accepted' 구매 상태
  • REJECTED: 통합업체 또는 제공업체가 주문을 거부했습니다. 'Declined' 구매 상태
  • CANCELLED: 사용자가 주문을 취소했습니다. '취소됨' 구매 상태
  • IN_PREPARATION: 음식이 준비 중입니다. '상태 알 수 없음'에 해당합니다. 구매 상태가 됩니다.
  • READY_FOR_PICKUP: 음식이 준비되었습니다. '수령 준비 완료'에 해당합니다. 구매 상태가 됩니다.
  • IN_TRANSIT: 주문 상품이 배송 중입니다. '진행 중' 구매 상태가 됩니다.
  • FULFILLED: 사용자가 주문한 상품을 수령함 'Picked up' 구매 상태

영수증

이 유형을 제출 주문 AppResponse으로 전송합니다. 여기서 OrderState는 'CONFIRMED', 'FULFILLED' 또는 'IN_transit'입니다. 영수증 발송 시간: userVisibleOrderId를 사용할 수 있게 되는 시간 Kubernetes에서 후속 업데이트에서 영수증을 전송합니다.

다음 표에는 Receipt 유형의 속성이 나와 있습니다.

속성 유형 설명
userVisibleOrderId String

필수 항목입니다.

주문이 '확인됨', '배송 중' 또는 '완료'인 경우 필수입니다. 이 필드는 이 주문에 대해 사용자에게 표시되는 단일 ID (일반적으로 식당의 주문 ID)이며 통합업체의 영수증과 Google 주문 카드에 모두 표시됩니다. 사용자는 이 ID를 사용하여 제공업체 및 통합업체의 고객 서비스 주문을 참조할 수 있어야 합니다. 지정된 OrderUpdate에서 이 ID를 한 번만 제공하면 됩니다. 이 필드가 제공될 때까지 actionOrderId는 userVisibleOrderId입니다. 예를 들어 식당에서 주문을 확인할 때까지 userVisibleOrderId가 없을 수 있습니다. 확인이 완료되면 OrderUpdate 및 영수증과 함께 AsyncOrderUpdateRequestMessage를 전송해야 합니다.

다음 예는 Receipt 요소를 보여줍니다.

{
  "userVisibleOrderId": "userVisibleId1234"
}

RejectionInfo

다음 표에는 RejectionInfo 유형의 속성이 나와 있습니다.

속성 유형 설명
type RejectionType

필수 항목입니다.

reason String

내부 로깅에 사용된 거부 이유입니다. 이 필드는 사용자에게 표시되지 않습니다.

다음 예는 RejectionInfo 요소를 보여줍니다.

{
  "type": "PAYMENT_DECLINED",
  "reason": "There is an issue with payment processing."
}

RejectionType

RejectionType 유형에 사용 가능한 값은 다음과 같습니다.

  • INELIGIBLE: 정책 또는 위험 관련 문제로 인해 자격 요건을 충족하지 않는 사용자입니다.
  • PAYMENT_DECLINED: 결제 처리에 문제가 있습니다.
  • UNAVAILABLE_SLOT: DeliveryInfo 또는 PickupInfo에서 지정한 주문 시점에 주문을 미리 처리할 수 없습니다.
  • PROMO_NOT_APPLICABLE: 프로모션에 문제가 있습니다.
  • UNKNOWN: 기타 이유

결제 관련 유형

이 섹션에서는 음식 주문에 사용되는 결제 관련 유형을 설명합니다. 합니다.

ActionProvidedPaymentOptions

작업 제공 결제 수단 요구사항

다음 표에는 ActionProvidedPaymentOptions 유형의 속성이 나와 있습니다.

속성 유형 설명
paymentType PaymentType

필수 항목입니다.

displayName String

필수 항목입니다.

영수증에 표시된 결제 수단의 이름입니다.

예: Taco Points Total

onFulfillmentPaymentData OnFulfillmentPaymentData

결제 유형 'ON_FULFILLMENT'에 대한 추가 데이터입니다. 예를 들어 이 필드를 사용하여 주문 처리 시 현금 또는 카드 지원 여부를 지정할 수 있습니다.

다음 예는 ActionProvidedPaymentOptions 요소를 보여줍니다.

{
  "paymentType": "ON_FULFILLMENT",
  "displayName": "Pay when you get your food.",
  "onFulfillmentPaymentData": {
    "supportedPaymentOptions": [
      "Cash",
      "Card"
    ]
  }
}

AllowedAuthMethods

AllowedAuthMethods 유형에 사용 가능한 값은 다음과 같습니다.

  • PAN_ONLY: 사용자의 Google 계정에 등록된 결제 카드와 연결된 인증 방법입니다. 반환된 결제 데이터에는 만료 월 및 만료 연도가 포함된 개인 계좌 번호 (PAN)가 포함됩니다.

AllowedCardNetworks

AllowedCardNetworks 유형에 사용 가능한 값은 다음과 같습니다.

  • AMEX
  • DISCOVER
  • INTERAC
  • JCB
  • MASTERCARD
  • VISA

BillingAddressParameters

이 객체를 사용하면 요청된 청구서 수신 주소에 대해 반환될 추가 필드를 설정할 수 있습니다.

다음 표에는 BillingAddressParameters 유형의 속성이 나와 있습니다.

속성 유형 설명
format String

거래를 완료하려면 청구서 수신 주소 형식이 필요합니다. MIN: 이름, 국가 코드, 우편번호입니다. 전체: 이름, 상세 주소, 구/군/시, 주/도, 국가 코드, 우편번호.

다음 예는 BillingAddressParameters 요소를 보여줍니다.

예시 1

{
  "format": "MIN"
}

예 2

{
  "format": "FULL"
}

CardParameters

이 객체를 사용하여 사이트의 Google Pay API 지원을 구성합니다.

다음 표에는 CardParameters 유형의 속성이 나와 있습니다.

속성 유형 설명
allowedAuthMethods List<Const>

필수 항목입니다.

카드 거래를 인증하기 위해 지원되는 필드입니다.

항목이 1개 이상이어야 합니다.

allowedCardNetworks 목록<AllowedCardNetworks>

필수 항목입니다.

지원하는 하나 이상의 카드 네트워크이며 Google Pay API에서도 지원됩니다.

항목이 1개 이상이어야 합니다.

billingAddressRequired Boolean

청구서 수신 주소가 필요한 경우 true로 설정하세요. 거래를 처리하는 데 필요한 경우에만 청구서 수신 주소를 요청하세요. 결제 과정에서 불편이 가중되고 전환율이 낮아질 수 있습니다.

billingAddressParameters BillingAddressParameters

billingAddressRequired가 true로 설정된 경우 반환되는 예상 필드입니다.

cvcRequired Boolean

TimesofMoney를 사용하는 경우 true로, 기타 모든 결제 대행업체는 false로 설정합니다.

다음 예는 CardParameters 요소를 보여줍니다.

예시 1

{
  "allowedAuthMethods": [
    "PAN_ONLY"
  ],
  "allowedCardNetworks": [
    "AMEX",
    "DISCOVER"
  ],
  "billingAddressRequired": false,
  "cvcRequired": false
}

예 2

{
  "allowedAuthMethods": [
    "PAN_ONLY"
  ],
  "allowedCardNetworks": [
    "AMEX",
    "DISCOVER"
  ],
  "billingAddressRequired": true,
  "billingAddressParameters": {
    "format": "MIN"
  },
  "cvcRequired": false
}

GoogleProvidedPaymentInstrument

다음 표에는 GoogleProvidedPaymentInstrument 유형의 속성이 나와 있습니다.

속성 유형 설명
instrumentToken String

필수 항목입니다.

이전에 지정된 GoogleProvidedPaymentOptions에 따라 참여 Google Pay 대행업체에 사용자에게 청구하기 위한 결제 토큰을 포함하는 Base64 인코딩 문자열입니다.

billingAddress PostalAddress

결제의 청구서 수신 주소입니다.

다음 예는 GoogleProvidedPaymentInstrument 요소를 보여줍니다.

{
  "instrumentToken": "abcd",
  "billingAddress": {
    "regionCode": "US",
    "postalCode": "94043",
    "administrativeArea": "CA",
    "locality": "Mountain View",
    "addressLines": [
      "1350 Charleston Road"
    ]
  }
}

GoogleProvidedPaymentOptions

Google에서 제공하는 결제 수단의 요구사항

다음 표에는 GoogleProvidedPaymentOptions 유형의 속성이 나와 있습니다.

속성 유형 설명
facilitationSpecification String

문자열 형식의 PaymentDataRequest JSON. 이 객체를 사용하여 사이트의 Google Pay API 지원을 구성합니다.

supportedCardNetworks 목록<SupportedCardNetworks>

대신 facilitationSpecification을 사용하세요. 상담사가 지원하는 카드 네트워크 유형입니다.

이 필드는 지원 중단되었습니다.

prepaidCardDisallowed Boolean

대신 facilitationSpecification을 사용하세요. 선불카드가 결제 유형으로 허용되는지 여부입니다.

이 필드는 지원 중단되었습니다.

billingAddressRequired Boolean

대신 facilitationSpecification을 사용하세요. 청구서 수신 주소가 필요한지 여부입니다.

이 필드는 지원 중단되었습니다.

tokenizationParameters TokenizationParameters

이 필드는 지원 중단되었습니다.

다음 예는 GoogleProvidedPaymentOptions 요소를 보여줍니다.

예시 1

{
  "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": {  \"merchantId\": \"Merchant ID\",  \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [  {    \"type\": \"CARD\",    \"parameters\": {      \"allowedAuthMethods\": [        \"PAN_ONLY\"      ],      \"allowedCardNetworks\": [        \"VISA\",        \"AMEX\",        \"MASTERCARD\"      ],      \"billingAddressRequired\": false    },    \"tokenizationSpecification\": {      \"type\": \"PAYMENT_GATEWAY\",      \"parameters\": {        \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\",        \"gateway\": \"stripe\",        \"stripe:version\": \"2019-05-16\"      }    }  }],\"transactionInfo\": {  \"currencyCode\": \"AUD\",  \"totalPriceStatus\": \"ESTIMATED\",  \"totalPrice\": \"1.0\"}}"
}

예 2

{
  "tokenizationParameters": {
    "tokenizationType": "PAYMENT_GATEWAY",
    "parameters": {
      "gateway": "braintree",
      "braintree:apiVersion": "v1",
      "braintree:sdkVersion": "1.4.0",
      "braintree:merchantId": "a1b2c3d4e5",
      "braintree:clientKey": "production_braintree_client_key",
      "braintree:authorizationFingerprint": "same_as_client_key"
    }
  },
  "supportedCardNetworks": [
    "AMEX",
    "DISCOVER",
    "MASTERCARD",
    "JCB",
    "VISA"
  ],
  "prepaidCardDisallowed": true
}

예시 3

{
  "tokenizationParameters": {
    "tokenizationType": "PAYMENT_GATEWAY",
    "parameters": {
      "gateway": "stripe",
      "stripe:publishableKey": "pk_live_stripe_client_key",
      "stripe:version": "2017-04-06"
    }
  },
  "supportedCardNetworks": [
    "AMEX",
    "DISCOVER",
    "MASTERCARD",
    "VISA",
    "JCB"
  ],
  "prepaidCardDisallowed": true,
  "billingAddressRequired": true
}

MerchantInfo

이 객체를 사용하여 사이트의 Google Pay API 지원을 구성합니다.

다음 표에는 MerchantInfo 유형의 속성이 나와 있습니다.

속성 유형 설명
merchantId String

Google Pay에서 발급한 Google 판매자 식별자입니다.

merchantName String

필수 항목입니다.

UTF-8로 인코딩된 판매자 이름입니다. 판매자 이름이 결제 명세서에 렌더링됩니다.

OnFulfillmentPaymentData

이 객체를 사용하여 PaymentType 'ON_FULFILLMENT'의 추가 데이터를 전송합니다.

다음 표에는 OnFulfillmentPaymentData 유형의 속성이 나와 있습니다.

속성 유형 설명
supportedPaymentOptions 목록<PaymentOptionsEnums>

주문 처리 시 사용자가 사용할 수 있는 결제 옵션 목록입니다.

다음 예는 OnFulfillmentPaymentData 요소를 보여줍니다.

{
  "supportedPaymentOptions": [
    "Cash",
    "Card"
  ]
}

매개변수

TokenizationParameters와 관련된 유형을 정의합니다.

다음 표에는 Parameters 유형의 속성이 나와 있습니다.

속성 유형 설명
gateway String

필수 항목입니다.

예: braintree

gatewayMerchantId String
[additionalKey: string] String 추가 키-값 쌍

다음 예는 Parameters 요소를 보여줍니다.

예시 1

{
  "gatewayMerchantId": "90412491",
  "gateway": "olo"
}

예 2

{
  "gateway": "braintree",
  "braintree:apiVersion": "v1",
  "braintree:sdkVersion": "1.4.0",
  "braintree:merchantId": "YOUR_MERCHANT_ID",
  "braintree:clientKey": "YOUR_BRAINTREE_SANDVOX_OR_PRODUCTION_KEY"
}

PaymentDataRequest

이 객체를 사용하여 사이트의 Google Pay API 지원을 구성합니다.

다음 표에는 PaymentDataRequest 유형의 속성이 나와 있습니다.

속성 유형 설명
apiVersion 컨스트

필수 항목입니다.

API 주 버전

값: 2

apiVersionMinor 컨스트

필수 항목입니다.

API 부 버전입니다.

값: 0

merchantInfo MerchantInfo

필수 항목입니다.

(Google Pay 판매자 ID) 결제 데이터를 요청하는 판매자에 대한 정보입니다.

allowedPaymentMethods 목록<PaymentMethod>

필수 항목입니다.

Google Pay API에서 지원하는 하나 이상의 결제 수단에 대한 지원을 지정합니다.

transactionInfo TransactionInfo

필수 항목입니다.

사용자의 거래 동의 여부에 따른 거래 승인에 관한 세부정보입니다. 이 필드에는 총 가격 및 가격 상태가 포함됩니다.

다음 예는 PaymentDataRequest 요소를 보여줍니다.

{
  "apiVersion": 2,
  "apiVersionMinor": 0,
  "merchantInfo": {
    "merchantId": "10391231",
    "merchantName": "Burrito Town"
  },
  "allowedPaymentMethods": [
    {
      "type": "CARD",
      "parameters": {
        "allowedAuthMethods": [
          "PAN_ONLY"
        ],
        "allowedCardNetworks": [
          "VISA",
          "AMEX",
          "MASTERCARD"
        ],
        "billingAddressRequired": true,
        "billingAddressParameters": {
          "format": "FULL"
        },
        "cvcRequired": false
      },
      "tokenizationSpecification": {
        "type": "PAYMENT_GATEWAY",
        "parameters": {
          "gateway": "stripe",
          "stripe:version": "2019-05-16",
          "stripe:publishableKey": "pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA"
        }
      }
    }
  ],
  "transactionInfo": {
    "currencyCode": "INR",
    "totalPriceStatus": "ESTIMATED",
    "totalPrice": "185.00"
  }
}

PaymentInfo

주문의 결제 관련 정보입니다.

다음 표에는 PaymentInfo 유형의 속성이 나와 있습니다.

속성 유형 설명
displayName String

필수 항목입니다.

사용자가 볼 수 있는 결제 수단의 이름으로, 영수증에 표시됩니다.

paymentType PaymentType

필수 항목입니다.

googleProvidedPaymentInstrument GoogleProvidedPaymentInstrument

작업에서 사용할 수 있는 토큰입니다. CheckoutResponseMessage에서 GoogleProvidedPaymentOptions를 결제 옵션으로 지정한 경우에만 이를 지정하세요.

다음 예는 PaymentInfo 요소를 보여줍니다.

예시 1

{
  "displayName": "Visa\u2006****\u20061111",
  "googleProvidedPaymentInstrument": {
    "instrumentToken": "abcd"
  },
  "paymentType": "PAYMENT_CARD"
}

예 2

{
  "displayName": "Visa\u2006****\u20061111",
  "googleProvidedPaymentInstrument": {
    "instrumentToken": "abcd",
    "billingAddress": {
      "regionCode": "US",
      "postalCode": "94043",
      "administrativeArea": "CA",
      "locality": "Mountain View",
      "addressLines": [
        "123 Random Street",
        "Unit ABC"
      ],
      "recipients": [
        "sample_receipient"
      ]
    }
  },
  "paymentType": "PAYMENT_CARD"
}

PaymentMethod

이 객체를 사용하여 사이트의 Google Pay API 지원을 구성합니다.

다음 표에는 PaymentMethod 유형의 속성이 나와 있습니다.

속성 유형 설명
type 컨스트

필수 항목입니다.

지원되는 결제 수단의 짧은 식별자입니다. 현재 CARD만 지원됩니다.

값: CARD

parameters CardParameters

필수 항목입니다.

제공된 결제 수단 유형을 구성하는 데 필요한 매개변수입니다.

tokenizationSpecification TokenizationSpecification

필수 항목입니다.

결제 정보를 수신할 계정 또는 복호화 제공업체를 구성합니다. 이 속성은 CARD 결제 수단에 필요합니다.

다음 예는 PaymentMethod 요소를 보여줍니다.

{
  "type": "CARD",
  "parameters": {
    "allowedAuthMethods": [
      "PAN_ONLY"
    ],
    "allowedCardNetworks": [
      "VISA",
      "AMEX",
      "MASTERCARD"
    ],
    "billingAddressRequired": false
  },
  "tokenizationSpecification": {
    "type": "PAYMENT_GATEWAY",
    "parameters": {
      "gatewayMerchantId": "90412491",
      "gateway": "olo"
    }
  }
}

PaymentOptions

다음 표에는 PaymentOptions 유형의 속성이 나와 있습니다.

속성 유형 설명
다음 속성 그룹 중 하나만 필요합니다.
googleProvidedOptions 그룹 1 GoogleProvidedPaymentOptions

actionProvidedOptions와 상호 배타적입니다. gPay를 통한 온라인 결제에 사용하세요.

actionProvidedOptions 그룹 2 ActionProvidedPaymentOptions

googleProvidedOptions와 상호 배타적입니다. '상품 인도 결제'에 사용합니다. '처리 시 결제'와 같은 형태가 있습니다.

다음 예는 PaymentOptions 요소를 보여줍니다.

예시 1

{
  "googleProvidedOptions": {
    "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": {  \"merchantId\": \"Merchant ID\",  \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [  {    \"type\": \"CARD\",    \"parameters\": {      \"allowedAuthMethods\": [        \"PAN_ONLY\"      ],      \"allowedCardNetworks\": [        \"VISA\",        \"AMEX\",        \"MASTERCARD\"      ],      \"billingAddressRequired\": false    },    \"tokenizationSpecification\": {      \"type\": \"PAYMENT_GATEWAY\",      \"parameters\": {        \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\",        \"gateway\": \"stripe\",        \"stripe:version\": \"2019-05-16\"      }    }  }],\"transactionInfo\": {  \"currencyCode\": \"AUD\",  \"totalPriceStatus\": \"ESTIMATED\",  \"totalPrice\": \"1.0\"}}"
  }
}

예 2

{
  "googleProvidedOptions": {
    "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": {  \"merchantId\": \"Merchant ID\",  \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [  {    \"type\": \"CARD\",    \"parameters\": {      \"allowedAuthMethods\": [        \"PAN_ONLY\"      ],      \"allowedCardNetworks\": [        \"VISA\",        \"AMEX\",        \"MASTERCARD\"      ],      \"billingAddressRequired\":true,   \"billingAddressParameters\": {  \"format\":\"MIN\"  }    },    \"tokenizationSpecification\": {      \"type\": \"PAYMENT_GATEWAY\",      \"parameters\": {        \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\",        \"gateway\": \"stripe\",        \"stripe:version\": \"2019-05-16\"      }    }  }],\"transactionInfo\": {  \"currencyCode\": \"AUD\",  \"totalPriceStatus\": \"ESTIMATED\",  \"totalPrice\": \"1.0\"}}"
  }
}

예시 3

{
  "actionProvidedOptions": {
    "paymentType": "ON_FULFILLMENT",
    "displayName": "Pay when you get your food.",
    "onFulfillmentPaymentData": {
      "supportedPaymentOptions": [
        "Cash",
        "Card"
      ]
    }
  }
}

PaymentOptionsEnums

PaymentOptionsEnums 유형에 사용 가능한 값은 다음과 같습니다.

  • Cash
  • Card
  • UPI
  • Paytm

PaymentType

PaymentType 유형에 사용 가능한 값은 다음과 같습니다.

  • PAYMENT_CARD: GoogleProvidedPaymentOptions에 사용합니다.
  • ON_FULFILLMENT: ActionProvidedPaymentOptions:

SupportedCardNetworks

GoogleProvidedPaymentOptions와 관련된 유형을 정의합니다.

SupportedCardNetworks 유형에 사용 가능한 값은 다음과 같습니다.

  • UNSPECIFIED_CARD_NETWORK
  • AMEX
  • DISCOVER
  • JCB
  • MASTERCARD
  • VISA

TokenizationParameters

<ph type="x-smartling-placeholder"> GoogleProvidedPaymentOptions와 관련된 유형을 정의합니다.

다음 표에는 TokenizationParameters 유형의 속성이 나와 있습니다.

속성 유형 설명
tokenizationType Enum [ "UNSPECIFIED_TOKENIZATION_TYPE", "PAYMENT_GATEWAY" ]

필수 항목입니다.

대신 facilitationSpecification을 사용하세요. 허용되는 토큰 유형입니다.

parameters Parameters

대신 facilitationSpecification을 사용하세요.

TokenizationSpecification

이 객체를 사용하면 청구 가능한 결제 정보를 수신하도록 계정을 구성할 수 있습니다.

다음 표에는 TokenizationSpecification 유형의 속성이 나와 있습니다.

속성 유형 설명
type 컨스트

필수 항목입니다.

parameters Parameters

필수 항목입니다.

다음 예는 TokenizationSpecification 요소를 보여줍니다.

예시 1

{
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gatewayMerchantId": "1247192",
    "gateway": "cybersource"
  }
}

예 2

{
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "stripe",
    "stripe:version": "2018-10-31",
    "stripe:publishableKey": "12378127"
  }
}

TransactionInfo

이 객체는 결제자의 결제 능력을 결정하는 거래를 설명합니다. 결제 승인 대화상자를 표시하는 데 사용됩니다.

다음 표에는 TransactionInfo 유형의 속성이 나와 있습니다.

속성 유형 설명
currencyCode String

필수 항목입니다.

ISO 4217 알파벳 통화 코드입니다.

transactionId String

트랜잭션 시도를 식별하는 고유 ID입니다. 판매자는 Google Pay 거래 시도에 기존 ID를 사용하거나 특정 ID를 생성할 수 있습니다. 이 필드는 Google Transaction Events API에 콜백을 보낼 때 필요합니다.

totalPriceStatus 컨스트

필수 항목입니다.

'ESTIMATED' 사용 를 기본값으로 사용합니다. 청구서 수신 주소에 따라 수집된 판매세와 같은 응답 세부정보를 바탕으로 총 가격이 조정될 수 있습니다.

값: ESTIMATED

totalPrice String

필수 항목입니다.

필요에 따라 십진수를 소수점 이하 두 자리로 표시하는 거래의 총 금액입니다. 이 필드는 car.totalPrice와 같은 값을 가져야 합니다.

다음 예는 TransactionInfo 요소를 보여줍니다.

{
  "totalPriceStatus": "ESTIMATED",
  "totalPrice": "12.34",
  "currencyCode": "USD"
}