Schema für Auftragsausführungsaktionen

Auf dieser Seite wird die Nutzlast des Webdienstes für die Auftragsausführung (Ordering End-to-End API) bei der Arbeit mit der Ordering End-to-End-API für integrierte Aktionen beschrieben. Für eine maschinenlesbare Version dieser Informationen können Sie das JSON-Schema herunterladen.

Basistypen

Einkaufswagen

Enthält Details zur Bestellung und gibt an, ob es sich um eine Abholung handelt oder Lieferung. Ein Einkaufswagen enthält auch Lieferdetails, Trinkgeld und die Lieferung Adresse. Das Cart-Objekt ist in einer Checkout AppRequest.f-Datei definiert. Sie fügen eine Kopie des Einkaufswagens in Ihr Checkout AppResponse ein.

In der folgenden Tabelle sind die Attribute für den Typ Cart aufgeführt:

Attribut Typ Beschreibung
@type Nachst

Der Typ dieses Objekts. Lassen Sie dieses Feld weg, wenn das übergeordnete Cart-Objekt Teil von ProposedOrder ist.

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

id String

Optionale ID des Einkaufswagens.

merchant Merchant

Mit diesem Einkaufswagen verknüpfter Händler.

lineItems Liste <LineItem>

Erforderlich.

Liste der Waren oder Dienstleistungen, die der Nutzer bestellt.

Darf nicht weniger als 1 Element enthalten.

promotions Liste <Promotion>

Angebot, das in diesem Einkaufswagen angewendet wird. Derzeit wird nur eine Werbeaktion unterstützt.

notes String

Anmerkungen zur Bestellung oder Lieferung

extension FoodCartExtension

Definiert Details zum Nutzer, z. B. die Einstellungen für die Auftragsausführung.

Das folgende Beispiel zeigt ein Cart-Element:

Beispiel 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"
    }
  }
}

Beispiel 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"
    }
  }
}

Kontakt

Gibt Details zur Person an, die die Bestellung erhält. Es ist nur in folgenden Sprachen verfügbar: AppResponse

In der folgenden Tabelle sind die Attribute für den Typ Contact aufgeführt:

Attribut Typ Beschreibung
displayName String

Den Namen der Person, die die Bestellung erhält, so wie er angezeigt werden soll. Verwenden Sie dieses Feld, wenn firstName und lastName nicht angegeben sind.

Beispiel: Lovefood Ordering

email String

E-Mail-Adresse der Person, die die Bestellung erhält.

Beispiel: ilovefood@example.com

firstName String

Vorname der Person, die die Bestellung erhält.

Beispiel: Lovefood

lastName String

Nachname der Person, die die Bestellung erhält.

Beispiel: Ordering

phoneNumber String

Telefonnummer der Person, die die Bestellung erhält, einschließlich Ländervorwahl

Beispiel: +16501234567

emailVerified Boolesch

Gibt an, ob die Person, die die Bestellung erhält, mit ihrem Google-Konto angemeldet ist.

Das folgende Beispiel zeigt ein Contact-Element:

Beispiel

{
  "displayName": "Lovefood Ordering",
  "email": "ilovefood@example.com",
  "phoneNumber": "+16501234567"
}

CustomPushMessage

Enthält das OrderUpdate für die Anfrage.

In der folgenden Tabelle sind die Attribute für den Typ CustomPushMessage aufgeführt:

Attribut Typ Beschreibung
orderUpdate OrderUpdate

Erforderlich.

Die Informationen zur Bestellung wurden aktualisiert.

Das folgende Beispiel zeigt ein CustomPushMessage-Element:

Beispiel

{
  "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

In der folgenden Tabelle sind die Attribute für den Typ DeliveryInfo aufgeführt:

Attribut Typ Beschreibung
deliveryTimeIso8601 String

Voraussichtliche Lieferzeit im ISO-8601-Zeitstempelformat: „{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z“ oder Dauerformat: „P(n)Y(n)M(n)DT(n)H(n)M(n)S". Beispielsweise steht PT90M für eine Dauer von 90 Minuten. Der Standardwert „PT0M“ gibt an, dass die bevorzugte Lieferzeit so bald wie möglich ist. Referenz: https://de.wikipedia.org/wiki/ISO_8601#Kombinierte_Datums- und Zeitangaben Hiermit können Sie die voraussichtliche Lieferdauer während der Antwort an der Kasse aktualisieren.

Beispiel: PT90M

Das folgende Beispiel zeigt ein DeliveryInfo-Element:

Beispiel

{
  "deliveryTimeIso8601": "PT90M"
}

Haftungsausschluss

In der folgenden Tabelle sind die Attribute für den Typ Disclaimer aufgeführt:

Attribut Typ Beschreibung
predefinedMessage PredefinedMessage

Erforderlich.

Vordefinierte Mitteilungen zum Haftungsausschluss an der Kasse anzeigen.

feeAmount Money

Der Partner berechnet dem Händler eine Gebühr in Höhe von N für diese Bestellung.

feeAmountRange FeeAmountRange

Der Partner berechnet dem Restaurant eine Gebühr von N bis M pro Bestellung.

feePercent Number

Der Partner berechnet dem Händler eine Gebühr von N% für diese Bestellung.

feePercentRange FeePercentRange

Der Partner berechnet dem Händler eine Gebühr von N% bis M% pro Bestellung.

Das folgende Beispiel zeigt ein Disclaimer-Element:

Beispiel 1

{
  "predefinedMessage": "NEW_YORK_DELIVERY_FEE_TIP_DISCLAIMER"
}

Beispiel 2

{
  "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE"
}

Beispiel 3

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

Beispiel 4

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

Beispiel 5

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

Beispiel 6

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

Fehler

Für den Typ Error sind folgende Werte möglich:

  • CLOSED: Das Restaurant ist zur Bestellzeit geschlossen.
  • NO_CAPACITY: Es ist keine Dienstkapazität verfügbar (z. B. ein vorübergehender Ausfall aufgrund von Spitzenzeiten).
  • NO_COURIER_AVAILABLE: Die Bestellung kann aufgrund des begrenzten Lieferpersonals nicht bearbeitet werden.
  • REQUIREMENTS_NOT_MET: Die Einschränkungen zum Annehmen der Bestellung wurden nicht erreicht (z. B. Mindestbestellmenge).
  • UNAVAILABLE_SLOT: Die Bestellung kann nicht zu dem in „DeliveryInfo“ oder „Abholinfo“ angegebenen Zeitpunkt ausgeführt werden.
  • OUT_OF_SERVICE_AREA: Die Bestellung kann nicht an die Adresse des Nutzers geliefert werden.
  • PROMO_EXPIRED: Das Angebot konnte nicht angewendet werden, da das Angebot abgelaufen ist.
  • PROMO_NOT_APPLICABLE: Allgemeiner Fehlercode, um alle Fälle zu erfassen, in denen der Gutscheincode nicht angewendet werden kann, wenn keiner der anderen Fehlercode passt.
  • PROMO_NOT_RECOGNIZED: Der Gutscheincode wurde nicht erkannt.
  • PROMO_ORDER_INELIGIBLE: Dieser Gutschein kann für die aktuelle Bestellung nicht eingelöst werden.
  • PROMO_USER_INELIGIBLE: Der aktuelle Nutzer kann diesen Gutschein nicht einlösen.
  • AVAILABILITY_CHANGED: Der Artikel ist nicht mehr verfügbar oder es sind nicht genügend Artikel vorhanden, um die Anfrage zu erfüllen.
  • INCORRECT_PRICE: Preisfehler in Gebühren oder Gesamtsumme.
  • INVALID: Eine Position, eine Auftragsausführungsoption oder ein Angebot enthält ungültige Daten.
  • NOT_FOUND: Eine Position, FulfillmentOption oder Promotion wurde nicht gefunden.
  • PRICE_CHANGED: Der Preis eines Artikels hat sich geändert.

FeeAmountRange

In der folgenden Tabelle sind die Attribute für den Typ FeeAmountRange aufgeführt:

Attribut Typ Beschreibung
minFeeAmount Money

Untergrenze des berechneten Gebührenbetrags.

maxFeeAmount Money

Die Obergrenze des berechneten Gebührenbetrags.

FeePercentRange

In der folgenden Tabelle sind die Attribute für den Typ FeePercentRange aufgeführt:

Attribut Typ Beschreibung
minFeePercent Number

Untergrenze des berechneten Gebührenprozentsatzes.

maxFeePercent Number

Obergrenze des berechneten Gebührenprozentsatzes.

FoodCartExtension

Enthält Details zum Nutzer, z. B. die Einstellungen für die Auftragsausführung.

In der folgenden Tabelle sind die Attribute für den Typ FoodCartExtension aufgeführt:

Attribut Typ Beschreibung
@type Nachst

Der Typ dieser Erweiterung. Dieses Feld ist immer auf „type.googleapis.com/google.actions.v2.orders.FoodCartExtension“ festgelegt.

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

contact Contact

Kontaktinformationen der Person, die die Bestellung erhält. Zu den Details gehören der Name, die Telefonnummer und die E-Mail-Adresse der Person.

fulfillmentPreference FulfillmentOption

Erforderlich.

Einstellung für die Auftragsausführung des Nutzers.

location Location

In der CheckoutRequestMessage gibt dieses Feld die Lieferadresse an, die erforderlich ist, wenn die Bestellung geliefert werden soll. Bei Bestellungen zur Abholung oder Abholung ist dieses Feld nicht in der Nachricht enthalten.

Das folgende Beispiel zeigt ein FoodCartExtension-Element:

Beispiel 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"
  }
}

Beispiel 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

Ermittelt einen oder mehrere Fehler, die bei der Verarbeitung einer Anfrage aufgetreten sind. In der folgenden Tabelle werden die Felder des Typs FoodErrorExtension beschrieben. Fehler können in einem CheckoutResponse gesendet werden.

In der folgenden Tabelle sind die Attribute für den Typ FoodErrorExtension aufgeführt:

Attribut Typ Beschreibung
@type Nachst

Erforderlich.

Der Typ dieser Erweiterung.

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

foodOrderErrors Liste <FoodOrderError>

Erforderlich.

Array von FoodOrderError-Objekten, die die aufgetretenen Fehler beschreiben. Es wird ein Fehler pro Einkaufswagen oder Artikel empfohlen.

Darf nicht weniger als 1 Element enthalten.

correctedProposedOrder ProposedOrder

Erforderlich, wenn 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"

Ein neuer ProposedOrder mit Korrekturen. Geben Sie dieses Objekt zurück, wenn im ursprünglichen ProposedOrder-Element behebbare Fehler vorhanden sind. Beispielsweise ist eine Preisänderung bei mindestens einer Position im Einkaufswagen ein behebbarer Fehler. Behebbare Fehler mit einer gültigen ProposedOrder werden zur Bestätigung weitergeleitet, anstatt dass der Nutzer seinen Einkaufswagen überprüfen muss.

paymentOptions PaymentOptions

Erforderlich, wenn 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"

Für den Nutzer ausgewählte Standardzahlungsoptionen.

additionalPaymentOptions Liste <PaymentOptions>

Es stehen alternative Zahlungsoptionen für den Nutzer zur Verfügung.

Das folgende Beispiel zeigt ein FoodErrorExtension-Element:

Beispiel

{
  "@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

Definiert Add-ons für Lebensmittel.

In der folgenden Tabelle sind die Attribute für den Typ FoodItemExtension aufgeführt:

Attribut Typ Beschreibung
@type Nachst

Erforderlich.

Der Typ dieser Erweiterung. Dieses Feld ist immer auf „type.googleapis.com/google.actions.v2.orders.FoodItemExtension“ festgelegt.

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

options Liste <FoodItemOption>

Eine Option kann ein Add-on-Element oder eine Add-on-Gruppe mit einer Reihe von Add-ons sein.

Das folgende Beispiel zeigt ein FoodItemExtension-Element:

Beispiel

{
  "@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

In der folgenden Tabelle sind die Attribute für den Typ FoodItemOption aufgeführt:

Attribut Typ Beschreibung
id String

Eindeutige ID, die von Google zugewiesen wurde. Wenn Sie einen FoodOrderError oder AsyncOrderUpdateRequest senden, verwenden Sie dieses Feld, um zwischen Fällen zu unterscheiden, in denen ein Einkaufswagen mehr als einen Artikel mit derselben Angebots-ID enthält.

Beispiel: 39231093

offerId String

Die Angebots-ID für den Artikel.

Beispiel: 912835081

name String

Der Name der Option.

Beispiel: Honey Mustard

price Money
note String

Hinweis zu der Option.

quantity Number

Bei Optionen, bei denen es sich um Elemente handelt, die Anzahl der Elemente.

Beispiel: 3

subOptions Liste <FoodItemOption>

Unteroptionen für die Option, falls vorhanden.

Beispiel: [ { "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 } ]

Das folgende Beispiel zeigt ein FoodItemOption-Element:

Beispiel 1

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

Beispiel 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

Enthält Details zu Fehlern in einem CheckoutResponse.

In der folgenden Tabelle sind die Attribute für den Typ FoodOrderError aufgeführt:

Attribut Typ Beschreibung
error Error

Erforderlich.

id String

Erforderlich, wenn error = "AVAILABILITY_CHANGED", "INCORRECT_PRICE", "PRICE_CHANGED", "INVALID", or "NOT_FOUND"

Dieses Feld ist bei Fehlern auf Artikelebene erforderlich. Es handelt sich um die von Google zugewiesene „LineItem.id“ für Menüpunkte oder „FoodItemOption.id“ für Add-ons.

description String

Beschreibung des Fehlers. Diese Beschreibung gilt für das interne Logging und ist für Nutzer nicht sichtbar.

updatedPrice Money

Erforderlich, wenn error = "PRICE_CHANGED"

Neuer Preis eines Artikels, der den Fehler verursacht hat. Dies ist nur erforderlich, wenn der Fehler "PRICE_CHANGED" ist.

availableQuantity Ganzzahl

Erforderlich, wenn error = "INVALID", or "NOT_FOUND"

Neue verfügbare Menge des Artikels, der den Fehler verursacht hat. Dies ist nur erforderlich, wenn der Fehler „UNGÜLTIG“ ist. oder "NOT_FOUND". Bei „INVALID“ muss der Wert null sein. und "NOT_FOUND".

Das folgende Beispiel zeigt ein FoodOrderError-Element:

Beispiel 1

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

Beispiel 2

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

FoodOrderExtension

Enthält Informationen zur Auftragsausführung zur Bestellung.

In der folgenden Tabelle sind die Attribute für den Typ FoodOrderExtension aufgeführt:

Attribut Typ Beschreibung
@type Nachst

Der Typ dieser Erweiterung. Dieses Feld ist immer auf „type.googleapis.com/google.actions.v2.orders.FoodOrderExtension“ festgelegt.

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

availableFulfillmentOptions Liste <FulfillmentOption>

Verfügbare Auftragsausführungsoptionen für die Bestellung.

optinForRemarketing Boolesch

Nutzeranfrage zur Aktivierung Ihrer Marketingkanäle. Standardmäßig können Sie keine Marketinginhalte ohne Nutzereinwilligung senden. Wenn „optinForRemarketing“ auf „true“ gesetzt ist, können Sie den Nutzer abonnieren. Wenn „optinForRemarketing“ auf „false“ gesetzt oder nicht vorhanden ist, müssen Sie den Abostatus in Ihrem System unverändert lassen. Die Nutzer können die Verwendung von Cookies nicht über Google deaktivieren, sondern nur über eine Kündigungsfunktion, die in Ihren Marketingkanälen bereitgestellt wird. Dieses Flag ist nur in „SubmitOrderRequestMessage“ vorhanden.

Das folgende Beispiel zeigt ein FoodOrderExtension-Element:

Beispiel 1

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

Beispiel 2

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

FulfillmentOption

Sie können ein FulfillmentOption-Objekt auf folgende Arten verwenden:
  • In Checkout AppRequest und Submit AppRequest, der Cart.extension.fulfillmentPreference: Speichert die Einstellungen des Nutzers (Auslieferung oder Abholung). Der Preis ist immer 0, wenn die Direktkauf-Anfrage gesendet wird.
  • Im Checkout AppResponse ProposedOrder.extension.availableFulfillmentOptions: Definiert eine oder mehrere Schaltungsoptionen (derzeit ist nur eine Option unterstützt). Die Standardoption legen Sie als LineItem fest in ProposedOrder.otherItems. Der offerId von FulfillmentOption muss mit der ID der LineItem in ProposedOrder.otherItems angegeben.

In der folgenden Tabelle sind die Attribute für den Typ FulfillmentOption aufgeführt:

Attribut Typ Beschreibung
offerId String

Eindeutige Kennung für diese Auftragsausführungsoption, falls vorhanden.

fulfillmentInfo FulfillmentOptionInfo

Erforderlich.

expiresAt ISO-Zeitstempel

Zeitpunkt, zu dem diese Auftragsausführungsoption abläuft.

price Money

Kosten dieser Option.

Das folgende Beispiel zeigt ein FulfillmentOption-Element:

Beispiel

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

FulfillmentOptionInfo

Definiert Informationen in Bezug auf FulfillmentInfo.

In der folgenden Tabelle sind die Attribute für den Typ FulfillmentOptionInfo aufgeführt:

Attribut Typ Beschreibung
Genau eine der folgenden Gruppen von Properties ist erforderlich.
delivery Gruppe 1 DeliveryInfo

Falls vorhanden, gibt dies die Lieferreihenfolge an.

pickup Gruppe 2 PickupInfo

Falls vorhanden, steht dies für eine Abholbestellung.

Bild

In der folgenden Tabelle sind die Attribute für den Typ Image aufgeführt:

Attribut Typ Beschreibung
sourceUrl String

Erforderlich.

URL für das Bild. Das Bild muss mindestens 72 x 72 Pixel groß sein. Die besten Ergebnisse erzielen Sie mit einem Bild mit mindestens 216 x 216 Pixeln. Das Bild muss kleiner als 6 MB und 64 Megapixel sein.

LineItem

Definiert den Inhalt eines Einkaufswagens (Cart.lineItems) oder zusätzliche Gebühren für einen Reihenfolge (ProposedOrder.otherItems).

In der folgenden Tabelle sind die Attribute für den Typ LineItem aufgeführt:

Attribut Typ Beschreibung
id String

Erforderlich, wenn type = "REGULAR"

Für eine Position in einem Einkaufswagen (ProposedOrder.cart.lineItems[0].id) ist dies die eindeutige ID, die von Google beim Erstellen des Auftrags erstellt wird. Für eine Position in einer ProposedOrder (ProposedOrder.otherItems[0].id), mit der Elemente wie Liefergebühren und Steuern hinzugefügt werden, wird der ID-Wert vom Anbieter definiert. In einem Warenkorb befinden sich beispielsweise zwei identische Artikel mit unterschiedlichen Zubereitungsanleitungen (z. B. zwei mittelgroße Pizzen mit unterschiedlichen Belägen). In diesem Fall haben beide Artikel dieselbe Basisangebots-ID. Wenn Sie eine Anfrage zur Aktualisierung der Bestellung senden, um anzugeben, dass ein Artikel abgelehnt wurde, verwenden Sie diese ID als Unterscheidungsmerkmal. Mit anderen Worten: Wenn eine der Pizzen abgelehnt wird, weil ein bestimmter Belag fehlt, kann Google anhand der ID feststellen, auf welchen Artikel in der Bestellung Sie sich beziehen. Außer in otherItems ist dieses Feld ein Pflichtfeld.

name String

Erforderlich.

Name der Position. Der String ist für den Nutzer sichtbar. Wenn möglich, sollte die Groß- und Kleinschreibung verwendet werden (z. B. „Liefergebühr“, „Servicegebühr“ oder „Steuern“). Dieses Feld wird bei Nutzern auf 100 Zeichen gekürzt.

type LineItemType

Erforderlich.

quantity Ganzzahl

Erforderlich, wenn type = "REGULAR"

Anzahl der enthaltenen Elemente. Nicht zutreffend für ProposedOrder.otherItems.

description String

Beschreibung des Artikels.

price Price

Erforderlich.

Der Preis des Artikels. Dieser Wert entspricht dem Gesamtpreis aller Waren oder Dienstleistungen für diese Werbebuchung. Sie können also die Kosten aller Zusatzkosten addieren und mit der Menge multiplizieren. Beispiel: Wenn ein Artikel für 10 € eine Menge von 3 hat, beträgt der Preis 30 €. Für eine Pizza mit einem Grundpreis von 5 € und einem Zusatz von 1 € beträgt der Preis 6 €. Für zwei Pizzen (Menge = 2) mit einem Grundpreis von 5 € und jeder Pizza mit einem Zusatz von 1 € beträgt der Preis 12 €. Jede Werbebuchung sollte einen Preis haben, auch wenn er „0“ ist. Wenn der Typ DISCOUNT ist, geben Sie den Wert als negativ an (z. B. "-2").

subLines Liste <SublineNote>

Optional und nur gültig, wenn der Typ „REGULAR“ ist. In dieses Feld kann in der Zahlungsanforderung und bei der Anforderung zur Bestellabgabe eine artikelspezifische Notiz des Nutzers gesendet werden. Sorgen Sie dafür, dass der Händler den Hinweis erhält, wenn er bereitgestellt wird. Er wird in der Anfrage als „subLines[0].note“ aufgeführt. Dies ist der einzige Wert, der in diesem Feld angegeben wird, wenn er in einer Anfrage vorhanden ist.

Darf nicht mehr als 1 Element enthalten.

offerId String

Erforderlich, wenn type = "REGULAR"

Die Angebots-ID des MenuItems für den Artikel. Nicht zutreffend für ProposedOrder.otherItems.

extension FoodItemExtension

Definiert Add-ons für Lebensmittel.

Das folgende Beispiel zeigt ein LineItem-Element:

Beispiel 1

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

Beispiel 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

Für den Typ LineItemType sind folgende Werte möglich:

  • REGULAR: Werbebuchung für Waren. Betrifft Cart.lineItems.
  • TAX: Position mit Steuerinformationen. Gilt für ProposedOrder.otherItems.
  • DISCOUNT: Werbebuchung mit Rabatt. Der Preis muss negativ sein. Gilt für ProposedOrder.otherItems.
  • GRATUITY: Werbebuchung für Gratuity. Allgemein reserviert für die SubmitOrderRequestMessage für einen vom Nutzer ausgewählten Tipp Gilt für ProposedOrder.otherItems.
  • DELIVERY: Auslieferungswerbebuchung. Gilt für ProposedOrder.otherItems.
  • SUBTOTAL: Position für Zwischensumme. Gilt für ProposedOrder.otherItems.
  • FEE: Zusätzliche Werbebuchung, die nicht von den anderen Typen abgedeckt wird. Gilt für ProposedOrder.otherItems.

Standort

Gibt eine Adresse für die Essensbestellung an. Der Typ Location wird in einer Cart um nur das Ziel einer Bestellung anzugeben. Der endgültige Standort ist auch in TransactionDecisionValue wenn der Nutzer die Bestellung aufgibt. Bei Bestellungen mit Abholung ist ein Standort überhaupt nicht enthalten (nicht einmal ein leeres).

In der folgenden Tabelle sind die Attribute für den Typ Location aufgeführt:

Attribut Typ Beschreibung
coordinates Coordinates
formattedAddress String

Anzeigeadresse des Standorts

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

postalAddress PostalAddress
zipCode String

Beispiel: 90210

city String

Der Name der Stadt.

Beispiel: Los Angeles

notes String

Hinweise zum Ort, z. B. Torcodes. Sie darf maximal 500 Zeichen enthalten.

Beispiel: Gate code is #111

Das folgende Beispiel zeigt ein Location-Element:

Beispiel

{
  "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"
}

Händler

In der folgenden Tabelle sind die Attribute für den Typ Merchant aufgeführt:

Attribut Typ Beschreibung
id String

Die ID des Händlers. Entspricht gegebenenfalls der Restaurant.@id im Restaurant-Feed.

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

name String

Erforderlich.

Für Nutzer sichtbarer Name des Händlers.

Beispiel: Falafel Bite

Das folgende Beispiel zeigt ein Merchant-Element:

Beispiel

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

Geld

In der folgenden Tabelle sind die Attribute für den Typ Money aufgeführt:

Attribut Typ Beschreibung
currencyCode String

Erforderlich.

Ein dreistelliger Währungscode im ISO 4217-Format.

Beispiel: USD

units String

Die ganzen Einheiten des Betrags. Wenn für „currencyCode“ beispielsweise „USD“ angegeben ist, ist „1“ Einheit 1 US-Dollar ist.

Beispiel: 36

nanos Ganzzahl

Anzahl der Nanoeinheiten (10^-9) des Betrags. Der Wert muss im Bereich von -999.999.999 bis +999.999.999 liegen. Halten Sie sich an folgende Regeln: Wenn „units“ positiv ist, müssen die Nanoeinheiten positiv oder null sein. Wenn „units“ null ist, können die Nanoeinheiten positiv, null oder negativ sein. Wenn „units“ negativ ist, müssen die Nanoeinheiten negativ oder null sein. Beispiel: -1,75 $ wird als Einheiten = -1 und Nanos = -750.000.000 dargestellt.

Beispiel: 730000000

Das folgende Beispiel zeigt ein Money-Element:

Beispiel 1

{
  "currencyCode": "USD",
  "units": "36",
  "nanos": 730000000
}

Beispiel 2

{
  "currencyCode": "EUR",
  "units": "10"
}

Auftrag

Enthält die endgültige Bestellung, einschließlich Steuern, Gebühren und Versandkosten, wie Zahlungsinformationen. Das Objekt wird von Ihrer Aktion in einem Submit AppRequest

In der folgenden Tabelle sind die Attribute für den Typ Order aufgeführt:

Attribut Typ Beschreibung
finalOrder ProposedOrder

Erforderlich.

Die vorgeschlagene Bestellung, die den Auftrag ausgelöst hat.

googleOrderId String

Erforderlich.

Von Google zugewiesene Bestell-ID. Diese ID sollte für den gesamten Lebenszyklus eines Auftrags gleich bleiben. Diese ID ist für den Endnutzer nicht sichtbar.

orderDate ISO-Zeitstempel

Erforderlich.

Datum und Uhrzeit der Auftragserstellung.

paymentInfo PaymentInfo

Erforderlich.

Die Zahlungsinformationen, die sich auf die Zahlung für diese Bestellung beziehen.

Das folgende Beispiel zeigt ein Order-Element:

Beispiel

{
  "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

In der folgenden Tabelle werden die Felder des Typs „OrderUpdate“ beschrieben. in AppResponse enthalten.

In der folgenden Tabelle sind die Attribute für den Typ OrderUpdate aufgeführt:

Attribut Typ Beschreibung
actionOrderId String

Erforderlich.

Eindeutige ID der Bestellung im System des Integrators, mit der der Auftrag identifiziert wird, für den das Update gesendet wird. Wenn „Receipt.user_visible_order_id“ nicht mindestens einmal in „OrderUpdate“ für „CREATED“ angegeben wurde Bestellung handelt, ist diese ID die eingegebene, für den Nutzer sichtbare ID, die auf der Google-Bestellkarte angezeigt wird.

orderState OrderState

Erforderlich.

Der neue Status der Bestellung.

lineItemUpdates Map<String, LineItemUpdate>
updateTime ISO-Zeitstempel

Erforderlich.

Der Zeitpunkt, zu dem die Bestellung aktualisiert wurde.

orderManagementActions Liste <OrderManagementAction>

Aktionen nach der Bestellung, z. B. Kontaktaufnahme mit dem Support oder Ansehen von Bestelldetails.

Darf nicht weniger als 1 Element enthalten und nicht mehr als 6 Elemente

rejectionInfo RejectionInfo

Erforderlich, wenn orderState.state = "REJECTED"

cancellationInfo CancellationInfo

Erforderlich, wenn orderState.state = "CANCELLED"

inTransitInfo InTransitInfo

Dieses Feld wurde eingestellt.

fulfillmentInfo FulfillmentInfo

Dieses Feld wurde eingestellt.

receipt Receipt

Erforderlich, wenn orderState.state = "CONFIRMED", "IN_PREPARATION", or "READY_FOR_PICKUP"

Geben Sie die für den Nutzer sichtbare Bestell-ID in einem Beleg an.

totalPrice Price

Gesamtpreis der Bestellung.

infoExtension FoodOrderUpdateExtension

Definiert weitere Details zur Aktualisierung der Bestellung, z. B. das Intervall für die voraussichtliche Lieferung oder Abholung.

Das folgende Beispiel zeigt ein OrderUpdate-Element:

Beispiel

{
  "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

In der folgenden Tabelle sind die Attribute für den Typ PickupInfo aufgeführt:

Attribut Typ Beschreibung
pickupTimeIso8601 String

Geschätzte Abholzeit im ISO-8601-Zeitstempelformat: „{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z“ oder Dauerformat: „P(n)Y(n)M(n)DT(n)H(n)M(n)S". Beispielsweise steht PT90M für eine Dauer von 90 Minuten. Der Standardwert „PT0M“ gibt an, dass die bevorzugte Abholzeit so bald wie möglich ist. Referenz: https://de.wikipedia.org/wiki/ISO_8601#Kombinierte_Datums- und Zeitangaben Hiermit können Sie die voraussichtliche Abholzeit während der Antwort an der Kasse aktualisieren.

Beispiel: PT90M

Das folgende Beispiel zeigt ein PickupInfo-Element:

Beispiel

{
  "pickupTimeIso8601": "PT90M"
}

PostalAddress

In der folgenden Tabelle sind die Attribute für den Typ PostalAddress aufgeführt:

Attribut Typ Beschreibung
regionCode String

Erforderlich.

Ein aus zwei Buchstaben bestehender Ländercode.

Beispiel: US

postalCode String

Die Postleitzahl.

Beispiel: 94043

administrativeArea String

Höchste administrative Untergliederung, die für Postadressen eines Landes oder einer Region verwendet wird. Dies kann ein Bundesland, eine Provinz, eine Oblast oder eine Präfektur sein.

Beispiel: CA

locality String

Der Ort für diesen Standort. In Regionen der Welt, in denen Orte nicht hinreichend definiert sind oder nicht dieser Struktur entsprechen, geben Sie den Ort nicht an und verwenden Sie stattdessen das Feld "addressLines".

Beispiel: Mountain View

addressLines List<String>

Eine oder mehrere Zeilen, in denen Sie die Adresse angeben können. Dieses Feld sollte nicht geändert werden, da es unklare Ortsangaben enthalten kann.

Beispiel: [ "1350 Charleston Road" ]

recipients List<String>

Liste der Empfänger einer Bestellung. Dieses Feld ist nur in billingAddress verfügbar.

Das folgende Beispiel zeigt ein PostalAddress-Element:

Beispiel

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

Preis

In der folgenden Tabelle sind die Attribute für den Typ Price aufgeführt:

Attribut Typ Beschreibung
type Enum [ "ESTIMATE", "ACTUAL" ]

Erforderlich.

Der Gutscheincode.

amount Money

Erforderlich.

Angebot

In der folgenden Tabelle sind die Attribute für den Typ Promotion aufgeführt:

Attribut Typ Beschreibung
coupon String

Erforderlich.

Der Gutscheincode.

ProposedOrder

In der folgenden Tabelle sind die Attribute für den Typ ProposedOrder aufgeführt:

Attribut Typ Beschreibung
id String

Optionale ID für den vorgeschlagenen Auftrag.

cart Cart

Erforderlich.

Artikel des Nutzers

otherItems Liste <LineItem>

Vom Anbieter hinzugefügte Artikel, z. B. Versandkosten, sonstige Gebühren und Steuern. otherItems können auch vom Nutzer hinzugefügte Trinkgeld und/oder Rabatte enthalten.

Darf nicht mehr als 10 Elemente enthalten.

image Image

Mit dem vorgeschlagenen Auftrag verknüpftes Bild.

totalPrice Price

Erforderlich.

Gesamtpreis der vorgeschlagenen Bestellung.

extension FoodOrderExtension

Erforderlich.

Definiert Informationen zur Auftragsausführung für Essensbestellungen.

disclaimers Liste <Disclaimer>

Entspricht Haftungsausschlussmeldungen, die vor der Bestellung auf der Benutzeroberfläche angezeigt werden.

Das folgende Beispiel zeigt ein ProposedOrder-Element:

Beispiel

{
  "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

In der folgenden Tabelle sind die Attribute für den Typ SublineNote aufgeführt:

Attribut Typ Beschreibung
note String

Erforderlich.

Zeitstempel

Datum und Uhrzeit im folgenden Format: "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"

TransactionDecisionValue

Enthält die Order.

In der folgenden Tabelle sind die Attribute für den Typ TransactionDecisionValue aufgeführt:

Attribut Typ Beschreibung
order Order

Erforderlich.

Die Bestellung wird mit Zahlungsdetails aufgegeben.

Das folgende Beispiel zeigt ein TransactionDecisionValue-Element:

Beispiel

{
  "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"
    }
  }
}

Auftragsausführungsanfrage

AppRequest

In der folgenden Tabelle sind die Attribute für den Typ AppRequest aufgeführt:

Attribut Typ Beschreibung
isInSandbox Boolesch

Gibt an, ob die nachfolgenden Transaktionen in einer Sandbox-Umgebung ausgeführt werden.

conversation Conversation
inputs Liste <Input>

Erforderlich.

Enthält die erwarteten Argumente für den Bezahlvorgang.

Muss genau 1 Element enthalten.

Das folgende Beispiel zeigt ein AppRequest-Element:

Beispiel 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"
              }
            }
          }
        }
      ]
    }
  ]
}

Beispiel 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

Ein CheckoutRequestMessage ist ein AppRequest. mit dem Intent actions.foodordering.intent.CHECKOUT.

SubmitOrderRequestMessage

Ein SubmitOrderRequestMessage ist ein AppRequest. mit dem Intent actions.foodordering.intent.TRANSACTION_DECISION.

Unterhaltung

Ein Conversation gilt nur für eine Sitzung. Sie können damit mehrere Checkout- und SubmitOrder-Aktionen zusammen, falls erforderlich.

In der folgenden Tabelle sind die Attribute für den Typ Conversation aufgeführt:

Attribut Typ Beschreibung
conversationId String

Erforderlich.

Eindeutige ID für die Unterhaltung.

Das folgende Beispiel zeigt ein Conversation-Element:

Beispiel

{
  "conversationId": "CQnJ7Z4i7UmvEZ9ph3AxyZRJ"
}

Eingabe

Die erwarteten Argumente für die Bezahlung eines Einkaufswagens.

In der folgenden Tabelle sind die Attribute für den Typ Input aufgeführt:

Attribut Typ Beschreibung
intent Enum [ "actions.foodordering.intent.CHECKOUT", "actions.intent.TRANSACTION_DECISION" ]

Erforderlich.

Auf „actions.foodordering.intent.CHECKOUT“ festlegen für Nachricht zur Bezahlanfrage ODER „actions.intent.TRANSACTION_DECISION“ für die Nachricht „Bestellanfrage“.

arguments Liste <Argument>

Erforderlich.

Enthält den zu bezahlenden Einkaufswagen oder die aufzugebende Bestellung

Muss genau 1 Element enthalten.

Argument

Enthält Details zu den Lebensmitteln, die die nutzende Person kaufen möchte. An der Kasse ist nur eine Verlängerung erforderlich. Für die Aufgabe ist nur „transactionDecisionValue“ anwendbar

In der folgenden Tabelle sind die Attribute für den Typ Argument aufgeführt:

Attribut Typ Beschreibung
Genau eine der folgenden Gruppen von Properties ist erforderlich.
extension Gruppe 1 Cart

Beschreibt die Lebensmittel, die die nutzende Person kaufen möchte.

transactionDecisionValue Gruppe 2 TransactionDecisionValue

Enthält die aufzugebende Bestellung sowie die Zahlungsdetails.

Reaktion auf die Auftragsabwicklung

AppResponse

In der folgenden Tabelle sind die Attribute für den Typ AppResponse aufgeführt:

Attribut Typ Beschreibung
expectUserResponse Nachst

Auf „false“ gesetzt.

Wert: False

finalResponse FinalResponse

Erforderlich.

Enthält Ihre Antwort auf den Bezahlvorgang.

Das folgende Beispiel zeigt ein AppResponse-Element:

Beispiel 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."
                  }
                }
              ]
            }
          }
        }
      ]
    }
  }
}

Beispiel 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"
              }
            }
          }
        }
      ]
    }
  }
}

Beispiel 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."
                }
              ]
            }
          }
        }
      ]
    }
  }
}

Beispiel 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

Ein CheckoutResponseMessage ist ein AppResponse mit checkoutResponse oder error im StructuredResponse

SubmitOrderResponseMessage

Ein SubmitOrderResponseMessage ist ein AppResponse mit ein orderUpdate in der StructuredResponse.

FinalResponse

Ihre Antwort auf den Bezahlvorgang oder „SubmitOrderRequestMessage“.

In der folgenden Tabelle sind die Attribute für den Typ FinalResponse aufgeführt:

Attribut Typ Beschreibung
richResponse RichResponse

Erforderlich.

Enthält Ihre Antwort auf die CheckoutRequestMessage oder SubmitOrderRequestMessage.

CheckoutResponse

In der folgenden Tabelle sind die Attribute für den Typ CheckoutResponse aufgeführt:

Attribut Typ Beschreibung
proposedOrder ProposedOrder

Erforderlich.

Vorgeschlagener Auftrag zur Verwendung für die Transaktion.

paymentOptions PaymentOptions

Erforderlich.

Für den Nutzer ausgewählte Standardzahlungsart.

additionalPaymentOptions Liste <PaymentOptions>

Es stehen alternative Zahlungsoptionen für den Nutzer zur Verfügung.

Das folgende Beispiel zeigt ein CheckoutResponse-Element:

Beispiel

{
  "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."
      }
    }
  ]
}

Element

Enthält Ihre Antwort auf einen Einkaufswagen oder eine SubmitOrderRequestMessage.

In der folgenden Tabelle sind die Attribute für den Typ Item aufgeführt:

Attribut Typ Beschreibung
structuredResponse StructuredResponse

Erforderlich.

RichResponse

Enthält Ihre Antwort auf den Bezahlvorgang.

In der folgenden Tabelle sind die Attribute für den Typ RichResponse aufgeführt:

Attribut Typ Beschreibung
items Liste <Item>

Erforderlich.

Muss genau 1 Element enthalten.

StructuredResponse

Bei CheckoutResponseMessage kann dies einer der folgenden sein: CheckoutResponse zeigt einen erfolgreichen Bezahlvorgang an. ODER FoodErrorExtension: Weist auf einen Fehler beim Bezahlvorgang hin. Die Antwort kann einen korrigierten ProposedOrder und PaymentOptions oder eine Fehlermeldung ohne PaymentOptions enthalten. Für „SubmitOrderResponseMessage“ ist nur „orderUpdate“ anwendbar.

In der folgenden Tabelle sind die Attribute für den Typ StructuredResponse aufgeführt:

Attribut Typ Beschreibung
Genau eine der folgenden Gruppen von Properties ist erforderlich.
checkoutResponse Gruppe 1 CheckoutResponse

Bezahlte Artikel zuzüglich Steuern und Rabatten.

error Gruppe 2 FoodErrorExtension

Es wurden Fehler bei den Warenkorbartikeln festgestellt. Je nach Art des Fehlers kann diese Eigenschaft einen korrigierten Auftrag und PaymentOptions oder nur eine Fehlermeldung ohne PaymentOptions enthalten.

orderUpdate Gruppe 3 OrderUpdate

Asynchrone Bestellaktualisierungen

In diesem Abschnitt werden die übergeordneten Typen beschrieben, aus denen die Anfragen bestehen, und Reaktionen einer typischen integrierten Interaktion mit Essensbestellungen.

AsyncOrderUpdateRequestMessage

Informiert den Nutzer über Änderungen, nachdem eine Bestellung übermittelt und bestätigt wurde. Sie können den Nutzer beispielsweise darüber informieren, dass die Bestellung unterwegs ist oder Der Preis hat sich geändert. Weitere Informationen erhalten Sie unter:

In der folgenden Tabelle sind die Attribute für den Typ AsyncOrderUpdateRequestMessage aufgeführt:

Attribut Typ Beschreibung
isInSandbox Boolesch

Gibt an, dass der Auftrag, für den dieses Update gesendet wurde, eine Sandbox-Zahlung ist.

customPushMessage CustomPushMessage

Erforderlich.

Enthält das OrderUpdate für die Anfrage.

Das folgende Beispiel zeigt ein AsyncOrderUpdateRequestMessage-Element:

Beispiel

{
  "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

Nachdem Sie eine AsyncOrderUpdateRequestMessage gesendet haben, antwortet Google mit einem HTTP 200-Status und einem leeren Textkörper. Wenn das Update fehlgeschlagen ist, Google antwortet mit Details dazu, warum die Aktualisierung der Bestellung fehlgeschlagen ist.

Arten der Bestellaktualisierung

Schaltfläche

Definiert ein Benutzeroberflächenelement, das Sie hinzufügen können, um eine Nutzerinteraktion zu ermöglichen.

In der folgenden Tabelle sind die Attribute für den Typ Button aufgeführt:

Attribut Typ Beschreibung
title String

Erforderlich.

Die Anzeige. Verwenden Sie die im Deutschen übliche Groß- und Kleinschreibung mit maximal 30 Zeichen, um ein korrektes Rendering sicherzustellen.

Beispiel: Contact us

openUrlAction OpenUrlAction

Erforderlich.

Das folgende Beispiel zeigt ein Button-Element:

Beispiel

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

CancellationInfo

In der folgenden Tabelle sind die Attribute für den Typ CancellationInfo aufgeführt:

Attribut Typ Beschreibung
reason String

Erforderlich.

Anzeigbarer Grund für die Ablehnung, wenn OrderState.state „CANCELLED“ ist.

Beispiel: Restaurant closed

Das folgende Beispiel zeigt ein CancellationInfo-Element:

Beispiel

{
  "reason": "Insufficient inventory"
}

FoodOrderUpdateExtension

Bei diesem Typ wird dem Nutzer ein geschätztes Intervall für den Versand der Bestellung zur Verfügung gestellt. geliefert oder zur Abholung bereit sind. Diese Erweiterung senden in einem OrderUpdate wenn die Informationen verfügbar sind oder sich seit dem letzten Senden geändert haben.

Geben Sie eine konservative Schätzung für das Ausführungsintervall an, damit Nutzende Erwartungen konsequent erfüllt werden. Wenn die Bestellung beispielsweise heute um 13:00 Uhr ausgeliefert wird, sollten Sie ein geschätztes Intervall Übereinstimmung mit den Schwankungen aufgrund der Verkehrslage, z. B. heute um 12:45 Uhr bis 13:15 Uhr.

Eine Dauer oder ein Zeitstempel gemäß ISO 8601 wird als das Intervall aus der updateTime der OrderUpdate (im Wesentlichen „jetzt“) mit dem updateTime plus duration. Verwenden Sie dieses Format nur, wenn Sie „jetzt“ verwenden eine angemessene Erwartung.

Ein ISO 8601-Intervall wird als das Intervall vom Start bis zum Ende des Intervalls.

In der folgenden Tabelle sind die Attribute für den Typ FoodOrderUpdateExtension aufgeführt:

Attribut Typ Beschreibung
@type Nachst

Der Typ dieser Erweiterung. Dieses Feld ist immer auf „type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension“ festgelegt.

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

estimatedFulfillmentTimeIso8601 String

Die geschätzte Zeit, zu der die Bestellung geliefert wird bzw. zur Abholung bereit ist. Der String muss im ISO 8601-Format vorliegen und einem Intervall und nicht einer einzelnen festen Zeit entsprechen. Akzeptable Konventionen sind: Intervalle, Dauer und Datum/Uhrzeit. Dieses Feld kann in „SubmitOrderResponseMessage“ oder „AsyncOrderUpdateRequestMessage“ gesendet werden, wenn die Informationen verfügbar sind oder es eine Änderung gibt, z. B. vorzeitige oder verspätete Ankunft.

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

foodOrderErrors Liste <FoodOrderError>

Beschreibt die Fehler, die nach der Bestellung aufgetreten sind. Es wird ein Fehler pro Einkaufswagen oder Artikel empfohlen. Verwenden Sie „FoodOrderUpdateExtension.FoodOrderErrors“ für alle Fehler, die nicht von „Ablehnung“ abgedeckt sind.

Darf nicht weniger als 1 Element enthalten.

Das folgende Beispiel zeigt ein FoodOrderUpdateExtension-Element:

Beispiel 1

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

Beispiel 2

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

FulfillmentInfo

<ph type="x-smartling-placeholder">

In der folgenden Tabelle sind die Attribute für den Typ FulfillmentInfo aufgeführt:

Attribut Typ Beschreibung
Genau eine der folgenden Gruppen von Properties ist erforderlich.
deliveryTime Gruppe 1 ISO-Zeitstempel

„estimatedFulfillmentTimeIso8601“ in der Nachricht „FoodOrderingUpdateExtension“ verwenden

pickupTime Gruppe 2 ISO-Zeitstempel

„estimatedFulfillmentTimeIso8601“ in der Nachricht „FoodOrderingUpdateExtension“ verwenden

Das folgende Beispiel zeigt ein FulfillmentInfo-Element:

Beispiel 1

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

Beispiel 2

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

InTransitInfo

<ph type="x-smartling-placeholder">

In der folgenden Tabelle sind die Attribute für den Typ InTransitInfo aufgeführt:

Attribut Typ Beschreibung
updatedTime ISO-Zeitstempel

„estimatedFulfillmentTimeIso8601“ in der Nachricht „FoodOrderingUpdateExtension“ verwenden

Das folgende Beispiel zeigt ein InTransitInfo-Element:

Beispiel

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

LineItemUpdate

In der folgenden Tabelle sind die Attribute für den Typ LineItemUpdate aufgeführt:

Attribut Typ Beschreibung
orderState OrderState
price Price
reason String

Grund für die Änderung. Erforderlich für Preisänderungen.

Das folgende Beispiel zeigt ein LineItemUpdate-Element:

Beispiel

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

OpenUrlAction

In der folgenden Tabelle sind die Attribute für den Typ OpenUrlAction aufgeführt:

Attribut Typ Beschreibung
url String

Erforderlich.

Die durch Klicken oder Berühren der Schaltfläche ausgelöste Aktion. Die Liste der anwendbaren Präfixe hängt vom orderManagementActionType ab. "EMAIL": Das Präfix muss "mailto" sein. "CALL": Das Präfix muss "tel" sein. "CUSTOMER_SERVICE": Das Präfix muss "mailto", "tel", "http" oder "https" lauten.

Beispiel: https://www.google.com

OrderManagementAction

Die Bestellverwaltung ermöglicht es Nutzenden, Unterstützung nach der Bestellung zu erhalten. Diese sollte gesendet werden. Jedes OrderUpdate in der Bestellung AppResponse und jede weitere AsyncOrderUpdateRequestMessage Die für eine bestimmte Bestellung gesendeten Aktionen zur Bestellverwaltung können je nach Bundesstaat.

Beispiel: Im Feld „CREATED“ (Erstellt) kann CUSTOMER_SERVICE auf Ihren Telefon des Kundensupports. Klicken Sie dann in der Spalte CONFIRMED Bundesland, CUSTOMER_SERVICE kann zum Telefon des Restaurants wechseln, wenn dies der beste Punkt ist, für die Kundin oder den Kunden. Sobald sich die Bestellung im Status „FULFILLED“ befindet, Bundesland, CUSTOMER_SERVICE kann auf Ihre Support-E-Mail-Adressen verweisen.

In der folgenden Tabelle sind die Attribute für den Typ OrderManagementAction aufgeführt:

Attribut Typ Beschreibung
type OrderManagementActionType

Erforderlich.

button Button

Erforderlich.

Das folgende Beispiel zeigt ein OrderManagementAction-Element:

Beispiel 1

{
  "type": "CUSTOMER_SERVICE",
  "button": {
    "title": "Contact customer service",
    "openUrlAction": {
      "url": "mailto:support@example.com"
    }
  }
}

Beispiel 2

{
  "type": "EMAIL",
  "button": {
    "title": "Email restaurant",
    "openUrlAction": {
      "url": "mailto:person@example.com"
    }
  }
}

OrderManagementActionType

Definiert Typen für OrderManagementAction.

Für den Typ OrderManagementActionType sind folgende Werte möglich:

  • CUSTOMER_SERVICE: E-Mail-Adresse und/oder Telefonnummer des Kundenservice, die auf der Bestellbestätigungsseite angezeigt werden soll. Dies ist ein Pflichtfeld. Das Präfix „openUrlAction.url“ muss „mailto“, „tel“, „http“ oder „https“ lauten.
  • EMAIL: E-Mail-Aktion nur auf der Seite mit den Bestelldetails. Das Präfix openUrlAction.url muss „mailto“ sein.
  • CALL_DRIVER: Call-Action nur auf der Seite mit den Bestelldetails. Das Präfix „openUrlAction.url“ muss „tel“ sein.
  • CALL_RESTAURANT: Call-Action nur auf der Seite mit den Bestelldetails. Das Präfix „openUrlAction.url“ muss „tel“ sein.

OrderState

Der aktuelle Status der Bestellung. Jeder state-Wert von OrderState hat auch entspricht einem Kaufstatus auf myaccount.google.com

In der folgenden Tabelle sind die Attribute für den Typ OrderState aufgeführt:

Attribut Typ Beschreibung
state OrderStateEnum

Erforderlich.

label String

Erforderlich.

Der für den Nutzer sichtbare Anzeigestring für den Status. Verwenden Sie die im Deutschen übliche Groß- und Kleinschreibung.

Beispiel: Your order has been received

Das folgende Beispiel zeigt ein OrderState-Element:

Beispiel

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

OrderStateEnum

Definiert Typen für OrderState.

Für den Typ OrderStateEnum sind folgende Werte möglich:

  • CREATED: Die Bestellung wurde vom Integrator erstellt und wartet auf Bestätigung durch den Anbieter. Entspricht dem Artikel "Bestellt" Kaufstatus.
  • CONFIRMED: Bestellung wurde vom Anbieter bestätigt und ist aktiv. Entspricht den Angaben in der Kaufstatus.
  • REJECTED: Bestellung vom Integrator oder Anbieter abgelehnt. Entspricht dem Bericht "Abgelehnt" Kaufstatus.
  • CANCELLED: Der Nutzer hat die Bestellung storniert. Entspricht dem Abschnitt "Storniert" Kaufstatus.
  • IN_PREPARATION: Das Essen wird zubereitet. Entspricht dem Status "Unbekannt" Kaufstatus.
  • READY_FOR_PICKUP: Essen ist zur Abholung bereit. Entspricht dem Artikel „Zur Abholung bereit“ Kaufstatus.
  • IN_TRANSIT: Bestellung wird zugestellt. Entspricht dem Status „In Bearbeitung“ Kaufstatus.
  • FULFILLED: Der Nutzer hat die Bestellung erhalten. Entspricht dem Eintrag „Abgeholt“ Kaufstatus.

Beleg

Diesen Typ in einer Bestellung senden: AppResponse, Dabei ist OrderState entweder „CONFIRMED“, „FULFILLED“ oder „IN_TRANSIT“. Beleg senden um Zeitpunkt, zu dem userVisibleOrderId verfügbar wird. Sie müssen sich nicht den Beleg in nachfolgenden Updates zu senden.

In der folgenden Tabelle sind die Attribute für den Typ Receipt aufgeführt:

Attribut Typ Beschreibung
userVisibleOrderId String

Erforderlich.

Erforderlich, wenn der Auftrag „CONFIRMED“, „IN_TRANSIT“ oder „FULFILLED“ lautet. Dieses Feld enthält die einzelne Nutzer-ID für diese Bestellung (normalerweise die Bestell-ID des Restaurants), die sowohl auf dem Beleg des Integrators als auch auf der Google-Bestellkarte angezeigt wird. Der Nutzer muss diese ID verwenden können, um auf seine Bestellung für den Kundenservice beim Anbieter und Integrator zu verweisen. Sie müssen diese ID in jedem OrderUpdate nur einmal angeben. Bis dahin ist actionOrderId die userVisibleOrderId. Beispiel: Sie haben keine userVisibleOrderId, wenn die Bestellung vom Restaurant bestätigt wurde. Nach der Bestätigung müssen Sie eine AsyncOrderUpdateRequestMessage mit einem OrderUpdate und einer Quittung senden.

Das folgende Beispiel zeigt ein Receipt-Element:

Beispiel

{
  "userVisibleOrderId": "userVisibleId1234"
}

RejectionInfo

In der folgenden Tabelle sind die Attribute für den Typ RejectionInfo aufgeführt:

Attribut Typ Beschreibung
type RejectionType

Erforderlich.

reason String

Grund für die Ablehnung, der für das interne Logging verwendet wird. Dieses Feld ist für Nutzer nicht sichtbar.

Das folgende Beispiel zeigt ein RejectionInfo-Element:

Beispiel

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

RejectionType

Für den Typ RejectionType sind folgende Werte möglich:

  • INELIGIBLE: Der Nutzer ist aufgrund von Richtlinien- oder risikobezogenen Bedenken nicht berechtigt.
  • PAYMENT_DECLINED: Es gibt ein Problem bei der Zahlungsabwicklung.
  • UNAVAILABLE_SLOT: Die Bestellung kann nicht zu dem in „DeliveryInfo“ oder „Abholinfo“ angegebenen Zeitpunkt ausgeführt werden.
  • PROMO_NOT_APPLICABLE: Es gibt ein Problem mit dem Angebot.
  • UNKNOWN: Anderer Grund.

Zahlungsarten

In diesem Abschnitt werden die zahlungsbezogenen Arten beschrieben, die für die Essensbestellung verwendet werden. Auftragsausführung.

ActionProvidedPaymentOptions

Anforderungen für eine per Aktion bereitgestellte Zahlungsmethode

In der folgenden Tabelle sind die Attribute für den Typ ActionProvidedPaymentOptions aufgeführt:

Attribut Typ Beschreibung
paymentType PaymentType

Erforderlich.

displayName String

Erforderlich.

Name des Zahlungsmittels, das auf dem Beleg angegeben ist.

Beispiel: Taco Points Total

onFulfillmentPaymentData OnFulfillmentPaymentData

Zusätzliche Daten für den paymentType "ON_FULFILLMENT". Mit diesem Feld können Sie beispielsweise angeben, ob bei der Auftragsausführung Bargeld oder Karte unterstützt werden soll.

Das folgende Beispiel zeigt ein ActionProvidedPaymentOptions-Element:

Beispiel

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

AllowedAuthMethods

Für den Typ AllowedAuthMethods sind folgende Werte möglich:

  • PAN_ONLY: Authentifizierungsmethode für Zahlungskarten, die im Google-Konto des Nutzers gespeichert sind. Zu den zurückgegebenen Zahlungsdaten gehören die persönliche Kontonummer (Personal Account Number, PAN) mit dem Ablaufmonat und dem Ablaufjahr.

AllowedCardNetworks

Für den Typ AllowedCardNetworks sind folgende Werte möglich:

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

BillingAddressParameters

Mit diesem Objekt können Sie zusätzliche Felder festlegen, die für eine angeforderte Rechnungsadresse zurückgegeben werden sollen.

In der folgenden Tabelle sind die Attribute für den Typ BillingAddressParameters aufgeführt:

Attribut Typ Beschreibung
format String

Das Format der Rechnungsadresse ist erforderlich, damit die Transaktion abgeschlossen werden kann. MIN: Name, Ländercode und Postleitzahl. VOLL: Name, Adresse, Ort, Region, Ländercode und Postleitzahl.

Das folgende Beispiel zeigt ein BillingAddressParameters-Element:

Beispiel 1

{
  "format": "MIN"
}

Beispiel 2

{
  "format": "FULL"
}

CardParameters

Mit diesem Objekt kannst du die Unterstützung deiner Website für die Google Pay API konfigurieren.

In der folgenden Tabelle sind die Attribute für den Typ CardParameters aufgeführt:

Attribut Typ Beschreibung
allowedAuthMethods List<Const>

Erforderlich.

Unterstützte Felder für die Authentifizierung einer Kartentransaktion.

Darf nicht weniger als 1 Element enthalten.

allowedCardNetworks Liste <AllowedCardNetworks>

Erforderlich.

Ein oder mehrere von dir unterstützte Kartennetzwerke, die auch von der Google Pay API unterstützt werden.

Darf nicht weniger als 1 Element enthalten.

billingAddressRequired Boolesch

Setzen Sie den Wert auf „true“, wenn Sie eine Rechnungsadresse benötigen. Fordern Sie nur dann eine Rechnungsadresse an, wenn diese für die Verarbeitung der Transaktion erforderlich ist. Zusätzliche Datenanfragen können den Bezahlvorgang vereinfachen und zu niedrigeren Conversion-Raten führen.

billingAddressParameters BillingAddressParameters

Die erwarteten Felder, die zurückgegeben werden, wenn „billingAddressRequired“ auf „true“ festgelegt ist.

cvcRequired Boolesch

Setzen Sie diesen Wert auf „true“, wenn Sie TimesofMoney verwenden, und auf „false“ für alle anderen Zahlungsabwickler.

Das folgende Beispiel zeigt ein CardParameters-Element:

Beispiel 1

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

Beispiel 2

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

GoogleProvidedPaymentInstrument

In der folgenden Tabelle sind die Attribute für den Typ GoogleProvidedPaymentInstrument aufgeführt:

Attribut Typ Beschreibung
instrumentToken String

Erforderlich.

Base-64-codierter String mit dem Zahlungstoken zur Belastung des Nutzers bei einem teilnehmenden Google Pay-Prozessor gemäß den zuvor angegebenen „GoogleProvidedPaymentOptions“.

billingAddress PostalAddress

Rechnungsadresse für die Zahlung

Das folgende Beispiel zeigt ein GoogleProvidedPaymentInstrument-Element:

Beispiel

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

GoogleProvidedPaymentOptions

Anforderungen für von Google bereitgestellte Zahlungsmethode

In der folgenden Tabelle sind die Attribute für den Typ GoogleProvidedPaymentOptions aufgeführt:

Attribut Typ Beschreibung
facilitationSpecification String

PaymentDataRequest-JSON als String. Mit diesem Objekt kannst du die Unterstützung deiner Website für die Google Pay API konfigurieren.

supportedCardNetworks Liste <SupportedCardNetworks>

Verwenden Sie stattdessen facilitationSpecification. Typ der vom Agent unterstützten Kartennetzwerke.

Dieses Feld wurde eingestellt.

prepaidCardDisallowed Boolesch

Verwenden Sie stattdessen facilitationSpecification. Gibt an, ob eine Prepaidkarte als Zahlungsart zulässig ist.

Dieses Feld wurde eingestellt.

billingAddressRequired Boolesch

Verwenden Sie stattdessen „facilitationSpecification“. Gibt an, ob eine Rechnungsadresse erforderlich ist.

Dieses Feld wurde eingestellt.

tokenizationParameters TokenizationParameters

Dieses Feld wurde eingestellt.

Das folgende Beispiel zeigt ein GoogleProvidedPaymentOptions-Element:

Beispiel 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\"}}"
}

Beispiel 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
}

Beispiel 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

Mit diesem Objekt kannst du die Unterstützung deiner Website für die Google Pay API konfigurieren.

In der folgenden Tabelle sind die Attribute für den Typ MerchantInfo aufgeführt:

Attribut Typ Beschreibung
merchantId String

Google-Händler-ID, die Ihnen von Google Pay zugewiesen wird.

merchantName String

Erforderlich.

Der Händlername ist in UTF-8 codiert. Der Händlername wird im Zahlungsblatt gerendert.

OnFulfillmentPaymentData

Verwenden Sie dieses Objekt, um zusätzliche Daten für den PaymentType "ON_FULFILLMENT" zu senden.

In der folgenden Tabelle sind die Attribute für den Typ OnFulfillmentPaymentData aufgeführt:

Attribut Typ Beschreibung
supportedPaymentOptions Liste <PaymentOptionsEnums>

Liste der Zahlungsoptionen, die dem Nutzer zum Zeitpunkt der Auftragsabwicklung zur Verfügung stehen.

Das folgende Beispiel zeigt ein OnFulfillmentPaymentData-Element:

Beispiel

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

Parameter

Definiert Typen für TokenizationParameters.

In der folgenden Tabelle sind die Attribute für den Typ Parameters aufgeführt:

Attribut Typ Beschreibung
gateway String

Erforderlich.

Beispiel: braintree

gatewayMerchantId String
[additionalKey: string] String Zusätzliche Schlüssel/Wert-Paare

Das folgende Beispiel zeigt ein Parameters-Element:

Beispiel 1

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

Beispiel 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

Mit diesem Objekt kannst du die Unterstützung deiner Website für die Google Pay API konfigurieren.

In der folgenden Tabelle sind die Attribute für den Typ PaymentDataRequest aufgeführt:

Attribut Typ Beschreibung
apiVersion Nachst

Erforderlich.

API-Hauptversion.

Wert: 2

apiVersionMinor Nachst

Erforderlich.

API-Nebenversion.

Wert: 0

merchantInfo MerchantInfo

Erforderlich.

(Google Pay-Händler-ID) Informationen zu dem Händler, der Zahlungsdaten anfordert.

allowedPaymentMethods Liste <PaymentMethod>

Erforderlich.

Gibt an, dass eine oder mehrere von der Google Pay API unterstützte Zahlungsmethoden unterstützt werden.

transactionInfo TransactionInfo

Erforderlich.

Details zur Autorisierung der Transaktion basierend darauf, ob der Nutzer der Transaktion zustimmt. Dieses Feld enthält den Gesamtpreis und den Preisstatus.

Das folgende Beispiel zeigt ein PaymentDataRequest-Element:

Beispiel

{
  "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

Zahlungsbezogene Informationen zu einer Bestellung.

In der folgenden Tabelle sind die Attribute für den Typ PaymentInfo aufgeführt:

Attribut Typ Beschreibung
displayName String

Erforderlich.

Für Nutzer sichtbarer Name des Zahlungsmittels, das auf dem Beleg angezeigt werden soll.

paymentType PaymentType

Erforderlich.

googleProvidedPaymentInstrument GoogleProvidedPaymentInstrument

Token, das von der Aktion verwendet werden kann. Geben Sie dies nur an, wenn Sie „GoogleProvidedPaymentOptions“ als Zahlungsoption in der CheckoutResponseMessage angegeben haben.

Das folgende Beispiel zeigt ein PaymentInfo-Element:

Beispiel 1

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

Beispiel 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"
}

Zahlungsmethode

Mit diesem Objekt kannst du die Unterstützung deiner Website für die Google Pay API konfigurieren.

In der folgenden Tabelle sind die Attribute für den Typ PaymentMethod aufgeführt:

Attribut Typ Beschreibung
type Nachst

Erforderlich.

Kurze ID für die unterstützte Zahlungsmethode. Derzeit wird nur CARD unterstützt.

Wert: CARD

parameters CardParameters

Erforderlich.

Parameter, die zum Konfigurieren des angegebenen Zahlungsmethodentyps erforderlich sind.

tokenizationSpecification TokenizationSpecification

Erforderlich.

Konfigurieren Sie ein Konto oder einen Anbieter für die Entschlüsselung, um Zahlungsinformationen zu erhalten. Diese Unterkunft ist für die Zahlungsmethode CARD erforderlich.

Das folgende Beispiel zeigt ein PaymentMethod-Element:

Beispiel

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

PaymentOptions

In der folgenden Tabelle sind die Attribute für den Typ PaymentOptions aufgeführt:

Attribut Typ Beschreibung
Genau eine der folgenden Gruppen von Properties ist erforderlich.
googleProvidedOptions Gruppe 1 GoogleProvidedPaymentOptions

Schließt sich mit actionProvidedOptions gegenseitig aus. Verwenden Sie diese Nummer für Onlinezahlungen mit gPay.

actionProvidedOptions Gruppe 2 ActionProvidedPaymentOptions

Schließt sich mit „googleProvidedOptions“ gegenseitig aus. Verwenden Sie dieses Attribut für „Nachzahlung per Nachnahme“. oder „Pay on fulfillment“.

Das folgende Beispiel zeigt ein PaymentOptions-Element:

Beispiel 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\"}}"
  }
}

Beispiel 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\"}}"
  }
}

Beispiel 3

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

PaymentOptionsEnums

Für den Typ PaymentOptionsEnums sind folgende Werte möglich:

  • Cash
  • Card
  • UPI
  • Paytm

PaymentType

Für den Typ PaymentType sind folgende Werte möglich:

  • PAYMENT_CARD: Für GoogleProvidedPaymentOptions.
  • ON_FULFILLMENT: For ActionProvidedPaymentOptions.

SupportedCardNetworks

Definiert Typen für GoogleProvidedPaymentOptions.

Für den Typ SupportedCardNetworks sind folgende Werte möglich:

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

TokenizationParameters

<ph type="x-smartling-placeholder"> Definiert Typen für GoogleProvidedPaymentOptions.

In der folgenden Tabelle sind die Attribute für den Typ TokenizationParameters aufgeführt:

Attribut Typ Beschreibung
tokenizationType Enum [ "UNSPECIFIED_TOKENIZATION_TYPE", "PAYMENT_GATEWAY" ]

Erforderlich.

Verwenden Sie stattdessen facilitationSpecification. Tokentyp zulässig.

parameters Parameters

Verwenden Sie stattdessen facilitationSpecification.

TokenizationSpecification

Mit diesem Objekt können Sie ein Konto für anrechenbare Zahlungsinformationen konfigurieren.

In der folgenden Tabelle sind die Attribute für den Typ TokenizationSpecification aufgeführt:

Attribut Typ Beschreibung
type Nachst

Erforderlich.

parameters Parameters

Erforderlich.

Das folgende Beispiel zeigt ein TokenizationSpecification-Element:

Beispiel 1

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

Beispiel 2

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

TransactionInfo

Dieses Objekt beschreibt eine Transaktion, die die Zahlungsfähigkeit eines Zahlungspflichtigen bestimmt. Damit wird ein Dialogfeld für die Zahlungsautorisierung angezeigt.

In der folgenden Tabelle sind die Attribute für den Typ TransactionInfo aufgeführt:

Attribut Typ Beschreibung
currencyCode String

Erforderlich.

Alphabetischer Währungscode gemäß ISO 4217.

transactionId String

Eindeutige ID, die einen Transaktionsversuch identifiziert. Händler können für Google Pay-Transaktionsversuche eine vorhandene ID verwenden oder eine bestimmte generieren. Dieses Feld ist erforderlich, wenn Sie Callbacks an die Google Transaction Events API senden.

totalPriceStatus Nachst

Erforderlich.

Verwenden Sie „GESCHÄTZT“. als Standard eingerichtet. Der Gesamtpreis wird unter Umständen auf Grundlage der Antwortdetails angepasst, z. B. die anhand einer Rechnungsadresse erhobene Steuer.

Wert: ESTIMATED

totalPrice String

Erforderlich.

Der gesamte Geldwert der Transaktion mit optionaler Dezimalgenauigkeit von zwei Dezimalstellen. Dieses Feld sollte denselben Wert wie „cart.totalPrice“ enthalten.

Das folgende Beispiel zeigt ein TransactionInfo-Element:

Beispiel

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