ベースタイプ
カート
注文の詳細と、集荷または配達のリクエストかどうかが含まれます。カートには、配送の詳細、チップ、配送先住所も含まれます。Cart
オブジェクトは Checkout AppRequest
.f で定義されます。カートのコピーを Checkout AppResponse
に含めます。次の表に、Cart
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
@type |
Const |
このオブジェクトのタイプ。親の Cart オブジェクトが ProposedOrder の一部である場合は、このフィールドを省略します。 値: |
|
id |
String |
カートの ID(省略可)。 |
|
merchant |
Merchant |
このカートに関連付けられている販売者。 |
|
lineItems |
List<LineItem > |
必須。 ユーザーが注文しようとしている商品またはサービスのリスト。 1 つ以上の項目が必要です。 |
|
promotions |
List<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 |
Const |
この広告表示オプションのタイプ。このフィールドは常に「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 |
Const | 必須。 この広告表示オプションのタイプ。 値: |
|
foodOrderErrors |
List<FoodOrderError > |
必須。 発生したエラーを記述する FoodOrderError オブジェクトの配列。カートまたは商品アイテムごとに 1 つのエラーを推奨します。 1 つ以上の項目が必要です。 |
|
correctedProposedOrder |
ProposedOrder |
訂正を加えた新しい ProposedOrder。元の ProposedOrder に復元可能なエラーがある場合は、このオブジェクトを返します。たとえば、カート内の 1 つ以上の商品アイテムの価格が変更された場合、そのエラーは修正可能です。有効な ProposedOrder で復元可能なエラーが発生した場合、ユーザーにカートの確認を求めるのではなく、確認ステージに進みます。 |
|
paymentOptions |
PaymentOptions |
ユーザーに選択されているデフォルトの支払いオプション。 |
|
additionalPaymentOptions |
List<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 |
Const | 必須。 この広告表示オプションのタイプ。このフィールドは常に「type.googleapis.com/google.actions.v2.orders.FoodItemExtension」に設定されます。 値: |
|
options |
List<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 |
List<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」と「NOT_FOUND」の場合は、値を 0 にする必要があります。 |
次の例は、FoodOrderError
要素を示しています。
例 1
{ "error": "CLOSED", "description": "This store is currently reachable. Please try again later." }
例 2
{ "error": "PRICE_CHANGED", "id": "french_fries", "description": "The price has changed.", "updatedPrice": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }
FoodOrderExtension
注文のフルフィルメント情報が含まれます。
次の表に、FoodOrderExtension
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
@type |
Const |
この広告表示オプションのタイプ。このフィールドは常に「type.googleapis.com/google.actions.v2.orders.FoodOrderExtension」に設定されます。 値: |
|
availableFulfillmentOptions |
List<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 |
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。画像は 72 x 72 ピクセル以上にする必要があります。最適に表示されるように、216 x 216 ピクセル以上の解像度の画像を使用してください。画像は 6 MB 未満、64 メガピクセル未満でなければなりません。 |
LineItem
カートの内容(Cart.lineItems
)または注文の追加料金(ProposedOrder.otherItems
)を定義します。次の表に、LineItem
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
id |
String |
カートの LineItem(ProposedOrder.cart.lineItems[0].id)の場合、これは注文の作成時に Google によって作成された一意の ID です。ProposedOrder の LineItem(ProposedOrder.otherItems[0].id)は、送料や税金などのアイテムを追加するために使用されます。この場合、id の値はプロバイダによって定義されます。たとえば、カートに同じ商品が 2 つあり、調理手順が異なる場合(トッピングが異なる 2 つの中サイズのピザなど)は、この場合、両方のアイテムのベース offerId は同じです。アイテムが不承認であることを示す注文更新リクエストを送信する場合は、この ID を不明瞭化子として使用します。つまり、特定のトッピングが不足しているためにピザの 1 つが不承認となった場合、ID により、お客様が言及している注文内のアイテムを Google が特定できます。このフィールドは、otherItems を除き必須です。 |
|
name |
String | 必須。 項目の名前。これはユーザーに表示される文字列であるため、可能であれば大文字で入力します(「送料」、「サービス料」、「税金」など)。このフィールドは、ユーザーに対しては 100 文字で切り捨てられます。 |
|
type |
LineItemType |
必須。 |
|
quantity |
整数 |
項目の数量。ProposedOrder.otherItems には適用されません。 |
|
description |
String |
項目の説明。 |
|
price |
Price |
必須。 商品アイテムの価格。この値には、この行項目のすべての商品またはサービスの合計金額が反映されます(つまり、アドオンの費用を合計して数量を掛けた金額です)。たとえば、10 ドルの商品の数量が 3 個の場合、価格は 30 ドルになります。基本価格が 5 ドルでアドオンが 1 ドルのピザ 1 枚の場合、価格は 6 ドルとなります。ベース価格が 5 ドルで、それぞれに 1 ドルのアドオンが付いた 2 つのピザ(数量 = 2)の場合、価格は 12 ドルになります。価格が「0」の場合でも、各項目には価格が必要です。タイプが DISCOUNT の場合は、値を負の値として指定します(例: -2)。 |
|
subLines |
List<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 | 必須。 ISO 4217 形式の 3 文字の通貨コード。 例: |
|
units |
String |
金額の整数部分。たとえば、currencyCode が「USD」の場合、1 単位は 1 米ドルです。 例: |
|
nanos |
整数 |
金額の小数部分をナノ(10^-9)単位で表した数。値は -999,999,999 以上 +999,999,999 以下でなければなりません。次のルールを使用します。units が正の場合、nanos は正またはゼロでなければなりません。units がゼロの場合、nanos は正、ゼロ、または負の値です。単位が負の場合、ナノは負またはゼロでなければなりません。たとえば、$-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
次の表に、AppResponse
に含まれる OrderUpdate タイプのフィールドを示します。次の表に、OrderUpdate
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
actionOrderId |
String | 必須。 更新が送信される注文を識別するために使用される、インテグレータのシステム内の注文の一意の ID。「CREATED」の注文の OrderUpdate で receipt.user_visible_order_id が 1 回以上指定されていない場合、この ID が入力されたユーザー公開 ID となり、Google の注文カードに表示されます。 |
|
orderState |
OrderState |
必須。 注文の新しい状態。 |
|
lineItemUpdates |
Map<String, LineItemUpdate > |
||
updateTime |
ISO タイムスタンプ | 必須。 注文が更新された日時。 |
|
orderManagementActions |
List<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<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 |
String | 必須。 プロモーション クーポンコード。 |
ProposedOrder
次の表に、ProposedOrder
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
id |
String |
提案された注文の ID(省略可)。 |
|
cart |
Cart |
必須。 ユーザーの項目。 |
|
otherItems |
List<LineItem > |
プロバイダが追加した項目(送料、その他の手数料、税金など)。otherItems には、ユーザーが追加したチップや割引も含まれる場合があります。 10 個以下にしてください。 |
|
image |
Image |
この注文に関連付けられている画像。 |
|
totalPrice |
Price |
必須。 この注文の合計金額。 |
|
extension |
FoodOrderExtension |
必須。 フード注文のフルフィルメント情報を定義します。 |
|
disclaimers |
List<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 |
List<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 |
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 |
List<Argument > |
必須。 購入手続きを行うカートまたは注文が含まれます 1 つの項目のみ指定できます。 |
引数
ユーザーがチェックアウトする食品の詳細が含まれます。ご購入手続きでは、延長のみが適用されます。注文の送信の場合、transactionDecisionValue のみが適用されます
次の表に、Argument
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
次のいずれかのプロパティ グループを 1 つ指定する必要があります。 | |||
extension |
グループ 1 | Cart |
ユーザーがチェックアウトする食品の詳細。 |
transactionDecisionValue |
グループ 2 | TransactionDecisionValue |
注文内容と支払い情報を含む。 |
フルフィルメント レスポンス
AppResponse
次の表に、AppResponse
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
expectUserResponse |
Const |
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 |
List<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 |
List<Item > |
必須。 1 つの項目のみ指定できます。 |
StructuredResponse
CheckoutResponseMessage の場合、これは次のいずれかになります。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 ステータスと空の本文で応答します。更新が失敗した場合は、注文の更新が失敗した理由に関する詳細が返されます。注文の更新の種類
ボタン
ユーザー操作を可能にするために追加できるユーザー インターフェース要素を定義します。
次の表に、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
で送信します。
ユーザーの期待に常に応えられるように、フルフィルメント期間の保守的な見積もりを提供する。たとえば、注文の配達予定が本日 13:00 の場合、交通状況による変動を考慮した配達予定時間(本日 12:45 ~ 13:15 など)を送信する必要があります。
ISO 8601 の期間またはタイムスタンプは、OrderUpdate
の updateTime
(本質的には「現在」)から updateTime
と duration
の合計までの期間を意味します。「今すぐ」が実際に妥当な期待値である場合を除き、この形式を使用しないでください。
ISO 8601 の期間は、期間の開始から終了までの期間を意味します。
次の表に、FoodOrderUpdateExtension
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
@type |
Const |
この広告表示オプションのタイプ。このフィールドは常に「type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension」に設定されます。 値: |
|
estimatedFulfillmentTimeIso8601 |
String |
注文した商品が配達される、または受け取り可能になる予定時刻。文字列は ISO 8601 形式で、単一の固定時刻ではなく期間に対応している必要があります。使用できる規則は、区間、期間、日時です。このフィールドは、情報が利用可能になったとき、または到着の早まりや遅れなどの変更があったときに、SubmitOrderResponseMessage または AsyncOrderUpdateRequestMessage で送信できます。 例: |
|
foodOrderErrors |
List<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 |
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
注文管理により、ユーザーは注文後のサポートを受けることができます。注文管理は、注文送信 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 |
String | 必須。 状態についてユーザーに表示される表示文字列。文頭を大文字にします(アルファベットの場合)。 例: |
次の例は、OrderState
要素を示しています。
例
{ "state": "CONFIRMED", "label": "Provider confirmed" }
OrderStateEnum
OrderState
に関連する型を定義します。OrderStateEnum
型には次の値を使用できます。
CREATED
: インテグレータによって作成された注文で、プロバイダによる確認待ちです。購入ステータスの [注文済み] に対応します。CONFIRMED
: 注文はプロバイダによって確認され、現在アクティブな状態です。購入ステータスの「承認済み」に対応します。REJECTED
: 注文がインテグレータまたはプロバイダによって拒否されました。購入ステータス「不承認」に対応します。CANCELLED
: ユーザーが注文をキャンセルしました。購入ステータス「キャンセル済み」に対応します。IN_PREPARATION
: 料理の準備中です。購入ステータス「ステータス不明」に対応します。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 アカウントに保存されている支払いカードに関連付けられている認証方法。返される支払いデータには、カード会員番号と有効期限の月および年が含まれます。
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 |
List<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 決済代行業者でユーザーに請求するための支払いトークンを含む Base64 でエンコードされた文字列。 |
|
billingAddress |
PostalAddress |
お支払いの請求先住所。 |
次の例は、GoogleProvidedPaymentInstrument
要素を示しています。
例
{ "instrumentToken": "abcd", "billingAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] } }
GoogleProvidedPaymentOptions
Google によって提供される支払い方法の要件。
次の表に、GoogleProvidedPaymentOptions
タイプのプロパティを示します。
プロパティ | タイプ | 説明 | |
---|---|---|---|
facilitationSpecification |
String |
PaymentDataRequest JSON を文字列として指定します。このオブジェクトは、Google Pay API に対するサイトのサポートを構成するために使用します。 |
|
supportedCardNetworks |
List<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 |
List<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 |
Const | 必須。 メジャー API バージョン。 値: |
|
apiVersionMinor |
Const | 必須。 マイナー API バージョン。 値: |
|
merchantInfo |
MerchantInfo |
必須。 (Google Pay 販売者 ID)支払いデータをリクエストしている販売者に関する情報。 |
|
allowedPaymentMethods |
List<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 |
Const | 必須。 サポートされているお支払い方法の短い識別子。現在サポートされているのは 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 |
Const | 必須。 |
|
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 |
Const | 必須。 デフォルトでは「ESTIMATED」を使用します。合計金額は、請求先住所に基づいて収集されたレスポンスの詳細(消費税など)に基づいて調整される場合があります。 値: |
|
totalPrice |
String | 必須。 取引の合計金額。小数点以下 2 桁の小数点精度が適用されます。このフィールドの値は cart.totalPrice と同じである必要があります。 |
次の例は、TransactionInfo
要素を示しています。
例
{ "totalPriceStatus": "ESTIMATED", "totalPrice": "12.34", "currencyCode": "USD" }