基本型
カート
注文の詳細と、受け取りまたは受け取りに関するリクエストが含まれます。カートには、配達の詳細、無料、配達先住所も含まれています。Cart
オブジェクトは Checkout AppRequest
で定義されます。f.Checkout AppResponse
にカートのコピーを含める。
次の表に、Cart
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
@type |
一貫性 |
このオブジェクトのタイプ。親の Cart オブジェクトが ProposedOrder の一部である場合は、このフィールドを省略します。 値: |
|
id |
文字列 |
カートの ID(省略可)。 |
|
merchant |
Merchant |
このカートと提携している販売者です。 |
|
lineItems |
リスト&LineItem > |
必須。 ユーザーが注文している商品やサービスのリスト。 1 個以上の項目が必要です。 |
|
promotions |
リスト&Promotion > |
このカートに適用されるプロモーション。現在サポートされているプロモーションは 1 つのみです。 |
|
notes |
文字列 |
注文または配送の手順に関する注意事項。 |
|
extension |
FoodCartExtension |
フルフィルメント設定など、ユーザーの詳細を定義します。 |
次の例は、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" } } }
Contact
注文を受けたユーザーの詳細を指定します。AppResponse
でのみ使用できます。次の表に、Contact
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
displayName |
文字列 |
注文を受け取る側の人の名前。firstName と lastName が指定されていない場合は、このフィールドを使用します。 例: |
|
email |
文字列 |
注文を受け取ったユーザーのメールアドレス。 例: |
|
firstName |
文字列 |
注文を受け取ったユーザーの名。 例: |
|
lastName |
文字列 |
注文を受けた人物の姓。 例: |
|
phoneNumber |
文字列 |
注文を受けた人の電話番号(国コードを含む)。 例: |
|
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
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
deliveryTimeIso8601 |
文字列 |
目安のお届け日数(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://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations購入手続きのレスポンスの際に目安のお届け日数を更新します。 例: |
次の例は、DeliveryInfo
要素を示しています。
例
{ "deliveryTimeIso8601": "PT90M" }
免責条項
次の表に、Disclaimer
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
predefinedMessage |
PredefinedMessage |
必須。 ご購入手続きの際に、事前定義された免責条項のメッセージを表示する。 |
|
feeAmount |
Money |
パートナーは、この注文について N 通りの料金を販売者に請求します。 |
|
feeAmountRange |
FeeAmountRange |
パートナーは、注文ごとに N ~ M の料金をレストランに請求します。 |
|
feePercent |
Number |
パートナーは、この注文について 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
: 広告申込情報、FulfillmentOption、プロモーションに無効なデータが含まれています。NOT_FOUND
: 広告申込情報タイプ、FulfillmentOption、またはプロモーションが見つかりません。PRICE_CHANGED
: 商品アイテムの価格が変更されました。
料金範囲
次の表に、FeeAmountRange
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
minFeeAmount |
Money |
請求される料金の下限。 |
|
maxFeeAmount |
Money |
請求される料金の上限。 |
料金の割合の範囲
次の表に、FeePercentRange
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
minFeePercent |
Number |
課金率の下限。 |
|
maxFeePercent |
Number |
請求可能な割合の上限。 |
食品カートの拡張機能
フルフィルメントの設定など、ユーザーに関する詳細情報が含まれます。
次の表に、FoodCartExtension
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
@type |
一貫性 |
この広告表示オプションのタイプ。このフィールドは常に "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" } }
食品エラーの拡張機能
リクエストの処理中に発生した 1 つ以上のエラーを示します。 次の表に、FoodErrorExtension
タイプのフィールドを示します。エラーは CheckoutResponse
で送信できます。
次の表に、FoodErrorExtension
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
@type |
一貫性 | 必須。 この広告表示オプションのタイプ。 値: |
|
foodOrderErrors |
リスト&FoodOrderError > |
必須。 発生したエラーを説明する FoodOrderError オブジェクトの配列。カートごと、または商品アイテムごとに 1 件のエラーを推奨します。 1 個以上の項目が必要です。 |
|
correctedProposedOrder |
ProposedOrder |
修正された新しい ProposedOrder です。元の ProposedOrder に復元可能なエラーがある場合は、このオブジェクトを返します。たとえば、カート内の 1 つ以上の広告申込情報の価格を変更した場合は、回復可能なエラーとなります。有効な ProposedOrder を使用した回復可能なエラーは、ユーザーにカートの確認を求める代わりに、確認ステージに進みます。 |
|
paymentOptions |
PaymentOptions |
ユーザーに対して選択されたデフォルトの支払い方法。 |
|
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
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
@type |
一貫性 | 必須。 この広告表示オプションのタイプ。このフィールドは常に "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
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
id |
文字列 |
Google が割り当てた一意の ID。FoodOrderError または AsyncOrderUpdateRequest を送信するときに、このフィールドを使用して、同じ特典 ID を持つ商品がカートに複数含まれているかを確認します。 例: |
|
offerId |
文字列 |
商品アイテムの特典 ID。 例: |
|
name |
文字列 |
オプション名。 例: |
|
price |
Money |
||
note |
文字列 |
オプションに関する注意事項。 |
|
quantity |
Number |
項目のオプションの場合は、項目の数。 例: |
|
subOptions |
リスト&FoodItemOption > |
オプションのサブオプション(ある場合)。 例: |
次の例は、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 } ] }
食品注文エラー
CheckoutResponse
のエラーの詳細が含まれます。
次の表に、FoodOrderError
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
error |
Error |
必須。 |
|
id |
文字列 |
商品アイテムレベルのエラーの場合、このフィールドは必須です。これは、Google によって割り当てられた、メニュー アイテム用の ADB.id またはアドオン用の FoodItemOption.id です。 |
|
description |
文字列 |
エラーの説明。この説明は内部ロギング用で、ユーザーには表示されません。 |
|
updatedPrice |
Money |
エラーを引き起こしたアイテムの新しい価格。エラーが &PRICE_CHANGED" の場合にのみ必要です。 |
|
availableQuantity |
整数 |
エラーを引き起こした商品アイテムの新しい在庫数。これは、エラーが「INVALID"」または「NOT_FOUND"」の場合にのみ必要です。「INVALID"」と「NOT_FOUND"」は 0 にします。 |
次の例は、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" に設定されます。 値: |
|
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
オブジェクトは、次の方法で使用できます。
-
Checkout AppRequest
とSubmit AppRequest
では、Cart.extension.fulfillmentPreference
はユーザー設定(配送または受け取り)を保存します。購入手続きリクエストが送信される際、価格は常に 0 になります。 -
Checkout AppResponse
のProposedOrder.extension.availableFulfillmentOptions
: 1 つ以上の配信オプションを定義します(現在サポートされているオプションは 1 つだけです)。デフォルトのオプションは、ProposedOrder.otherItems
でLineItem
として指定します。FulfillmentOption
のofferId
は、ProposedOrder.otherItems
で指定されたLineItem
の ID と一致する必要があります。
次の表に、FulfillmentOption
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
offerId |
文字列 |
このフルフィルメント オプションの一意の識別子(ある場合)。 |
|
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 } }
フルフィルメントオプション情報
FulfillmentInfo
に関連する情報を定義します。
次の表に、FulfillmentOptionInfo
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
次のプロパティ グループのいずれか 1 つは必須です。 | |||
delivery |
グループ 1 | DeliveryInfo |
存在する場合は、配達注文を示します。 |
pickup |
グループ 2 | PickupInfo |
存在する場合は、テイクアウトの注文を示します。 |
画像
次の表に、Image
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
sourceUrl |
文字列 | 必須。 画像の URL。画像は 72×72 ピクセル以上にする必要があります。216×216 ピクセル以上の画像を使用してください。画像は 6 MB 未満、64 メガピクセル未満である必要があります。 |
LineItem
カートのコンテンツ(Cart.lineItems
)または注文に対する追加料金(ProposedOrder.otherItems
)を定義します。
次の表に、LineItem
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
id |
文字列 |
カート内の広告申込情報(ProposedOrder.cart.lineItems[0].id)は、注文作成時に Google が作成する一意の ID です。配送料金や税金などのアイテムの追加に使用される ProposedOrder の 広告申込情報(ProposedOrder.otherItems[0].id)の場合、id の値はプロバイダによって定義されます。たとえば、カートには、準備手順が異なる同じものが 2 つ入っています(トッピングが異なる中味のピザを 2 種類など)。この場合、両方のアイテムに同じ base OfferId があります。注文が不承認となったことを示す注文の更新リクエストを送信する場合は、この ID を曖昧さ回避の値として使用してください。つまり、特定のトッピングがなくピザの 1 つが拒否された場合、この ID は参照される商品の順番を Google が決定するのを支援します。otherItems を除き、このフィールドは必須です。 |
|
name |
文字列 | 必須。 項目の名前。これはユーザーに表示される文字列であり、可能な限りセンテンス ケースにする必要があります(「配送料」「サービス手数料」など)。このフィールドは、ユーザーの場合 100 文字で切り捨てられます。 |
|
type |
LineItemType |
必須。 |
|
quantity |
整数 |
含まれているアイテムの数。ProposedOrder.otherItems には適用されません。 |
|
description |
文字列 |
項目の説明。 |
|
price |
Price |
必須。 商品アイテムの価格。この値は、この広告申込情報のすべての商品またはサービスの合計価格を表します(つまり、アドオンにかかる費用を加算し、数量を掛けます)。たとえば、10 ドルのアイテムの数量が 3 の場合、価格は 30 ドルになります。基本料金が 5 ドルでアドオンが 1 ドルの場合、価格は 6 ドルになります。基本価格が $5 のピザ 2 本(数量 = 2)、それぞれ $1 のアドオンを追加した場合、価格は $12 になります。各 広告申込情報では、価格が「0」であっても価格を指定する必要があります。タイプが DISCOUNT の場合は、値を負の値で指定します(例: "-2")。 |
|
subLines |
リスト&SublineNote > |
省略可能で、タイプが「REGULAR」の場合にのみ有効です。ユーザーからの商品に関するメモは、決済リクエストや注文送信リクエストのこのフィールドに送信できます。メモが届いたら販売者が受け取れるようにします。リクエスト内で subLines[0].note として使用されます。これは、このフィールドがリクエストに存在する場合に、このフィールドで提供される唯一の値です。 1 項目以下でなければなりません。 |
|
offerId |
文字列 |
アイテムの 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 |
文字列 |
店舗の住所。 例: |
|
postalAddress |
PostalAddress |
||
zipCode |
文字列 |
例: |
|
city |
文字列 |
市区町村の名前です。 例: |
|
notes |
文字列 |
ゲートコードなど、場所に関するメモ。500 文字以内で指定してください。 例: |
次の例は、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 |
文字列 |
販売者の ID。指定すると、レストラン フィードの レストラン.@id と一致します。 例: |
|
name |
文字列 | 必須。 ユーザーに表示される販売者の表示名。 例: |
次の例は、Merchant
要素を示しています。
例
{ "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }
金額
次の表に、Money
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
currencyCode |
文字列 | 必須。 ISO 4217 形式の 3 文字の通貨コード。 例: |
|
units |
文字列 |
金額の整数部分の単位です。たとえば、currencyCode が "USD" の場合、"1" 単位は 1 米ドルです。 例: |
|
nanos |
整数 |
金額のナノ(10^-9)単位。この値は -999,999,999 ~+999,999,999 の範囲で指定します。次のルールを使用します。単位が正の場合、ナノは正またはゼロでなければなりません。単位がゼロの場合、ナノは正、0、または負にできます。単位が負の場合、ナノは負またはゼロでなければなりません。たとえば、$-1.75 は単位 = -1、ナノ = -750,000,000 と表されます。 例: |
次の例は、Money
要素を示しています。
例 1
{ "currencyCode": "USD", "units": "36", "nanos": 730000000 }
例 2
{ "currencyCode": "EUR", "units": "10" }
注文
最終注文(税金、手数料、配送料、最終的な支払い内容を含む)が含まれます。このオブジェクトは、Submit AppRequest
内のアクションによって受信されます。
次の表に、Order
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
finalOrder |
ProposedOrder |
必須。 注文を引き起こした注文の提案。 |
|
googleOrderId |
文字列 | 必須。 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 タイプのフィールドを示します。次の表に、OrderUpdate
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
actionOrderId |
文字列 | 必須。 インテグレーターのシステムで注文の一意の ID です。この更新が送信された注文の識別に使用されます。OrderUpdate で「CREATED」の注文の領収書.user_visible_order_id が 1 回以上指定されていない場合、この ID は Google 注文カードに表示される入力済みユーザーに表示される ID になります。 |
|
orderState |
OrderState |
必須。 注文の新しい状態。 |
|
lineItemUpdates |
Map<StringLineItemUpdate > |
||
updateTime |
ISO タイムスタンプ | 必須。 注文が更新された時刻。 |
|
orderManagementActions |
リスト&OrderManagementAction > |
注文後のサポートへの問い合わせや注文詳細の表示などのアクション。 アイテム数は 1~6 にする必要があります。 |
|
rejectionInfo |
RejectionInfo |
|
|
cancellationInfo |
CancellationInfo |
|
|
inTransitInfo |
InTransitInfo |
このフィールドは非推奨になりました。 |
|
fulfillmentInfo |
FulfillmentInfo |
このフィールドは非推奨になりました。 |
|
receipt |
Receipt |
領収書にユーザーに表示される注文 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 |
文字列 |
受け取り時間の目安(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)S"たとえば、PT90M は 90 分の期間を表します。デフォルト値の「PT0M」は、任意の受け取り時間が最も早いことを示します。参照: https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations購入手続きのレスポンスの際に予想受け取り時間を更新する場合に使用します。 例: |
次の例は、PickupInfo
要素を示しています。
例
{ "pickupTimeIso8601": "PT90M" }
PostalAddress
次の表に、PostalAddress
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
regionCode |
文字列 | 必須。 2 文字の国コード。 例: |
|
postalCode |
文字列 |
郵便番号です。 例: |
|
administrativeArea |
文字列 |
その国 / 地域の郵便住所に使用される最上位の行政区域。州、省、都道府県などが該当します。 例: |
|
locality |
文字列 |
このビジネスの市区町村。地域区分が明確に定義されていない地域や、この体系が当てはまらない地域では、このフィールドではなく、addressLines フィールドを使用します。 例: |
|
addressLines |
リスト&文字列> |
番地を指定するための 1 行以上の行です。地域が不明確になる可能性があるため、このフィールドを変更しないでください。 例: |
|
recipients |
リスト&文字列> |
注文の受取人のリスト。このフィールドは、billingAddress でのみ使用できます。 |
次の例は、PostalAddress
要素を示しています。
例
{ "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }
Price
次の表に、Price
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
type |
Enum [
"ESTIMATE",
"ACTUAL"
] |
必須。 プロモーション クーポンコード。 |
|
amount |
Money |
必須。 |
プロモーション
次の表に、Promotion
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
coupon |
文字列 | 必須。 プロモーション クーポンコード。 |
ProposedOrder
次の表に、ProposedOrder
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
id |
文字列 |
注文注文の任意の ID。 |
|
cart |
Cart |
必須。 ユーザーの項目。 |
|
otherItems |
リスト&LineItem > |
プロバイダが追加した商品(配送料、その他の手数料、税金など)。otherItem には、ユーザーが追加した謝礼や割引が含まれる場合もあります。 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
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
note |
文字列 | 必須。 |
タイムスタンプ
日付と時刻。次の形式で指定します。
"{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
CheckoutRequestMessage
は、actions.foodordering.intent.CHECKOUT
インテントを持つ AppRequest
です。
SendOrderRequestMessage
SubmitOrderRequestMessage
は、actions.foodordering.intent.TRANSACTION_DECISION
インテントを持つ AppRequest
です。
会話
Conversation
は 1 つのセッションにのみ一意です。必要に応じて、これを使用して複数の Checkout
アクションと SubmitOrder
アクションをリンクできます。
次の表に、Conversation
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
conversationId |
文字列 | 必須。 会話の一意の ID。 |
次の例は、Conversation
要素を示しています。
例
{ "conversationId": "CQnJ7Z4i7UmvEZ9ph3AxyZRJ" }
Input
カートの購入手続きで予想される引数。
次の表に、Input
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
intent |
Enum [
"actions.foodordering.intent.CHECKOUT",
"actions.intent.TRANSACTION_DECISION"
] |
必須。 決済リクエスト メッセージの場合は &actions.foodordering.intent.CHECKOUT"、注文リクエスト メッセージの送信の場合は &actions.intent.TRANSACTION_DECISION" に設定します。 |
|
arguments |
リスト&Argument > |
必須。 購入手続きを行うカート、または注文するカートが含まれます。 1 つの商品アイテムが必要です。 |
引数
ユーザーがチェックアウトしようとしている食品についての詳細を示します。購入手続きには期間延長のみが適用されます。注文の送信では、transactionDecisionValue のみが適用されます。
次の表に、Argument
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
次のプロパティ グループのいずれか 1 つは必須です。 | |||
extension |
グループ 1 | Cart |
ユーザーがチェックアウトしようとしている食品の詳細。 |
transactionDecisionValue |
グループ 2 | TransactionDecisionValue |
発注される注文と支払いの詳細が含まれます。 |
フルフィルメントの応答
AppResponse
次の表に、AppResponse
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
expectUserResponse |
一貫性 |
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
は、StructuredResponse
に checkoutResponse
または error
が配置された AppResponse
です。
SubmitOrderResponseMessage(注文レスポンス メッセージ)
SubmitOrderResponseMessage
は、StructuredResponse
に orderUpdate
が含まれる AppResponse
です。FinalResponse
カートのご購入手続き、SubmitOrderRequestMessage に対するレスポンス。
次の表に、FinalResponse
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
richResponse |
RichResponse |
必須。 CheckoutRequestMessage または SubmitOrderRequestMessage に対するレスポンスが含まれます。 |
購入手続きのレスポンス
次の表に、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。購入手続きが成功したことを示します。または FoodErrorExtension: 購入手続きの失敗を示します。レスポンスには、修正された ProposedOrder と PaymentOptions が含まれるか、PaymentOptions が指定されていないエラー メッセージがレスポンスに含まれます。SubmitOrderResponseMessage の場合、orderUpdate のみが適用されます。
次の表に、StructuredResponse
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
次のプロパティ グループのいずれか 1 つは必須です。 | |||
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 |
文字列 | 必須。 表示ラベル。適切に表示されるよう、全角 15(半角 30)文字以内で表記してください。 例: |
|
openUrlAction |
OpenUrlAction |
必須。 |
次の例は、Button
要素を示しています。
例
{ "title": "Send us feedback", "openUrlAction": { "url": "mailto:person@example.com" } }
CancellationInfo
次の表に、CancellationInfo
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
reason |
文字列 | 必須。 OrderState.state が &Cancelt;CANCELLED" の場合に拒否される表示テキストの理由。 例: |
次の例は、CancellationInfo
要素を示しています。
例
{ "reason": "Insufficient inventory" }
FoodOrderUpdateExtension
このタイプのサービスでは、注文した商品が配送されるまでの時間、または受け取り可能になるまでの期間がユーザーに提示されます。情報が利用可能である場合、または最後に送信されてから変更された場合はいつでも、この拡張機能を OrderUpdate
で送信します。
ユーザーの期待に沿うように、フルフィルメント間隔を控えめに見積もって提示します。たとえば、注文が今日 13:00 に配達されると予想される場合は、交通状況の変動(今日 12:45 ~ 13:15 など)に合わせて、確認する間隔を送信する必要があります。
ISO 8601 の期間またはタイムスタンプは、OrderUpdate
の updateTime
(実質的には「現在」)から updateTime
に duration
を足す期間を表します。このフォーマットは、「現在」かつ当然の期待事項である場合を除き、使用しないでください。
ISO 8601 の間隔は、間隔の開始から終了までの間隔を意味します。
次の表に、FoodOrderUpdateExtension
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
@type |
一貫性 |
この広告表示オプションのタイプ。このフィールドは常に "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension" に設定されます。 値: |
|
estimatedFulfillmentTimeIso8601 |
文字列 |
注文された商品が配送される、または受け取りの準備ができるまでにかかる時間の目安。文字列は ISO 8601 形式にして、単一の固定時間ではなく間隔に対応する必要があります。間隔、期間、日付/時刻などの規則を使用できます。このフィールドは、情報が利用可能になったときや、到着の遅れや遅延などの変更があった場合に、SubmitOrderResponseMessage または AsyncOrderUpdateRequestMessage で送信されます。 例: |
|
foodOrderErrors |
リスト&FoodOrderError > |
注文後に発生したエラーについて説明します。カートごと、または商品アイテムごとに 1 件のエラーを推奨します。RejectedionInfo の対象になっていないエラーには、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
次の表に、FulfillmentInfo
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
次のプロパティ グループのいずれか 1 つは必須です。 | |||
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
次の表に、InTransitInfo
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
updatedTime |
ISO タイムスタンプ |
FoodOrderingUpdateExtension メッセージで見積もり FulfillmentTimeIso8601 を使用する |
次の例は、InTransitInfo
要素を示しています。
例
{ "updatedTime": "2017-05-10T02:36:38.803Z" }
LineItemUpdate
次の表に、LineItemUpdate
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
orderState |
OrderState |
||
price |
Price |
||
reason |
文字列 |
変更の理由。価格変更の場合は必須。 |
次の例は、LineItemUpdate
要素を示しています。
例
{ "orderState": { "state": "CONFIRMED", "label": "Provider confirmed" }, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "5", "nanos": 500000000 } }, "reason": "Menu updated prices." }
OpenUrlAction
次の表に、OpenUrlAction
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
url |
文字列 | 必須。 ボタンをクリックまたはタップしてトリガーされるアクション。適用可能な接頭辞のリストは、orderManagementActionType によって異なります。"EMAIL": プレフィックスは "mailto" でなければなりません。"CALL": プレフィックスは &telt;tel" でなければなりません。"CUSTOMER_SERVICE": プレフィックスは "mailto"、"tel"、"http"、"https" である必要があります。 例: |
注文管理アクション
注文管理では、ユーザーは注文後のサポートを受けることができます。送信注文 AppResponse
内の各 OrderUpdate
で送信する必要があります。その後の AsyncOrderUpdateRequestMessage
の注文管理アクションは、状態によって異なります。
たとえば、「CREATED」状態では、CUSTOMER_SERVICE
はカスタマー サポートの電話番号を参照する場合があります。続いて、CONCONMED 状態で、顧客からの最適な問い合わせ先として、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 プレフィックスは &telt;tel" にする必要があります。CALL_RESTAURANT
: 注文の詳細ページでのみ呼び出すアクション。openUrlAction.url プレフィックスは &telt;tel" にする必要があります。
OrderState
注文の現在の状態。OrderState
の各 state
値は、myaccount.google.com の購入ステータスにも対応しています。
次の表に、OrderState
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
state |
OrderStateEnum |
必須。 |
|
label |
文字列 | 必須。 状態に関するユーザーに表示される表示文字列。文頭を大文字にします(アルファベットの場合)。 例: |
次の例は、OrderState
要素を示しています。
例
{ "state": "CONFIRMED", "label": "Provider confirmed" }
OrderStateEnum
OrderState
に関連するタイプを定義します。
OrderStateEnum
型には次の値があります。
CREATED
: インテグレーターによって作成され、プロバイダによる確認を待機している注文です。「注文済み」購入ステータスに対応します。CONFIRMED
: 注文がプロバイダによって確認され、有効です。「承認済み」購入ステータスに対応します。REJECTED
: インテグレーターまたはプロバイダによって注文が拒否されました。「不承認」購入ステータスに対応します。CANCELLED
: ユーザーが注文をキャンセルしました。「キャンセル済み」の購入ステータスに対応しています。IN_PREPARATION
: 食品の準備中です。「ステータス不明」は、購入ステータスに相当します。READY_FOR_PICKUP
: 料理を注文する準備ができました。「受け取り可」および購入ステータスに対応しています。IN_TRANSIT
: 注文は配送中です。「処理中」は、購入ステータスに相当します。FULFILLED
: ユーザーが注文したものを受け取りました。「受け取り済み」の購入ステータスに対応しています。
領収書
この種類を送信オーダーAppResponse
で送信します。ここで、OrderState
は「CONFIRMED」または「FULFILLED"」または「IN_TRANSIT"」です。userVisibleOrderId
が利用可能になったときに領収書を送信します。今後のアップデートでは、領収書の送信を続ける必要はありません。
次の表に、Receipt
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
userVisibleOrderId |
文字列 | 必須。 注文が CONFIRMED または IN_TRANSIT" または FULFILLED" の場合は必須。このフィールドは、この注文のユーザー向けの単一の ID(通常はレストランの注文 ID)で、インテグレーターの領収書と Google 注文カードの両方に表示されます。ユーザーは、この ID を使用して、カスタマー サービスをプロバイダやインテグレータに注文できる必要があります。この ID を指定する必要があるのは、任意の OrderUpdate で 1 回だけです。提供されるまで、actionOrderId は userVisibleOrderId です。たとえば、レストランが注文を確認しない限り、userVisibleOrderId はありません。確認したら、OrderUpdate と Receipt を使用して AsyncOrderUpdateRequestMessage を送信する必要があります。 |
次の例は、Receipt
要素を示しています。
例
{ "userVisibleOrderId": "userVisibleId1234" }
RejectionInfo
次の表に、RejectionInfo
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
type |
RejectionType |
必須。 |
|
reason |
文字列 |
内部ロギングに使用された拒否の理由。このフィールドはユーザーに表示されません。 |
次の例は、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 |
文字列 | 必須。 領収書に表示される支払い方法の名前。 例: |
|
onFulfillmentPaymentData |
OnFulfillmentPaymentData |
paymentType "ON_FULFILLMENT" の追加データ。たとえば、この項目を使用して、現金またはカードがフルフィルメントでサポートされているかどうかを指定できます。 |
次の例は、ActionProvidedPaymentOptions
要素を示しています。
例
{ "paymentType": "ON_FULFILLMENT", "displayName": "Pay when you get your food.", "onFulfillmentPaymentData": { "supportedPaymentOptions": [ "Cash", "Card" ] } }
AllowedAuthMethods
AllowedAuthMethods
型には次の値があります。
PAN_ONLY
: ユーザーの Google アカウントに保存されている支払いカードに関連付けられた認証方法。返される支払いデータには、有効期限月と有効期限の個人アカウント番号(PAN)が含まれます。
許可されるカード ネットワーク
AllowedCardNetworks
型には次の値があります。
AMEX
DISCOVER
INTERAC
JCB
MASTERCARD
VISA
CardParameters
このオブジェクトを使用して、Google Pay API に対するサイトのサポートを設定します。
次の表に、CardParameters
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
allowedAuthMethods |
リスト&Const> | 必須。 カード トランザクションの認証でサポートされているフィールド。 1 個以上の項目が必要です。 |
|
allowedCardNetworks |
リスト&AllowedCardNetworks > |
必須。 サポートしている 1 つ以上のカード ネットワーク。Google Pay API でもサポートされています。 1 個以上の項目が必要です。 |
|
billingAddressRequired |
Boolean |
請求先住所が必要な場合は、true に設定します。請求先住所は、取引の処理に必要な場合にのみリクエストしてください。データ リクエストが増えると購入手続きのプロセスが摩擦し、コンバージョン率の低下につながることがあります。 |
|
cvcRequired |
Boolean |
TimesofMoney を使用する場合は true に設定し、他のすべての支払いプロセッサの場合は false に設定します。 |
次の例は、CardParameters
要素を示しています。
例
{ "allowedAuthMethods": [ "PAN_ONLY" ], "allowedCardNetworks": [ "AMEX", "DISCOVER" ], "billingAddressRequired": false, "cvcRequired": false }
GoogleProvidedPaymentInstrument
次の表に、GoogleProvidedPaymentInstrument
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
instrumentToken |
文字列 | 必須。 以前に指定した 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 |
文字列 |
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 }
販売者情報
このオブジェクトを使用して、Google Pay API に対するサイトのサポートを設定します。
次の表に、MerchantInfo
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
merchantId |
文字列 |
Google Pay から発行された Google の販売者 ID |
|
merchantName |
文字列 | 必須。 販売者名は UTF-8 でエンコードされます。販売者名は支払いシートに表示されます。 |
OnFulfillmentPaymentData
このオブジェクトを使用して、PaymentType の ON_FULFILLMENT に追加データを送信します。
次の表に、OnFulfillmentPaymentData
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
supportedPaymentOptions |
リスト&PaymentOptionsEnums > |
注文処理時にユーザーが利用できるお支払い方法のリスト。 |
次の例は、OnFulfillmentPaymentData
要素を示しています。
例
{ "supportedPaymentOptions": [ "Cash", "Card" ] }
パラメータ
TokenizationParameters
に関連するタイプを定義します。
次の表に、Parameters
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
gateway |
文字列 | 必須。 例: |
|
gatewayMerchantId |
文字列 | ||
[additionalKey: string] |
文字列 | 追加の Key-Value ペア |
次の例は、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 のメジャー バージョン。 値: |
|
apiVersionMinor |
一貫性 | 必須。 マイナー API のバージョン。 値: |
|
merchantInfo |
MerchantInfo |
必須。 (Google Pay 販売者 ID)支払いデータをリクエストする販売者に関する情報。 |
|
allowedPaymentMethods |
リスト&PaymentMethod > |
必須。 Google Pay API でサポートされている 1 つ以上のお支払い方法のサポートを指定します。 |
|
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, "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 |
文字列 | 必須。 レシートに表示する支払い方法のユーザーに表示される名前。 |
|
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" }
お支払い方法
このオブジェクトを使用して、Google Pay API に対するサイトのサポートを設定します。
次の表に、PaymentMethod
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
type |
一貫性 | 必須。 サポートされているお支払い方法の短い ID。現在サポートされているのは 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
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
次のプロパティ グループのいずれか 1 つは必須です。 | |||
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
{ "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 の場合。
サポートされているカード ネットワーク
GoogleProvidedPaymentOptions
に関連するタイプを定義します。
SupportedCardNetworks
型には次の値があります。
UNSPECIFIED_CARD_NETWORK
AMEX
DISCOVER
JCB
MASTERCARD
VISA
TokenizationParameters
GoogleProvidedPaymentOptions
に関連するタイプを定義します。
次の表に、TokenizationParameters
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
tokenizationType |
Enum [
"UNSPECIFIED_TOKENIZATION_TYPE",
"PAYMENT_GATEWAY"
] |
必須。 代わりに facilitationSpecification を使用してください。使用可能なトークンの種類。 |
|
parameters |
Parameters |
代わりに facilitationSpecification を使用してください。 |
トークン化仕様
このオブジェクトを使用すると、請求可能なお支払い情報を受け取るようにアカウントを設定できます。
次の表に、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 |
文字列 | 必須。 ISO 4217 のアルファベットの通貨コード。 |
|
transactionId |
文字列 |
取引の試行を識別する一意の ID。既存の ID を使用するか、Google Pay 取引の試行に特定の ID を生成できます。Google Transaction Events API にコールバックを送信する場合、このフィールドは必須です。 |
|
totalPriceStatus |
一貫性 | 必須。 デフォルトで ESTIMATED" を使用します。合計価格は、レスポンスの詳細(請求先住所に基づいて徴収される売上税など)に基づいて調整される場合があります。 値: |
|
totalPrice |
文字列 | 必須。 取引の金銭的価値。小数点以下 2 桁単位で小数を指定することも可能です。このフィールドは、cart.totalPrice と同じ値である必要があります。 |
次の例は、TransactionInfo
要素を示しています。
例
{ "totalPriceStatus": "ESTIMATED", "totalPrice": "12.34", "currencyCode": "USD" }