フルフィルメント アクションのスキーマ

このページでは、Ordering End-to-End 組み込み Action API を使用する場合のフルフィルメント ウェブサービス(Ordering End-to-End API)のペイロードについて説明します。 この情報を機械で読み取れるバージョンを入手するには、JSON スキーマをダウンロードしてください。

基本タイプ

カート

注文の詳細と、集荷と宅配のどちらのリクエストかが含まれます。カートには、配送先の詳細、チップ金額、配送先住所も含まれています。Cart オブジェクトは Checkout AppRequest で定義されます。カートのコピーを Checkout AppResponse に含めます。

次の表に、Cart タイプのプロパティを示します。

プロパティ タイプ 説明
@type 定数

このオブジェクトの型。親の Cart オブジェクトが ProposedOrder に含まれている場合は、このフィールドを省略します。

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

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 が指定されていない場合に使用します。

例: Lovefood Ordering

email 文字列

注文を受け取る方のメールアドレス。

例: ilovefood@example.com

firstName 文字列

注文を受ける人の名前(名)。

例: Lovefood

lastName 文字列

注文を受ける人の姓。

例: Ordering

phoneNumber 文字列

注文商品を受け取る人の電話番号(国コードを含む)。

例: +16501234567

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購入手続きの応答時に目安のお届け日数を更新するために使用します。

例: PT90M

次の例は、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」に設定されます。

値: 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 定数

必須。

この拡張機能のタイプ。

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

foodOrderErrors リスト<FoodOrderError>

必須。

発生したエラーを記述する FoodOrderError オブジェクトの配列。カートまたは商品アイテムごとにエラーを 1 つにすることをおすすめします。

1 個のアイテム以上の値を指定してください。

correctedProposedOrder ProposedOrder

foodOrderErrors.error = "UNAVAILABLE_SLOT", "PROMO_EXPIRED", "PROMO_NOT_APPLICABLE", "PROMO_NOT_RECOGNIZED", "PROMO_ORDER_INELIGIBLE", "PROMO_USER_INELIGIBLE", "AVAILABILITY_CHANGED", "INCORRECT_PRICE", "INVALID", "NOT_FOUND", or "PRICE_CHANGED" の場合は必須です。

修正が行われた新しい ProposedOrder。元の ProposedOrder に復元可能なエラーがある場合は、このオブジェクトを返します。たとえば、カート内の 1 つ以上の項目の価格が変わった場合は、回復可能なエラーになります。有効な ProposedOrder を含む回復可能なエラーは、ユーザーにカートの確認を求めるのではなく、確認ステージに進みます。

paymentOptions PaymentOptions

foodOrderErrors.error = "UNAVAILABLE_SLOT", "PROMO_EXPIRED", "PROMO_NOT_APPLICABLE", "PROMO_NOT_RECOGNIZED", "PROMO_ORDER_INELIGIBLE", "PROMO_USER_INELIGIBLE", "AVAILABILITY_CHANGED", "INCORRECT_PRICE", "INVALID", "NOT_FOUND", or "PRICE_CHANGED" の場合は必須です。

ユーザーに対して選択されたデフォルトのお支払い方法。

additionalPaymentOptions リスト<PaymentOptions>

お客様が利用できる別のお支払い方法。

次の例は、FoodErrorExtension 要素を示しています。

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

FoodItemExtension

食品のアドオンを定義します。

次の表に、FoodItemExtension タイプのプロパティを示します。

プロパティ タイプ 説明
@type 定数

必須。

この拡張機能のタイプ。このフィールドは常に「type.googleapis.com/google.actions.v2.orders.FoodItemExtension」に設定されます。

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

options リスト<FoodItemOption>

オプションには、アドオン アイテム、またはアドオンのセットを含むアドオン グループなどがあります。

次の例は、FoodItemExtension 要素を示しています。

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

FoodItemOption

次の表に、FoodItemOption タイプのプロパティを示します。

プロパティ タイプ 説明
id 文字列

Google によって割り当てられた一意の ID。FoodOrderError または AsyncOrderUpdateRequest を送信する場合は、このフィールドを使用して、同じ offerId を持つ複数の商品がカートに含まれているかどうかを区別します。

例: 39231093

offerId 文字列

商品アイテムの特典 ID。

例: 912835081

name 文字列

オプション名。

例: Honey Mustard

price Money
note 文字列

オプションに関するメモ。

quantity 番号

オプションが項目の場合は、項目数。

例: 3

subOptions リスト<FoodItemOption>

オプションのサブオプション(存在する場合)。

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

次の例は、FoodItemOption 要素を示しています。

例 1

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

例 2

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

FoodOrderError

CheckoutResponse のエラーに関する詳細が含まれます。

次の表に、FoodOrderError タイプのプロパティを示します。

プロパティ タイプ 説明
error Error

必須。

id 文字列

error = "AVAILABILITY_CHANGED", "INCORRECT_PRICE", "PRICE_CHANGED", "INVALID", or "NOT_FOUND" の場合は必須です。

商品アイテム単位のエラーの場合、このフィールドは必須です。メニュー アイテムの場合は Google によって割り当てられた Placement.id、アドオンの場合は FoodItemOption.id です。

description 文字列

エラーの説明。この説明は内部ロギング用であり、ユーザーには表示されません。

updatedPrice Money

error = "PRICE_CHANGED" の場合は必須です。

エラーの原因となった商品の新しい価格。これは、エラーが「PRICE_CHANGED」の場合にのみ必要です。

availableQuantity 整数

error = "INVALID", or "NOT_FOUND" の場合は必須です。

エラーの原因となった商品の新しい在庫数量。これは、エラーが「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」に設定されます。

値: 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 AppRequestSubmit AppRequest では、Cart.extension.fulfillmentPreference にユーザーの好み(宅配または受け取り)を保存します。購入手続きが送信された時点では、価格は常に 0 になります。
  • Checkout AppResponse では、ProposedOrder.extension.availableFulfillmentOptions を使用して、1 つ以上の配信オプションを定義します(現在、1 つのオプションのみサポートしています)。デフォルト オプションは、ProposedOrder.otherItemsLineItem として指定します。FulfillmentOptionofferId は、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 文字列

type = "REGULAR" の場合は必須です。

カート内の広告申込情報(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 整数

type = "REGULAR" の場合は必須です。

含まれるアイテムの数。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 文字列

type = "REGULAR" の場合は必須です。

アイテムの MenuItem のオファー ID。ProposedOrder.otherItems には適用されません。

extension FoodItemExtension

食品のアドオンを定義します。

次の例は、LineItem 要素を示しています。

例 1

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

例 2

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

LineItemType

LineItemType 型が取り得る値は次のとおりです。

  • REGULAR: 商品広告申込情報。Cart.lineItems で有効です。
  • TAX: 税金項目。ProposedOrder.otherItems に適用されます。
  • DISCOUNT: 割引の項目。価格は負数でなければなりません。ProposedOrder.otherItems に適用されます。
  • GRATUITY: チップ広告申込情報。通常は、ユーザーが選択したチップの SubmitOrderRequestMessage 用に予約されています。ProposedOrder.otherItems に適用されます。
  • DELIVERY: 配信広告申込情報。ProposedOrder.otherItems に適用されます。
  • SUBTOTAL: 小計項目。ProposedOrder.otherItems に適用されます。
  • FEE: 他のタイプに含まれない追加の広告申込情報。ProposedOrder.otherItems に適用されます。

ロケーション

料理の注文の住所を指定します。Location タイプは、注文の配送先のみを示すために Cart で使用されます。ユーザーが注文した場合、確定したビジネス情報も TransactionDecisionValue に存在します。受け取りを指定する注文では、場所は一切含まれません(空の場所も含まれません)。

次の表に、Location タイプのプロパティを示します。

プロパティ タイプ 説明
coordinates Coordinates
formattedAddress 文字列

場所の表示住所。

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

postalAddress PostalAddress
zipCode 文字列

例: 90210

city 文字列

都市の名前。

例: Los Angeles

notes 文字列

場所に関するメモ(ゲートコードなど)。500 文字以内で指定してください。

例: Gate code is #111

次の例は、Location 要素を示しています。

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

販売者

次の表に、Merchant タイプのプロパティを示します。

プロパティ タイプ 説明
id 文字列

販売者の ID。指定すると、レストラン フィードの Restaurant.@id と一致します。

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

name 文字列

必須。

販売者に表示される、販売者の名前。

例: Falafel Bite

次の例は、Merchant 要素を示しています。

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

通貨

次の表に、Money タイプのプロパティを示します。

プロパティ タイプ 説明
currencyCode 文字列

必須。

ISO 4217 形式の 3 文字の通貨コード。

例: USD

units 文字列

金額の単位。たとえば、currencyCode が「USD」の場合、「1」単位は 1 米ドルです。

例: 36

nanos 整数

金額のナノ(10^-9)単位の数。値は -999,999,999 ~+999,999,999 までの範囲で指定してください。次の規則を使用します。単位が正の場合、nanos は正またはゼロでなければなりません。単位がゼロの場合、ナノは正、ゼロ、負のいずれかになります。単位が負の場合、ナノは負または 0 でなければなりません。たとえば、$-1.75 は units = -1、nanos = -750,000,000 と表されます。

例: 730000000

次の例は、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

orderState.state = "REJECTED" の場合は必須です。

cancellationInfo CancellationInfo

orderState.state = "CANCELLED" の場合は必須です。

inTransitInfo InTransitInfo

このフィールドは非推奨になりました。

fulfillmentInfo FulfillmentInfo

このフィールドは非推奨になりました。

receipt Receipt

orderState.state = "CONFIRMED", "IN_PREPARATION", or "READY_FOR_PICKUP" の場合は必須です。

領収書でユーザーに表示される注文 ID を指定します。

totalPrice Price

注文の合計金額。

infoExtension FoodOrderUpdateExtension

配送予定や集荷の間隔など、注文の更新の詳細情報を定義します。

次の例は、OrderUpdate 要素を示しています。

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

PickupInfo

次の表に、PickupInfo タイプのプロパティを示します。

プロパティ タイプ 説明
pickupTimeIso8601 文字列

予想集荷時間(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購入手続きのレスポンス時に集荷時間の予定を更新するために使用します。

例: PT90M

次の例は、PickupInfo 要素を示しています。

{
  "pickupTimeIso8601": "PT90M"
}

PostalAddress

次の表に、PostalAddress タイプのプロパティを示します。

プロパティ タイプ 説明
regionCode 文字列

必須。

2 文字の国コード。

例: US

postalCode 文字列

郵便番号です。

例: 94043

administrativeArea 文字列

その国 / 地域の郵便住所に使用される最上位の行政区域。州、都道府県、都道府県などが該当します。

例: CA

locality 文字列

この場所の市区町村。地域区分が明確に定義されていない、またはこの構造に当てはまらない地域では、locality を指定せず、代わりに addressLines フィールドを使用します。

例: Mountain View

addressLines List<String>

番地を指定するために使用できる 1 行または複数行。地域が不明確な場合があるため、このフィールドは変更しないでください。

例: [ "1350 Charleston Road" ]

recipients List<String>

注文の受取人のリスト。このフィールドは billingAddress でのみ使用できます。

次の例は、PostalAddress 要素を示しています。

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

価格

次の表に、Price タイプのプロパティを示します。

プロパティ タイプ 説明
type Enum [ "ESTIMATE", "ACTUAL" ]

必須。

プロモーション クーポンコード。

amount Money

必須。

プロモーション

次の表に、Promotion タイプのプロパティを示します。

プロパティ タイプ 説明
coupon 文字列

必須。

プロモーション クーポンコード。

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 に設定します。

値: 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 文字以下にして、正しくレンダリングされるようにしてください。

例: Contact us

openUrlAction OpenUrlAction

必須。

次の例は、Button 要素を示しています。

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

CancellationInfo

次の表に、CancellationInfo タイプのプロパティを示します。

プロパティ タイプ 説明
reason 文字列

必須。

OrderState.state が「CANCELLED」の場合に、不承認の理由を表示可能なテキスト。

例: Restaurant closed

次の例は、CancellationInfo 要素を示しています。

{
  "reason": "Insufficient inventory"
}

FoodOrderUpdateExtension

このタイプでは、注文が配達される、または受け取りの準備が整うまでの推定間隔がユーザーに表示されます。情報が利用可能な場合、または前回の送信以降に情報が変更された場合は、必ず、この拡張機能を OrderUpdate で送信します。

ユーザーの期待が常に満たされるように、フルフィルメント間隔の控えめな見積もりを指定します。たとえば、今日の 13:00 に注文の配達が予定されている場合、今日の 12:45 から 13:15 など、交通状況による変動に合わせた推定間隔を送信する必要があります。

ISO 8601 の期間またはタイムスタンプは、OrderUpdateupdateTime(本質的には「現在」)から updateTime + duration までの間隔を表すと解釈されます。「now」が実際には合理的である場合を除き、この形式は使用しないでください。

ISO 8601 の間隔は、間隔の開始から終了までの間隔を意味すると解釈されます。

次の表に、FoodOrderUpdateExtension タイプのプロパティを示します。

プロパティ タイプ 説明
@type 定数

この拡張機能のタイプ。このフィールドは常に「type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension」に設定されます。

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

estimatedFulfillmentTimeIso8601 文字列

注文した商品が配送される予定、または商品の受け取り準備が整う予定までの時間。文字列は ISO 8601 形式で、1 つの固定時刻ではなく間隔に対応している必要があります。使用できる規則は、間隔、期間、日時です。このフィールドは、情報が利用可能になったとき、または到着の早さや遅延などの変更が発生したときに、SubmitOrderResponseMessage または AsyncOrderUpdateRequestMessage で送信できます。

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

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" のいずれかにする必要があります。

例: https://www.google.com

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 文字列

必須。

ユーザーに表示される、状態の表示文字列。文頭を大文字にします(アルファベットの場合)。

例: Your order has been received

次の例は、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 文字列

必須。

領収書に記載されているお支払い方法の名前。

例: Taco Points Total

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 文字列

必須。

例: braintree

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 のメジャー バージョン。

値: 2

apiVersionMinor 定数

必須。

マイナー API バージョン。

値: 0

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 のみです。

値: 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」を使用します。合計金額は、請求先住所に基づいて徴収される売上税など、レスポンスの詳細情報に基づいて調整される場合があります。

値: ESTIMATED

totalPrice 文字列

必須。

取引の合計金額。小数点以下 2 桁の小数点精度が適用されます。このフィールドには car.totalPrice と同じ値を指定する必要があります。

次の例は、TransactionInfo 要素を示しています。

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