基本タイプ
カート
注文の詳細と、集荷と宅配のどちらのリクエストかが含まれます。カートには、配送先の詳細、チップ金額、配送先住所も含まれています。Cart
オブジェクトは Checkout AppRequest
で定義されます。カートのコピーを 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" } } }
お問い合わせ
注文を受け取る人に関する詳細情報を指定します。AppResponse
でのみ使用できます。
次の表に、Contact
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
displayName |
文字列 |
注文を受け取る人の名前(表示する人)。このフィールドは、firstName と lastName が指定されていない場合に使用します。 例: |
|
email |
文字列 |
注文を受け取る方のメールアドレス。 例: |
|
firstName |
文字列 |
注文を受ける人の名前(名)。 例: |
|
lastName |
文字列 |
注文を受ける人の姓。 例: |
|
phoneNumber |
文字列 |
注文商品を受け取る人の電話番号(国コードを含む)。 例: |
|
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 |
文字列 |
配送予定日(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://ja.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_presentationations購入手続きの応答時に目安のお届け日数を更新するために使用します。 例: |
次の例は、DeliveryInfo
要素を示しています。
例
{ "deliveryTimeIso8601": "PT90M" }
免責条項
次の表に、Disclaimer
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
predefinedMessage |
PredefinedMessage |
必須。 購入手続きの際に事前定義された免責条項メッセージを表示するため。 |
|
feeAmount |
Money |
パートナーはこの注文に対して N の金額を販売者に請求します。 |
|
feeAmountRange |
FeeAmountRange |
パートナーは注文ごとに N ~ M の手数料をレストランに請求する。 |
|
feePercent |
番号 |
パートナーはこの注文に対して N% の手数料を販売者に請求します。 |
|
feePercentRange |
FeePercentRange |
パートナーは注文 1 件あたり 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
: Placement、FulfillmentOption、または Promotion に無効なデータが含まれています。NOT_FOUND
: 広告申込情報、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 |
文字列 |
Google によって割り当てられた一意の ID。FoodOrderError または AsyncOrderUpdateRequest を送信する場合は、このフィールドを使用して、同じ offerId を持つ複数の商品がカートに含まれているかどうかを区別します。 例: |
|
offerId |
文字列 |
商品アイテムの特典 ID。 例: |
|
name |
文字列 |
オプション名。 例: |
|
price |
Money |
||
note |
文字列 |
オプションに関するメモ。 |
|
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 |
文字列 |
商品アイテム単位のエラーの場合、このフィールドは必須です。メニュー アイテムの場合は Google によって割り当てられた Placement.id、アドオンの場合は FoodItemOption.id です。 |
|
description |
文字列 |
エラーの説明。この説明は内部ロギング用であり、ユーザーには表示されません。 |
|
updatedPrice |
Money |
エラーの原因となった商品の新しい価格。これは、エラーが「PRICE_CHANGED」の場合にのみ必要です。 |
|
availableQuantity |
整数 |
エラーの原因となった商品の新しい在庫数量。これは、エラーが「INVALID」または「NOT_FOUND」の場合にのみ必要です。「INVALID」と「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 |
ブール値 |
マーケティング チャネルの有効化に関するユーザー リクエスト。デフォルトでは、ユーザーの同意なしにマーケティング用コンテンツを送信することはできません。optinForRemarketing が true であれば、ユーザーをサブスクライブできます。optinForRemarketing が false であるか存在しない場合、登録状況をシステムでそのまま維持する必要があります。ユーザーは Google を通して購読をオプトアウトできず、マーケティング チャネルで提供されている購読解除機能を使用することによってのみオプトアウトできます。このフラグは SubmitOrderRequestMessage にのみ存在します。 |
次の例は、FoodOrderExtension
要素を示しています。
例 1
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ] }
例 2
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } }, "expiresAt": "2020-08-20T11:41:00Z" } ], "optinForRemarketing": true }
FulfillmentOption
FulfillmentOption
オブジェクトは次の方法で使用できます。
-
Checkout 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 } }
FulfillmentOptionInfo
FulfillmentInfo
に関連する情報を定義します。
次の表に、FulfillmentOptionInfo
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
次のプロパティ グループのいずれか 1 つのみが必要です。 | |||
delivery |
グループ 1 | DeliveryInfo |
指定されている場合、配信順序を示します。 |
pickup |
グループ 2 | PickupInfo |
存在する場合は、受け取り注文を示します。 |
画像
次の表に、Image
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
sourceUrl |
文字列 | 必須。 画像の URL。画像は 72x72 ピクセル以上にする必要があります。最良の結果を得るには、216x216 ピクセル以上の画像を使用してください。画像は 6 MB 未満、かつ 64 メガピクセル未満である必要があります。 |
LineItem
カートの中身(Cart.lineItems
)または注文に対する追加料金(ProposedOrder.otherItems
)を定義します。
次の表に、LineItem
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
id |
文字列 |
カート内の広告申込情報(ProposedOrder.cart.lineItems[0].id)の場合、注文の作成時に Google によって作成される一意の ID です。配送料や税金などのアイテムの追加に使用される ProposedOrder(ProposedOrder.otherItems[0].id)の Placement において、id の値はプロバイダが定義します。たとえば、1 つのカートに、準備手順が異なる同じ商品アイテムが 2 つ入っている(トッピングの異なる 2 つのミディアム ピザなど)。この場合、両方のアイテムに同じ基本オファー ID が設定されます。商品アイテムが不承認となったことを示す注文更新リクエストを送信する場合は、この ID を曖昧さ回避として使用します。つまり、ピザの 1 つが特定のトッピングがないため不承認となった場合、Google は ID を使用して、参照している順序でどの商品アイテムかを判断します。このフィールドは、otherItems 以外は必須です。 |
|
name |
文字列 | 必須。 広告申込情報の名前。これはユーザーに表示される文字列で、可能な場合は文頭を大文字にする必要があります(「送料」、「サービス料」、「税金」など)。ユーザーによっては半角 100 文字(全角 50 文字)で切り捨てられます。 |
|
type |
LineItemType |
必須。 |
|
quantity |
整数 |
含まれるアイテムの数。ProposedOrder.otherItems には適用されません。 |
|
description |
文字列 |
項目の説明。 |
|
price |
Price |
必須。 アイテムの価格。この値は、この広告申込情報のすべての商品またはサービスの合計金額です(アドオンの費用を加算して数量を掛けた値です)。たとえば、1,000 円の商品の数量が 3 の場合、価格は 3,000 円になります。ピザ 1 枚の基本価格が 5 ドルで、アドオンが 1 ドルの場合、価格は 6 ドルになります。ピザ 2 枚(数量 = 2)で基本価格が 5 ドルで、それぞれに 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。指定すると、レストラン フィードの Restaurant.@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 までの範囲で指定してください。次の規則を使用します。単位が正の場合、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 |
文字列 | 必須。 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。「CREATED」注文に対して OrderUpdate で purchase.user_visible_order_id が 1 回以上指定されていない場合、この ID が入力済みのユーザーに表示される ID で、Google の注文カードに表示されます。 |
|
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 |
文字列 |
予想集荷時間(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://ja.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_presentationations購入手続きのレスポンス時に集荷時間の予定を更新するために使用します。 例: |
次の例は、PickupInfo
要素を示しています。
例
{ "pickupTimeIso8601": "PT90M" }
PostalAddress
次の表に、PostalAddress
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
regionCode |
文字列 | 必須。 2 文字の国コード。 例: |
|
postalCode |
文字列 |
郵便番号です。 例: |
|
administrativeArea |
文字列 |
その国 / 地域の郵便住所に使用される最上位の行政区域。州、都道府県、都道府県などが該当します。 例: |
|
locality |
文字列 |
この場所の市区町村。地域区分が明確に定義されていない、またはこの構造に当てはまらない地域では、locality を指定せず、代わりに addressLines フィールドを使用します。 例: |
|
addressLines |
List<String> |
番地を指定するために使用できる 1 行または複数行。地域が不明確な場合があるため、このフィールドは変更しないでください。 例: |
|
recipients |
List<String> |
注文の受取人のリスト。このフィールドは billingAddress でのみ使用できます。 |
次の例は、PostalAddress
要素を示しています。
例
{ "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }
価格
次の表に、Price
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
type |
Enum [
"ESTIMATE",
"ACTUAL"
] |
必須。 プロモーション クーポンコード。 |
|
amount |
Money |
必須。 |
プロモーション
次の表に、Promotion
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
coupon |
文字列 | 必須。 プロモーション クーポンコード。 |
ProposedOrder
次の表に、ProposedOrder
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
id |
文字列 |
提案された注文の ID(省略可)。 |
|
cart |
Cart |
必須。 ユーザーのアイテム。 |
|
otherItems |
リスト<LineItem > |
プロバイダが追加したアイテム(配送料、その他の手数料、税金など)。その他のアイテムには、ユーザーが追加したチップや割引が含まれている場合もあります。 アイテム数は 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 |
文字列 | 必須。 |
タイムスタンプ
次の形式の日時。
"{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
は、actions.foodordering.intent.CHECKOUT
インテントを持つ AppRequest
です。SubmitOrderRequestMessage
SubmitOrderRequestMessage
は、actions.foodordering.intent.TRANSACTION_DECISION
インテントを持つ AppRequest
です。会話
Conversation
は 1 つのセッションにのみ固有です。必要に応じて、これを使用して複数の Checkout
アクションと SubmitOrder
アクションをリンクできます。次の表に、Conversation
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
conversationId |
文字列 | 必須。 会話の一意の 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
は、StructuredResponse
内に checkoutResponse
または error
を持つ AppResponse
です。SubmitOrderResponseMessage
SubmitOrderResponseMessage
は、StructuredResponse
内に orderUpdate
がある AppResponse
です。FinalResponse
カートの購入手続きまたは SubmitOrderRequestMessage に対するレスポンス。
次の表に、FinalResponse
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
richResponse |
RichResponse |
必須。 CheckoutRequestMessage または SubmitOrderRequestMessage に対するレスポンスが含まれます。 |
CheckoutResponse
次の表に、CheckoutResponse
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
proposedOrder |
ProposedOrder |
必須。 取引に使用する注文の候補。 |
|
paymentOptions |
PaymentOptions |
必須。 ユーザーが選択したデフォルトのお支払い方法。 |
|
additionalPaymentOptions |
リスト<PaymentOptions > |
お客様が利用できる別のお支払い方法。 |
次の例は、CheckoutResponse
要素を示しています。
例
{ "proposedOrder": { "id": "sample_proposed_order_id_1", "otherItems": [ { "name": "New customer discount", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "-5", "nanos": -500000000 } }, "type": "DISCOUNT" }, { "name": "Delivery fee", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } }, "type": "DELIVERY" }, { "name": "Tax", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 500000000 } }, "type": "TAX" } ], "cart": { "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } }, { "name": "Chicken Shwarma Wrap", "type": "REGULAR", "id": "sample_item_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/offer/id2", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "8" } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Greek Salad", "type": "REGULAR", "id": "sample_item_offer_id_3", "offerId": "https://www.exampleprovider.com/menu/item/offer/id3", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Prawns Biryani", "type": "REGULAR", "id": "sample_item_offer_id_4", "offerId": "https://www.exampleprovider.com/menu/item/offer/id4", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "15", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }, "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "36", "nanos": 730000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ] } }, "paymentOptions": { "googleProvidedOptions": { "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": { \"merchantId\": \"Merchant ID\", \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [ { \"type\": \"CARD\", \"parameters\": { \"allowedAuthMethods\": [ \"PAN_ONLY\" ], \"allowedCardNetworks\": [ \"VISA\", \"AMEX\", \"MASTERCARD\" ], \"billingAddressRequired\": false }, \"tokenizationSpecification\": { \"type\": \"PAYMENT_GATEWAY\", \"parameters\": { \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\", \"gateway\": \"stripe\", \"stripe:version\": \"2019-05-16\" } } }],\"transactionInfo\": { \"currencyCode\": \"AUD\", \"totalPriceStatus\": \"ESTIMATED\", \"totalPrice\": \"1.0\"}}" } }, "additionalPaymentOptions": [ { "actionProvidedOptions": { "paymentType": "ON_FULFILLMENT", "displayName": "Cash on delivery." } } ] }
項目
カートのチェックアウトまたは SubmitOrderRequestMessage に対するレスポンスが含まれます。
次の表に、Item
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
structuredResponse |
StructuredResponse |
必須。 |
RichResponse
カートの購入手続きに対するレスポンスが含まれます。
次の表に、RichResponse
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
items |
リスト<Item > |
必須。 1 個のアイテムが必要です。 |
StructuredResponse
CheckoutResponseMessage の場合、次のいずれかになります。CheckoutResponse 購入手続きが成功したことを示します。OR FoodErrorExtension: 購入手続きで失敗したことを示します。レスポンスには、修正された ProposedOrder と PaymentOptions、または PaymentOptions のないエラー メッセージが含まれます。SendOrderResponseMessage については、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 |
文字列 | 必須。 表示ラベル。文頭を 30 文字以下にして、正しくレンダリングされるようにしてください。 例: |
|
openUrlAction |
OpenUrlAction |
必須。 |
次の例は、Button
要素を示しています。
例
{ "title": "Send us feedback", "openUrlAction": { "url": "mailto:person@example.com" } }
CancellationInfo
次の表に、CancellationInfo
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
reason |
文字列 | 必須。 OrderState.state が「CANCELLED」の場合に、不承認の理由を表示可能なテキスト。 例: |
次の例は、CancellationInfo
要素を示しています。
例
{ "reason": "Insufficient inventory" }
FoodOrderUpdateExtension
このタイプでは、注文が配達される、または受け取りの準備が整うまでの推定間隔がユーザーに表示されます。情報が利用可能な場合、または前回の送信以降に情報が変更された場合は、必ず、この拡張機能を OrderUpdate
で送信します。
ユーザーの期待が常に満たされるように、フルフィルメント間隔の控えめな見積もりを指定します。たとえば、今日の 13:00 に注文の配達が予定されている場合、今日の 12:45 から 13:15 など、交通状況による変動に合わせた推定間隔を送信する必要があります。
ISO 8601 の期間またはタイムスタンプは、OrderUpdate
の updateTime
(本質的には「現在」)から updateTime
+ duration
までの間隔を表すと解釈されます。「now」が実際には合理的である場合を除き、この形式は使用しないでください。
ISO 8601 の間隔は、間隔の開始から終了までの間隔を意味すると解釈されます。
次の表に、FoodOrderUpdateExtension
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
@type |
定数 |
この拡張機能のタイプ。このフィールドは常に「type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension」に設定されます。 値: |
|
estimatedFulfillmentTimeIso8601 |
文字列 |
注文した商品が配送される予定、または商品の受け取り準備が整う予定までの時間。文字列は ISO 8601 形式で、1 つの固定時刻ではなく間隔に対応している必要があります。使用できる規則は、間隔、期間、日時です。このフィールドは、情報が利用可能になったとき、または到着の早さや遅延などの変更が発生したときに、SubmitOrderResponseMessage または AsyncOrderUpdateRequestMessage で送信できます。 例: |
|
foodOrderErrors |
リスト<FoodOrderError > |
注文後に発生したエラーを示します。カートまたは商品アイテムごとにエラーを 1 つにすることをおすすめします。RejectionInfo に含まれていないエラーには 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 メッセージで estimatedFulfillmentTimeIso8601 を使用する |
pickupTime |
グループ 2 | ISO タイムスタンプ |
FoodOrderingUpdateExtension メッセージで estimatedFulfillmentTimeIso8601 を使用する |
次の例は、FulfillmentInfo
要素を示しています。
例 1
{ "deliveryTime": "2017-05-10T02:36:38.803Z" }
例 2
{ "pickupTime": "2019-12-26T07:24:27.803Z" }
InTransitInfo
次の表に、InTransitInfo
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
updatedTime |
ISO タイムスタンプ |
FoodOrderingUpdateExtension メッセージで estimatedFulfillmentTimeIso8601 を使用する |
次の例は、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」: 接頭辞は「tel」にする必要があります。"CUSTOMER_SERVICE": プレフィックスは "mailto"、"tel"、"http"、"https" のいずれかにする必要があります。 例: |
OrderManagementAction
注文管理では、ユーザーが注文後のサポートを受けることができます。注文送信 AppResponse
内の各 OrderUpdate
で送信する必要があります。また、特定の注文に対して送信される後続の注文管理アクションは、ステータスによって異なる場合があります。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 |
文字列 | 必須。 ユーザーに表示される、状態の表示文字列。文頭を大文字にします(アルファベットの場合)。 例: |
次の例は、OrderState
要素を示しています。
例
{ "state": "CONFIRMED", "label": "Provider confirmed" }
OrderStateEnum
OrderState
に関連する型を定義します。
OrderStateEnum
型が取り得る値は次のとおりです。
CREATED
: インテグレータによって作成され、プロバイダによる確認を待機している注文。「注文済み」の購入ステータスに対応します。CONFIRMED
: 注文はプロバイダによって確認され、有効です。[Accepted] 購入ステータスに対応します。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
AllowedCardNetworks
型が取り得る値は次のとおりです。
AMEX
DISCOVER
INTERAC
JCB
MASTERCARD
VISA
BillingAddressParameters
このオブジェクトを使用すると、リクエストされた請求先住所について返される追加フィールドを設定できます。
次の表に、BillingAddressParameters
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
format |
文字列 |
取引を完了するために必要な請求先住所の形式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 |
文字列 | 必須。 以前に指定した 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 |
ブール値 |
代わりに 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 |
文字列 |
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, "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 |
文字列 | 必須。 領収書に表示する支払い方法の、ユーザーに表示される名前。 |
|
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 |
定数 | 必須。 サポートされているお支払い方法の短い 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
{ "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
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 |
文字列 | 必須。 ISO 4217 のアルファベットの通貨コード。 |
|
transactionId |
文字列 |
トランザクションの試行を識別する一意の ID。販売者は、既存の ID を使用するか、Google Pay の取引の試行に特定の ID を生成できます。Google Transaction Events API にコールバックを送信する場合、このフィールドは必須です。 |
|
totalPriceStatus |
定数 | 必須。 デフォルトとして「ESTIMATED」を使用します。合計金額は、請求先住所に基づいて徴収される売上税など、レスポンスの詳細情報に基づいて調整される場合があります。 値: |
|
totalPrice |
文字列 | 必須。 取引の合計金額。小数点以下 2 桁の小数点精度が適用されます。このフィールドには car.totalPrice と同じ値を指定する必要があります。 |
次の例は、TransactionInfo
要素を示しています。
例
{ "totalPriceStatus": "ESTIMATED", "totalPrice": "12.34", "currencyCode": "USD" }