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

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

ベースタイプ

カート

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

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

プロパティ タイプ 説明
@type Const

このオブジェクトのタイプ。親の Cart オブジェクトが ProposedOrder の一部である場合は、このフィールドを省略します。

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

id String

カートの ID(省略可)。

merchant Merchant

このカートに関連付けられている販売者。

lineItems List<LineItem>

必須。

ユーザーが注文しようとしている商品またはサービスのリスト。

1 つ以上の項目が必要です。

promotions List<Promotion>

このカートに適用されているプロモーション。現在、サポートされているのは 1 つのプロモーションのみです。

notes String

注文または配送手順に関するメモ。

extension FoodCartExtension

フルフィルメントの設定など、ユーザーに関する詳細を定義します。

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

例 1

{
  "@type": "type.googleapis.com/google.actions.v2.orders.Cart",
  "merchant": {
    "id": "https://www.exampleprovider.com/merchant/id1",
    "name": "Cucina Venti"
  },
  "lineItems": [
    {
      "name": "Sizzling Prawns Dinner",
      "type": "REGULAR",
      "id": "sample_item_offer_id_1",
      "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
      "quantity": 1,
      "price": {
        "type": "ESTIMATE",
        "amount": {
          "currencyCode": "USD",
          "units": "16",
          "nanos": 750000000
        }
      },
      "subLines": [
        {
          "note": "Notes for this item."
        }
      ],
      "extension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
        "options": [
          {
            "id": "sample_addon_offer_id_1",
            "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
            "name": "Honey Mustard",
            "price": {
              "currencyCode": "USD"
            },
            "quantity": 1
          },
          {
            "id": "sample_addon_offer_id_2",
            "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
            "name": "BBQ Sauce",
            "price": {
              "currencyCode": "USD",
              "nanos": 500000000
            },
            "quantity": 1
          }
        ]
      }
    }
  ],
  "extension": {
    "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
    "fulfillmentPreference": {
      "fulfillmentInfo": {
        "delivery": {
          "deliveryTimeIso8601": "P0M"
        }
      }
    },
    "location": {
      "coordinates": {
        "latitude": 37.788783,
        "longitude": -122.41384
      },
      "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States",
      "zipCode": "94043",
      "city": "Mountain View",
      "postalAddress": {
        "regionCode": "US",
        "postalCode": "94043",
        "administrativeArea": "CA",
        "locality": "Mountain View",
        "addressLines": [
          "1350 Charleston Road"
        ]
      },
      "notes": "Gate code is #111"
    }
  }
}

例 2

{
  "merchant": {
    "id": "https://www.exampleprovider.com/merchant/id1",
    "name": "Falafel Bite"
  },
  "lineItems": [
    {
      "name": "Pita Chips",
      "type": "REGULAR",
      "id": "sample_item_offer_id_1",
      "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
      "quantity": 1,
      "price": {
        "type": "ESTIMATE",
        "amount": {
          "currencyCode": "USD",
          "units": "2",
          "nanos": 750000000
        }
      },
      "subLines": [
        {
          "note": "Notes for this item."
        }
      ],
      "extension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
        "options": [
          {
            "id": "sample_addon_offer_id_1",
            "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
            "name": "Honey Mustard",
            "price": {
              "currencyCode": "USD"
            },
            "quantity": 1
          },
          {
            "id": "sample_addon_offer_id_2",
            "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
            "name": "BBQ Sauce",
            "price": {
              "currencyCode": "USD",
              "nanos": 500000000
            },
            "quantity": 1
          }
        ]
      }
    },
    {
      "name": "Chicken Shwarma Wrap",
      "type": "REGULAR",
      "id": "sample_item_offer_id_2",
      "offerId": "https://www.exampleprovider.com/menu/item/offer/id2",
      "quantity": 1,
      "price": {
        "type": "ESTIMATE",
        "amount": {
          "currencyCode": "USD",
          "units": "8"
        }
      },
      "extension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
      }
    },
    {
      "name": "Greek Salad",
      "type": "REGULAR",
      "id": "sample_item_offer_id_3",
      "offerId": "https://www.exampleprovider.com/menu/item/offer/id3",
      "quantity": 1,
      "price": {
        "type": "ESTIMATE",
        "amount": {
          "currencyCode": "USD",
          "units": "9",
          "nanos": 990000000
        }
      },
      "extension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
      }
    },
    {
      "name": "Prawns Biryani",
      "type": "REGULAR",
      "id": "sample_item_offer_id_4",
      "offerId": "https://www.exampleprovider.com/menu/item/offer/id4",
      "quantity": 1,
      "price": {
        "type": "ESTIMATE",
        "amount": {
          "currencyCode": "USD",
          "units": "15",
          "nanos": 990000000
        }
      },
      "extension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
      }
    }
  ],
  "extension": {
    "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
    "fulfillmentPreference": {
      "fulfillmentInfo": {
        "delivery": {
          "deliveryTimeIso8601": "P90M"
        }
      }
    },
    "location": {
      "coordinates": {
        "latitude": 37.788783,
        "longitude": -122.41384
      },
      "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States",
      "zipCode": "94043",
      "city": "Mountain View",
      "postalAddress": {
        "regionCode": "US",
        "postalCode": "94043",
        "administrativeArea": "CA",
        "locality": "Mountain View",
        "addressLines": [
          "1350 Charleston Road"
        ]
      },
      "notes": "Gate code is #111"
    }
  }
}

連絡先

注文の受取人に関する詳細を指定します。AppResponse でのみ使用できます。

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

プロパティ タイプ 説明
displayName String

注文の受取人の名前(表示する名前)。firstName と lastName が指定されていない場合は、このフィールドを使用します。

例: Lovefood Ordering

email String

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

例: ilovefood@example.com

firstName String

注文を受け取るお客様の名(ファースト ネーム)。

例: Lovefood

lastName String

注文品を受け取るお客様の姓。

例: Ordering

phoneNumber String

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

例: +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 String

配達予定日時(ISO 8601 タイムスタンプ形式: 「{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z」または期間形式: 「P(n)Y(n)M(n)DT(n)H(n)M(n)S」)。たとえば、PT90M は 90 分間の長さを表します。デフォルト値「PT0M」は、できるだけ早く配信することを示します。参照: https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations購入手続きのレスポンス時に配達予定日を更新する場合に使用します。

例: PT90M

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

{
  "deliveryTimeIso8601": "PT90M"
}

免責条項

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

プロパティ タイプ 説明
predefinedMessage PredefinedMessage

必須。

購入手続き時に事前定義された免責条項メッセージを表示する。

feeAmount Money

パートナーは、この注文に対して販売者に N の金額の手数料を請求します。

feeAmountRange FeeAmountRange

パートナーは、注文ごとにレストランに N ~ M の金額の手数料を請求します。

feePercent 数値

パートナーは、この注文に対して販売者に N% の手数料を請求します。

feePercentRange FeePercentRange

パートナーは、販売者に注文ごとに N% ~ M% の手数料を請求します。

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

例 1

{
  "predefinedMessage": "NEW_YORK_DELIVERY_FEE_TIP_DISCLAIMER"
}

例 2

{
  "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE"
}

例 3

{
  "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE",
  "feePercent": 25
}

例 4

{
  "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE",
  "feePercentRange": {
    "minFeePercent": 20,
    "maxFeePercent": 30
  }
}

例 5

{
  "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE",
  "feeAmount": {
    "currencyCode": "AUD",
    "units": 2,
    "nanos": 500000000
  }
}

例 6

{
  "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE",
  "feeAmountRange": {
    "minFeeAmount": {
      "currencyCode": "AUD",
      "units": 2,
      "nanos": 500000000
    },
    "maxFeeAmount": {
      "currencyCode": "AUD",
      "units": 10,
      "nanos": 0
    }
  }
}

エラー

Error 型には次の値を使用できます。

  • CLOSED: レストランのラストオーダーの時間を過ぎています。
  • NO_CAPACITY: 利用可能なサービス容量がありません(ピーク時間による一時的な停止など)。
  • NO_COURIER_AVAILABLE: 配送担当者の数が限られているため、注文を処理できません。
  • REQUIREMENTS_NOT_MET: 注文の受領条件が満たされていません(最小バスケット サイズなど)。
  • UNAVAILABLE_SLOT: DeliveryInfo または PickupInfo で指定された事前注文時間に注文を処理できません。
  • OUT_OF_SERVICE_AREA: 注文をユーザーの住所に配送できない。
  • PROMO_EXPIRED: プロモーション期間が終了したため、適用できませんでした。
  • PROMO_NOT_APPLICABLE: 他のどのプロモーション コードのエラーにも該当しない場合に、プロモーション コードの適用に失敗したすべてのケースをキャッチする一般的なエラーコード。
  • PROMO_NOT_RECOGNIZED: クーポンコードが認識されませんでした。
  • PROMO_ORDER_INELIGIBLE: 現在の注文はこのクーポンの対象ではありません。
  • PROMO_USER_INELIGIBLE: 現在のユーザーはこのクーポンを利用する資格を持っていません。
  • AVAILABILITY_CHANGED: 商品が利用できなくなったか、リクエストを履行するのに十分な商品がありません。
  • INCORRECT_PRICE: 手数料または合計金額に誤りがあります。
  • INVALID: LineItem、FulfillmentOption、Promotion に無効なデータが含まれています。
  • NOT_FOUND: LineItem、FulfillmentOption、Promotion が見つかりません。
  • PRICE_CHANGED: 商品の価格が変更されました。

FeeAmountRange

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

プロパティ タイプ 説明
minFeeAmount Money

請求される手数料の下限額。

maxFeeAmount Money

請求される料金の上限。

FeePercentRange

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

プロパティ タイプ 説明
minFeePercent 数値

請求される手数料の下限。

maxFeePercent 数値

請求される手数料の割合の上限。

FoodCartExtension

フルフィルメントの設定など、ユーザーに関する詳細情報が含まれます。

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

プロパティ タイプ 説明
@type Const

この広告表示オプションのタイプ。このフィールドは常に「type.googleapis.com/google.actions.v2.orders.FoodCartExtension」に設定されます。

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

contact Contact

注文品を受け取るユーザーの連絡先情報。詳細には、お客様の名前、電話番号、メールアドレスが含まれます。

fulfillmentPreference FulfillmentOption

必須。

ユーザーのフルフィルメント設定。

location Location

CheckoutRequestMessage では、このフィールドに配送先住所を指定します。注文が配送の場合、このフィールドは必須です。テイクアウトまたは持ち帰りの注文の場合、このフィールドはメッセージに含まれません。

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

例 1

{
  "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
  "fulfillmentPreference": {
    "fulfillmentInfo": {
      "delivery": {
        "deliveryTimeIso8601": "P0M"
      }
    }
  },
  "location": {
    "coordinates": {
      "latitude": 37.788783,
      "longitude": -122.41384
    },
    "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States",
    "zipCode": "94043",
    "city": "Mountain View",
    "postalAddress": {
      "regionCode": "US",
      "postalCode": "94043",
      "administrativeArea": "CA",
      "locality": "Mountain View",
      "addressLines": [
        "1350 Charleston Road"
      ]
    },
    "notes": "Gate code is #111"
  }
}

例 2

{
  "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
  "fulfillmentPreference": {
    "fulfillmentInfo": {
      "pickup": {
        "pickupTimeIso8601": "P0M"
      }
    }
  },
  "contact": {
    "displayName": "Lovefood Ordering",
    "email": "ilovefood@example.com",
    "phoneNumber": "+16501234567"
  }
}

FoodErrorExtension

リクエストの処理中に発生した 1 つ以上のエラーを示します。次の表に、FoodErrorExtension タイプのフィールドを示します。エラーは CheckoutResponse で送信できます。

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

プロパティ タイプ 説明
@type Const

必須。

この広告表示オプションのタイプ。

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

foodOrderErrors List<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 List<PaymentOptions>

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

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

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

FoodItemExtension

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

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

プロパティ タイプ 説明
@type Const

必須。

この広告表示オプションのタイプ。このフィールドは常に「type.googleapis.com/google.actions.v2.orders.FoodItemExtension」に設定されます。

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

options List<FoodItemOption>

オプションには、アドオン アイテムや、一連のアドオンを含むアドオン グループがあります。

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

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

FoodItemOption

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

プロパティ タイプ 説明
id String

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

例: 39231093

offerId String

商品アイテムのオファー ID。

例: 912835081

name String

オプションの名前。

例: Honey Mustard

price Money
note String

オプションに関する注意事項。

quantity 数値

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

例: 3

subOptions List<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 String

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

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

description String

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

updatedPrice Money

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

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

availableQuantity 整数

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

エラーの原因となった商品アイテムの新しい在庫数。これは、エラーが「INVALID」または「NOT_FOUND」の場合にのみ必要です。「INVALID」と「NOT_FOUND」の場合は、値を 0 にする必要があります。

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

例 1

{
  "error": "CLOSED",
  "description": "This store is currently reachable. Please try again later."
}

例 2

{
  "error": "PRICE_CHANGED",
  "id": "french_fries",
  "description": "The price has changed.",
  "updatedPrice": {
    "currencyCode": "USD",
    "units": "2",
    "nanos": 750000000
  }
}

FoodOrderExtension

注文のフルフィルメント情報が含まれます。

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

プロパティ タイプ 説明
@type Const

この広告表示オプションのタイプ。このフィールドは常に「type.googleapis.com/google.actions.v2.orders.FoodOrderExtension」に設定されます。

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

availableFulfillmentOptions List<FulfillmentOption>

注文で利用可能なフルフィルメント オプションを表します。

optinForRemarketing ブール値

マーケティング チャネルへのオプトインをユーザーがリクエストしている。デフォルトでは、ユーザーの同意を得ずにマーケティング コンテンツを送信することはできません。optinForRemarketing が true の場合、ユーザーを登録できます。optinForRemarketing が false の場合、または存在しない場合、システムのサブスクリプション ステータスはそのままにする必要があります。ユーザーは Google でオプトアウトすることはできず、マーケティング チャネルで提供されているオプトアウト機能のみを使用できます。このフラグは SubmitOrderRequestMessage にのみ存在します。

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

例 1

{
  "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension",
  "availableFulfillmentOptions": [
    {
      "fulfillmentInfo": {
        "delivery": {
          "deliveryTimeIso8601": "P0M"
        }
      },
      "expiresAt": "2017-07-17T12:30:00Z"
    }
  ]
}

例 2

{
  "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension",
  "availableFulfillmentOptions": [
    {
      "fulfillmentInfo": {
        "pickup": {
          "pickupTimeIso8601": "P0M"
        }
      },
      "expiresAt": "2020-08-20T11:41:00Z"
    }
  ],
  "optinForRemarketing": true
}

FulfillmentOption

FulfillmentOption オブジェクトは次の方法で使用できます。
  • Checkout AppRequestSubmit AppRequestCart.extension.fulfillmentPreference: ユーザーの設定(配送または受け取り)を保存します。購入手続きリクエストが送信されたとき、価格は常に 0 です。
  • Checkout AppResponseProposedOrder.extension.availableFulfillmentOptions: 1 つ以上の配送オプションを定義します(現在、サポートされているオプションは 1 つだけです)。デフォルト オプションは、ProposedOrder.otherItemsLineItem として指定します。FulfillmentOptionofferId は、ProposedOrder.otherItems で指定された LineItem の ID と一致する必要があります。

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

プロパティ タイプ 説明
offerId String

このフルフィルメント オプションの一意の識別子(存在する場合)。

fulfillmentInfo FulfillmentOptionInfo

必須。

expiresAt ISO タイムスタンプ

このフルフィルメント オプションの有効期限が切れる日時。

price Money

このオプションの費用。

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

{
  "offerId": "offer5",
  "fulfillmentInfo": {
    "pickup": {
      "pickupTimeIso8601": "P0M"
    }
  },
  "expiresAt": "2019-05-02T00:00:00-07:00",
  "price": {
    "currencyCode": "USD",
    "units": "5",
    "nanos": 230000000
  }
}

FulfillmentOptionInfo

FulfillmentInfo に関連する情報を定義します。

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

プロパティ タイプ 説明
次のいずれかのプロパティ グループを 1 つ指定する必要があります。
delivery グループ 1 DeliveryInfo

存在する場合は、配送注文を示します。

pickup グループ 2 PickupInfo

存在する場合は、集荷注文であることを示します。

画像

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

プロパティ タイプ 説明
sourceUrl String

必須。

画像の URL。画像は 72 x 72 ピクセル以上にする必要があります。最適に表示されるように、216 x 216 ピクセル以上の解像度の画像を使用してください。画像は 6 MB 未満、64 メガピクセル未満でなければなりません。

LineItem

カートの内容(Cart.lineItems)または注文の追加料金(ProposedOrder.otherItems)を定義します。

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

プロパティ タイプ 説明
id String

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

カートの LineItem(ProposedOrder.cart.lineItems[0].id)の場合、これは注文の作成時に Google によって作成された一意の ID です。ProposedOrder の LineItem(ProposedOrder.otherItems[0].id)は、送料や税金などのアイテムを追加するために使用されます。この場合、id の値はプロバイダによって定義されます。たとえば、カートに同じ商品が 2 つあり、調理手順が異なる場合(トッピングが異なる 2 つの中サイズのピザなど)は、この場合、両方のアイテムのベース offerId は同じです。アイテムが不承認であることを示す注文更新リクエストを送信する場合は、この ID を不明瞭化子として使用します。つまり、特定のトッピングが不足しているためにピザの 1 つが不承認となった場合、ID により、お客様が言及している注文内のアイテムを Google が特定できます。このフィールドは、otherItems を除き必須です。

name String

必須。

項目の名前。これはユーザーに表示される文字列であるため、可能であれば大文字で入力します(「送料」、「サービス料」、「税金」など)。このフィールドは、ユーザーに対しては 100 文字で切り捨てられます。

type LineItemType

必須。

quantity 整数

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

項目の数量。ProposedOrder.otherItems には適用されません。

description String

項目の説明。

price Price

必須。

商品アイテムの価格。この値には、この行項目のすべての商品またはサービスの合計金額が反映されます(つまり、アドオンの費用を合計して数量を掛けた金額です)。たとえば、10 ドルの商品の数量が 3 個の場合、価格は 30 ドルになります。基本価格が 5 ドルでアドオンが 1 ドルのピザ 1 枚の場合、価格は 6 ドルとなります。ベース価格が 5 ドルで、それぞれに 1 ドルのアドオンが付いた 2 つのピザ(数量 = 2)の場合、価格は 12 ドルになります。価格が「0」の場合でも、各項目には価格が必要です。タイプが DISCOUNT の場合は、値を負の値として指定します(例: -2)。

subLines List<SublineNote>

省略可能で、type が「REGULAR」の場合にのみ有効です。購入手続きリクエストと注文送信リクエストのこのフィールドに、ユーザーからの商品固有のメモが送信される場合があります。メモを送信する際は、販売者に届いたことを確認してください。この値は、リクエストに subLines[0].note として含まれます。この値は、リクエストに存在する場合、このフィールドで指定される唯一の値です。

1 つの項目のみにする必要があります。

offerId String

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 String

場所の住所を表示します。

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

postalAddress PostalAddress
zipCode String

例: 90210

city String

都市の名前。

例: Los Angeles

notes String

ゲートコードなどの場所に関するメモ。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 String

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

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

name String

必須。

ユーザーに表示される販売者の名前。

例: Falafel Bite

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

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

Money

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

プロパティ タイプ 説明
currencyCode String

必須。

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

例: USD

units String

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

例: 36

nanos 整数

金額の小数部分をナノ(10^-9)単位で表した数。値は -999,999,999 以上 +999,999,999 以下でなければなりません。次のルールを使用します。units が正の場合、nanos は正またはゼロでなければなりません。units がゼロの場合、nanos は正、ゼロ、または負の値です。単位が負の場合、ナノは負またはゼロでなければなりません。たとえば、$-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 String

必須。

Google によって割り当てられた注文 ID。この ID は、注文のライフサイクル全体で安定している必要があります。この ID はエンドユーザーには表示されません。

orderDate ISO タイムスタンプ

必須。

この注文が作成された日時。

paymentInfo PaymentInfo

必須。

この注文の支払いに対応する支払い情報。

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

{
  "finalOrder": {
    "cart": {
      "notes": "Guest prefers their food to be hot when it is delivered.",
      "merchant": {
        "id": "https://www.exampleprovider.com/merchant/id1",
        "name": "Cucina Venti"
      },
      "lineItems": [
        {
          "name": "Sizzling Prawns Dinner",
          "type": "REGULAR",
          "id": "sample_item_offer_id_1",
          "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
          "quantity": 1,
          "price": {
            "type": "ESTIMATE",
            "amount": {
              "currencyCode": "USD",
              "units": "16",
              "nanos": 750000000
            }
          },
          "subLines": [
            {
              "note": "Notes for this item."
            }
          ],
          "extension": {
            "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
            "options": [
              {
                "id": "sample_addon_offer_id_1",
                "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
                "name": "Honey Mustard",
                "price": {
                  "currencyCode": "USD"
                },
                "quantity": 1
              },
              {
                "id": "sample_addon_offer_id_2",
                "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
                "name": "BBQ Sauce",
                "price": {
                  "currencyCode": "USD",
                  "nanos": 500000000
                },
                "quantity": 1
              }
            ]
          }
        }
      ],
      "extension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
        "fulfillmentPreference": {
          "fulfillmentInfo": {
            "pickup": {
              "pickupTimeIso8601": "P0M"
            }
          }
        },
        "contact": {
          "displayName": "Lovefood Ordering",
          "email": "ilovefood@example.com",
          "phoneNumber": "+16501234567"
        }
      }
    },
    "otherItems": [
      {
        "name": "Service fee",
        "type": "FEE",
        "price": {
          "type": "ESTIMATE",
          "amount": {
            "currencyCode": "USD",
            "units": "3",
            "nanos": 500000000
          }
        }
      },
      {
        "name": "Tax",
        "type": "TAX",
        "price": {
          "type": "ESTIMATE",
          "amount": {
            "currencyCode": "USD",
            "units": "1",
            "nanos": 370000000
          }
        }
      },
      {
        "name": "Tip",
        "type": "GRATUITY",
        "price": {
          "type": "ESTIMATE",
          "amount": {
            "currencyCode": "USD",
            "units": "2",
            "nanos": 590000000
          }
        }
      }
    ],
    "totalPrice": {
      "type": "ESTIMATE",
      "amount": {
        "currencyCode": "USD",
        "units": "23",
        "nanos": 710000000
      }
    },
    "id": "sample_final_order_id",
    "extension": {
      "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension",
      "availableFulfillmentOptions": [
        {
          "fulfillmentInfo": {
            "pickup": {
              "pickupTimeIso8601": "P0M"
            }
          },
          "expiresAt": "2017-07-17T12:30:00Z"
        }
      ],
      "optinForRemarketing": true
    }
  },
  "googleOrderId": "sample_google_order_id",
  "orderDate": "2017-07-17T12:00:00Z",
  "paymentInfo": {
    "displayName": "Visa\u2006****\u20061111",
    "googleProvidedPaymentInstrument": {
      "instrumentToken": "abcd"
    },
    "paymentType": "PAYMENT_CARD"
  }
}

OrderUpdate

次の表に、AppResponse に含まれる OrderUpdate タイプのフィールドを示します。

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

プロパティ タイプ 説明
actionOrderId String

必須。

更新が送信される注文を識別するために使用される、インテグレータのシステム内の注文の一意の ID。「CREATED」の注文の OrderUpdate で receipt.user_visible_order_id が 1 回以上指定されていない場合、この ID が入力されたユーザー公開 ID となり、Google の注文カードに表示されます。

orderState OrderState

必須。

注文の新しい状態。

lineItemUpdates Map<String, LineItemUpdate>
updateTime ISO タイムスタンプ

必須。

注文が更新された日時。

orderManagementActions List<OrderManagementAction>

注文後のアクション(サポートへの連絡、注文の詳細の表示など)。

項目は 1 つ以上 6 つ以下にする必要があります。

rejectionInfo RejectionInfo

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 String

集荷予定時刻(ISO 8601 タイムスタンプ形式: 「{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z」または時間形式: 「P(n)Y(n)M(n)DT(n)H(n)M(n)S」)。たとえば、PT90M は 90 分間の長さを表します。デフォルト値「PT0M」は、できるだけ早い時間に集荷することを希望していることを示します。参照: https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations購入手続きのレスポンス時に、集荷予定時間を更新するために使用します。

例: PT90M

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

{
  "pickupTimeIso8601": "PT90M"
}

PostalAddress

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

プロパティ タイプ 説明
regionCode String

必須。

2 文字の国コード。

例: US

postalCode String

郵便番号です。

例: 94043

administrativeArea String

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

例: CA

locality String

この場所の市区町村。地域区分が明確に定義されていない地域や、この体系が当てはまらない地域では、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 String

必須。

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

ProposedOrder

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

プロパティ タイプ 説明
id String

提案された注文の ID(省略可)。

cart Cart

必須。

ユーザーの項目。

otherItems List<LineItem>

プロバイダが追加した項目(送料、その他の手数料、税金など)。otherItems には、ユーザーが追加したチップや割引も含まれる場合があります。

10 個以下にしてください。

image Image

この注文に関連付けられている画像。

totalPrice Price

必須。

この注文の合計金額。

extension FoodOrderExtension

必須。

フード注文のフルフィルメント情報を定義します。

disclaimers List<Disclaimer>

注文前に UI に表示される免責条項メッセージに対応します。

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

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

SublineNote

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

プロパティ タイプ 説明
note String

必須。

タイムスタンプ

日時(次の形式)。 "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"

TransactionDecisionValue

Order が含まれます。

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

プロパティ タイプ 説明
order Order

必須。

支払い情報を含む注文。

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

{
  "order": {
    "finalOrder": {
      "cart": {
        "notes": "Guest prefers their food to be hot when it is delivered.",
        "merchant": {
          "id": "https://www.exampleprovider.com/merchant/id1",
          "name": "Cucina Venti"
        },
        "lineItems": [
          {
            "name": "Sizzling Prawns Dinner",
            "type": "REGULAR",
            "id": "sample_item_offer_id_1",
            "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
            "quantity": 1,
            "price": {
              "type": "ESTIMATE",
              "amount": {
                "currencyCode": "USD",
                "units": "16",
                "nanos": 750000000
              }
            },
            "subLines": [
              {
                "note": "Notes for this item."
              }
            ],
            "extension": {
              "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
              "options": [
                {
                  "id": "sample_addon_offer_id_1",
                  "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
                  "name": "Honey Mustard",
                  "price": {
                    "currencyCode": "USD"
                  },
                  "quantity": 1
                },
                {
                  "id": "sample_addon_offer_id_2",
                  "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
                  "name": "BBQ Sauce",
                  "price": {
                    "currencyCode": "USD",
                    "nanos": 500000000
                  },
                  "quantity": 1
                }
              ]
            }
          }
        ],
        "extension": {
          "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
          "fulfillmentPreference": {
            "fulfillmentInfo": {
              "pickup": {
                "pickupTimeIso8601": "P0M"
              }
            }
          },
          "contact": {
            "displayName": "Lovefood Ordering",
            "email": "ilovefood@example.com",
            "phoneNumber": "+16501234567"
          }
        }
      },
      "otherItems": [
        {
          "name": "Service fee",
          "type": "FEE",
          "price": {
            "type": "ESTIMATE",
            "amount": {
              "currencyCode": "USD",
              "units": "3",
              "nanos": 500000000
            }
          }
        },
        {
          "name": "Tax",
          "type": "TAX",
          "price": {
            "type": "ESTIMATE",
            "amount": {
              "currencyCode": "USD",
              "units": "1",
              "nanos": 370000000
            }
          }
        },
        {
          "name": "Tip",
          "type": "GRATUITY",
          "price": {
            "type": "ESTIMATE",
            "amount": {
              "currencyCode": "USD",
              "units": "2",
              "nanos": 590000000
            }
          }
        }
      ],
      "totalPrice": {
        "type": "ESTIMATE",
        "amount": {
          "currencyCode": "USD",
          "units": "23",
          "nanos": 710000000
        }
      },
      "id": "sample_final_order_id",
      "extension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension",
        "availableFulfillmentOptions": [
          {
            "fulfillmentInfo": {
              "pickup": {
                "pickupTimeIso8601": "P0M"
              }
            },
            "expiresAt": "2017-07-17T12:30:00Z"
          }
        ],
        "optinForRemarketing": true
      }
    },
    "googleOrderId": "sample_google_order_id",
    "orderDate": "2017-07-17T12:00:00Z",
    "paymentInfo": {
      "displayName": "Visa\u2006****\u20061111",
      "googleProvidedPaymentInstrument": {
        "instrumentToken": "abcd"
      },
      "paymentType": "PAYMENT_CARD"
    }
  }
}

フルフィルメント リクエスト

AppRequest

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

プロパティ タイプ 説明
isInSandbox ブール値

後続のトランザクションがサンドボックス環境で実行されるかどうかを示します。

conversation Conversation
inputs List<Input>

必須。

カートの購入手続きに必要な引数を指定します。

1 つの項目のみ指定できます。

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

例 1

{
  "isInSandbox": true,
  "inputs": [
    {
      "intent": "actions.foodordering.intent.CHECKOUT",
      "arguments": [
        {
          "extension": {
            "@type": "type.googleapis.com/google.actions.v2.orders.Cart",
            "merchant": {
              "id": "https://www.exampleprovider.com/merchant/id1",
              "name": "Cucina Venti"
            },
            "lineItems": [
              {
                "name": "Sizzling Prawns Dinner",
                "type": "REGULAR",
                "id": "sample_item_offer_id_1",
                "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
                "quantity": 1,
                "price": {
                  "type": "ESTIMATE",
                  "amount": {
                    "currencyCode": "USD",
                    "units": "16",
                    "nanos": 750000000
                  }
                },
                "subLines": [
                  {
                    "note": "Notes for this item."
                  }
                ],
                "extension": {
                  "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
                  "options": [
                    {
                      "id": "sample_addon_offer_id_1",
                      "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
                      "name": "Honey Mustard",
                      "price": {
                        "currencyCode": "USD"
                      },
                      "quantity": 1
                    },
                    {
                      "id": "sample_addon_offer_id_2",
                      "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
                      "name": "BBQ Sauce",
                      "price": {
                        "currencyCode": "USD",
                        "nanos": 500000000
                      },
                      "quantity": 1
                    }
                  ]
                }
              }
            ],
            "extension": {
              "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
              "fulfillmentPreference": {
                "fulfillmentInfo": {
                  "delivery": {
                    "deliveryTimeIso8601": "P0M"
                  }
                }
              },
              "location": {
                "coordinates": {
                  "latitude": 37.788783,
                  "longitude": -122.41384
                },
                "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States",
                "zipCode": "94043",
                "city": "Mountain View",
                "postalAddress": {
                  "regionCode": "US",
                  "postalCode": "94043",
                  "administrativeArea": "CA",
                  "locality": "Mountain View",
                  "addressLines": [
                    "1350 Charleston Road"
                  ]
                },
                "notes": "Gate code is #111"
              }
            }
          }
        }
      ]
    }
  ]
}

例 2

{
  "isInSandbox": true,
  "inputs": [
    {
      "intent": "actions.intent.TRANSACTION_DECISION",
      "arguments": [
        {
          "transactionDecisionValue": {
            "order": {
              "finalOrder": {
                "cart": {
                  "notes": "Guest prefers their food to be hot when it is delivered.",
                  "merchant": {
                    "id": "https://www.exampleprovider.com/merchant/id1",
                    "name": "Cucina Venti"
                  },
                  "lineItems": [
                    {
                      "name": "Sizzling Prawns Dinner",
                      "type": "REGULAR",
                      "id": "sample_item_offer_id_1",
                      "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
                      "quantity": 1,
                      "price": {
                        "type": "ESTIMATE",
                        "amount": {
                          "currencyCode": "USD",
                          "units": "16",
                          "nanos": 750000000
                        }
                      },
                      "subLines": [
                        {
                          "note": "Notes for this item."
                        }
                      ],
                      "extension": {
                        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
                        "options": [
                          {
                            "id": "sample_addon_offer_id_1",
                            "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
                            "name": "Honey Mustard",
                            "price": {
                              "currencyCode": "USD"
                            },
                            "quantity": 1
                          },
                          {
                            "id": "sample_addon_offer_id_2",
                            "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
                            "name": "BBQ Sauce",
                            "price": {
                              "currencyCode": "USD",
                              "nanos": 500000000
                            },
                            "quantity": 1
                          }
                        ]
                      }
                    }
                  ],
                  "extension": {
                    "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
                    "fulfillmentPreference": {
                      "fulfillmentInfo": {
                        "pickup": {
                          "pickupTimeIso8601": "P0M"
                        }
                      }
                    },
                    "contact": {
                      "displayName": "Lovefood Ordering",
                      "email": "ilovefood@example.com",
                      "phoneNumber": "+16501234567"
                    }
                  }
                },
                "otherItems": [
                  {
                    "name": "Service fee",
                    "type": "FEE",
                    "price": {
                      "type": "ESTIMATE",
                      "amount": {
                        "currencyCode": "USD",
                        "units": "3",
                        "nanos": 500000000
                      }
                    }
                  },
                  {
                    "name": "Tax",
                    "type": "TAX",
                    "price": {
                      "type": "ESTIMATE",
                      "amount": {
                        "currencyCode": "USD",
                        "units": "1",
                        "nanos": 370000000
                      }
                    }
                  },
                  {
                    "name": "Tip",
                    "type": "GRATUITY",
                    "price": {
                      "type": "ESTIMATE",
                      "amount": {
                        "currencyCode": "USD",
                        "units": "2",
                        "nanos": 590000000
                      }
                    }
                  }
                ],
                "totalPrice": {
                  "type": "ESTIMATE",
                  "amount": {
                    "currencyCode": "USD",
                    "units": "23",
                    "nanos": 710000000
                  }
                },
                "id": "sample_final_order_id",
                "extension": {
                  "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension",
                  "availableFulfillmentOptions": [
                    {
                      "fulfillmentInfo": {
                        "pickup": {
                          "pickupTimeIso8601": "P0M"
                        }
                      },
                      "expiresAt": "2017-07-17T12:30:00Z"
                    }
                  ],
                  "optinForRemarketing": true
                }
              },
              "googleOrderId": "sample_google_order_id",
              "orderDate": "2017-07-17T12:00:00Z",
              "paymentInfo": {
                "displayName": "Visa\u2006****\u20061111",
                "googleProvidedPaymentInstrument": {
                  "instrumentToken": "abcd"
                },
                "paymentType": "PAYMENT_CARD"
              }
            }
          }
        }
      ]
    }
  ]
}

CheckoutRequestMessage

CheckoutRequestMessage は、actions.foodordering.intent.CHECKOUT インテントを備えた AppRequest です。

SubmitOrderRequestMessage

SubmitOrderRequestMessage は、actions.foodordering.intent.TRANSACTION_DECISION インテントを備えた AppRequest です。

会話

Conversation は 1 つのセッションにのみ固有です。必要に応じて、複数の Checkout アクションと SubmitOrder アクションをリンクできます。

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

プロパティ タイプ 説明
conversationId String

必須。

会話の一意の ID。

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

{
  "conversationId": "CQnJ7Z4i7UmvEZ9ph3AxyZRJ"
}

入力

カートの購入手続きに必要な引数。

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

プロパティ タイプ 説明
intent Enum [ "actions.foodordering.intent.CHECKOUT", "actions.intent.TRANSACTION_DECISION" ]

必須。

購入手続きリクエスト メッセージの場合は「actions.foodordering.intent.CHECKOUT」、注文送信リクエスト メッセージの場合は「actions.intent.TRANSACTION_DECISION」に設定します。

arguments List<Argument>

必須。

購入手続きを行うカートまたは注文が含まれます

1 つの項目のみ指定できます。

引数

ユーザーがチェックアウトする食品の詳細が含まれます。ご購入手続きでは、延長のみが適用されます。注文の送信の場合、transactionDecisionValue のみが適用されます

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

プロパティ タイプ 説明
次のいずれかのプロパティ グループを 1 つ指定する必要があります。
extension グループ 1 Cart

ユーザーがチェックアウトする食品の詳細。

transactionDecisionValue グループ 2 TransactionDecisionValue

注文内容と支払い情報を含む。

フルフィルメント レスポンス

AppResponse

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

プロパティ タイプ 説明
expectUserResponse Const

false に設定します。

値: 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 は、StructuredResponsecheckoutResponse または error が含まれる AppResponse です。

SubmitOrderResponseMessage

SubmitOrderResponseMessage は、StructuredResponseorderUpdate がある AppResponse です。

FinalResponse

カートの購入手続きまたは SubmitOrderRequestMessage に対するレスポンス。

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

プロパティ タイプ 説明
richResponse RichResponse

必須。

CheckoutRequestMessage または SubmitOrderRequestMessage に対するレスポンスが含まれます。

CheckoutResponse

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

プロパティ タイプ 説明
proposedOrder ProposedOrder

必須。

取引に使用する注文の候補。

paymentOptions PaymentOptions

必須。

ユーザーに選択されているデフォルトの支払いオプション。

additionalPaymentOptions List<PaymentOptions>

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

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

{
  "proposedOrder": {
    "id": "sample_proposed_order_id_1",
    "otherItems": [
      {
        "name": "New customer discount",
        "price": {
          "type": "ESTIMATE",
          "amount": {
            "currencyCode": "USD",
            "units": "-5",
            "nanos": -500000000
          }
        },
        "type": "DISCOUNT"
      },
      {
        "name": "Delivery fee",
        "price": {
          "type": "ESTIMATE",
          "amount": {
            "currencyCode": "USD",
            "units": "3",
            "nanos": 500000000
          }
        },
        "type": "DELIVERY"
      },
      {
        "name": "Tax",
        "price": {
          "type": "ESTIMATE",
          "amount": {
            "currencyCode": "USD",
            "units": "1",
            "nanos": 500000000
          }
        },
        "type": "TAX"
      }
    ],
    "cart": {
      "merchant": {
        "id": "https://www.exampleprovider.com/merchant/id1",
        "name": "Falafel Bite"
      },
      "lineItems": [
        {
          "name": "Pita Chips",
          "type": "REGULAR",
          "id": "sample_item_offer_id_1",
          "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
          "quantity": 1,
          "price": {
            "type": "ESTIMATE",
            "amount": {
              "currencyCode": "USD",
              "units": "2",
              "nanos": 750000000
            }
          },
          "subLines": [
            {
              "note": "Notes for this item."
            }
          ],
          "extension": {
            "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
            "options": [
              {
                "id": "sample_addon_offer_id_1",
                "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
                "name": "Honey Mustard",
                "price": {
                  "currencyCode": "USD"
                },
                "quantity": 1
              },
              {
                "id": "sample_addon_offer_id_2",
                "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
                "name": "BBQ Sauce",
                "price": {
                  "currencyCode": "USD",
                  "nanos": 500000000
                },
                "quantity": 1
              }
            ]
          }
        },
        {
          "name": "Chicken Shwarma Wrap",
          "type": "REGULAR",
          "id": "sample_item_offer_id_2",
          "offerId": "https://www.exampleprovider.com/menu/item/offer/id2",
          "quantity": 1,
          "price": {
            "type": "ESTIMATE",
            "amount": {
              "currencyCode": "USD",
              "units": "8"
            }
          },
          "extension": {
            "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
          }
        },
        {
          "name": "Greek Salad",
          "type": "REGULAR",
          "id": "sample_item_offer_id_3",
          "offerId": "https://www.exampleprovider.com/menu/item/offer/id3",
          "quantity": 1,
          "price": {
            "type": "ESTIMATE",
            "amount": {
              "currencyCode": "USD",
              "units": "9",
              "nanos": 990000000
            }
          },
          "extension": {
            "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
          }
        },
        {
          "name": "Prawns Biryani",
          "type": "REGULAR",
          "id": "sample_item_offer_id_4",
          "offerId": "https://www.exampleprovider.com/menu/item/offer/id4",
          "quantity": 1,
          "price": {
            "type": "ESTIMATE",
            "amount": {
              "currencyCode": "USD",
              "units": "15",
              "nanos": 990000000
            }
          },
          "extension": {
            "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
          }
        }
      ],
      "extension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
        "fulfillmentPreference": {
          "fulfillmentInfo": {
            "delivery": {
              "deliveryTimeIso8601": "P90M"
            }
          }
        },
        "location": {
          "coordinates": {
            "latitude": 37.788783,
            "longitude": -122.41384
          },
          "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States",
          "zipCode": "94043",
          "city": "Mountain View",
          "postalAddress": {
            "regionCode": "US",
            "postalCode": "94043",
            "administrativeArea": "CA",
            "locality": "Mountain View",
            "addressLines": [
              "1350 Charleston Road"
            ]
          },
          "notes": "Gate code is #111"
        }
      }
    },
    "totalPrice": {
      "type": "ESTIMATE",
      "amount": {
        "currencyCode": "USD",
        "units": "36",
        "nanos": 730000000
      }
    },
    "extension": {
      "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension",
      "availableFulfillmentOptions": [
        {
          "fulfillmentInfo": {
            "delivery": {
              "deliveryTimeIso8601": "P0M"
            }
          },
          "expiresAt": "2017-07-17T12:30:00Z"
        }
      ]
    }
  },
  "paymentOptions": {
    "googleProvidedOptions": {
      "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": {  \"merchantId\": \"Merchant ID\",  \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [  {    \"type\": \"CARD\",    \"parameters\": {      \"allowedAuthMethods\": [        \"PAN_ONLY\"      ],      \"allowedCardNetworks\": [        \"VISA\",        \"AMEX\",        \"MASTERCARD\"      ],      \"billingAddressRequired\": false    },    \"tokenizationSpecification\": {      \"type\": \"PAYMENT_GATEWAY\",      \"parameters\": {        \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\",        \"gateway\": \"stripe\",        \"stripe:version\": \"2019-05-16\"      }    }  }],\"transactionInfo\": {  \"currencyCode\": \"AUD\",  \"totalPriceStatus\": \"ESTIMATED\",  \"totalPrice\": \"1.0\"}}"
    }
  },
  "additionalPaymentOptions": [
    {
      "actionProvidedOptions": {
        "paymentType": "ON_FULFILLMENT",
        "displayName": "Cash on delivery."
      }
    }
  ]
}

項目

カートの購入手続きまたは SubmitOrderRequestMessage に対するレスポンスが含まれます。

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

プロパティ タイプ 説明
structuredResponse StructuredResponse

必須。

RichResponse

カートの購入手続きに対するレスポンスが含まれます。

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

プロパティ タイプ 説明
items List<Item>

必須。

1 つの項目のみ指定できます。

StructuredResponse

CheckoutResponseMessage の場合、これは次のいずれかになります。CheckoutResponse: 購入手続きが正常に完了したことを示します。OR FoodErrorExtension: 購入手続き中にエラーが発生したことを示します。レスポンスには、修正された ProposedOrder と PaymentOptions が含まれる場合と、PaymentOptions のないエラー メッセージが含まれる場合があります。SubmitOrderResponseMessage の場合、orderUpdate のみが適用されます。

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

プロパティ タイプ 説明
次のいずれかのプロパティ グループを 1 つ指定する必要があります。
checkoutResponse グループ 1 CheckoutResponse

カートに追加した商品、税金、割引。

error グループ 2 FoodErrorExtension

カート内の商品で発生したエラー。エラーの性質に応じて、このプロパティには修正された ProposedOrder と PaymentOptions が含まれる場合もあれば、PaymentOptions のないエラー メッセージのみが含まれる場合もあります。

orderUpdate グループ 3 OrderUpdate

非同期注文更新

このセクションでは、一般的な食事注文の組み込みアクションのやり取りのリクエストとレスポンスを構成するハイレベルなタイプについて説明します。

AsyncOrderUpdateRequestMessage

注文が送信され、確認された後に、変更をお客様に通知します。たとえば、注文が配送中であることをユーザーに通知したり、価格が変更されたことを通知したりできます。詳細については、以下をご覧ください。

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

プロパティ タイプ 説明
isInSandbox ブール値

この更新が送信された注文がサンドボックス支払いであることを示します。

customPushMessage CustomPushMessage

必須。

リクエストの OrderUpdate が含まれます。

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

{
  "isInSandbox": true,
  "customPushMessage": {
    "orderUpdate": {
      "actionOrderId": "sample_action_order_id",
      "orderState": {
        "state": "IN_TRANSIT",
        "label": "Order is on the way"
      },
      "inTransitInfo": {
        "updatedTime": "2017-07-17T12:00:00Z"
      },
      "updateTime": "2017-07-17T12:00:00Z",
      "receipt": {
        "userVisibleOrderId": "userVisibleId1234"
      },
      "orderManagementActions": [
        {
          "type": "CUSTOMER_SERVICE",
          "button": {
            "title": "Contact customer service",
            "openUrlAction": {
              "url": "mailto:support@example.com"
            }
          }
        },
        {
          "type": "EMAIL",
          "button": {
            "title": "Email restaurant",
            "openUrlAction": {
              "url": "mailto:person@example.com"
            }
          }
        },
        {
          "type": "CALL_RESTAURANT",
          "button": {
            "title": "Call restaurant",
            "openUrlAction": {
              "url": "tel:+16505554679"
            }
          }
        }
      ],
      "infoExtension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension",
        "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z"
      }
    }
  }
}

AsyncOrderUpdateResponseMessage

AsyncOrderUpdateRequestMessage が正常に送信されると、Google は HTTP 200 ステータスと空の本文で応答します。更新が失敗した場合は、注文の更新が失敗した理由に関する詳細が返されます。

注文の更新の種類

ボタン

ユーザー操作を可能にするために追加できるユーザー インターフェース要素を定義します。

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

プロパティ タイプ 説明
title String

必須。

表示ラベル。正しくレンダリングされるように、最初の語の語頭を大文字にするか、すべて小文字にするか、30 文字以内で入力してください。

例: Contact us

openUrlAction OpenUrlAction

必須。

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

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

CancellationInfo

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

プロパティ タイプ 説明
reason String

必須。

OrderState.state が「CANCELLED」の場合の不承認の理由を表示するテキスト。

例: Restaurant closed

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

{
  "reason": "Insufficient inventory"
}

FoodOrderUpdateExtension

このタイプでは、注文が配達されるか受け取り可能になるまでの推定所要時間をユーザーに提供します。情報が利用可能になったとき、または最後に送信されてから変更があったときは、この拡張機能を OrderUpdate で送信します。

ユーザーの期待に常に応えられるように、フルフィルメント期間の保守的な見積もりを提供する。たとえば、注文の配達予定が本日 13:00 の場合、交通状況による変動を考慮した配達予定時間(本日 12:45 ~ 13:15 など)を送信する必要があります。

ISO 8601 の期間またはタイムスタンプは、OrderUpdateupdateTime(本質的には「現在」)から updateTimeduration の合計までの期間を意味します。「今すぐ」が実際に妥当な期待値である場合を除き、この形式を使用しないでください。

ISO 8601 の期間は、期間の開始から終了までの期間を意味します。

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

プロパティ タイプ 説明
@type Const

この広告表示オプションのタイプ。このフィールドは常に「type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension」に設定されます。

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

estimatedFulfillmentTimeIso8601 String

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

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

foodOrderErrors List<FoodOrderError>

注文後に発生したエラーについて説明します。カートまたは商品アイテムごとに 1 つのエラーを推奨します。RejectionInfo に該当しないエラーには、FoodOrderUpdateExtension.FoodOrderErrors を使用します。

1 つ以上の項目が必要です。

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

例 1

{
  "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension",
  "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z"
}

例 2

{
  "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension",
  "foodOrderErrors": [
    {
      "error": "NO_CAPACITY",
      "description": "Sorry, the restaurant cannot take your order right now."
    }
  ]
}

FulfillmentInfo

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

プロパティ タイプ 説明
次のいずれかのプロパティ グループを 1 つ指定する必要があります。
deliveryTime グループ 1 ISO タイムスタンプ

FoodOrderingUpdateExtension メッセージで estimatedFulfillmentTimeIso8601 を使用する

pickupTime グループ 2 ISO タイムスタンプ

FoodOrderingUpdateExtension メッセージで estimatedFulfillmentTimeIso8601 を使用する

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

例 1

{
  "deliveryTime": "2017-05-10T02:36:38.803Z"
}

例 2

{
  "pickupTime": "2019-12-26T07:24:27.803Z"
}

InTransitInfo

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

プロパティ タイプ 説明
updatedTime ISO タイムスタンプ

FoodOrderingUpdateExtension メッセージで estimatedFulfillmentTimeIso8601 を使用する

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

{
  "updatedTime": "2017-05-10T02:36:38.803Z"
}

LineItemUpdate

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

プロパティ タイプ 説明
orderState OrderState
price Price
reason String

変更の理由。価格変更の場合は必須。

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

{
  "orderState": {
    "state": "CONFIRMED",
    "label": "Provider confirmed"
  },
  "price": {
    "type": "ESTIMATE",
    "amount": {
      "currencyCode": "USD",
      "units": "5",
      "nanos": 500000000
    }
  },
  "reason": "Menu updated prices."
}

OpenUrlAction

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

プロパティ タイプ 説明
url String

必須。

ボタンのクリックまたはタップによってトリガーされるアクション。適用可能な接頭辞のリストは、orderManagementActionType によって異なります。「EMAIL」: 接頭辞は「mailto」にする必要があります。「CALL」: 接頭辞は「tel」にする必要があります。「CUSTOMER_SERVICE」: 接頭辞は「mailto」、「tel」、「http」、「https」のいずれかである必要があります。

例: 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 String

必須。

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

例: Your order has been received

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

{
  "state": "CONFIRMED",
  "label": "Provider confirmed"
}

OrderStateEnum

OrderState に関連する型を定義します。

OrderStateEnum 型には次の値を使用できます。

  • CREATED: インテグレータによって作成された注文で、プロバイダによる確認待ちです。購入ステータスの [注文済み] に対応します。
  • CONFIRMED: 注文はプロバイダによって確認され、現在アクティブな状態です。購入ステータスの「承認済み」に対応します。
  • REJECTED: 注文がインテグレータまたはプロバイダによって拒否されました。購入ステータス「不承認」に対応します。
  • CANCELLED: ユーザーが注文をキャンセルしました。購入ステータス「キャンセル済み」に対応します。
  • IN_PREPARATION: 料理の準備中です。購入ステータス「ステータス不明」に対応します。
  • READY_FOR_PICKUP: 料理がテイクアウトの準備が整いました。購入ステータス「受け取り準備完了」に対応しています。
  • IN_TRANSIT: 注文は配送中です。購入ステータス「処理中」に対応します。
  • FULFILLED: ユーザーが注文したものを受け取りました。購入ステータス「Picked up」(集荷済み)に対応しています。

領収書

このタイプは、注文送信 AppResponse で送信します。ここで、OrderState は「CONFIRMED」、「FULFILLED」、「IN_TRANSIT」です。userVisibleOrderId が利用可能になった時点で領収書を送信します。その後の更新で領収書を送信する必要はありません。

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

プロパティ タイプ 説明
userVisibleOrderId String

必須。

注文ステータスが [CONFIRMED]、[IN_TRANSIT]、[FULFILLED] の場合は必須です。このフィールドは、この注文の単一のユーザー向け ID(通常はレストランの注文 ID)で、インテグレーターの領収書と Google の注文カードの両方に表示されます。ユーザーは、この ID を使用して、プロバイダとインテグレータのカスタマー サービスで注文を参照できる必要があります。この ID は、特定の OrderUpdate で 1 回だけ指定する必要があります。指定されるまで、actionOrderId は userVisibleOrderId です。たとえば、レストランが注文を確認するまで、userVisibleOrderId がない場合もあります。確認が取れたら、OrderUpdate と Receipt を含む AsyncOrderUpdateRequestMessage を送信する必要があります。

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

{
  "userVisibleOrderId": "userVisibleId1234"
}

RejectionInfo

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

プロパティ タイプ 説明
type RejectionType

必須。

reason String

内部ロギングに使用される拒否の理由。このフィールドはユーザーには表示されません。

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

{
  "type": "PAYMENT_DECLINED",
  "reason": "There is an issue with payment processing."
}

RejectionType

RejectionType 型には次の値を使用できます。

  • INELIGIBLE: ポリシーまたはリスク関連の懸念事項により、ユーザーが対象外です。
  • PAYMENT_DECLINED: 支払い処理に問題がある。
  • UNAVAILABLE_SLOT: DeliveryInfo または PickupInfo で指定された事前注文時間に注文を処理できません。
  • PROMO_NOT_APPLICABLE: プロモーションで問題が発生しています。
  • UNKNOWN: その他の理由。

お支払い関連の種類

このセクションでは、食品注文のフルフィルメントに使用される支払い関連のタイプについて説明します。

ActionProvidedPaymentOptions

アクションによって提供される支払い方法の要件。

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

プロパティ タイプ 説明
paymentType PaymentType

必須。

displayName String

必須。

領収書に表示される支払い方法の名前。

例: 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 アカウントに保存されている支払いカードに関連付けられている認証方法。返される支払いデータには、カード会員番号と有効期限の月および年が含まれます。

AllowedCardNetworks

AllowedCardNetworks 型には次の値を使用できます。

  • AMEX
  • DISCOVER
  • INTERAC
  • JCB
  • MASTERCARD
  • VISA

BillingAddressParameters

このオブジェクトによって、リクエストされた請求先住所について返される追加フィールドを設定できます。

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

プロパティ タイプ 説明
format String

取引を完了するために必要な請求先住所の形式。MIN: 名前、国コード、郵便番号。FULL: 名前、番地、地域区分、県、国コード、郵便番号。

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

例 1

{
  "format": "MIN"
}

例 2

{
  "format": "FULL"
}

CardParameters

このオブジェクトは、Google Pay API に対するサイトのサポートを構成するために使用します。

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

プロパティ タイプ 説明
allowedAuthMethods List<Const>

必須。

カード取引を認証するためにサポートされるフィールド。

1 つ以上の項目が必要です。

allowedCardNetworks List<AllowedCardNetworks>

必須。

Google Pay API でサポートされているカード ネットワークのうち、お客様がサポートしている 1 つ以上のカード ネットワーク。

1 つ以上の項目が必要です。

billingAddressRequired ブール値

請求先住所が必要な場合は true に設定します。請求先住所は、取引の処理に必要な場合にのみリクエストしてください。データ リクエストを追加すると、購入手続きが煩雑になってコンバージョン率が低下する可能性があります。

billingAddressParameters BillingAddressParameters

billingAddressRequired が true に設定されている場合に予期されるフィールド。

cvcRequired ブール値

TimesofMoney を使用する場合は true、他のすべての決済プロセッサの場合は false に設定します。

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

例 1

{
  "allowedAuthMethods": [
    "PAN_ONLY"
  ],
  "allowedCardNetworks": [
    "AMEX",
    "DISCOVER"
  ],
  "billingAddressRequired": false,
  "cvcRequired": false
}

例 2

{
  "allowedAuthMethods": [
    "PAN_ONLY"
  ],
  "allowedCardNetworks": [
    "AMEX",
    "DISCOVER"
  ],
  "billingAddressRequired": true,
  "billingAddressParameters": {
    "format": "MIN"
  },
  "cvcRequired": false
}

GoogleProvidedPaymentInstrument

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

プロパティ タイプ 説明
instrumentToken String

必須。

以前に指定した GoogleProvidedPaymentOptions に従って、参加している Google Pay 決済代行業者でユーザーに請求するための支払いトークンを含む Base64 でエンコードされた文字列。

billingAddress PostalAddress

お支払いの請求先住所。

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

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

GoogleProvidedPaymentOptions

Google によって提供される支払い方法の要件。

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

プロパティ タイプ 説明
facilitationSpecification String

PaymentDataRequest JSON を文字列として指定します。このオブジェクトは、Google Pay API に対するサイトのサポートを構成するために使用します。

supportedCardNetworks List<SupportedCardNetworks>

代わりに facilitationSpecification を使用してください。エージェントがサポートするカード ネットワークの種類。

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

prepaidCardDisallowed ブール値

代わりに facilitationSpecification を使用してください。プリペイド カードを支払い方法として許可するかどうか。

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

billingAddressRequired ブール値

代わりに facilitationSpecification を使用してください。請求先住所が必須かどうか。

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

tokenizationParameters TokenizationParameters

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

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

例 1

{
  "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": {  \"merchantId\": \"Merchant ID\",  \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [  {    \"type\": \"CARD\",    \"parameters\": {      \"allowedAuthMethods\": [        \"PAN_ONLY\"      ],      \"allowedCardNetworks\": [        \"VISA\",        \"AMEX\",        \"MASTERCARD\"      ],      \"billingAddressRequired\": false    },    \"tokenizationSpecification\": {      \"type\": \"PAYMENT_GATEWAY\",      \"parameters\": {        \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\",        \"gateway\": \"stripe\",        \"stripe:version\": \"2019-05-16\"      }    }  }],\"transactionInfo\": {  \"currencyCode\": \"AUD\",  \"totalPriceStatus\": \"ESTIMATED\",  \"totalPrice\": \"1.0\"}}"
}

例 2

{
  "tokenizationParameters": {
    "tokenizationType": "PAYMENT_GATEWAY",
    "parameters": {
      "gateway": "braintree",
      "braintree:apiVersion": "v1",
      "braintree:sdkVersion": "1.4.0",
      "braintree:merchantId": "a1b2c3d4e5",
      "braintree:clientKey": "production_braintree_client_key",
      "braintree:authorizationFingerprint": "same_as_client_key"
    }
  },
  "supportedCardNetworks": [
    "AMEX",
    "DISCOVER",
    "MASTERCARD",
    "JCB",
    "VISA"
  ],
  "prepaidCardDisallowed": true
}

例 3

{
  "tokenizationParameters": {
    "tokenizationType": "PAYMENT_GATEWAY",
    "parameters": {
      "gateway": "stripe",
      "stripe:publishableKey": "pk_live_stripe_client_key",
      "stripe:version": "2017-04-06"
    }
  },
  "supportedCardNetworks": [
    "AMEX",
    "DISCOVER",
    "MASTERCARD",
    "VISA",
    "JCB"
  ],
  "prepaidCardDisallowed": true,
  "billingAddressRequired": true
}

MerchantInfo

このオブジェクトは、Google Pay API に対するサイトのサポートを構成するために使用します。

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

プロパティ タイプ 説明
merchantId String

Google Pay から発行された Google 販売者 ID。

merchantName String

必須。

UTF-8 としてエンコードされた販売者名です。販売者名は支払いシートに表示されます。

OnFulfillmentPaymentData

このオブジェクトは、PaymentType が「ON_FULFILLMENT」の追加データを送信する場合に使用します。

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

プロパティ タイプ 説明
supportedPaymentOptions List<PaymentOptionsEnums>

注文の処理時にユーザーが利用できるお支払い方法のリスト。

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

{
  "supportedPaymentOptions": [
    "Cash",
    "Card"
  ]
}

パラメータ

TokenizationParameters に関連する型を定義します。

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

プロパティ タイプ 説明
gateway String

必須。

例: braintree

gatewayMerchantId String
[additionalKey: string] String 追加の Key-Value ペア

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

例 1

{
  "gatewayMerchantId": "90412491",
  "gateway": "olo"
}

例 2

{
  "gateway": "braintree",
  "braintree:apiVersion": "v1",
  "braintree:sdkVersion": "1.4.0",
  "braintree:merchantId": "YOUR_MERCHANT_ID",
  "braintree:clientKey": "YOUR_BRAINTREE_SANDVOX_OR_PRODUCTION_KEY"
}

PaymentDataRequest

このオブジェクトは、Google Pay API に対するサイトのサポートを構成するために使用します。

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

プロパティ タイプ 説明
apiVersion Const

必須。

メジャー API バージョン。

値: 2

apiVersionMinor Const

必須。

マイナー API バージョン。

値: 0

merchantInfo MerchantInfo

必須。

(Google Pay 販売者 ID)支払いデータをリクエストしている販売者に関する情報。

allowedPaymentMethods List<PaymentMethod>

必須。

Google Pay API でサポートされている 1 つ以上のお支払い方法のサポートを指定します。

transactionInfo TransactionInfo

必須。

ユーザーがトランザクションに同意するかどうかに基づく、トランザクションの承認に関する詳細です。このフィールドには、合計金額と価格ステータスが含まれます。

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

{
  "apiVersion": 2,
  "apiVersionMinor": 0,
  "merchantInfo": {
    "merchantId": "10391231",
    "merchantName": "Burrito Town"
  },
  "allowedPaymentMethods": [
    {
      "type": "CARD",
      "parameters": {
        "allowedAuthMethods": [
          "PAN_ONLY"
        ],
        "allowedCardNetworks": [
          "VISA",
          "AMEX",
          "MASTERCARD"
        ],
        "billingAddressRequired": true,
        "billingAddressParameters": {
          "format": "FULL"
        },
        "cvcRequired": false
      },
      "tokenizationSpecification": {
        "type": "PAYMENT_GATEWAY",
        "parameters": {
          "gateway": "stripe",
          "stripe:version": "2019-05-16",
          "stripe:publishableKey": "pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA"
        }
      }
    }
  ],
  "transactionInfo": {
    "currencyCode": "INR",
    "totalPriceStatus": "ESTIMATED",
    "totalPrice": "185.00"
  }
}

PaymentInfo

注文のお支払い関連情報。

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

プロパティ タイプ 説明
displayName String

必須。

領収書に表示する支払い方法のユーザーに表示される名前。

paymentType PaymentType

必須。

googleProvidedPaymentInstrument GoogleProvidedPaymentInstrument

アクションで使用できるトークン。CheckoutResponseMessage で支払い方法として GoogleProvidedPaymentOptions を指定した場合にのみ指定します。

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

例 1

{
  "displayName": "Visa\u2006****\u20061111",
  "googleProvidedPaymentInstrument": {
    "instrumentToken": "abcd"
  },
  "paymentType": "PAYMENT_CARD"
}

例 2

{
  "displayName": "Visa\u2006****\u20061111",
  "googleProvidedPaymentInstrument": {
    "instrumentToken": "abcd",
    "billingAddress": {
      "regionCode": "US",
      "postalCode": "94043",
      "administrativeArea": "CA",
      "locality": "Mountain View",
      "addressLines": [
        "123 Random Street",
        "Unit ABC"
      ],
      "recipients": [
        "sample_receipient"
      ]
    }
  },
  "paymentType": "PAYMENT_CARD"
}

PaymentMethod

このオブジェクトは、Google Pay API に対するサイトのサポートを構成するために使用します。

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

プロパティ タイプ 説明
type Const

必須。

サポートされているお支払い方法の短い識別子。現在サポートされているのは CARD のみです。

値: CARD

parameters CardParameters

必須。

指定されたお支払い方法の種類を構成するために必要なパラメータ。

tokenizationSpecification TokenizationSpecification

必須。

アカウントまたは復号プロバイダが支払い情報を受け取れるように構成します。このプロパティは、CARD のお支払い方法には必須です。

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

{
  "type": "CARD",
  "parameters": {
    "allowedAuthMethods": [
      "PAN_ONLY"
    ],
    "allowedCardNetworks": [
      "VISA",
      "AMEX",
      "MASTERCARD"
    ],
    "billingAddressRequired": false
  },
  "tokenizationSpecification": {
    "type": "PAYMENT_GATEWAY",
    "parameters": {
      "gatewayMerchantId": "90412491",
      "gateway": "olo"
    }
  }
}

PaymentOptions

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

プロパティ タイプ 説明
次のいずれかのプロパティ グループを 1 つ指定する必要があります。
googleProvidedOptions グループ 1 GoogleProvidedPaymentOptions

actionProvidedOptions とは相互に排他的です。gPay を使用したオンライン決済に使用します。

actionProvidedOptions グループ 2 ActionProvidedPaymentOptions

googleProvidedOptions とは相互に排他的です。「代金引換」または「フルフィルメント時に支払い」に使用します。

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

例 1

{
  "googleProvidedOptions": {
    "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": {  \"merchantId\": \"Merchant ID\",  \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [  {    \"type\": \"CARD\",    \"parameters\": {      \"allowedAuthMethods\": [        \"PAN_ONLY\"      ],      \"allowedCardNetworks\": [        \"VISA\",        \"AMEX\",        \"MASTERCARD\"      ],      \"billingAddressRequired\": false    },    \"tokenizationSpecification\": {      \"type\": \"PAYMENT_GATEWAY\",      \"parameters\": {        \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\",        \"gateway\": \"stripe\",        \"stripe:version\": \"2019-05-16\"      }    }  }],\"transactionInfo\": {  \"currencyCode\": \"AUD\",  \"totalPriceStatus\": \"ESTIMATED\",  \"totalPrice\": \"1.0\"}}"
  }
}

例 2

{
  "googleProvidedOptions": {
    "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": {  \"merchantId\": \"Merchant ID\",  \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [  {    \"type\": \"CARD\",    \"parameters\": {      \"allowedAuthMethods\": [        \"PAN_ONLY\"      ],      \"allowedCardNetworks\": [        \"VISA\",        \"AMEX\",        \"MASTERCARD\"      ],      \"billingAddressRequired\":true,   \"billingAddressParameters\": {  \"format\":\"MIN\"  }    },    \"tokenizationSpecification\": {      \"type\": \"PAYMENT_GATEWAY\",      \"parameters\": {        \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\",        \"gateway\": \"stripe\",        \"stripe:version\": \"2019-05-16\"      }    }  }],\"transactionInfo\": {  \"currencyCode\": \"AUD\",  \"totalPriceStatus\": \"ESTIMATED\",  \"totalPrice\": \"1.0\"}}"
  }
}

例 3

{
  "actionProvidedOptions": {
    "paymentType": "ON_FULFILLMENT",
    "displayName": "Pay when you get your food.",
    "onFulfillmentPaymentData": {
      "supportedPaymentOptions": [
        "Cash",
        "Card"
      ]
    }
  }
}

PaymentOptionsEnums

PaymentOptionsEnums 型には次の値を使用できます。

  • Cash
  • Card
  • UPI
  • Paytm

PaymentType

PaymentType 型には次の値を使用できます。

  • PAYMENT_CARD: GoogleProvidedPaymentOptions 用。
  • ON_FULFILLMENT: ActionProvidedPaymentOptions 用。

SupportedCardNetworks

GoogleProvidedPaymentOptions に関連する型を定義します。

SupportedCardNetworks 型には次の値を使用できます。

  • UNSPECIFIED_CARD_NETWORK
  • AMEX
  • DISCOVER
  • JCB
  • MASTERCARD
  • VISA

TokenizationParameters

GoogleProvidedPaymentOptions に関連する型を定義します。

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

プロパティ タイプ 説明
tokenizationType Enum [ "UNSPECIFIED_TOKENIZATION_TYPE", "PAYMENT_GATEWAY" ]

必須。

代わりに facilitationSpecification を使用してください。使用できるトークンの種類。

parameters Parameters

代わりに facilitationSpecification を使用してください。

TokenizationSpecification

このオブジェクトにより、請求可能な支払い情報を受け取るようにアカウントを構成できます。

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

プロパティ タイプ 説明
type Const

必須。

parameters Parameters

必須。

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

例 1

{
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gatewayMerchantId": "1247192",
    "gateway": "cybersource"
  }
}

例 2

{
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "stripe",
    "stripe:version": "2018-10-31",
    "stripe:publishableKey": "12378127"
  }
}

TransactionInfo

このオブジェクトは、支払人が支払い可能かどうかを判断する取引を表します。支払いの承認ダイアログの表示に使用されます。

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

プロパティ タイプ 説明
currencyCode String

必須。

ISO 4217 のアルファベットの通貨コード。

transactionId String

取引の試行を識別する一意の ID。販売者は既存の ID を使用するか、Google Pay 取引の試行に特定の ID を生成できます。コールバックを Google Transaction Events API に送信する場合、このフィールドは必須です。

totalPriceStatus Const

必須。

デフォルトでは「ESTIMATED」を使用します。合計金額は、請求先住所に基づいて収集されたレスポンスの詳細(消費税など)に基づいて調整される場合があります。

値: ESTIMATED

totalPrice String

必須。

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

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

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