Basistypen
Einkaufswagen
Enthält Details zur Bestellung und gibt an, ob eine Abholung oder Lieferung angefordert werden soll. Ein Einkaufswagen enthält auch Lieferdetails, Trinkgeld und die Lieferadresse. DasCart
-Objekt ist in einer Checkout AppRequest
definiert.
Sie fügen eine Kopie des Einkaufswagens in Ihre Checkout AppResponse
ein.
In der folgenden Tabelle sind die Attribute für den Typ Cart
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
@type |
Forts. |
Der Typ dieses Objekts. Lassen Sie dieses Feld weg, wenn das übergeordnete Warenkorbobjekt Teil von SuggestdOrder ist. Wert: |
|
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 ein Angebot unterstützt. |
|
notes |
String |
Hinweise zur Bestellung oder Lieferanweisungen. |
|
extension |
FoodCartExtension |
Definiert Details zum Nutzer, z. B. 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. Sie ist nur inAppResponse
verfügbar.
In der folgenden Tabelle sind die Attribute für den Typ Contact
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
displayName |
String |
Name der Person, die die Bestellung erhält, wie er angezeigt werden soll. Verwenden Sie dieses Feld, wenn firstName und lastName nicht angegeben sind. Beispiel: |
|
email |
String |
E-Mail-Adresse der Person, die die Bestellung erhält. Beispiel: |
|
firstName |
String |
Vorname der Person, die die Bestellung erhält Beispiel: |
|
lastName |
String |
Nachname der Person, die die Bestellung erhält. Beispiel: |
|
phoneNumber |
String |
Telefonnummer der Person, die die Bestellung erhält, einschließlich der Landesvorwahl Beispiel: |
|
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 denOrderUpdate
für die Anfrage.
In der folgenden Tabelle sind die Attribute für den Typ CustomPushMessage
aufgeführt:
Property | 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:
Property | Typ | Beschreibung | |
---|---|---|---|
deliveryTimeIso8601 |
String |
Voraussichtliche Lieferzeit im Zeitstempelformat nach ISO 8601: „{Jahr}-{Monat}–{Tag}T{Stunde}:{Min.}:{Sek}[.{frac_sec}]Z“ oder im Dauerformat „P(n)Y(n)M(n)DT(n)H(n)M(n)S“. PT90M steht beispielsweise 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#Combined_date_and_time_representations. Hiermit können Sie die voraussichtliche Lieferdauer während der Antwort an den Bezahlvorgang aktualisieren. Beispiel: |
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:
Property | Typ | Beschreibung | |
---|---|---|---|
predefinedMessage |
PredefinedMessage |
Erforderlich. Zum Anzeigen vordefinierter Haftungsausschlüsse an der Kasse. |
|
feeAmount |
Money |
Der Partner berechnet dem Händler eine Gebühr (N-Betrag) 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
Der Typ Error
hat folgende mögliche Werte:
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 von begrenztem Lieferpersonal nicht bearbeitet werden.REQUIREMENTS_NOT_MET
: Einschränkungen für die Annahme der Bestellung wurden nicht erfüllt (z. B. die Mindestbestellmenge).UNAVAILABLE_SLOT
: Die Bestellung kann nicht zur im Voraus angegebenen Bestellung ausgeführt werden, die in DeliveryInfo oder PickupInfo angegeben ist.OUT_OF_SERVICE_AREA
: Die Bestellung kann nicht an die Adresse des Nutzers geliefert werden.PROMO_EXPIRED
: Das Angebot konnte nicht angewendet werden, da es abgelaufen ist.PROMO_NOT_APPLICABLE
: Allgemeiner Fehlercode, mit dem alle Fehler beim Anwenden des Gutscheincodes erkannt werden, falls keiner der anderen Fehler zutrifft.PROMO_NOT_RECOGNIZED
: Der Gutscheincode wurde nicht erkannt.PROMO_ORDER_INELIGIBLE
: Dieser Gutschein kann für die aktuelle Bestellung nicht verwendet werden.PROMO_USER_INELIGIBLE
: Der aktuelle Nutzer hat keinen Anspruch auf diesen Gutschein.AVAILABILITY_CHANGED
: Der Artikel ist nicht mehr verfügbar oder es sind nicht mehr genügend Artikel vorhanden, um die Anfrage auszuführen.INCORRECT_PRICE
: Preisfehler bei den Gebühren oder dem Gesamtbetrag.INVALID
: Eine Werbebuchung, eine Auftragsausführungsoption oder eine Werbeaktion enthält ungültige Daten.NOT_FOUND
: Eine Werbebuchung, eine Auftragsausführungsoption oder eine Werbeaktion 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:
Property | Typ | Beschreibung | |
---|---|---|---|
minFeeAmount |
Money |
Untergrenze des berechneten Gebührenbetrags. |
|
maxFeeAmount |
Money |
Obergrenze des berechneten Gebührenbetrags. |
FeePercentRange
In der folgenden Tabelle sind die Attribute für den Typ FeePercentRange
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
minFeePercent |
Number |
Untergrenze des berechneten Gebührenprozentsatzes. |
|
maxFeePercent |
Number |
Obergrenze für den berechneten Gebührenprozentsatz. |
FoodCartExtension
Enthält Details zum Nutzer, z. B. Einstellungen für die Auftragsausführung.
In der folgenden Tabelle sind die Attribute für den Typ FoodCartExtension
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
@type |
Forts. |
Der Typ dieser Erweiterung. Dieses Feld ist immer auf „type.googleapis.com/google.actions.v2.orders.FoodCartExtension“ festgelegt. Wert: |
|
contact |
Contact |
Kontaktdaten der Person, die die Bestellung erhält. Dazu gehören Name, Telefonnummer und E-Mail-Adresse der Person. |
|
fulfillmentPreference |
FulfillmentOption |
Erforderlich. Die Auftragsausführung des Nutzers. |
|
location |
Location |
In der CheckoutRequestMessage gibt dieses Feld die Lieferadresse an, die erforderlich ist, wenn die Bestellung zur Lieferung bestimmt wird. Bei Bestellungen zum Mitnehmen oder Abholen 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
Gibt einen oder mehrere Fehler an, die beim Verarbeiten einer Anfrage aufgetreten sind. In der folgenden Tabelle werden die Felder des TypsFoodErrorExtension
beschrieben.
Fehler können in einem CheckoutResponse
gesendet werden.
In der folgenden Tabelle sind die Attribute für den Typ FoodErrorExtension
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
@type |
Forts. | Erforderlich. Der Typ dieser Erweiterung. Wert: |
|
foodOrderErrors |
Liste<FoodOrderError > |
Erforderlich. Array von FoodOrderError-Objekten, die die aufgetretenen Fehler beschreiben. Pro Einkaufswagen bzw. Artikel wird ein Fehler empfohlen. Darf nicht weniger als 1 Element enthalten. |
|
correctedProposedOrder |
ProposedOrder |
Erforderlich beim Ein neuer Vorschlag für den Auftrag mit Korrekturen. Dieses Objekt zurückgeben, wenn der ursprüngliche Vorgeschlagene Auftrag behebbare Fehler enthält. Beispielsweise ist eine Preisänderung bei einer oder mehreren Artikeln im Einkaufswagen ein behebbarer Fehler. Behebbare Fehler mit einer gültigen „Vorgeschlagenen Bestellung“ werden in die Bestätigungsphase übergehen, ohne dass der Nutzer seinen Einkaufswagen prüfen muss. |
|
paymentOptions |
PaymentOptions |
Erforderlich beim Für den Nutzer ausgewählte Standardzahlungsoptionen. |
|
additionalPaymentOptions |
Liste<PaymentOptions > |
Alternative Zahlungsoptionen für den Nutzer. |
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:
Property | Typ | Beschreibung | |
---|---|---|---|
@type |
Forts. | Erforderlich. Der Typ dieser Erweiterung. Dieses Feld ist immer auf „type.googleapis.com/google.actions.v2.orders.FoodItemExtension“ gesetzt. Wert: |
|
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:
Property | Typ | Beschreibung | |
---|---|---|---|
id |
String |
Eindeutige ID, die von Google zugewiesen wurde. Wenn Sie einen FoodOrderError oder AsyncOrderUpdateRequest senden, verwenden Sie dieses Feld, um zu unterscheiden, ob ein Einkaufswagen mehr als einen Artikel mit derselben Angebots-ID enthält. Beispiel: |
|
offerId |
String |
Die Angebots-ID für den Artikel. Beispiel: |
|
name |
String |
Der Name der Option. Beispiel: |
|
price |
Money |
||
note |
String |
Hinweis zu der Option. |
|
quantity |
Number |
Bei Optionen, bei denen es sich um Elemente handelt, die Anzahl der Elemente. Beispiel: |
|
subOptions |
Liste<FoodItemOption > |
Unteroptionen für die Option, falls vorhanden. Beispiel: |
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 einemCheckoutResponse
.
In der folgenden Tabelle sind die Attribute für den Typ FoodOrderError
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
error |
Error |
Erforderlich. |
|
id |
String | Erforderlich beim Dieses Feld ist für Fehler auf Artikelebene erforderlich. Dabei handelt es sich um die von Google zugewiesene „LineItem.id“ für Artikel auf der Speisekarte oder die „FoodItemOption.id“ für Add-ons. |
|
description |
String |
Beschreibung des Fehlers. Diese Beschreibung dient zur internen Protokollierung und ist für Nutzer nicht sichtbar. |
|
updatedPrice |
Money |
Erforderlich beim Neuer Preis eines Artikels, der den Fehler verursacht hat. Dies ist nur erforderlich, wenn der Fehler "PRICE_CHANGED" ist. |
|
availableQuantity |
Ganzzahl | Erforderlich beim Neue verfügbare Menge des Artikels, der den Fehler verursacht hat. Dies ist nur erforderlich, wenn der Fehler „INVALID“ oder „NOT_FOUND“ lautet. Der Wert für „INVALID“ und „NOT_FOUND“ sollte null sein. |
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:
Property | Typ | Beschreibung | |
---|---|---|---|
@type |
Forts. |
Der Typ dieser Erweiterung. Dieses Feld ist immer auf „type.googleapis.com/google.actions.v2.orders.FoodOrderExtension“ festgelegt. Wert: |
|
availableFulfillmentOptions |
Liste<FulfillmentOption > |
Verfügbare Auftragsausführungsoptionen für die Bestellung. |
|
optinForRemarketing |
Boolesch |
Nutzeranfrage zum Aktivieren Ihrer Marketingkanäle. Standardmäßig dürfen Sie Marketinginhalte nicht ohne die Zustimmung des Nutzers senden. Wenn optinForRemarketing wahr ist, können Sie den Nutzer abonnieren. Wenn „optinForRemarketing“ auf „false“ gesetzt ist oder nicht vorhanden ist, muss der Abostatus in deinem System unverändert bleiben. Nutzer können die Funktion nicht über Google deaktivieren, sondern nur über eine Kündigungsfunktion in deinen Marketingkanälen. 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
EinFulfillmentOption
-Objekt kann so verwendet werden:
-
In
Checkout AppRequest
undSubmit AppRequest
wird imCart.extension.fulfillmentPreference
die Einstellung des Nutzers (Lieferung oder Abholung) gespeichert. Der Preis ist immer 0, wenn die Zahlungsanforderung gesendet wird. -
In
Checkout AppResponse
definiertProposedOrder.extension.availableFulfillmentOptions
: Definiert eine oder mehrere Auslieferungsoptionen (derzeit wird nur eine Option unterstützt). Die Standardoption wird alsLineItem
inProposedOrder.otherItems
angegeben. DieofferId
vonFulfillmentOption
sollte mit der ID desLineItem
inProposedOrder.otherItems
übereinstimmen.
In der folgenden Tabelle sind die Attribute für den Typ FulfillmentOption
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
offerId |
String |
Eindeutige Kennung für diese Auftragsausführungsoption, falls vorhanden. |
|
fulfillmentInfo |
FulfillmentOptionInfo |
Erforderlich. |
|
expiresAt |
ISO-Zeitstempel |
Zeit, zu der 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 zuFulfillmentInfo
.
In der folgenden Tabelle sind die Attribute für den Typ FulfillmentOptionInfo
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
Genau eine der folgenden Property-Gruppen ist erforderlich. | |||
delivery |
Gruppe 1 | DeliveryInfo |
Falls vorhanden, gibt dies den Lieferauftrag an. |
pickup |
Gruppe 2 | PickupInfo |
Falls vorhanden, steht für eine Bestellung zur Abholung. |
Bild
In der folgenden Tabelle sind die Attribute für den Typ Image
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
sourceUrl |
String | Erforderlich. URL für das Bild. Das Bild sollte mindestens 72 x 72 Pixel groß sein. Die besten Ergebnisse erzielen Sie, wenn Sie ein Bild mit mindestens 216 x 216 Pixeln verwenden. 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 eine Bestellung (ProposedOrder.otherItems
).
In der folgenden Tabelle sind die Attribute für den Typ LineItem
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
id |
String | Erforderlich beim Für eine Position in einem Einkaufswagen (VorgeschlagenedOrder.cart.lineItems[0].id) ist dies die eindeutige ID, die Google beim Erstellen des Auftrags erstellt. Der Wert der ID wird für eine Position in einem Angebot des Typs SuggestdOrder (SuggestdOrder.otherItems[0].id), die zum Hinzufügen von Artikeln wie Liefergebühren und Steuern verwendet wird, 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 Basis-offerId. Wenn Sie eine Anfrage zur Aktualisierung einer Bestellung senden, um anzugeben, dass ein Artikel abgelehnt wurde, verwenden Sie diese ID zur Unterscheidung. Wenn also eine der Pizzen abgelehnt wird, weil sie keinen bestimmten Belag hat, kann Google anhand der ID feststellen, auf welchen Artikel in der Reihenfolge Sie sich beziehen. Dieses Feld ist nur in otherItems erforderlich. |
|
name |
String | Erforderlich. Name der Position Dieser String ist für den Nutzer sichtbar und sollte nach Möglichkeit immer in Großbuchstaben geschrieben werden (z. B. „Versandgebühr“, „Servicegebühr“ oder „Steuern“). Dieses Feld wird für Nutzer auf 100 Zeichen abgeschnitten. |
|
type |
LineItemType |
Erforderlich. |
|
quantity |
Ganzzahl | Erforderlich beim Anzahl der enthaltenen Elemente. Gilt nicht für VorgeschlagenedOrder.otherItems. |
|
description |
String |
Beschreibung des Artikels |
|
price |
Price |
Erforderlich. Der Preis des Artikels oder der Artikel. Dieser Wert entspricht dem Gesamtpreis aller Waren oder Dienstleistungen für diese Position. Sie können also die Kosten der Add-ons 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 zusätzlich 1 € kostet er 6 €. Für zwei Pizzen (Menge = 2) mit einem Grundpreis von 5 € und jeweils 1 € zusätzlich würde der Preis 12 € betragen. Jede Werbebuchung sollte einen Preis haben, auch wenn der Preis „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 diesem Feld kann in der Checkout-Anfrage und der Anfrage zum Senden der Bestellung ein artikelspezifischer Hinweis des Nutzers gesendet werden. Achten Sie darauf, dass der Händler die Notiz erhält, sobald sie bereitgestellt wird. Er wird in der Anfrage als subLines[0].note angezeigt. 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 beim Die Angebots-ID des MenuItems für den Artikel. Gilt nicht für VorgeschlagenedOrder.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
Der Typ LineItemType
hat folgende mögliche Werte:
REGULAR
: Werbebuchung für Waren Gilt für Cart.lineItems.TAX
: Position „Steuern“. Gilt für VorgeschlagenedOrder.otherItems.DISCOUNT
: Werbebuchung „Rabatt“. Der Preis muss negativ sein. Gilt für VorgeschlagenedOrder.otherItems.GRATUITY
: Werbebuchung für das Gratuity. In der Regel reserviert für „SubmitOrderRequestMessage“ für einen vom Nutzer ausgewählten Tipp. Gilt für VorgeschlagenedOrder.otherItems.DELIVERY
: Werbebuchung für die Auslieferung. Gilt für VorgeschlagenedOrder.otherItems.SUBTOTAL
: Position mit Zwischensumme. Gilt für VorgeschlagenedOrder.otherItems.FEE
: Zusätzliche Werbebuchung, die von den anderen Typen nicht abgedeckt wird. Gilt für VorgeschlagenedOrder.otherItems.
Standort
Gibt eine Adresse für Essensbestellungen an. Der TypLocation
wird in einem Cart
verwendet, um nur das Ziel eines Lieferauftrags anzugeben.
Der endgültige Standort ist auch in TransactionDecisionValue
vorhanden, wenn der Nutzer die Bestellung aufgibt. Bei Bestellungen mit Abholung wird kein Standort angegeben (auch kein leerer Standort).
In der folgenden Tabelle sind die Attribute für den Typ Location
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
coordinates |
Coordinates |
||
formattedAddress |
String |
Angezeigte Adresse des Standorts Beispiel: |
|
postalAddress |
PostalAddress |
||
zipCode |
String |
Beispiel: |
|
city |
String |
Der Name der Stadt. Beispiel: |
|
notes |
String |
Hinweise zum Ort, z. B. Zugangscodes. Er darf maximal 500 Zeichen umfassen. Beispiel: |
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:
Property | Typ | Beschreibung | |
---|---|---|---|
id |
String |
Die ID des Händlers. Falls angegeben, stimmt mit der Restaurant.@id im Restaurant-Feed überein. Beispiel: |
|
name |
String | Erforderlich. Für den Nutzer sichtbarer Händlername. Beispiel: |
Das folgende Beispiel zeigt ein Merchant
-Element:
Beispiel
{ "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }
Geldbetrag
In der folgenden Tabelle sind die Attribute für den Typ Money
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
currencyCode |
String | Erforderlich. Ein dreistelliger Währungscode im ISO 4217-Format. Beispiel: |
|
units |
String |
Die ganzen Einheiten des Betrags. Wenn für „currencyCode“ beispielsweise „USD“ angegeben ist, entspricht die Einheit „1“ einem US-Dollar. Beispiel: |
|
nanos |
Ganzzahl |
Anzahl der Nanoeinheiten (10^-9) des Betrags. Der Wert muss im Bereich von -999.999.999 bis +999.999.999 liegen. Beachten Sie 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: |
Das folgende Beispiel zeigt ein Money
-Element:
Beispiel 1
{ "currencyCode": "USD", "units": "36", "nanos": 730000000 }
Beispiel 2
{ "currencyCode": "EUR", "units": "10" }
Bestellen
Enthält die endgültige Bestellung, einschließlich Steuern, Gebühren und Versandkosten sowie Zahlungsinformationen. Dieses Objekt wird von Ihrer Aktion in einemSubmit AppRequest
empfangen.
In der folgenden Tabelle sind die Attribute für den Typ Order
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
finalOrder |
ProposedOrder |
Erforderlich. Die vorgeschlagene Bestellung, die zur Bestellung geführt 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. Zahlungsinformationen, die der Zahlung für diese Bestellung entsprechen. |
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, die inAppResponse
enthalten sind.
In der folgenden Tabelle sind die Attribute für den Typ OrderUpdate
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
actionOrderId |
String | Erforderlich. Eindeutige ID des Auftrags im System des Integrationspartners, mit der der Auftrag identifiziert wird, für den das Update gesendet wird. Wenn für eine Bestellung des Typs „CREATED“ nicht mindestens einmal „quitt.user_visible_order_id“ in OrderUpdate angegeben ist, ist diese ID die 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 der Auftrag aktualisiert wurde. |
|
orderManagementActions |
Liste<OrderManagementAction > |
Aktionen nach der Bestellung, z. B. Support kontaktieren und Bestelldetails ansehen Darf nicht weniger als 1 Element und nicht mehr als 6 Elemente enthalten. |
|
rejectionInfo |
RejectionInfo |
Erforderlich beim |
|
cancellationInfo |
CancellationInfo |
Erforderlich beim |
|
inTransitInfo |
InTransitInfo |
Dieses Feld wurde eingestellt. |
|
fulfillmentInfo |
FulfillmentInfo |
Dieses Feld wurde eingestellt. |
|
receipt |
Receipt |
Erforderlich beim Geben Sie die für den Nutzer sichtbare Bestell-ID in einem Beleg an. |
|
totalPrice |
Price |
Gesamtpreis der Bestellung. |
|
infoExtension |
FoodOrderUpdateExtension |
Definiert weitere Details der Bestellaktualisierung, 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:
Property | Typ | Beschreibung | |
---|---|---|---|
pickupTimeIso8601 |
String |
Geschätzte Abholzeit im ISO 8601-Zeitstempelformat: „{year}-{Monat}-{Tag}T{Stunde}:{Min.}:{Sek}[.{frac_sec}]Z“ oder im Dauerformat „P(n)Y(n)M(n)DT(n)H(n)M(n)S“. PT90M steht beispielsweise 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#Combined_date_and_time_representations. Hiermit können Sie die voraussichtliche Abholzeit während der Antwort an den Bezahlvorgang aktualisieren. Beispiel: |
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:
Property | Typ | Beschreibung | |
---|---|---|---|
regionCode |
String | Erforderlich. Ein aus zwei Buchstaben bestehender Ländercode. Beispiel: |
|
postalCode |
String |
Die Postleitzahl. Beispiel: |
|
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: |
|
locality |
String |
Stadt oder Ort dieses Standorts Geben Sie in Regionen der Welt, in denen Orte nicht hinreichend definiert sind oder nicht in diese Struktur passen, diesen Ort nicht an und verwenden Sie stattdessen das Feld „addressLines“. Beispiel: |
|
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 Ortsteile enthalten kann. Beispiel: |
|
recipients |
List<String> |
Liste der Empfänger einer Bestellung. Dieses Feld ist nur unter 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:
Property | Typ | Beschreibung | |
---|---|---|---|
type |
Enum [
"ESTIMATE",
"ACTUAL"
] |
Erforderlich. Der Gutscheincode des Angebots. |
|
amount |
Money |
Erforderlich. |
Werbung
In der folgenden Tabelle sind die Attribute für den Typ Promotion
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
coupon |
String | Erforderlich. Der Gutscheincode des Angebots. |
ProposedOrder
In der folgenden Tabelle sind die Attribute für den Typ ProposedOrder
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
id |
String |
Optionale ID für die vorgeschlagene Bestellung. |
|
cart |
Cart |
Erforderlich. Elemente des Nutzers. |
|
otherItems |
Liste<LineItem > |
Vom Anbieter hinzugefügte Artikel, z. B. Versandkosten, sonstige Gebühren und Steuern. otherItems können auch Trinkgeld und/oder Rabatt enthalten, die vom Nutzer hinzugefügt wurden. Darf nicht mehr als 10 Elemente enthalten. |
|
image |
Image |
Bild, das mit der vorgeschlagenen Bestellung verknüpft ist. |
|
totalPrice |
Price |
Erforderlich. Gesamtpreis der vorgeschlagenen Bestellung. |
|
extension |
FoodOrderExtension |
Erforderlich. Definiert Informationen zur Auftragsausführung für Essensbestellungen. |
|
disclaimers |
Liste<Disclaimer > |
Entspricht Hinweisen zum Haftungsausschluss, 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:
Property | 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 dasOrder
.
In der folgenden Tabelle sind die Attribute für den Typ TransactionDecisionValue
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
order |
Order |
Erforderlich. Die Bestellung wird mit den 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" } } }
Ausführungsanfrage
AppRequest
In der folgenden Tabelle sind die Attribute für den Typ AppRequest
aufgeführt:
Property | 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 die Bezahlung eines Einkaufswagens. 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
EinCheckoutRequestMessage
ist ein AppRequest
mit dem Intent actions.foodordering.intent.CHECKOUT
.
SubmitOrderRequestMessage
EinSubmitOrderRequestMessage
ist ein AppRequest
mit dem Intent actions.foodordering.intent.TRANSACTION_DECISION
.
Unterhaltung
EinConversation
ist nur für eine Sitzung eindeutig. Sie können damit bei Bedarf mehrere Checkout
- und SubmitOrder
-Aktionen miteinander verknüpfen.
In der folgenden Tabelle sind die Attribute für den Typ Conversation
aufgeführt:
Property | 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:
Property | Typ | Beschreibung | |
---|---|---|---|
intent |
Enum [
"actions.foodordering.intent.CHECKOUT",
"actions.intent.TRANSACTION_DECISION"
] |
Erforderlich. Legen Sie dieses Feld auf „actions.foodordering.intent.CHECKOUT“ für die Anfragenachricht für den Bezahlvorgang ODER auf „actions.intent.TRANSACTION_DECISION“ für die Anfragenachricht zum Senden einer Bestellung fest. |
|
arguments |
Liste<Argument > |
Erforderlich. Enthält den Warenkorb, der ausgecheckt werden soll, oder die Bestellung, die aufgegeben werden soll Muss genau 1 Element enthalten. |
Argument
Enthält Details zu den Lebensmitteln, die die Nutzenden bestellen möchten. Für den Bezahlvorgang ist nur eine Verlängerung möglich. Für die Auftragsübermittlung ist nur "transactionDecisionValue" anwendbar
In der folgenden Tabelle sind die Attribute für den Typ Argument
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
Genau eine der folgenden Property-Gruppen ist erforderlich. | |||
extension |
Gruppe 1 | Cart |
Beschreibt die Lebensmittel, die die Nutzenden bestellen möchten. |
transactionDecisionValue |
Gruppe 2 | TransactionDecisionValue |
Enthält die aufzugebende Bestellung und die Zahlungsdetails. |
Antwort auf Auftragsausführung
AppResponse
In der folgenden Tabelle sind die Attribute für den Typ AppResponse
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
expectUserResponse |
Forts. |
Auf „false“ setzen. Wert: |
|
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
EinCheckoutResponseMessage
ist ein AppResponse
mit einer checkoutResponse
oder error
in der StructuredResponse
.
SubmitOrderResponseMessage
EinSubmitOrderResponseMessage
ist ein AppResponse
mit einer orderUpdate
im StructuredResponse
.
FinalResponse
Ihre Antwort auf die Bezahlseite für den Einkaufswagen oder auf „SubmitOrderRequestMessage“.
In der folgenden Tabelle sind die Attribute für den Typ FinalResponse
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
richResponse |
RichResponse |
Erforderlich. Enthält Ihre Antwort auf die CheckoutRequestMessage oder die GiveOrderRequestMessage. |
CheckoutResponse
In der folgenden Tabelle sind die Attribute für den Typ CheckoutResponse
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
proposedOrder |
ProposedOrder |
Erforderlich. Vorgeschlagene Bestellung, die für die Transaktion verwendet werden soll. |
|
paymentOptions |
PaymentOptions |
Erforderlich. Für den Nutzer ausgewählte Standardzahlungsoption. |
|
additionalPaymentOptions |
Liste<PaymentOptions > |
Alternative Zahlungsoptionen für den Nutzer. |
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 den Bezahlvorgang im Einkaufswagen oder auf „SubmitOrderRequestMessage“.
In der folgenden Tabelle sind die Attribute für den Typ Item
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
structuredResponse |
StructuredResponse |
Erforderlich. |
RichResponse
Enthält Ihre Antwort auf den Bezahlvorgang im Einkaufswagen.
In der folgenden Tabelle sind die Attribute für den Typ RichResponse
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
items |
Liste<Item > |
Erforderlich. Muss genau 1 Element enthalten. |
StructuredResponse
Für CheckoutResponseMessage kann dies einer der folgenden Werte sein: CheckoutResponse Gibt einen erfolgreichen Bezahlvorgang an. ODER FoodErrorExtension: Weist auf einen Fehler beim Bezahlvorgang hin. Die Antwort kann einen korrigierten Wert für „VorgeschlagenedOrder“ 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:
Property | Typ | Beschreibung | |
---|---|---|---|
Genau eine der folgenden Property-Gruppen ist erforderlich. | |||
checkoutResponse |
Gruppe 1 | CheckoutResponse |
Artikel zzgl. Steuern und Rabatten bezahlt. |
error |
Gruppe 2 | FoodErrorExtension |
Es wurden Fehler bei den Warenkorbartikeln festgestellt. Je nach Art des Fehlers kann dieses Attribut einen korrigierten Wert für „ „SuggestdOrder“ 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 und Antworten einer typischen Interaktion mit integrierten Aktionen zur Essensbestellung bestehen.AsyncOrderUpdateRequestMessage
Informiert den Nutzer über Änderungen, nachdem eine Bestellung aufgegeben und bestätigt wurde. Du kannst den Nutzer beispielsweise darüber informieren, dass die Bestellung unterwegs ist oder sich der Preis geändert hat. Weitere Informationen erhalten Sie unter:In der folgenden Tabelle sind die Attribute für den Typ AsyncOrderUpdateRequestMessage
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
isInSandbox |
Boolesch |
Gibt an, dass die Bestellung, für die dieses Update gesendet wurde, eine Sandbox-Zahlung ist. |
|
customPushMessage |
CustomPushMessage |
Erforderlich. Enthält das OrderUpdate für die Anforderung. |
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 eineAsyncOrderUpdateRequestMessage
gesendet haben, antwortet Google mit dem HTTP 200-Status und einem leeren Textkörper. Wenn die Aktualisierung fehlgeschlagen ist, antwortet Google 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 Benutzerinteraktion bereitzustellen.
In der folgenden Tabelle sind die Attribute für den Typ Button
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
title |
String | Erforderlich. Anzeige Verwenden Sie die im Deutschen übliche Groß- und Kleinschreibung, damit das Rendering wie gewünscht funktioniert. Beispiel: |
|
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:
Property | Typ | Beschreibung | |
---|---|---|---|
reason |
String | Erforderlich. Anzeigbarer Textgrund für die Ablehnung, wenn OrderState.state „ABBRECHEN“ lautet. Beispiel: |
Das folgende Beispiel zeigt ein CancellationInfo
-Element:
Beispiel
{ "reason": "Insufficient inventory" }
FoodOrderUpdateExtension
Bei diesem Typ wird dem Nutzer ein geschätztes Intervall für die Lieferung der Bestellung oder die Abholung zur Verfügung gestellt. Sende diese Erweiterung 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 Auftragsausführungsintervall an, damit die Nutzererwartungen kontinuierlich erfüllt werden. Wenn die Bestellung beispielsweise voraussichtlich heute um 13:00 Uhr geliefert wird, sollten Sie ein geschätztes Intervall senden, das mit den Schwankungen aufgrund der Verkehrslage übereinstimmt, z. B. heute von 12:45 bis 13:15 Uhr.
Eine Dauer oder ein Zeitstempel gemäß ISO 8601 wird als Intervall vom updateTime
des OrderUpdate
(im Wesentlichen „jetzt“) bis zu updateTime
plus duration
interpretiert.
Verwenden Sie dieses Format nur, wenn „jetzt“ tatsächlich eine realistische Erwartung ist.
Ein Intervall nach ISO 8601 wird als Intervall vom Start bis zum Ende des Intervalls interpretiert.
In der folgenden Tabelle sind die Attribute für den Typ FoodOrderUpdateExtension
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
@type |
Forts. |
Der Typ dieser Erweiterung. Dieses Feld ist immer auf „type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension“ festgelegt. Wert: |
|
estimatedFulfillmentTimeIso8601 |
String |
Die voraussichtliche Zeit, zu der die Bestellung geliefert wird oder zur Abholung bereitsteht. Der String muss im ISO 8601-Format vorliegen und nicht einer einzelnen festen Zeit, sondern einem Intervall entsprechen. Zulässige Konventionen sind: Intervalle, Dauer und Datum/Uhrzeit. Dieses Feld kann in „SubmitOrderResponseMessage“ oder „AsyncOrderUpdateRequestMessage“ gesendet werden, wenn die Informationen verfügbar sind oder sich eine Änderung ergibt (z. B. früher oder verspätet eintreffen). Beispiel: |
|
foodOrderErrors |
Liste<FoodOrderError > |
Beschreibt die Fehler, die nach der Bestellung aufgetreten sind. Pro Einkaufswagen bzw. Artikel wird ein Fehler empfohlen. Verwende FoodOrderUpdateExtension.FoodOrderErrors für alle Fehler, die nicht von RejectionInfo 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
In der folgenden Tabelle sind die Attribute für den Typ FulfillmentInfo
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
Genau eine der folgenden Property-Gruppen 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
In der folgenden Tabelle sind die Attribute für den Typ InTransitInfo
aufgeführt:
Property | 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:
Property | 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:
Property | Typ | Beschreibung | |
---|---|---|---|
url |
String | Erforderlich. Die durch das Klicken oder Berühren der Schaltfläche ausgelöste Aktion. Die Liste der anwendbaren Präfixe hängt von 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: |
OrderManagementAction
Die Bestellverwaltung ermöglicht Nutzern, Unterstützung bei der Bestellung zu erhalten. Dieser sollte in jeder OrderUpdate
der Bestellung AppResponse
gesendet werden. Jede weitere AsyncOrderUpdateRequestMessage
Bestellverwaltungsaktion, die für eine bestimmte Bestellung gesendet wird, kann je nach Status variieren.
Im Status „CREATED“ kann CUSTOMER_SERVICE
beispielsweise auf Ihr Telefonsupport verweisen. Im Status „BESTÄTIGT“ kann CUSTOMER_SERVICE
dann zum Telefon des Restaurants wechseln, wenn diese zum besten Ansprechpartner für den Kunden wird. Sobald die Bestellung den Status „FULFILLED“ hat, kann CUSTOMER_SERVICE
auf Ihre Support-E-Mail-Adressen verweisen.
In der folgenden Tabelle sind die Attribute für den Typ OrderManagementAction
aufgeführt:
Property | 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 im Zusammenhang mitOrderManagementAction
.
Der Typ OrderManagementActionType
hat folgende mögliche Werte:
CUSTOMER_SERVICE
: E-Mail-Adresse und/oder Kontaktnummer des Kundenservice, die auf der Bestellbestätigungsseite angezeigt werden sollen. Dies ist erforderlich. Das Präfix "openUrlAction.url" muss "mailto", "tel", "http" oder "https" sein.EMAIL
: E-Mail-Aktion nur auf der Seite mit den Bestelldetails. Das Präfix "openUrlAction.url" muss "mailto" sein.CALL_DRIVER
: Die Call-Aktion nur auf der Seite mit den Bestelldetails. Das Präfix „openUrlAction.url“ muss „tel“ sein.CALL_RESTAURANT
: Die Call-Aktion 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
entspricht auch einem Kaufstatus auf myaccount.google.com.
In der folgenden Tabelle sind die Attribute für den Typ OrderState
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
state |
OrderStateEnum |
Erforderlich. |
|
label |
String | Erforderlich. Der für den Nutzer sichtbare Anzeigestring für den Bundesstaat. Verwenden Sie die im Deutschen am Satzanfang übliche Groß- und Kleinschreibung. Beispiel: |
Das folgende Beispiel zeigt ein OrderState
-Element:
Beispiel
{ "state": "CONFIRMED", "label": "Provider confirmed" }
OrderStateEnum
Definiert Typen im Zusammenhang mitOrderState
.
Der Typ OrderStateEnum
hat folgende mögliche Werte:
CREATED
: Bestellung wurde vom Integrator erstellt und wartet auf Bestätigung vom Anbieter. Entspricht dem Kaufstatus "Bestellt".CONFIRMED
: Die Bestellung wurde vom Anbieter bestätigt und ist aktiv. Entspricht dem Kaufstatus „Akzeptiert“.REJECTED
: Bestellung vom Integrator oder Anbieter abgelehnt. Entspricht dem Kaufstatus „Abgelehnt“.CANCELLED
: Der Nutzer hat die Bestellung storniert. Entspricht dem Kaufstatus „Storniert“.IN_PREPARATION
: Essen wird vorbereitet. Entspricht dem Kaufstatus „Status unbekannt“.READY_FOR_PICKUP
: Essen steht zur Abholung bereit. Entspricht dem Kaufstatus „Zur Abholung bereit“.IN_TRANSIT
: Die Bestellung wird zugestellt. Entspricht dem Kaufstatus „In Bearbeitung“.FULFILLED
: Der Nutzer hat die bestellte Ware erhalten. Entspricht dem Kaufstatus „Abgeholt“.
Beleg
Senden Sie diesen Typ in einem ÜbermittlungsauftragAppResponse
, wobei OrderState
den Wert „confirmED“, „FULFILLED“ oder „IN_TRANSIT“ hat. Senden Sie den Beleg zu dem Zeitpunkt, an dem die userVisibleOrderId
verfügbar ist. Sie müssen den Beleg bei nachfolgenden Aktualisierungen nicht mehr senden.
In der folgenden Tabelle sind die Attribute für den Typ Receipt
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
userVisibleOrderId |
String | Erforderlich. Erforderlich, wenn der Auftrag den Status „confirmED“, „IN_TRANSIT“ oder „FULFILLED“ hat. Dieses Feld ist die einzelne nutzerseitige ID für diese Bestellung (normalerweise die Bestell-ID des Restaurants), die sowohl auf dem Beleg des Integrationspartners 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 Dienstleister und Integrator zu verweisen. Diese ID musst du bei einem OrderUpdate nur einmal angeben. Bis zur Bereitstellung ist die actionOrderId die userVisibleOrderId. So kann es beispielsweise sein, dass Sie erst dann eine userVisibleOrderId haben, wenn die Bestellung vom Restaurant bestätigt wurde. Nach der Bestätigung musst du eine AsyncOrderUpdateRequestMessage mit einem OrderUpdate und einem Beleg 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:
Property | 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
Der Typ RejectionType
hat folgende mögliche Werte:
INELIGIBLE
: Der Nutzer ist aufgrund von Richtlinien- oder risikobezogenen Bedenken nicht teilnahmeberechtigt.PAYMENT_DECLINED
: Bei der Zahlungsabwicklung ist ein Problem aufgetreten.UNAVAILABLE_SLOT
: Die Bestellung kann nicht zur im Voraus angegebenen Bestellung ausgeführt werden, die in DeliveryInfo oder PickupInfo angegeben ist.PROMO_NOT_APPLICABLE
: Es gibt ein Problem mit der Werbeaktion.UNKNOWN
: Sonstiger Grund.
Zahlungsbezogene Typen
In diesem Abschnitt werden die zahlungsbezogenen Typen beschrieben, die für die Abwicklung von Essensbestellungen verwendet werden.ActionProvidedPaymentOptions
Anforderungen an eine Zahlungsmethode, die über eine Aktion bereitgestellt wird.
In der folgenden Tabelle sind die Attribute für den Typ ActionProvidedPaymentOptions
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
paymentType |
PaymentType |
Erforderlich. |
|
displayName |
String | Erforderlich. Name des Zahlungsmittels, das auf dem Beleg angegeben ist Beispiel: |
|
onFulfillmentPaymentData |
OnFulfillmentPaymentData |
Zusätzliche Daten für den paymentType „ON_FULFILLMENT“. Sie können dieses Feld beispielsweise verwenden, um anzugeben, ob Bargeld oder Karte bei der Auftragsausführung unterstützt wird. |
Das folgende Beispiel zeigt ein ActionProvidedPaymentOptions
-Element:
Beispiel
{ "paymentType": "ON_FULFILLMENT", "displayName": "Pay when you get your food.", "onFulfillmentPaymentData": { "supportedPaymentOptions": [ "Cash", "Card" ] } }
AllowedAuthMethods
Der Typ AllowedAuthMethods
hat folgende mögliche Werte:
PAN_ONLY
: Authentifizierungsmethode, die mit den im Google-Konto des Nutzers gespeicherten Zahlungskarten verknüpft ist. Die zurückgegebenen Zahlungsdaten enthalten die persönliche Kontonummer (PAN) mit Ablaufmonat und Ablaufjahr.
AllowedCardNetworks
Der Typ AllowedCardNetworks
hat folgende mögliche Werte:
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:
Property | Typ | Beschreibung | |
---|---|---|---|
format |
String |
Das Format der Rechnungsadresse ist erforderlich, um die Transaktion abzuschließen. MIN: Name, Ländercode und Postleitzahl. FULL: 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 können Sie die Unterstützung Ihrer Website für die Google Pay API konfigurieren.
In der folgenden Tabelle sind die Attribute für den Typ CardParameters
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
allowedAuthMethods |
List<Const> | Erforderlich. Felder, die zur Authentifizierung einer Kartentransaktion unterstützt werden 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 |
Legen Sie den Wert auf "true" fest, 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 beeinträchtigen und zu niedrigeren Conversion-Raten führen. |
|
billingAddressParameters |
BillingAddressParameters |
Die erwarteten Felder werden zurückgegeben, wenn billingAddressRequired auf "true" gesetzt ist. |
|
cvcRequired |
Boolesch |
Setzen Sie den 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:
Property | Typ | Beschreibung | |
---|---|---|---|
instrumentToken |
String | Erforderlich. Base64-codierter String, der das Zahlungstoken für die Belastung des Nutzers bei einem teilnehmenden Google Pay-Prozessor gemäß den zuvor angegebenen GoogleProvidedPaymentOptions enthält. |
|
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 die von Google bereitgestellte Zahlungsmethode
In der folgenden Tabelle sind die Attribute für den Typ GoogleProvidedPaymentOptions
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
facilitationSpecification |
String |
PaymentDataRequest-JSON als String. Mit diesem Objekt können Sie die Unterstützung Ihrer Website für die Google Pay API konfigurieren. |
|
supportedCardNetworks |
Liste<SupportedCardNetworks > |
Verwenden Sie stattdessen facilitationSpecification. Der 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 können Sie die Unterstützung Ihrer Website für die Google Pay API konfigurieren.
In der folgenden Tabelle sind die Attribute für den Typ MerchantInfo
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
merchantId |
String |
Google-Händler-ID, die Sie von Google Pay erhalten haben. |
|
merchantName |
String | Erforderlich. Händlername in UTF-8-Codierung. Der Händlername wird im Zahlungsformular angezeigt. |
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:
Property | Typ | Beschreibung | |
---|---|---|---|
supportedPaymentOptions |
Liste<PaymentOptionsEnums > |
Liste der Zahlungsoptionen, die dem Nutzer zum Zeitpunkt der Auftragsausführung zur Verfügung stehen. |
Das folgende Beispiel zeigt ein OnFulfillmentPaymentData
-Element:
Beispiel
{ "supportedPaymentOptions": [ "Cash", "Card" ] }
Parameter
Definiert Typen im Zusammenhang mit TokenizationParameters
.
In der folgenden Tabelle sind die Attribute für den Typ Parameters
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
gateway |
String | Erforderlich. Beispiel: |
|
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 können Sie die Unterstützung Ihrer Website für die Google Pay API konfigurieren.
In der folgenden Tabelle sind die Attribute für den Typ PaymentDataRequest
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
apiVersion |
Forts. | Erforderlich. API-Hauptversion. Wert: |
|
apiVersionMinor |
Forts. | Erforderlich. API-Nebenversion. Wert: |
|
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 Zahlungsmethoden unterstützt werden, die von der Google Pay API unterstützt werden. |
|
transactionInfo |
TransactionInfo |
Erforderlich. Details zur Autorisierung der Transaktion, abhängig davon, ob der Nutzer der Transaktion zustimmt oder nicht. 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
Zahlungsinformationen zu einer Bestellung.
In der folgenden Tabelle sind die Attribute für den Typ PaymentInfo
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
displayName |
String | Erforderlich. Für den Nutzer sichtbarer Name des Zahlungsmittels, der auf dem Beleg angezeigt wird. |
|
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" }
PaymentMethod
Mit diesem Objekt können Sie die Unterstützung Ihrer Website für die Google Pay API konfigurieren.
In der folgenden Tabelle sind die Attribute für den Typ PaymentMethod
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
type |
Forts. | Erforderlich. Kurze Kennung für die unterstützte Zahlungsmethode. Derzeit wird nur CARD unterstützt. Wert: |
|
parameters |
CardParameters |
Erforderlich. Parameter, die zum Konfigurieren des angegebenen Zahlungsmethodetyps erforderlich sind. |
|
tokenizationSpecification |
TokenizationSpecification |
Erforderlich. Konfigurieren Sie ein Konto oder einen Entschlüsselungsanbieter, um Zahlungsinformationen zu erhalten. Diese Eigenschaft 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:
Property | Typ | Beschreibung | |
---|---|---|---|
Genau eine der folgenden Property-Gruppen ist erforderlich. | |||
googleProvidedOptions |
Gruppe 1 | GoogleProvidedPaymentOptions |
Schließt sich mit actionProvidedOptions gegenseitig aus. Nutze sie für Onlinezahlungen mit gPay. |
actionProvidedOptions |
Gruppe 2 | ActionProvidedPaymentOptions |
Schließt sich mit "googleProvidedOptions" gegenseitig aus. Verwenden Sie diesen Typ für Nachnahme oder Auftragsausführung. |
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
Der Typ PaymentOptionsEnums
hat folgende mögliche Werte:
Cash
Card
UPI
Paytm
PaymentType
Der Typ PaymentType
hat folgende mögliche Werte:
PAYMENT_CARD
: Für GoogleProvidedPaymentOptions.ON_FULFILLMENT
: Für ActionProvidedPaymentOptions.
SupportedCardNetworks
Definiert Typen im Zusammenhang mitGoogleProvidedPaymentOptions
.
Der Typ SupportedCardNetworks
hat folgende mögliche Werte:
UNSPECIFIED_CARD_NETWORK
AMEX
DISCOVER
JCB
MASTERCARD
VISA
TokenizationParameters
Definiert Typen in Bezug aufGoogleProvidedPaymentOptions
.
In der folgenden Tabelle sind die Attribute für den Typ TokenizationParameters
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
tokenizationType |
Enum [
"UNSPECIFIED_TOKENIZATION_TYPE",
"PAYMENT_GATEWAY"
] |
Erforderlich. Verwenden Sie stattdessen facilitationSpecification. Zulässige Token-Typen. |
|
parameters |
Parameters |
Verwenden Sie stattdessen facilitationSpecification. |
TokenizationSpecification
Mit diesem Objekt können Sie ein Konto für den Empfang kostenpflichtiger Zahlungsinformationen konfigurieren.
In der folgenden Tabelle sind die Attribute für den Typ TokenizationSpecification
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
type |
Forts. | 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 bestimmt, ob ein Zahlender bezahlen kann. Sie wird verwendet, um ein Dialogfeld zur Zahlungsautorisierung anzuzeigen.
In der folgenden Tabelle sind die Attribute für den Typ TransactionInfo
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
currencyCode |
String | Erforderlich. Alphabetischer Währungscode nach 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 spezifische erstellen. Dieses Feld ist erforderlich, wenn Sie Callbacks an die Google Transaction Events API senden. |
|
totalPriceStatus |
Forts. | Erforderlich. Verwenden Sie als Standardeinstellung „ESTIMATED“. Der Gesamtpreis kann sich je nach den in der Antwort angegebenen Details anpassen, z. B. die Umsatzsteuer, die basierend auf einer Rechnungsadresse erhoben wird. Wert: |
|
totalPrice |
String | Erforderlich. Der monetäre Gesamtwert der Transaktion mit einer optionalen Dezimalstellen von zwei Dezimalstellen. Dieses Feld muss denselben Wert wie „cart.totalPrice“ haben. |
Das folgende Beispiel zeigt ein TransactionInfo
-Element:
Beispiel
{ "totalPriceStatus": "ESTIMATED", "totalPrice": "12.34", "currencyCode": "USD" }