基本タイプ
カート
注文の詳細と、受け取りのリクエストかどうかが含まれます。 考えてみましょうカートには、配送の詳細、チップ、配送情報も表示されます あります。Cart
オブジェクトは Checkout AppRequest
.f
Checkout AppResponse
にカートのコピーを含めます。
次の表に、Cart
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
@type |
定数 |
このオブジェクトの型。親の Cart オブジェクトが ProposedOrder の一部である場合は、このフィールドを省略します。 値: |
|
id |
String |
カートの ID(省略可)。 |
|
merchant |
Merchant |
このカートと提携している販売者。 |
|
lineItems |
リスト<LineItem > |
必須。 ユーザーが注文する商品やサービスのリスト。 1 個以上のアイテムを選択してください。 |
|
promotions |
リスト<Promotion > |
このカートに適用されるプロモーション。現在サポートされているプロモーションは 1 つのみです。 |
|
notes |
String |
注文または配送手順に関するメモ。 |
|
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" } } }
連絡先
注文を受け取る人に関する詳細情報を指定します。利用可能な言語はAppResponse
。
次の表に、Contact
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
displayName |
String |
表示したい注文を受け取る人の名前。このフィールドは、firstName と lastName が指定されていない場合に使用します。 例: |
|
email |
String |
注文を受け取るユーザーのメールアドレス。 例: |
|
firstName |
String |
注文を受け取る担当者の名。 例: |
|
lastName |
String |
注文を受け取る人の姓。 例: |
|
phoneNumber |
String |
注文を受けた担当者の電話番号(国コードを含む)。 例: |
|
emailVerified |
ブール値 |
注文を受け取るユーザーが 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://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 |
番号 |
パートナーは、この注文に対して 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、または Promotion に無効なデータが含まれています。NOT_FOUND
: LineItem、FulfillmentOption、または Promotion が見つかりません。PRICE_CHANGED
: アイテムの価格が変更されました。
FeeAmountRange
次の表に、FeeAmountRange
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
minFeeAmount |
Money |
請求される料金の下限 |
|
maxFeeAmount |
Money |
請求される料金の上限 |
FeePercentRange
次の表に、FeePercentRange
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
minFeePercent |
番号 |
請求料金の割合の下限。 |
|
maxFeePercent |
番号 |
請求される料金の割合の上限。 |
FoodCartExtension
フルフィルメント設定など、ユーザーの詳細が含まれます。
次の表に、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" } }
FoodErrorExtension
リクエストの処理中に発生した 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
食品アイテムのアドオンを定義します。
次の表に、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
次の表に、FoodItemOption
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
id |
String |
Google によって割り当てられた一意の ID。FoodOrderError または AsyncOrderUpdateRequest を送信するときに、このフィールドを使用して、同じ offerId のアイテムが複数含まれているかどうかを区別できます。 例: |
|
offerId |
String |
商品アイテムのオファー ID。 例: |
|
name |
String |
オプション名。 例: |
|
price |
Money |
||
note |
String |
オプションに関するメモ。 |
|
quantity |
番号 |
アイテムであるオプションの場合、アイテム数。 例: |
|
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 } ] }
FoodOrderError
CheckoutResponse
のエラーの詳細が含まれます。
次の表に、FoodOrderError
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
error |
Error |
必須。 |
|
id |
String | 次の場合に必須
商品アイテム単位のエラーの場合、このフィールドは必須です。Google が割り当てたメニュー項目用の LineItem.id またはアドオン用の FoodItemOption.id です。 |
|
description |
String |
エラーの説明。この説明は内部ロギング用であり、ユーザーには表示されません。 |
|
updatedPrice |
Money |
次の場合に必須
エラーの原因となった商品アイテムの新しい価格。エラーが「PRICE_CHANGED」の場合のみ必須。 |
|
availableQuantity |
整数 | 次の場合に必須
エラーの原因となった商品アイテムの新しい購入可能数量。エラーが「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」に設定されます。 値: |
|
availableFulfillmentOptions |
リスト<FulfillmentOption > |
注文で利用可能なフルフィルメント オプションを表します。 |
|
optinForRemarketing |
ブール値 |
マーケティング チャネルへのオプトインを求めるユーザー リクエスト。デフォルトでは、ユーザーの同意なしにマーケティング コンテンツを送信することはできません。optinFor リマーケティングが true の場合、そのユーザーを登録できます。optinForRLSA が 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
オブジェクトは、以下の方法で使用できます。
<ph type="x-smartling-placeholder">- </ph>
-
Checkout AppRequest
とSubmit AppRequest
、Cart.extension.fulfillmentPreference
: ユーザーの設定(配送)を保存します。 受け取り)。購入手続きリクエストが送信されると、価格は常に 0 になります。 -
Checkout AppResponse
では、ProposedOrder.extension.availableFulfillmentOptions
: 1 つ以上の配信オプションを定義します(現時点では、 サポートされています)。ここでは、デフォルトのオプションをLineItem
として指定します。ProposedOrder.otherItems
。offerId
FulfillmentOption
は、ProposedOrder.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
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
次のプロパティ グループのいずれか 1 つのみが必要です。 | |||
delivery |
グループ 1 | DeliveryInfo |
存在する場合は配信順序を示します。 |
pickup |
グループ 2 | PickupInfo |
指定する場合は受け取りの注文を示します。 |
画像
次の表に、Image
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
sourceUrl |
String | 必須。 画像の URL。画像は 72x72 ピクセル以上にする必要があります。最適な結果を得るには、216 x 216 ピクセル以上の画像を使用してください。画像は 6 MB 未満、64 メガピクセル未満である必要があります。 |
LineItem
カートの内容(Cart.lineItems
)または商品の追加料金を定義します
注文(ProposedOrder.otherItems
)。
次の表に、LineItem
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
id |
String | 次の場合に必須
カート内の LineItem(ProposedOrder.cart.lineItems[0].id)の場合、注文の作成時に Google が作成した一意の ID です。配送料や税金などのアイテムを追加する ProposedOrder(ProposedOrder.otherItems[0].id)の LineItem の場合、id の値はプロバイダによって定義されます。たとえば、カート内に、準備手順が異なる同じ商品アイテムが 2 つあります(トッピングが異なるミディアム ピザ 2 つなど)。この場合、両方のアイテムの基本特典 ID は同じです。注文更新リクエストを送信して商品アイテムが不承認であることを示す場合は、この ID を曖昧性除去として使用します。言い換えれば、特定のトッピングがないという理由でピザが拒否された場合、ID は Google が参照している注文に含まれる商品を判別するのに役立ちます。otherItems を除き必須フィールドです。 |
|
name |
String | 必須。 広告申込情報の名前。ユーザーに表示される文字列で、可能な場合は先頭を大文字にして表記する必要があります(「配送料」、「サービス料」、「税金」など)。ユーザーの場合、このフィールドは 100 文字で切り捨てられます。 |
|
type |
LineItemType |
必須。 |
|
quantity |
整数 | 次の場合に必須
アイテムの数。ProposedOrder.otherItems には適用されません。 |
|
description |
String |
項目の説明。 |
|
price |
Price |
必須。 1 つまたは複数のアイテムの価格。この値は、この広告申込情報のすべての商品やサービスの合計価格を表します(アドオンの費用を加算し、数量を掛けます)。たとえば、1,000 円のアイテムの数量が 3 の場合、価格は 3,000 円になります。基本価格が 5 ドルでアドオンが 1 ドルのピザ 1 枚の場合、価格は 6 ドルになります。基本価格が 5 ドルで、アドオンが 1 ドルのピザ 2 つ(数量 = 2)の場合、価格は 12 ドルになります。各 LineItem には、価格が「0」であっても価格を指定する必要があります。type が DISCOUNT の場合は、値を負数として指定します(「-2」など)。 |
|
subLines |
リスト<SublineNote > |
省略可。type が「REGULAR」の場合にのみ有効です。ユーザーによる商品アイテム固有のメモは、購入手続きリクエストと注文送信リクエストのこのフィールドで送信できます。メモが提供されると、販売者にメモが届くようにします。これは、リクエスト内に subLines[0].note として含まれます。これは、リクエスト内に存在する場合、このフィールドに指定される唯一の値です。 1 項目以下の項目で指定します。 |
|
offerId |
String | 次の場合に必須
アイテムの 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 |
ビジネスの住所を表示します。 例: |
|
postalAddress |
PostalAddress |
||
zipCode |
String |
例: |
|
city |
String |
都市の名前。 例: |
|
notes |
String |
場所に関するメモ(ゲートコードなど)。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 |
String |
販売者の ID。指定すると、レストラン フィードの Restaurant.@id と一致します。 例: |
|
name |
String | 必須。 ユーザーに表示される販売者の名前。 例: |
次の例は、Merchant
要素を示しています。
例
{ "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }
Money
次の表に、Money
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
currencyCode |
String | 必須。 3 文字の通貨コード(ISO 4217 形式)。 例: |
|
units |
String |
金額の整数部分。たとえば、currencyCode が「USD」の場合、「1」になります。単位は 1 米ドルです。 例: |
|
nanos |
整数 |
金額の小数部分をナノ(10^-9)単位で表した数。値は -999,999,999 ~+999,999,999 の範囲で指定する必要があります。次のルールを使用します。単位が正の場合、nanos は正またはゼロにする必要があります。単位が 0 の場合、ナノは正、ゼロ、負のいずれかになります。単位が負の場合、ナノは負またはゼロでなければなりません。たとえば、$-1.75 は、units = -1、nanos = -750,000,000 と表されます。 例: |
次の例は、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
次の表に、OrderUpdate タイプのフィールドを示します。AppResponse
に含まれている。
次の表に、OrderUpdate
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
actionOrderId |
String | 必須。 更新が送信された注文の識別に使用される、インテグレータのシステム内の注文の一意の ID。「CREATED」の OrderUpdate で customer_visible_order_id が 1 回以上指定されていない場合この ID は Google の注文カードに表示される、入力済みのユーザーに表示される ID です。 |
|
orderState |
OrderState |
必須。 注文の新しいステータス。 |
|
lineItemUpdates |
Map<String, LineItemUpdate > |
||
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 |
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://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representationsこれを使用して、購入手続きの応答時の予想受け取り時間を更新します。 例: |
次の例は、PickupInfo
要素を示しています。
例
{ "pickupTimeIso8601": "PT90M" }
PostalAddress
次の表に、PostalAddress
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
regionCode |
String | 必須。 2 文字の国コード。 例: |
|
postalCode |
String |
郵便番号です。 例: |
|
administrativeArea |
String |
その国 / 地域の住所に使用される最上位の行政区域。州、県、都道府県を指定できます。 例: |
|
locality |
String |
この場所の市区町村。地域区分が十分に定義されていない地域や、この構造に適合しない地域では、locality を指定せず、代わりに addressLines フィールドを使用してください。 例: |
|
addressLines |
List<文字列> |
番地の指定に使用できる 1 つ以上の行。不明確な地域区分が含まれている可能性があるため、このフィールドには変更しないでください。 例: |
|
recipients |
List<文字列> |
注文の受信者のリスト。このフィールドは、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 > |
プロバイダが追加したアイテム(配送料、その他の手数料、税金など)。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
次の表に、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 |
ブール値 |
後続の取引がサンドボックス環境で行われるかどうかを示します。 |
|
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
は AppRequest
です
actions.foodordering.intent.CHECKOUT
インテントを渡します。
SubmitOrderRequestMessage
SubmitOrderRequestMessage
は AppRequest
です
actions.foodordering.intent.TRANSACTION_DECISION
インテントを渡します。
会話
Conversation
は 1 つのセッションにのみ一意です。複数のエンドポイントを
必要に応じて、Checkout
アクションと SubmitOrder
アクションを併用します。
次の表に、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
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
次のプロパティ グループのいずれか 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
CheckoutResponseMessage
は、以下を持つ AppResponse
です。
checkoutResponse
または error
を
StructuredResponse
。
SubmitOrderResponseMessage
SubmitOrderResponseMessage
は、以下を持つ AppResponse
です。
StructuredResponse
の orderUpdate
。
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 には、次のいずれか 1 つを指定できます。CheckoutResponse は、購入手続きが成功したことを示します。OR FoodErrorExtension: 購入手続きでエラーが発生したことを示します。レスポンスには、修正された ProposedOrder と PaymentOptions や、PaymentOptions のないエラー メッセージを含めることができます。SubmitOrderResponseMessage には orderUpdate のみが適用されます。
次の表に、StructuredResponse
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
次のプロパティ グループのいずれか 1 つのみが必要です。 | |||
checkoutResponse |
グループ 1 | CheckoutResponse |
アイテム、税金、割引をチェックしました。 |
error |
グループ 2 | FoodErrorExtension |
カートのアイテムで発生したエラーです。エラーの性質に応じて、このプロパティには、修正された ProposedOrder と PaymentOptions が含まれることも、PaymentOptions が指定されていないエラー メッセージのみが含まれることもあります。 |
orderUpdate |
グループ 3 | OrderUpdate |
非同期での注文更新
このセクションでは、リクエストを構成するタイプの概要と、 組み込みのアクション インタラクションに対する典型的な料理の注文の応答。AsyncOrderUpdateRequestMessage
注文が送信されて確定したら、ユーザーに変更について通知します。 たとえば、注文が配送中であることや、 料金が変更されました。 詳細については、次をご覧ください:次の表に、AsyncOrderUpdateRequestMessage
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
isInSandbox |
ブール値 |
この更新が送信された注文がサンドボックスの支払いであることを示します。 |
|
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 文字以下にしてください。 例: |
|
openUrlAction |
OpenUrlAction |
必須。 |
次の例は、Button
要素を示しています。
例
{ "title": "Send us feedback", "openUrlAction": { "url": "mailto:person@example.com" } }
CancellationInfo
次の表に、CancellationInfo
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
reason |
String | 必須。 OrderState.state が「CANCELLED」の場合に、不承認となった理由として表示可能。 例: |
次の例は、CancellationInfo
要素を示しています。
例
{ "reason": "Insufficient inventory" }
FoodOrderUpdateExtension
このタイプでは、注文の配送予定日がユーザーに提供されます。
受け取りの準備が整いました。この拡張機能を
OrderUpdate
情報が利用可能になったときや、前回の送信時から変更されたときに通知を受け取れるようにします。
発送間隔は控えめに見積もって、ユーザーが 確実に達成できます。たとえば、注文が次のように見積もられる場合: 送信する場合は、推定間隔( 今日の 02:45 のように、交通状況による変動と一致します。 13:15 まで
ISO 8601 の期間またはタイムスタンプは、
OrderUpdate
の updateTime
(基本的には「now」)を
updateTime
+duration
。
「now」でない限り、この形式を使用しない妥当な想定です
ISO 8601 の間隔は、開始から 終了します
次の表に、FoodOrderUpdateExtension
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
@type |
定数 |
この拡張機能のタイプ。このフィールドは常に「type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension」に設定されます。 値: |
|
estimatedFulfillmentTimeIso8601 |
String |
注文した商品が配達される予定または受け取り可能な推定時間。文字列は ISO 8601 形式で、単一の固定時間ではなく間隔に対応する必要があります。使用できる規則は、間隔、期間、日付/時刻です。このフィールドは、情報が利用可能になったとき、または到着が早すぎる、到着が遅れるなど、変更がある場合に、SubmitOrderResponseMessage または AsyncOrderUpdateRequestMessage で送信できます。 例: |
|
foodOrderErrors |
リスト<FoodOrderError > |
注文後に発生したエラーを示します。カートまたは商品アイテムごとに 1 つのエラーを推奨します。RejectedInfo に含まれていないエラーには、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
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
次のプロパティ グループのいずれか 1 つのみが必要です。 | |||
deliveryTime |
グループ 1 | ISO タイムスタンプ |
FoodOrderingUpdateExtension メッセージで estimateFulfillmentTimeIso8601 を使用 |
pickupTime |
グループ 2 | ISO タイムスタンプ |
FoodOrderingUpdateExtension メッセージで estimateFulfillmentTimeIso8601 を使用 |
次の例は、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 メッセージで estimateFulfillmentTimeIso8601 を使用 |
次の例は、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」である必要があります。 例: |
OrderManagementAction
注文管理では、ユーザーが注文後のサポートを受けることができるため、
送信注文内の各 OrderUpdate
AppResponse
その後の各ステップは、
AsyncOrderUpdateRequestMessage
特定の注文に送信される注文管理アクションは、
あります。
たとえば "CREATED"状態ファイルを参照すると、CUSTOMER_SERVICE
は
カスタマーサポートの電話番号[CONFIRMED] の状態、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 | 必須。 ユーザーに表示される状態の表示文字列。文頭を大文字にします(アルファベットの場合)。 例: |
次の例は、OrderState
要素を示しています。
例
{ "state": "CONFIRMED", "label": "Provider confirmed" }
OrderStateEnum
OrderState
に関連する型を定義します。
OrderStateEnum
型には次の値を使用できます。
CREATED
: インテグレータによって作成され、プロバイダによる確認を待機している注文。「Ordered」購入ステータスを確認しますCONFIRMED
: 注文がプロバイダによって確認済みで、有効です。[Accepted] オプションと購入ステータスを確認しますREJECTED
: 注文がインテグレータまたはプロバイダによって拒否されました。[不承認] のケースに対応します。購入ステータスを確認しますCANCELLED
: ユーザーが注文をキャンセルしました。「Cancelled」と購入ステータスを確認しますIN_PREPARATION
: 調理中です。「ステータス不明」に対応します。購入ステータスを確認しますREADY_FOR_PICKUP
: 料理を受け取る準備ができました。「Ready for pickup」(受け取り準備完了)に対応します。購入ステータスを確認しますIN_TRANSIT
: 注文は配送中です。「処理中」に対応します。購入ステータスを確認しますFULFILLED
: ユーザーが注文したものを受け取りました。「Picked up」イベントと購入ステータスを確認します
領収書
送信注文AppResponse
でこのタイプを送信します。
ここで、OrderState
は「CONFIRMED」、「FULFILLED」、「IN_TRANSIT」です。領収書の送付先
userVisibleOrderId
が使用可能になった時刻。すべてのデータを
後続の更新で領収書を送信する
次の表に、Receipt
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
userVisibleOrderId |
String | 必須。 注文が「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 |
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 | 必須。 領収書に表示されるお支払い方法の名前。 例: |
|
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
AllowedCardNetworks
型には次の値を使用できます。
AMEX
DISCOVER
INTERAC
JCB
MASTERCARD
VISA
BillingAddressParameters
このオブジェクトを使用すると、リクエストされた請求先住所に対して返される追加のフィールドを設定できます。
次の表に、BillingAddressParameters
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
format |
String |
取引を完了するには、請求先住所の形式が必要です。MIN: 名前、国コード、郵便番号。FULL: 名前、番地、地域区分、地域、国コード、郵便番号。 |
次の例は、BillingAddressParameters
要素を示しています。
例 1
{ "format": "MIN" }
例 2
{ "format": "FULL" }
CardParameters
このオブジェクトを使用して、サイトでの Google Pay API のサポートを構成します。
次の表に、CardParameters
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
allowedAuthMethods |
List<Const> | 必須。 カード取引の認証でサポートされるフィールド。 1 個以上のアイテムを選択してください。 |
|
allowedCardNetworks |
リスト<AllowedCardNetworks > |
必須。 お客様がサポートしており、Google Pay API でもサポートされている 1 つ以上のカード ネットワーク。 1 個以上のアイテムを選択してください。 |
|
billingAddressRequired |
ブール値 |
請求先住所が必要な場合は true に設定します。請求先住所のリクエストは、取引を処理するために必要な場合にのみ行ってください。データ リクエストが増えると、購入手続きが煩雑になり、コンバージョン率の低下につながります。 |
|
billingAddressParameters |
BillingAddressParameters |
billingAddressRequired が true に設定されている場合に返される想定フィールド。 |
|
cvcRequired |
ブール値 |
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 決済代行業者にユーザーに請求するための支払いトークンを含む、Base 64 でエンコードされた文字列。 |
|
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 |
ブール値 |
代わりに facilitationSpecification を使用してください。支払いタイプとしてプリペイド カードを許可するかどうか。 このフィールドは非推奨です。 |
|
billingAddressRequired |
ブール値 |
代わりに 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 販売者 ID。 |
|
merchantName |
String | 必須。 UTF-8 でエンコードされた販売者名。販売者名は支払いシートに表示されます。 |
OnFulfillmentPaymentData
このオブジェクトを使用して、PaymentType が "ON_FULFILLMENT" の追加データを送信します。
次の表に、OnFulfillmentPaymentData
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
supportedPaymentOptions |
リスト<PaymentOptionsEnums > |
注文のフルフィルメント時にユーザーが利用できる支払いオプションのリスト。 |
次の例は、OnFulfillmentPaymentData
要素を示しています。
例
{ "supportedPaymentOptions": [ "Cash", "Card" ] }
パラメータ
TokenizationParameters
に関連する型を定義します。
次の表に、Parameters
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
gateway |
String | 必須。 例: |
|
gatewayMerchantId |
String | ||
[additionalKey: string] |
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, "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 のみです。 値: |
|
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
{ "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。販売者は、既存の ID を使用するか、Google Pay で取引を試みる際に特定の ID を生成できます。このフィールドは、Google Transaction Events API にコールバックを送信する場合は必須です。 |
|
totalPriceStatus |
定数 | 必須。 「ESTIMATED」を使用してください設定されます。合計金額は、請求先住所に基づいて収集されたレスポンスの詳細(消費税など)に基づいて調整される場合があります。 値: |
|
totalPrice |
String | 必須。 取引の合計金額。小数点以下 2 桁の小数点精度が適用されます。このフィールドには、cart.totalPrice と同じ値を指定する必要があります。 |
次の例は、TransactionInfo
要素を示しています。
例
{ "totalPriceStatus": "ESTIMATED", "totalPrice": "12.34", "currencyCode": "USD" }