Basistypen
Einkaufswagen
Enthält Details zur Bestellung und gibt an, ob es sich um eine Abholung handelt oder Lieferung. Ein Einkaufswagen enthält auch Lieferdetails, Trinkgeld und die Lieferung Adresse. DasCart
-Objekt ist in einer Checkout AppRequest
.f-Datei definiert.
Sie fügen eine Kopie des Einkaufswagens in Ihr Checkout AppResponse
ein.
In der folgenden Tabelle sind die Attribute für den Typ Cart
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
@type |
Nachst |
Der Typ dieses Objekts. Lassen Sie dieses Feld weg, wenn das übergeordnete Cart-Objekt Teil von ProposedOrder ist. Wert: |
|
id |
String |
Optionale ID des Einkaufswagens. |
|
merchant |
Merchant |
Mit diesem Einkaufswagen verknüpfter Händler. |
|
lineItems |
Liste <LineItem > |
Erforderlich. Liste der Waren oder Dienstleistungen, die der Nutzer bestellt. Darf nicht weniger als 1 Element enthalten. |
|
promotions |
Liste <Promotion > |
Angebot, das in diesem Einkaufswagen angewendet wird. Derzeit wird nur eine Werbeaktion unterstützt. |
|
notes |
String |
Anmerkungen zur Bestellung oder Lieferung |
|
extension |
FoodCartExtension |
Definiert Details zum Nutzer, z. B. die Einstellungen für die Auftragsausführung. |
Das folgende Beispiel zeigt ein Cart
-Element:
Beispiel 1
{ "@type": "type.googleapis.com/google.actions.v2.orders.Cart", "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Cucina Venti" }, "lineItems": [ { "name": "Sizzling Prawns Dinner", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "16", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }
Beispiel 2
{ "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } }, { "name": "Chicken Shwarma Wrap", "type": "REGULAR", "id": "sample_item_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/offer/id2", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "8" } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Greek Salad", "type": "REGULAR", "id": "sample_item_offer_id_3", "offerId": "https://www.exampleprovider.com/menu/item/offer/id3", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Prawns Biryani", "type": "REGULAR", "id": "sample_item_offer_id_4", "offerId": "https://www.exampleprovider.com/menu/item/offer/id4", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "15", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }
Kontakt
Gibt Details zur Person an, die die Bestellung erhält. Es ist nur in folgenden Sprachen verfügbar:AppResponse
In der folgenden Tabelle sind die Attribute für den Typ Contact
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
displayName |
String |
Den Namen der Person, die die Bestellung erhält, so wie er angezeigt werden soll. Verwenden Sie dieses Feld, wenn firstName und lastName nicht angegeben sind. Beispiel: |
|
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 Ländervorwahl 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 dasOrderUpdate
für die Anfrage.
In der folgenden Tabelle sind die Attribute für den Typ CustomPushMessage
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
orderUpdate |
OrderUpdate |
Erforderlich. Die Informationen zur Bestellung wurden aktualisiert. |
Das folgende Beispiel zeigt ein CustomPushMessage
-Element:
Beispiel
{ "orderUpdate": { "actionOrderId": "sample_action_order_id", "orderState": { "state": "IN_TRANSIT", "label": "Order is on the way" }, "inTransitInfo": { "updatedTime": "2017-07-17T12:00:00Z" }, "updateTime": "2017-07-17T12:00:00Z", "orderManagementActions": [ { "type": "CUSTOMER_SERVICE", "button": { "title": "Contact customer service", "openUrlAction": { "url": "mailto:support@example.com" } } }, { "type": "EMAIL", "button": { "title": "Email restaurant", "openUrlAction": { "url": "mailto:person@example.com" } } }, { "type": "CALL_RESTAURANT", "button": { "title": "Call restaurant", "openUrlAction": { "url": "tel:+16505554679" } } } ], "receipt": { "userVisibleOrderId": "userVisibleId1234" }, "infoExtension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension", "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z" } } }
DeliveryInfo
In der folgenden Tabelle sind die Attribute für den Typ DeliveryInfo
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
deliveryTimeIso8601 |
String |
Voraussichtliche Lieferzeit im ISO-8601-Zeitstempelformat: „{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z“ oder Dauerformat: „P(n)Y(n)M(n)DT(n)H(n)M(n)S". Beispielsweise steht PT90M für eine Dauer von 90 Minuten. Der Standardwert „PT0M“ gibt an, dass die bevorzugte Lieferzeit so bald wie möglich ist. Referenz: https://de.wikipedia.org/wiki/ISO_8601#Kombinierte_Datums- und Zeitangaben Hiermit können Sie die voraussichtliche Lieferdauer während der Antwort an der Kasse aktualisieren. Beispiel: |
Das folgende Beispiel zeigt ein DeliveryInfo
-Element:
Beispiel
{ "deliveryTimeIso8601": "PT90M" }
Haftungsausschluss
In der folgenden Tabelle sind die Attribute für den Typ Disclaimer
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
predefinedMessage |
PredefinedMessage |
Erforderlich. Vordefinierte Mitteilungen zum Haftungsausschluss an der Kasse anzeigen. |
|
feeAmount |
Money |
Der Partner berechnet dem Händler eine Gebühr in Höhe von N für diese Bestellung. |
|
feeAmountRange |
FeeAmountRange |
Der Partner berechnet dem Restaurant eine Gebühr von N bis M pro Bestellung. |
|
feePercent |
Number |
Der Partner berechnet dem Händler eine Gebühr von N% für diese Bestellung. |
|
feePercentRange |
FeePercentRange |
Der Partner berechnet dem Händler eine Gebühr von N% bis M% pro Bestellung. |
Das folgende Beispiel zeigt ein Disclaimer
-Element:
Beispiel 1
{ "predefinedMessage": "NEW_YORK_DELIVERY_FEE_TIP_DISCLAIMER" }
Beispiel 2
{ "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE" }
Beispiel 3
{ "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE", "feePercent": 25 }
Beispiel 4
{ "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE", "feePercentRange": { "minFeePercent": 20, "maxFeePercent": 30 } }
Beispiel 5
{ "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE", "feeAmount": { "currencyCode": "AUD", "units": 2, "nanos": 500000000 } }
Beispiel 6
{ "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE", "feeAmountRange": { "minFeeAmount": { "currencyCode": "AUD", "units": 2, "nanos": 500000000 }, "maxFeeAmount": { "currencyCode": "AUD", "units": 10, "nanos": 0 } } }
Fehler
Für den Typ Error
sind folgende Werte möglich:
CLOSED
: Das Restaurant ist zur Bestellzeit geschlossen.NO_CAPACITY
: Es ist keine Dienstkapazität verfügbar (z. B. ein vorübergehender Ausfall aufgrund von Spitzenzeiten).NO_COURIER_AVAILABLE
: Die Bestellung kann aufgrund des begrenzten Lieferpersonals nicht bearbeitet werden.REQUIREMENTS_NOT_MET
: Die Einschränkungen zum Annehmen der Bestellung wurden nicht erreicht (z. B. Mindestbestellmenge).UNAVAILABLE_SLOT
: Die Bestellung kann nicht zu dem in „DeliveryInfo“ oder „Abholinfo“ angegebenen Zeitpunkt ausgeführt werden.OUT_OF_SERVICE_AREA
: Die Bestellung kann nicht an die Adresse des Nutzers geliefert werden.PROMO_EXPIRED
: Das Angebot konnte nicht angewendet werden, da das Angebot abgelaufen ist.PROMO_NOT_APPLICABLE
: Allgemeiner Fehlercode, um alle Fälle zu erfassen, in denen der Gutscheincode nicht angewendet werden kann, wenn keiner der anderen Fehlercode passt.PROMO_NOT_RECOGNIZED
: Der Gutscheincode wurde nicht erkannt.PROMO_ORDER_INELIGIBLE
: Dieser Gutschein kann für die aktuelle Bestellung nicht eingelöst werden.PROMO_USER_INELIGIBLE
: Der aktuelle Nutzer kann diesen Gutschein nicht einlösen.AVAILABILITY_CHANGED
: Der Artikel ist nicht mehr verfügbar oder es sind nicht genügend Artikel vorhanden, um die Anfrage zu erfüllen.INCORRECT_PRICE
: Preisfehler in Gebühren oder Gesamtsumme.INVALID
: Eine Position, eine Auftragsausführungsoption oder ein Angebot enthält ungültige Daten.NOT_FOUND
: Eine Position, FulfillmentOption oder Promotion wurde nicht gefunden.PRICE_CHANGED
: Der Preis eines Artikels hat sich geändert.
FeeAmountRange
In der folgenden Tabelle sind die Attribute für den Typ FeeAmountRange
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
minFeeAmount |
Money |
Untergrenze des berechneten Gebührenbetrags. |
|
maxFeeAmount |
Money |
Die Obergrenze des berechneten Gebührenbetrags. |
FeePercentRange
In der folgenden Tabelle sind die Attribute für den Typ FeePercentRange
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
minFeePercent |
Number |
Untergrenze des berechneten Gebührenprozentsatzes. |
|
maxFeePercent |
Number |
Obergrenze des berechneten Gebührenprozentsatzes. |
FoodCartExtension
Enthält Details zum Nutzer, z. B. die Einstellungen für die Auftragsausführung.
In der folgenden Tabelle sind die Attribute für den Typ FoodCartExtension
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
@type |
Nachst |
Der Typ dieser Erweiterung. Dieses Feld ist immer auf „type.googleapis.com/google.actions.v2.orders.FoodCartExtension“ festgelegt. Wert: |
|
contact |
Contact |
Kontaktinformationen der Person, die die Bestellung erhält. Zu den Details gehören der Name, die Telefonnummer und die E-Mail-Adresse der Person. |
|
fulfillmentPreference |
FulfillmentOption |
Erforderlich. Einstellung für die Auftragsausführung des Nutzers. |
|
location |
Location |
In der CheckoutRequestMessage gibt dieses Feld die Lieferadresse an, die erforderlich ist, wenn die Bestellung geliefert werden soll. Bei Bestellungen zur Abholung oder Abholung ist dieses Feld nicht in der Nachricht enthalten. |
Das folgende Beispiel zeigt ein FoodCartExtension
-Element:
Beispiel 1
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } }
Beispiel 2
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } } }, "contact": { "displayName": "Lovefood Ordering", "email": "ilovefood@example.com", "phoneNumber": "+16501234567" } }
FoodErrorExtension
Ermittelt einen oder mehrere Fehler, die bei der Verarbeitung einer Anfrage aufgetreten sind. In der folgenden Tabelle werden die Felder des TypsFoodErrorExtension
beschrieben.
Fehler können in einem CheckoutResponse
gesendet werden.
In der folgenden Tabelle sind die Attribute für den Typ FoodErrorExtension
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
@type |
Nachst | Erforderlich. Der Typ dieser Erweiterung. Wert: |
|
foodOrderErrors |
Liste <FoodOrderError > |
Erforderlich. Array von FoodOrderError-Objekten, die die aufgetretenen Fehler beschreiben. Es wird ein Fehler pro Einkaufswagen oder Artikel empfohlen. Darf nicht weniger als 1 Element enthalten. |
|
correctedProposedOrder |
ProposedOrder |
Erforderlich, wenn
Ein neuer ProposedOrder mit Korrekturen. Geben Sie dieses Objekt zurück, wenn im ursprünglichen ProposedOrder-Element behebbare Fehler vorhanden sind. Beispielsweise ist eine Preisänderung bei mindestens einer Position im Einkaufswagen ein behebbarer Fehler. Behebbare Fehler mit einer gültigen ProposedOrder werden zur Bestätigung weitergeleitet, anstatt dass der Nutzer seinen Einkaufswagen überprüfen muss. |
|
paymentOptions |
PaymentOptions |
Erforderlich, wenn
Für den Nutzer ausgewählte Standardzahlungsoptionen. |
|
additionalPaymentOptions |
Liste <PaymentOptions > |
Es stehen alternative Zahlungsoptionen für den Nutzer zur Verfügung. |
Das folgende Beispiel zeigt ein FoodErrorExtension
-Element:
Beispiel
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodErrorExtension", "foodOrderErrors": [ { "error": "PRICE_CHANGED", "id": "sample_item_offer_id_1", "description": "The price has changed.", "updatedPrice": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, { "error": "PRICE_CHANGED", "id": "sample_item_offer_id_2", "description": "The price has changed.", "updatedPrice": { "currencyCode": "USD", "units": "8" } } ], "correctedProposedOrder": { "id": "sample_corrected_proposed_order_id_1", "otherItems": [ { "name": "New customer discount", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "-5", "nanos": -500000000 } }, "type": "DISCOUNT" }, { "name": "Delivery fee", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } }, "type": "DELIVERY" }, { "name": "Tax", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 500000000 } }, "type": "TAX" } ], "cart": { "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } }, { "name": "Chicken Shwarma Wrap", "type": "REGULAR", "id": "sample_item_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/offer/id2", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "8" } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Greek Salad", "type": "REGULAR", "id": "sample_item_offer_id_3", "offerId": "https://www.exampleprovider.com/menu/item/offer/id3", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Prawns Biryani", "type": "REGULAR", "id": "sample_item_offer_id_4", "offerId": "https://www.exampleprovider.com/menu/item/offer/id4", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "15", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }, "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "36", "nanos": 730000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ] } }, "paymentOptions": { "googleProvidedOptions": { "tokenizationParameters": { "tokenizationType": "PAYMENT_GATEWAY", "parameters": { "gateway": "stripe", "stripe:publishableKey": "pk_live_stripe_client_key", "stripe:version": "2017-04-06" } }, "supportedCardNetworks": [ "AMEX", "DISCOVER", "MASTERCARD", "JCB", "VISA" ], "prepaidCardDisallowed": true } } }
FoodItemExtension
Definiert Add-ons für Lebensmittel.
In der folgenden Tabelle sind die Attribute für den Typ FoodItemExtension
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
@type |
Nachst | Erforderlich. Der Typ dieser Erweiterung. Dieses Feld ist immer auf „type.googleapis.com/google.actions.v2.orders.FoodItemExtension“ festgelegt. Wert: |
|
options |
Liste <FoodItemOption > |
Eine Option kann ein Add-on-Element oder eine Add-on-Gruppe mit einer Reihe von Add-ons sein. |
Das folgende Beispiel zeigt ein FoodItemExtension
-Element:
Beispiel
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1, "subOptions": [ { "id": "10239138", "offerId": "912391723", "name": "Fries", "price": { "currencyCode": "USD", "units": "2", "nanos": 230000000 }, "quantity": 1 } ] } ] }
FoodItemOption
In der folgenden Tabelle sind die Attribute für den Typ FoodItemOption
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
id |
String |
Eindeutige ID, die von Google zugewiesen wurde. Wenn Sie einen FoodOrderError oder AsyncOrderUpdateRequest senden, verwenden Sie dieses Feld, um zwischen Fällen zu unterscheiden, in denen ein Einkaufswagen mehr als einen Artikel mit derselben Angebots-ID enthält. Beispiel: |
|
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:
Attribut | Typ | Beschreibung | |
---|---|---|---|
error |
Error |
Erforderlich. |
|
id |
String | Erforderlich, wenn
Dieses Feld ist bei Fehlern auf Artikelebene erforderlich. Es handelt sich um die von Google zugewiesene „LineItem.id“ für Menüpunkte oder „FoodItemOption.id“ für Add-ons. |
|
description |
String |
Beschreibung des Fehlers. Diese Beschreibung gilt für das interne Logging und ist für Nutzer nicht sichtbar. |
|
updatedPrice |
Money |
Erforderlich, wenn
Neuer Preis eines Artikels, der den Fehler verursacht hat. Dies ist nur erforderlich, wenn der Fehler "PRICE_CHANGED" ist. |
|
availableQuantity |
Ganzzahl | Erforderlich, wenn
Neue verfügbare Menge des Artikels, der den Fehler verursacht hat. Dies ist nur erforderlich, wenn der Fehler „UNGÜLTIG“ ist. oder "NOT_FOUND". Bei „INVALID“ muss der Wert null sein. und "NOT_FOUND". |
Das folgende Beispiel zeigt ein FoodOrderError
-Element:
Beispiel 1
{ "error": "CLOSED", "description": "This store is currently reachable. Please try again later." }
Beispiel 2
{ "error": "PRICE_CHANGED", "id": "french_fries", "description": "The price has changed.", "updatedPrice": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }
FoodOrderExtension
Enthält Informationen zur Auftragsausführung zur Bestellung.
In der folgenden Tabelle sind die Attribute für den Typ FoodOrderExtension
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
@type |
Nachst |
Der Typ dieser Erweiterung. Dieses Feld ist immer auf „type.googleapis.com/google.actions.v2.orders.FoodOrderExtension“ festgelegt. Wert: |
|
availableFulfillmentOptions |
Liste <FulfillmentOption > |
Verfügbare Auftragsausführungsoptionen für die Bestellung. |
|
optinForRemarketing |
Boolesch |
Nutzeranfrage zur Aktivierung Ihrer Marketingkanäle. Standardmäßig können Sie keine Marketinginhalte ohne Nutzereinwilligung senden. Wenn „optinForRemarketing“ auf „true“ gesetzt ist, können Sie den Nutzer abonnieren. Wenn „optinForRemarketing“ auf „false“ gesetzt oder nicht vorhanden ist, müssen Sie den Abostatus in Ihrem System unverändert lassen. Die Nutzer können die Verwendung von Cookies nicht über Google deaktivieren, sondern nur über eine Kündigungsfunktion, die in Ihren Marketingkanälen bereitgestellt wird. Dieses Flag ist nur in „SubmitOrderRequestMessage“ vorhanden. |
Das folgende Beispiel zeigt ein FoodOrderExtension
-Element:
Beispiel 1
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ] }
Beispiel 2
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } }, "expiresAt": "2020-08-20T11:41:00Z" } ], "optinForRemarketing": true }
FulfillmentOption
Sie können einFulfillmentOption
-Objekt auf folgende Arten verwenden:
-
In
Checkout AppRequest
undSubmit AppRequest
, derCart.extension.fulfillmentPreference
: Speichert die Einstellungen des Nutzers (Auslieferung oder Abholung). Der Preis ist immer 0, wenn die Direktkauf-Anfrage gesendet wird. -
Im
Checkout AppResponse
ProposedOrder.extension.availableFulfillmentOptions
: Definiert eine oder mehrere Schaltungsoptionen (derzeit ist nur eine Option unterstützt). Die Standardoption legen Sie alsLineItem
fest inProposedOrder.otherItems
. DerofferId
vonFulfillmentOption
muss mit der ID derLineItem
inProposedOrder.otherItems
angegeben.
In der folgenden Tabelle sind die Attribute für den Typ FulfillmentOption
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
offerId |
String |
Eindeutige Kennung für diese Auftragsausführungsoption, falls vorhanden. |
|
fulfillmentInfo |
FulfillmentOptionInfo |
Erforderlich. |
|
expiresAt |
ISO-Zeitstempel |
Zeitpunkt, zu dem diese Auftragsausführungsoption abläuft. |
|
price |
Money |
Kosten dieser Option. |
Das folgende Beispiel zeigt ein FulfillmentOption
-Element:
Beispiel
{ "offerId": "offer5", "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } }, "expiresAt": "2019-05-02T00:00:00-07:00", "price": { "currencyCode": "USD", "units": "5", "nanos": 230000000 } }
FulfillmentOptionInfo
Definiert Informationen in Bezug aufFulfillmentInfo
.
In der folgenden Tabelle sind die Attribute für den Typ FulfillmentOptionInfo
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
Genau eine der folgenden Gruppen von Properties ist erforderlich. | |||
delivery |
Gruppe 1 | DeliveryInfo |
Falls vorhanden, gibt dies die Lieferreihenfolge an. |
pickup |
Gruppe 2 | PickupInfo |
Falls vorhanden, steht dies für eine Abholbestellung. |
Bild
In der folgenden Tabelle sind die Attribute für den Typ Image
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
sourceUrl |
String | Erforderlich. URL für das Bild. Das Bild muss mindestens 72 x 72 Pixel groß sein. Die besten Ergebnisse erzielen Sie mit einem Bild mit mindestens 216 x 216 Pixeln. Das Bild muss kleiner als 6 MB und 64 Megapixel sein. |
LineItem
Definiert den Inhalt eines Einkaufswagens (Cart.lineItems
) oder zusätzliche Gebühren für einen
Reihenfolge (ProposedOrder.otherItems
).
In der folgenden Tabelle sind die Attribute für den Typ LineItem
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
id |
String | Erforderlich, wenn
Für eine Position in einem Einkaufswagen (ProposedOrder.cart.lineItems[0].id) ist dies die eindeutige ID, die von Google beim Erstellen des Auftrags erstellt wird. Für eine Position in einer ProposedOrder (ProposedOrder.otherItems[0].id), mit der Elemente wie Liefergebühren und Steuern hinzugefügt werden, wird der ID-Wert vom Anbieter definiert. In einem Warenkorb befinden sich beispielsweise zwei identische Artikel mit unterschiedlichen Zubereitungsanleitungen (z. B. zwei mittelgroße Pizzen mit unterschiedlichen Belägen). In diesem Fall haben beide Artikel dieselbe Basisangebots-ID. Wenn Sie eine Anfrage zur Aktualisierung der Bestellung senden, um anzugeben, dass ein Artikel abgelehnt wurde, verwenden Sie diese ID als Unterscheidungsmerkmal. Mit anderen Worten: Wenn eine der Pizzen abgelehnt wird, weil ein bestimmter Belag fehlt, kann Google anhand der ID feststellen, auf welchen Artikel in der Bestellung Sie sich beziehen. Außer in otherItems ist dieses Feld ein Pflichtfeld. |
|
name |
String | Erforderlich. Name der Position. Der String ist für den Nutzer sichtbar. Wenn möglich, sollte die Groß- und Kleinschreibung verwendet werden (z. B. „Liefergebühr“, „Servicegebühr“ oder „Steuern“). Dieses Feld wird bei Nutzern auf 100 Zeichen gekürzt. |
|
type |
LineItemType |
Erforderlich. |
|
quantity |
Ganzzahl | Erforderlich, wenn
Anzahl der enthaltenen Elemente. Nicht zutreffend für ProposedOrder.otherItems. |
|
description |
String |
Beschreibung des Artikels. |
|
price |
Price |
Erforderlich. Der Preis des Artikels. Dieser Wert entspricht dem Gesamtpreis aller Waren oder Dienstleistungen für diese Werbebuchung. Sie können also die Kosten aller Zusatzkosten addieren und mit der Menge multiplizieren. Beispiel: Wenn ein Artikel für 10 € eine Menge von 3 hat, beträgt der Preis 30 €. Für eine Pizza mit einem Grundpreis von 5 € und einem Zusatz von 1 € beträgt der Preis 6 €. Für zwei Pizzen (Menge = 2) mit einem Grundpreis von 5 € und jeder Pizza mit einem Zusatz von 1 € beträgt der Preis 12 €. Jede Werbebuchung sollte einen Preis haben, auch wenn er „0“ ist. Wenn der Typ DISCOUNT ist, geben Sie den Wert als negativ an (z. B. "-2"). |
|
subLines |
Liste <SublineNote > |
Optional und nur gültig, wenn der Typ „REGULAR“ ist. In dieses Feld kann in der Zahlungsanforderung und bei der Anforderung zur Bestellabgabe eine artikelspezifische Notiz des Nutzers gesendet werden. Sorgen Sie dafür, dass der Händler den Hinweis erhält, wenn er bereitgestellt wird. Er wird in der Anfrage als „subLines[0].note“ aufgeführt. Dies ist der einzige Wert, der in diesem Feld angegeben wird, wenn er in einer Anfrage vorhanden ist. Darf nicht mehr als 1 Element enthalten. |
|
offerId |
String | Erforderlich, wenn
Die Angebots-ID des MenuItems für den Artikel. Nicht zutreffend für ProposedOrder.otherItems. |
|
extension |
FoodItemExtension |
Definiert Add-ons für Lebensmittel. |
Das folgende Beispiel zeigt ein LineItem
-Element:
Beispiel 1
{ "name": "New customer discount", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "-5", "nanos": -500000000 } }, "type": "DISCOUNT" }
Beispiel 2
{ "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } }
LineItemType
Für den Typ LineItemType
sind folgende Werte möglich:
REGULAR
: Werbebuchung für Waren. Betrifft Cart.lineItems.TAX
: Position mit Steuerinformationen. Gilt für ProposedOrder.otherItems.DISCOUNT
: Werbebuchung mit Rabatt. Der Preis muss negativ sein. Gilt für ProposedOrder.otherItems.GRATUITY
: Werbebuchung für Gratuity. Allgemein reserviert für die SubmitOrderRequestMessage für einen vom Nutzer ausgewählten Tipp Gilt für ProposedOrder.otherItems.DELIVERY
: Auslieferungswerbebuchung. Gilt für ProposedOrder.otherItems.SUBTOTAL
: Position für Zwischensumme. Gilt für ProposedOrder.otherItems.FEE
: Zusätzliche Werbebuchung, die nicht von den anderen Typen abgedeckt wird. Gilt für ProposedOrder.otherItems.
Standort
Gibt eine Adresse für die Essensbestellung an. Der TypLocation
wird in einer
Cart
um nur das Ziel einer Bestellung anzugeben.
Der endgültige Standort ist auch in
TransactionDecisionValue
wenn der Nutzer die Bestellung aufgibt. Bei Bestellungen mit Abholung ist ein Standort
überhaupt nicht enthalten (nicht einmal ein leeres).
In der folgenden Tabelle sind die Attribute für den Typ Location
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
coordinates |
Coordinates |
||
formattedAddress |
String |
Anzeigeadresse des Standorts Beispiel: |
|
postalAddress |
PostalAddress |
||
zipCode |
String |
Beispiel: |
|
city |
String |
Der Name der Stadt. Beispiel: |
|
notes |
String |
Hinweise zum Ort, z. B. Torcodes. Sie darf maximal 500 Zeichen enthalten. 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:
Attribut | Typ | Beschreibung | |
---|---|---|---|
id |
String |
Die ID des Händlers. Entspricht gegebenenfalls der Restaurant.@id im Restaurant-Feed. Beispiel: |
|
name |
String | Erforderlich. Für Nutzer sichtbarer Name des Händlers. Beispiel: |
Das folgende Beispiel zeigt ein Merchant
-Element:
Beispiel
{ "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }
Geld
In der folgenden Tabelle sind die Attribute für den Typ Money
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
currencyCode |
String | Erforderlich. Ein dreistelliger Währungscode im ISO 4217-Format. Beispiel: |
|
units |
String |
Die ganzen Einheiten des Betrags. Wenn für „currencyCode“ beispielsweise „USD“ angegeben ist, ist „1“ Einheit 1 US-Dollar ist. Beispiel: |
|
nanos |
Ganzzahl |
Anzahl der Nanoeinheiten (10^-9) des Betrags. Der Wert muss im Bereich von -999.999.999 bis +999.999.999 liegen. Halten Sie sich an folgende Regeln: Wenn „units“ positiv ist, müssen die Nanoeinheiten positiv oder null sein. Wenn „units“ null ist, können die Nanoeinheiten positiv, null oder negativ sein. Wenn „units“ negativ ist, müssen die Nanoeinheiten negativ oder null sein. Beispiel: -1,75 $ wird als Einheiten = -1 und Nanos = -750.000.000 dargestellt. Beispiel: |
Das folgende Beispiel zeigt ein Money
-Element:
Beispiel 1
{ "currencyCode": "USD", "units": "36", "nanos": 730000000 }
Beispiel 2
{ "currencyCode": "EUR", "units": "10" }
Auftrag
Enthält die endgültige Bestellung, einschließlich Steuern, Gebühren und Versandkosten, wie Zahlungsinformationen. Das Objekt wird von Ihrer Aktion in einemSubmit AppRequest
In der folgenden Tabelle sind die Attribute für den Typ Order
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
finalOrder |
ProposedOrder |
Erforderlich. Die vorgeschlagene Bestellung, die den Auftrag ausgelöst hat. |
|
googleOrderId |
String | Erforderlich. Von Google zugewiesene Bestell-ID. Diese ID sollte für den gesamten Lebenszyklus eines Auftrags gleich bleiben. Diese ID ist für den Endnutzer nicht sichtbar. |
|
orderDate |
ISO-Zeitstempel | Erforderlich. Datum und Uhrzeit der Auftragserstellung. |
|
paymentInfo |
PaymentInfo |
Erforderlich. Die Zahlungsinformationen, die sich auf die Zahlung für diese Bestellung beziehen. |
Das folgende Beispiel zeigt ein Order
-Element:
Beispiel
{ "finalOrder": { "cart": { "notes": "Guest prefers their food to be hot when it is delivered.", "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Cucina Venti" }, "lineItems": [ { "name": "Sizzling Prawns Dinner", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "16", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } } }, "contact": { "displayName": "Lovefood Ordering", "email": "ilovefood@example.com", "phoneNumber": "+16501234567" } } }, "otherItems": [ { "name": "Service fee", "type": "FEE", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } } }, { "name": "Tax", "type": "TAX", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 370000000 } } }, { "name": "Tip", "type": "GRATUITY", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 590000000 } } } ], "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "23", "nanos": 710000000 } }, "id": "sample_final_order_id", "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ], "optinForRemarketing": true } }, "googleOrderId": "sample_google_order_id", "orderDate": "2017-07-17T12:00:00Z", "paymentInfo": { "displayName": "Visa\u2006****\u20061111", "googleProvidedPaymentInstrument": { "instrumentToken": "abcd" }, "paymentType": "PAYMENT_CARD" } }
OrderUpdate
In der folgenden Tabelle werden die Felder des Typs „OrderUpdate“ beschrieben. inAppResponse
enthalten.
In der folgenden Tabelle sind die Attribute für den Typ OrderUpdate
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
actionOrderId |
String | Erforderlich. Eindeutige ID der Bestellung im System des Integrators, mit der der Auftrag identifiziert wird, für den das Update gesendet wird. Wenn „Receipt.user_visible_order_id“ nicht mindestens einmal in „OrderUpdate“ für „CREATED“ angegeben wurde Bestellung handelt, ist diese ID die eingegebene, für den Nutzer sichtbare ID, die auf der Google-Bestellkarte angezeigt wird. |
|
orderState |
OrderState |
Erforderlich. Der neue Status der Bestellung. |
|
lineItemUpdates |
Map<String, LineItemUpdate > |
||
updateTime |
ISO-Zeitstempel | Erforderlich. Der Zeitpunkt, zu dem die Bestellung aktualisiert wurde. |
|
orderManagementActions |
Liste <OrderManagementAction > |
Aktionen nach der Bestellung, z. B. Kontaktaufnahme mit dem Support oder Ansehen von Bestelldetails. Darf nicht weniger als 1 Element enthalten und nicht mehr als 6 Elemente |
|
rejectionInfo |
RejectionInfo |
Erforderlich, wenn
|
|
cancellationInfo |
CancellationInfo |
Erforderlich, wenn
|
|
inTransitInfo |
InTransitInfo |
Dieses Feld wurde eingestellt. |
|
fulfillmentInfo |
FulfillmentInfo |
Dieses Feld wurde eingestellt. |
|
receipt |
Receipt |
Erforderlich, wenn
Geben Sie die für den Nutzer sichtbare Bestell-ID in einem Beleg an. |
|
totalPrice |
Price |
Gesamtpreis der Bestellung. |
|
infoExtension |
FoodOrderUpdateExtension |
Definiert weitere Details zur Aktualisierung der Bestellung, z. B. das Intervall für die voraussichtliche Lieferung oder Abholung. |
Das folgende Beispiel zeigt ein OrderUpdate
-Element:
Beispiel
{ "actionOrderId": "sample_action_order_id", "orderState": { "state": "CONFIRMED", "label": "Provider confirmed" }, "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "41", "nanos": 600000000 } }, "lineItemUpdates": { "sample_item_id_1": { "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } }, "reason": "This item has an updated price." } }, "receipt": { "userVisibleOrderId": "userVisibleId1234" }, "updateTime": "2017-07-17T12:00:00Z", "orderManagementActions": [ { "type": "CUSTOMER_SERVICE", "button": { "title": "Contact customer service", "openUrlAction": { "url": "mailto:support@example.com" } } }, { "type": "EMAIL", "button": { "title": "Email restaurant", "openUrlAction": { "url": "mailto:person@example.com" } } }, { "type": "CALL_RESTAURANT", "button": { "title": "Call restaurant", "openUrlAction": { "url": "tel:+16505554679" } } } ], "infoExtension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension", "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z" } }
PickupInfo
In der folgenden Tabelle sind die Attribute für den Typ PickupInfo
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
pickupTimeIso8601 |
String |
Geschätzte Abholzeit im ISO-8601-Zeitstempelformat: „{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z“ oder Dauerformat: „P(n)Y(n)M(n)DT(n)H(n)M(n)S". Beispielsweise steht PT90M für eine Dauer von 90 Minuten. Der Standardwert „PT0M“ gibt an, dass die bevorzugte Abholzeit so bald wie möglich ist. Referenz: https://de.wikipedia.org/wiki/ISO_8601#Kombinierte_Datums- und Zeitangaben Hiermit können Sie die voraussichtliche Abholzeit während der Antwort an der Kasse aktualisieren. Beispiel: |
Das folgende Beispiel zeigt ein PickupInfo
-Element:
Beispiel
{ "pickupTimeIso8601": "PT90M" }
PostalAddress
In der folgenden Tabelle sind die Attribute für den Typ PostalAddress
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
regionCode |
String | Erforderlich. Ein aus zwei Buchstaben bestehender Ländercode. Beispiel: |
|
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 |
Der Ort für diesen Standort. In Regionen der Welt, in denen Orte nicht hinreichend definiert sind oder nicht dieser Struktur entsprechen, geben Sie den Ort nicht an und verwenden Sie stattdessen das Feld "addressLines". Beispiel: |
|
addressLines |
List<String> |
Eine oder mehrere Zeilen, in denen Sie die Adresse angeben können. Dieses Feld sollte nicht geändert werden, da es unklare Ortsangaben enthalten kann. Beispiel: |
|
recipients |
List<String> |
Liste der Empfänger einer Bestellung. Dieses Feld ist nur in billingAddress verfügbar. |
Das folgende Beispiel zeigt ein PostalAddress
-Element:
Beispiel
{ "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }
Preis
In der folgenden Tabelle sind die Attribute für den Typ Price
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
type |
Enum [
"ESTIMATE",
"ACTUAL"
] |
Erforderlich. Der Gutscheincode. |
|
amount |
Money |
Erforderlich. |
Angebot
In der folgenden Tabelle sind die Attribute für den Typ Promotion
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
coupon |
String | Erforderlich. Der Gutscheincode. |
ProposedOrder
In der folgenden Tabelle sind die Attribute für den Typ ProposedOrder
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
id |
String |
Optionale ID für den vorgeschlagenen Auftrag. |
|
cart |
Cart |
Erforderlich. Artikel des Nutzers |
|
otherItems |
Liste <LineItem > |
Vom Anbieter hinzugefügte Artikel, z. B. Versandkosten, sonstige Gebühren und Steuern. otherItems können auch vom Nutzer hinzugefügte Trinkgeld und/oder Rabatte enthalten. Darf nicht mehr als 10 Elemente enthalten. |
|
image |
Image |
Mit dem vorgeschlagenen Auftrag verknüpftes Bild. |
|
totalPrice |
Price |
Erforderlich. Gesamtpreis der vorgeschlagenen Bestellung. |
|
extension |
FoodOrderExtension |
Erforderlich. Definiert Informationen zur Auftragsausführung für Essensbestellungen. |
|
disclaimers |
Liste <Disclaimer > |
Entspricht Haftungsausschlussmeldungen, die vor der Bestellung auf der Benutzeroberfläche angezeigt werden. |
Das folgende Beispiel zeigt ein ProposedOrder
-Element:
Beispiel
{ "id": "sample_proposed_order_id_1", "otherItems": [ { "name": "New customer discount", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "-5", "nanos": -500000000 } }, "type": "DISCOUNT" }, { "name": "Delivery fee", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } }, "type": "DELIVERY" }, { "name": "Tax", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 500000000 } }, "type": "TAX" } ], "cart": { "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } }, { "name": "Chicken Shwarma Wrap", "type": "REGULAR", "id": "sample_item_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/offer/id2", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "8" } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Greek Salad", "type": "REGULAR", "id": "sample_item_offer_id_3", "offerId": "https://www.exampleprovider.com/menu/item/offer/id3", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Prawns Biryani", "type": "REGULAR", "id": "sample_item_offer_id_4", "offerId": "https://www.exampleprovider.com/menu/item/offer/id4", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "15", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }, "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "36", "nanos": 730000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ] } }
SublineNote
In der folgenden Tabelle sind die Attribute für den Typ SublineNote
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
note |
String | Erforderlich. |
Zeitstempel
Datum und Uhrzeit im folgenden Format:
"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
TransactionDecisionValue
Enthält dieOrder
.
In der folgenden Tabelle sind die Attribute für den Typ TransactionDecisionValue
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
order |
Order |
Erforderlich. Die Bestellung wird mit Zahlungsdetails aufgegeben. |
Das folgende Beispiel zeigt ein TransactionDecisionValue
-Element:
Beispiel
{ "order": { "finalOrder": { "cart": { "notes": "Guest prefers their food to be hot when it is delivered.", "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Cucina Venti" }, "lineItems": [ { "name": "Sizzling Prawns Dinner", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "16", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } } }, "contact": { "displayName": "Lovefood Ordering", "email": "ilovefood@example.com", "phoneNumber": "+16501234567" } } }, "otherItems": [ { "name": "Service fee", "type": "FEE", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } } }, { "name": "Tax", "type": "TAX", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 370000000 } } }, { "name": "Tip", "type": "GRATUITY", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 590000000 } } } ], "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "23", "nanos": 710000000 } }, "id": "sample_final_order_id", "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ], "optinForRemarketing": true } }, "googleOrderId": "sample_google_order_id", "orderDate": "2017-07-17T12:00:00Z", "paymentInfo": { "displayName": "Visa\u2006****\u20061111", "googleProvidedPaymentInstrument": { "instrumentToken": "abcd" }, "paymentType": "PAYMENT_CARD" } } }
Auftragsausführungsanfrage
AppRequest
In der folgenden Tabelle sind die Attribute für den Typ AppRequest
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
isInSandbox |
Boolesch |
Gibt an, ob die nachfolgenden Transaktionen in einer Sandbox-Umgebung ausgeführt werden. |
|
conversation |
Conversation |
||
inputs |
Liste <Input > |
Erforderlich. Enthält die erwarteten Argumente für den Bezahlvorgang. Muss genau 1 Element enthalten. |
Das folgende Beispiel zeigt ein AppRequest
-Element:
Beispiel 1
{ "isInSandbox": true, "inputs": [ { "intent": "actions.foodordering.intent.CHECKOUT", "arguments": [ { "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.Cart", "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Cucina Venti" }, "lineItems": [ { "name": "Sizzling Prawns Dinner", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "16", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } } } ] } ] }
Beispiel 2
{ "isInSandbox": true, "inputs": [ { "intent": "actions.intent.TRANSACTION_DECISION", "arguments": [ { "transactionDecisionValue": { "order": { "finalOrder": { "cart": { "notes": "Guest prefers their food to be hot when it is delivered.", "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Cucina Venti" }, "lineItems": [ { "name": "Sizzling Prawns Dinner", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "16", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } } }, "contact": { "displayName": "Lovefood Ordering", "email": "ilovefood@example.com", "phoneNumber": "+16501234567" } } }, "otherItems": [ { "name": "Service fee", "type": "FEE", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } } }, { "name": "Tax", "type": "TAX", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 370000000 } } }, { "name": "Tip", "type": "GRATUITY", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 590000000 } } } ], "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "23", "nanos": 710000000 } }, "id": "sample_final_order_id", "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ], "optinForRemarketing": true } }, "googleOrderId": "sample_google_order_id", "orderDate": "2017-07-17T12:00:00Z", "paymentInfo": { "displayName": "Visa\u2006****\u20061111", "googleProvidedPaymentInstrument": { "instrumentToken": "abcd" }, "paymentType": "PAYMENT_CARD" } } } } ] } ] }
CheckoutRequestMessage
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
gilt nur für eine Sitzung. Sie können damit mehrere
Checkout
- und SubmitOrder
-Aktionen zusammen, falls erforderlich.
In der folgenden Tabelle sind die Attribute für den Typ Conversation
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
conversationId |
String | Erforderlich. Eindeutige ID für die Unterhaltung. |
Das folgende Beispiel zeigt ein Conversation
-Element:
Beispiel
{ "conversationId": "CQnJ7Z4i7UmvEZ9ph3AxyZRJ" }
Eingabe
Die erwarteten Argumente für die Bezahlung eines Einkaufswagens.
In der folgenden Tabelle sind die Attribute für den Typ Input
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
intent |
Enum [
"actions.foodordering.intent.CHECKOUT",
"actions.intent.TRANSACTION_DECISION"
] |
Erforderlich. Auf „actions.foodordering.intent.CHECKOUT“ festlegen für Nachricht zur Bezahlanfrage ODER „actions.intent.TRANSACTION_DECISION“ für die Nachricht „Bestellanfrage“. |
|
arguments |
Liste <Argument > |
Erforderlich. Enthält den zu bezahlenden Einkaufswagen oder die aufzugebende Bestellung Muss genau 1 Element enthalten. |
Argument
Enthält Details zu den Lebensmitteln, die die nutzende Person kaufen möchte. An der Kasse ist nur eine Verlängerung erforderlich. Für die Aufgabe ist nur „transactionDecisionValue“ anwendbar
In der folgenden Tabelle sind die Attribute für den Typ Argument
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
Genau eine der folgenden Gruppen von Properties ist erforderlich. | |||
extension |
Gruppe 1 | Cart |
Beschreibt die Lebensmittel, die die nutzende Person kaufen möchte. |
transactionDecisionValue |
Gruppe 2 | TransactionDecisionValue |
Enthält die aufzugebende Bestellung sowie die Zahlungsdetails. |
Reaktion auf die Auftragsabwicklung
AppResponse
In der folgenden Tabelle sind die Attribute für den Typ AppResponse
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
expectUserResponse |
Nachst |
Auf „false“ gesetzt. Wert: |
|
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
checkoutResponse
oder error
im
StructuredResponse
SubmitOrderResponseMessage
EinSubmitOrderResponseMessage
ist ein AppResponse
mit
ein orderUpdate
in der StructuredResponse
.
FinalResponse
Ihre Antwort auf den Bezahlvorgang oder „SubmitOrderRequestMessage“.
In der folgenden Tabelle sind die Attribute für den Typ FinalResponse
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
richResponse |
RichResponse |
Erforderlich. Enthält Ihre Antwort auf die CheckoutRequestMessage oder SubmitOrderRequestMessage. |
CheckoutResponse
In der folgenden Tabelle sind die Attribute für den Typ CheckoutResponse
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
proposedOrder |
ProposedOrder |
Erforderlich. Vorgeschlagener Auftrag zur Verwendung für die Transaktion. |
|
paymentOptions |
PaymentOptions |
Erforderlich. Für den Nutzer ausgewählte Standardzahlungsart. |
|
additionalPaymentOptions |
Liste <PaymentOptions > |
Es stehen alternative Zahlungsoptionen für den Nutzer zur Verfügung. |
Das folgende Beispiel zeigt ein CheckoutResponse
-Element:
Beispiel
{ "proposedOrder": { "id": "sample_proposed_order_id_1", "otherItems": [ { "name": "New customer discount", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "-5", "nanos": -500000000 } }, "type": "DISCOUNT" }, { "name": "Delivery fee", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } }, "type": "DELIVERY" }, { "name": "Tax", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 500000000 } }, "type": "TAX" } ], "cart": { "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } }, { "name": "Chicken Shwarma Wrap", "type": "REGULAR", "id": "sample_item_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/offer/id2", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "8" } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Greek Salad", "type": "REGULAR", "id": "sample_item_offer_id_3", "offerId": "https://www.exampleprovider.com/menu/item/offer/id3", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Prawns Biryani", "type": "REGULAR", "id": "sample_item_offer_id_4", "offerId": "https://www.exampleprovider.com/menu/item/offer/id4", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "15", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }, "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "36", "nanos": 730000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ] } }, "paymentOptions": { "googleProvidedOptions": { "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": { \"merchantId\": \"Merchant ID\", \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [ { \"type\": \"CARD\", \"parameters\": { \"allowedAuthMethods\": [ \"PAN_ONLY\" ], \"allowedCardNetworks\": [ \"VISA\", \"AMEX\", \"MASTERCARD\" ], \"billingAddressRequired\": false }, \"tokenizationSpecification\": { \"type\": \"PAYMENT_GATEWAY\", \"parameters\": { \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\", \"gateway\": \"stripe\", \"stripe:version\": \"2019-05-16\" } } }],\"transactionInfo\": { \"currencyCode\": \"AUD\", \"totalPriceStatus\": \"ESTIMATED\", \"totalPrice\": \"1.0\"}}" } }, "additionalPaymentOptions": [ { "actionProvidedOptions": { "paymentType": "ON_FULFILLMENT", "displayName": "Cash on delivery." } } ] }
Element
Enthält Ihre Antwort auf einen Einkaufswagen oder eine SubmitOrderRequestMessage.
In der folgenden Tabelle sind die Attribute für den Typ Item
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
structuredResponse |
StructuredResponse |
Erforderlich. |
RichResponse
Enthält Ihre Antwort auf den Bezahlvorgang.
In der folgenden Tabelle sind die Attribute für den Typ RichResponse
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
items |
Liste <Item > |
Erforderlich. Muss genau 1 Element enthalten. |
StructuredResponse
Bei CheckoutResponseMessage kann dies einer der folgenden sein: CheckoutResponse zeigt einen erfolgreichen Bezahlvorgang an. ODER FoodErrorExtension: Weist auf einen Fehler beim Bezahlvorgang hin. Die Antwort kann einen korrigierten ProposedOrder und PaymentOptions oder eine Fehlermeldung ohne PaymentOptions enthalten. Für „SubmitOrderResponseMessage“ ist nur „orderUpdate“ anwendbar.
In der folgenden Tabelle sind die Attribute für den Typ StructuredResponse
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
Genau eine der folgenden Gruppen von Properties ist erforderlich. | |||
checkoutResponse |
Gruppe 1 | CheckoutResponse |
Bezahlte Artikel zuzüglich Steuern und Rabatten. |
error |
Gruppe 2 | FoodErrorExtension |
Es wurden Fehler bei den Warenkorbartikeln festgestellt. Je nach Art des Fehlers kann diese Eigenschaft einen korrigierten Auftrag und PaymentOptions oder nur eine Fehlermeldung ohne PaymentOptions enthalten. |
orderUpdate |
Gruppe 3 | OrderUpdate |
Asynchrone Bestellaktualisierungen
In diesem Abschnitt werden die übergeordneten Typen beschrieben, aus denen die Anfragen bestehen, und Reaktionen einer typischen integrierten Interaktion mit Essensbestellungen.AsyncOrderUpdateRequestMessage
Informiert den Nutzer über Änderungen, nachdem eine Bestellung übermittelt und bestätigt wurde. Sie können den Nutzer beispielsweise darüber informieren, dass die Bestellung unterwegs ist oder Der Preis hat sich geändert. Weitere Informationen erhalten Sie unter:In der folgenden Tabelle sind die Attribute für den Typ AsyncOrderUpdateRequestMessage
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
isInSandbox |
Boolesch |
Gibt an, dass der Auftrag, für den dieses Update gesendet wurde, eine Sandbox-Zahlung ist. |
|
customPushMessage |
CustomPushMessage |
Erforderlich. Enthält das OrderUpdate für die Anfrage. |
Das folgende Beispiel zeigt ein AsyncOrderUpdateRequestMessage
-Element:
Beispiel
{ "isInSandbox": true, "customPushMessage": { "orderUpdate": { "actionOrderId": "sample_action_order_id", "orderState": { "state": "IN_TRANSIT", "label": "Order is on the way" }, "inTransitInfo": { "updatedTime": "2017-07-17T12:00:00Z" }, "updateTime": "2017-07-17T12:00:00Z", "receipt": { "userVisibleOrderId": "userVisibleId1234" }, "orderManagementActions": [ { "type": "CUSTOMER_SERVICE", "button": { "title": "Contact customer service", "openUrlAction": { "url": "mailto:support@example.com" } } }, { "type": "EMAIL", "button": { "title": "Email restaurant", "openUrlAction": { "url": "mailto:person@example.com" } } }, { "type": "CALL_RESTAURANT", "button": { "title": "Call restaurant", "openUrlAction": { "url": "tel:+16505554679" } } } ], "infoExtension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension", "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z" } } } }
AsyncOrderUpdateResponseMessage
Nachdem Sie eineAsyncOrderUpdateRequestMessage
gesendet haben, antwortet Google
mit einem HTTP 200-Status und einem leeren Textkörper. Wenn das Update fehlgeschlagen ist,
Google antwortet mit Details dazu, warum die Aktualisierung der Bestellung fehlgeschlagen ist.
Arten der Bestellaktualisierung
Schaltfläche
Definiert ein Benutzeroberflächenelement, das Sie hinzufügen können, um eine Nutzerinteraktion zu ermöglichen.
In der folgenden Tabelle sind die Attribute für den Typ Button
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
title |
String | Erforderlich. Die Anzeige. Verwenden Sie die im Deutschen übliche Groß- und Kleinschreibung mit maximal 30 Zeichen, um ein korrektes Rendering sicherzustellen. Beispiel: |
|
openUrlAction |
OpenUrlAction |
Erforderlich. |
Das folgende Beispiel zeigt ein Button
-Element:
Beispiel
{ "title": "Send us feedback", "openUrlAction": { "url": "mailto:person@example.com" } }
CancellationInfo
In der folgenden Tabelle sind die Attribute für den Typ CancellationInfo
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
reason |
String | Erforderlich. Anzeigbarer Grund für die Ablehnung, wenn OrderState.state „CANCELLED“ ist. Beispiel: |
Das folgende Beispiel zeigt ein CancellationInfo
-Element:
Beispiel
{ "reason": "Insufficient inventory" }
FoodOrderUpdateExtension
Bei diesem Typ wird dem Nutzer ein geschätztes Intervall für den Versand der Bestellung zur Verfügung gestellt.
geliefert oder zur Abholung bereit sind. Diese Erweiterung senden in einem
OrderUpdate
wenn die Informationen verfügbar sind oder sich seit dem letzten Senden geändert haben.
Geben Sie eine konservative Schätzung für das Ausführungsintervall an, damit Nutzende Erwartungen konsequent erfüllt werden. Wenn die Bestellung beispielsweise heute um 13:00 Uhr ausgeliefert wird, sollten Sie ein geschätztes Intervall Übereinstimmung mit den Schwankungen aufgrund der Verkehrslage, z. B. heute um 12:45 Uhr bis 13:15 Uhr.
Eine Dauer oder ein Zeitstempel gemäß ISO 8601 wird als das Intervall aus der
updateTime
der OrderUpdate
(im Wesentlichen „jetzt“) mit dem
updateTime
plus duration
.
Verwenden Sie dieses Format nur, wenn Sie „jetzt“ verwenden eine angemessene Erwartung.
Ein ISO 8601-Intervall wird als das Intervall vom Start bis zum Ende des Intervalls.
In der folgenden Tabelle sind die Attribute für den Typ FoodOrderUpdateExtension
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
@type |
Nachst |
Der Typ dieser Erweiterung. Dieses Feld ist immer auf „type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension“ festgelegt. Wert: |
|
estimatedFulfillmentTimeIso8601 |
String |
Die geschätzte Zeit, zu der die Bestellung geliefert wird bzw. zur Abholung bereit ist. Der String muss im ISO 8601-Format vorliegen und einem Intervall und nicht einer einzelnen festen Zeit entsprechen. Akzeptable Konventionen sind: Intervalle, Dauer und Datum/Uhrzeit. Dieses Feld kann in „SubmitOrderResponseMessage“ oder „AsyncOrderUpdateRequestMessage“ gesendet werden, wenn die Informationen verfügbar sind oder es eine Änderung gibt, z. B. vorzeitige oder verspätete Ankunft. Beispiel: |
|
foodOrderErrors |
Liste <FoodOrderError > |
Beschreibt die Fehler, die nach der Bestellung aufgetreten sind. Es wird ein Fehler pro Einkaufswagen oder Artikel empfohlen. Verwenden Sie „FoodOrderUpdateExtension.FoodOrderErrors“ für alle Fehler, die nicht von „Ablehnung“ abgedeckt sind. Darf nicht weniger als 1 Element enthalten. |
Das folgende Beispiel zeigt ein FoodOrderUpdateExtension
-Element:
Beispiel 1
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension", "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z" }
Beispiel 2
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension", "foodOrderErrors": [ { "error": "NO_CAPACITY", "description": "Sorry, the restaurant cannot take your order right now." } ] }
FulfillmentInfo
<ph type="x-smartling-placeholder">In der folgenden Tabelle sind die Attribute für den Typ FulfillmentInfo
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
Genau eine der folgenden Gruppen von Properties ist erforderlich. | |||
deliveryTime |
Gruppe 1 | ISO-Zeitstempel |
„estimatedFulfillmentTimeIso8601“ in der Nachricht „FoodOrderingUpdateExtension“ verwenden |
pickupTime |
Gruppe 2 | ISO-Zeitstempel |
„estimatedFulfillmentTimeIso8601“ in der Nachricht „FoodOrderingUpdateExtension“ verwenden |
Das folgende Beispiel zeigt ein FulfillmentInfo
-Element:
Beispiel 1
{ "deliveryTime": "2017-05-10T02:36:38.803Z" }
Beispiel 2
{ "pickupTime": "2019-12-26T07:24:27.803Z" }
InTransitInfo
<ph type="x-smartling-placeholder">In der folgenden Tabelle sind die Attribute für den Typ InTransitInfo
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
updatedTime |
ISO-Zeitstempel |
„estimatedFulfillmentTimeIso8601“ in der Nachricht „FoodOrderingUpdateExtension“ verwenden |
Das folgende Beispiel zeigt ein InTransitInfo
-Element:
Beispiel
{ "updatedTime": "2017-05-10T02:36:38.803Z" }
LineItemUpdate
In der folgenden Tabelle sind die Attribute für den Typ LineItemUpdate
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
orderState |
OrderState |
||
price |
Price |
||
reason |
String |
Grund für die Änderung. Erforderlich für Preisänderungen. |
Das folgende Beispiel zeigt ein LineItemUpdate
-Element:
Beispiel
{ "orderState": { "state": "CONFIRMED", "label": "Provider confirmed" }, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "5", "nanos": 500000000 } }, "reason": "Menu updated prices." }
OpenUrlAction
In der folgenden Tabelle sind die Attribute für den Typ OpenUrlAction
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
url |
String | Erforderlich. Die durch Klicken oder Berühren der Schaltfläche ausgelöste Aktion. Die Liste der anwendbaren Präfixe hängt vom orderManagementActionType ab. "EMAIL": Das Präfix muss "mailto" sein. "CALL": Das Präfix muss "tel" sein. "CUSTOMER_SERVICE": Das Präfix muss "mailto", "tel", "http" oder "https" lauten. Beispiel: |
OrderManagementAction
Die Bestellverwaltung ermöglicht es Nutzenden, Unterstützung nach der Bestellung zu erhalten. Diese sollte gesendet werden.
Jedes OrderUpdate
in der Bestellung
AppResponse
und jede weitere
AsyncOrderUpdateRequestMessage
Die für eine bestimmte Bestellung gesendeten Aktionen zur Bestellverwaltung können je nach
Bundesstaat.
Beispiel: Im Feld „CREATED“ (Erstellt) kann CUSTOMER_SERVICE
auf Ihren
Telefon des Kundensupports. Klicken Sie dann in der Spalte CONFIRMED Bundesland, CUSTOMER_SERVICE
kann zum Telefon des Restaurants wechseln, wenn dies der beste Punkt ist,
für die Kundin oder den Kunden. Sobald sich die Bestellung im Status „FULFILLED“ befindet, Bundesland,
CUSTOMER_SERVICE
kann auf Ihre Support-E-Mail-Adressen verweisen.
In der folgenden Tabelle sind die Attribute für den Typ OrderManagementAction
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
type |
OrderManagementActionType |
Erforderlich. |
|
button |
Button |
Erforderlich. |
Das folgende Beispiel zeigt ein OrderManagementAction
-Element:
Beispiel 1
{ "type": "CUSTOMER_SERVICE", "button": { "title": "Contact customer service", "openUrlAction": { "url": "mailto:support@example.com" } } }
Beispiel 2
{ "type": "EMAIL", "button": { "title": "Email restaurant", "openUrlAction": { "url": "mailto:person@example.com" } } }
OrderManagementActionType
Definiert Typen fürOrderManagementAction
.
Für den Typ OrderManagementActionType
sind folgende Werte möglich:
CUSTOMER_SERVICE
: E-Mail-Adresse und/oder Telefonnummer des Kundenservice, die auf der Bestellbestätigungsseite angezeigt werden soll. Dies ist ein Pflichtfeld. Das Präfix „openUrlAction.url“ muss „mailto“, „tel“, „http“ oder „https“ lauten.EMAIL
: E-Mail-Aktion nur auf der Seite mit den Bestelldetails. Das Präfix openUrlAction.url muss „mailto“ sein.CALL_DRIVER
: Call-Action nur auf der Seite mit den Bestelldetails. Das Präfix „openUrlAction.url“ muss „tel“ sein.CALL_RESTAURANT
: Call-Action nur auf der Seite mit den Bestelldetails. Das Präfix „openUrlAction.url“ muss „tel“ sein.
OrderState
Der aktuelle Status der Bestellung. Jeder state
-Wert von OrderState
hat auch
entspricht einem Kaufstatus auf
myaccount.google.com
In der folgenden Tabelle sind die Attribute für den Typ OrderState
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
state |
OrderStateEnum |
Erforderlich. |
|
label |
String | Erforderlich. Der für den Nutzer sichtbare Anzeigestring für den Status. Verwenden Sie die im Deutschen übliche Groß- und Kleinschreibung. Beispiel: |
Das folgende Beispiel zeigt ein OrderState
-Element:
Beispiel
{ "state": "CONFIRMED", "label": "Provider confirmed" }
OrderStateEnum
Definiert Typen fürOrderState
.
Für den Typ OrderStateEnum
sind folgende Werte möglich:
CREATED
: Die Bestellung wurde vom Integrator erstellt und wartet auf Bestätigung durch den Anbieter. Entspricht dem Artikel "Bestellt" Kaufstatus.CONFIRMED
: Bestellung wurde vom Anbieter bestätigt und ist aktiv. Entspricht den Angaben in der Kaufstatus.REJECTED
: Bestellung vom Integrator oder Anbieter abgelehnt. Entspricht dem Bericht "Abgelehnt" Kaufstatus.CANCELLED
: Der Nutzer hat die Bestellung storniert. Entspricht dem Abschnitt "Storniert" Kaufstatus.IN_PREPARATION
: Das Essen wird zubereitet. Entspricht dem Status "Unbekannt" Kaufstatus.READY_FOR_PICKUP
: Essen ist zur Abholung bereit. Entspricht dem Artikel „Zur Abholung bereit“ Kaufstatus.IN_TRANSIT
: Bestellung wird zugestellt. Entspricht dem Status „In Bearbeitung“ Kaufstatus.FULFILLED
: Der Nutzer hat die Bestellung erhalten. Entspricht dem Eintrag „Abgeholt“ Kaufstatus.
Beleg
Diesen Typ in einer Bestellung senden:AppResponse
,
Dabei ist OrderState
entweder „CONFIRMED“, „FULFILLED“ oder „IN_TRANSIT“. Beleg senden um
Zeitpunkt, zu dem userVisibleOrderId
verfügbar wird. Sie müssen sich nicht
den Beleg in nachfolgenden Updates zu senden.
In der folgenden Tabelle sind die Attribute für den Typ Receipt
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
userVisibleOrderId |
String | Erforderlich. Erforderlich, wenn der Auftrag „CONFIRMED“, „IN_TRANSIT“ oder „FULFILLED“ lautet. Dieses Feld enthält die einzelne Nutzer-ID für diese Bestellung (normalerweise die Bestell-ID des Restaurants), die sowohl auf dem Beleg des Integrators als auch auf der Google-Bestellkarte angezeigt wird. Der Nutzer muss diese ID verwenden können, um auf seine Bestellung für den Kundenservice beim Anbieter und Integrator zu verweisen. Sie müssen diese ID in jedem OrderUpdate nur einmal angeben. Bis dahin ist actionOrderId die userVisibleOrderId. Beispiel: Sie haben keine userVisibleOrderId, wenn die Bestellung vom Restaurant bestätigt wurde. Nach der Bestätigung müssen Sie eine AsyncOrderUpdateRequestMessage mit einem OrderUpdate und einer Quittung senden. |
Das folgende Beispiel zeigt ein Receipt
-Element:
Beispiel
{ "userVisibleOrderId": "userVisibleId1234" }
RejectionInfo
In der folgenden Tabelle sind die Attribute für den Typ RejectionInfo
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
type |
RejectionType |
Erforderlich. |
|
reason |
String |
Grund für die Ablehnung, der für das interne Logging verwendet wird. Dieses Feld ist für Nutzer nicht sichtbar. |
Das folgende Beispiel zeigt ein RejectionInfo
-Element:
Beispiel
{ "type": "PAYMENT_DECLINED", "reason": "There is an issue with payment processing." }
RejectionType
Für den Typ RejectionType
sind folgende Werte möglich:
INELIGIBLE
: Der Nutzer ist aufgrund von Richtlinien- oder risikobezogenen Bedenken nicht berechtigt.PAYMENT_DECLINED
: Es gibt ein Problem bei der Zahlungsabwicklung.UNAVAILABLE_SLOT
: Die Bestellung kann nicht zu dem in „DeliveryInfo“ oder „Abholinfo“ angegebenen Zeitpunkt ausgeführt werden.PROMO_NOT_APPLICABLE
: Es gibt ein Problem mit dem Angebot.UNKNOWN
: Anderer Grund.
Zahlungsarten
In diesem Abschnitt werden die zahlungsbezogenen Arten beschrieben, die für die Essensbestellung verwendet werden. Auftragsausführung.ActionProvidedPaymentOptions
Anforderungen für eine per Aktion bereitgestellte Zahlungsmethode
In der folgenden Tabelle sind die Attribute für den Typ ActionProvidedPaymentOptions
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
paymentType |
PaymentType |
Erforderlich. |
|
displayName |
String | Erforderlich. Name des Zahlungsmittels, das auf dem Beleg angegeben ist. Beispiel: |
|
onFulfillmentPaymentData |
OnFulfillmentPaymentData |
Zusätzliche Daten für den paymentType "ON_FULFILLMENT". Mit diesem Feld können Sie beispielsweise angeben, ob bei der Auftragsausführung Bargeld oder Karte unterstützt werden soll. |
Das folgende Beispiel zeigt ein ActionProvidedPaymentOptions
-Element:
Beispiel
{ "paymentType": "ON_FULFILLMENT", "displayName": "Pay when you get your food.", "onFulfillmentPaymentData": { "supportedPaymentOptions": [ "Cash", "Card" ] } }
AllowedAuthMethods
Für den Typ AllowedAuthMethods
sind folgende Werte möglich:
PAN_ONLY
: Authentifizierungsmethode für Zahlungskarten, die im Google-Konto des Nutzers gespeichert sind. Zu den zurückgegebenen Zahlungsdaten gehören die persönliche Kontonummer (Personal Account Number, PAN) mit dem Ablaufmonat und dem Ablaufjahr.
AllowedCardNetworks
Für den Typ AllowedCardNetworks
sind folgende Werte möglich:
AMEX
DISCOVER
INTERAC
JCB
MASTERCARD
VISA
BillingAddressParameters
Mit diesem Objekt können Sie zusätzliche Felder festlegen, die für eine angeforderte Rechnungsadresse zurückgegeben werden sollen.
In der folgenden Tabelle sind die Attribute für den Typ BillingAddressParameters
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
format |
String |
Das Format der Rechnungsadresse ist erforderlich, damit die Transaktion abgeschlossen werden kann. MIN: Name, Ländercode und Postleitzahl. VOLL: Name, Adresse, Ort, Region, Ländercode und Postleitzahl. |
Das folgende Beispiel zeigt ein BillingAddressParameters
-Element:
Beispiel 1
{ "format": "MIN" }
Beispiel 2
{ "format": "FULL" }
CardParameters
Mit diesem Objekt kannst du die Unterstützung deiner Website für die Google Pay API konfigurieren.
In der folgenden Tabelle sind die Attribute für den Typ CardParameters
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
allowedAuthMethods |
List<Const> | Erforderlich. Unterstützte Felder für die Authentifizierung einer Kartentransaktion. Darf nicht weniger als 1 Element enthalten. |
|
allowedCardNetworks |
Liste <AllowedCardNetworks > |
Erforderlich. Ein oder mehrere von dir unterstützte Kartennetzwerke, die auch von der Google Pay API unterstützt werden. Darf nicht weniger als 1 Element enthalten. |
|
billingAddressRequired |
Boolesch |
Setzen Sie den Wert auf „true“, wenn Sie eine Rechnungsadresse benötigen. Fordern Sie nur dann eine Rechnungsadresse an, wenn diese für die Verarbeitung der Transaktion erforderlich ist. Zusätzliche Datenanfragen können den Bezahlvorgang vereinfachen und zu niedrigeren Conversion-Raten führen. |
|
billingAddressParameters |
BillingAddressParameters |
Die erwarteten Felder, die zurückgegeben werden, wenn „billingAddressRequired“ auf „true“ festgelegt ist. |
|
cvcRequired |
Boolesch |
Setzen Sie diesen Wert auf „true“, wenn Sie TimesofMoney verwenden, und auf „false“ für alle anderen Zahlungsabwickler. |
Das folgende Beispiel zeigt ein CardParameters
-Element:
Beispiel 1
{ "allowedAuthMethods": [ "PAN_ONLY" ], "allowedCardNetworks": [ "AMEX", "DISCOVER" ], "billingAddressRequired": false, "cvcRequired": false }
Beispiel 2
{ "allowedAuthMethods": [ "PAN_ONLY" ], "allowedCardNetworks": [ "AMEX", "DISCOVER" ], "billingAddressRequired": true, "billingAddressParameters": { "format": "MIN" }, "cvcRequired": false }
GoogleProvidedPaymentInstrument
In der folgenden Tabelle sind die Attribute für den Typ GoogleProvidedPaymentInstrument
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
instrumentToken |
String | Erforderlich. Base-64-codierter String mit dem Zahlungstoken zur Belastung des Nutzers bei einem teilnehmenden Google Pay-Prozessor gemäß den zuvor angegebenen „GoogleProvidedPaymentOptions“. |
|
billingAddress |
PostalAddress |
Rechnungsadresse für die Zahlung |
Das folgende Beispiel zeigt ein GoogleProvidedPaymentInstrument
-Element:
Beispiel
{ "instrumentToken": "abcd", "billingAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] } }
GoogleProvidedPaymentOptions
Anforderungen für von Google bereitgestellte Zahlungsmethode
In der folgenden Tabelle sind die Attribute für den Typ GoogleProvidedPaymentOptions
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
facilitationSpecification |
String |
PaymentDataRequest-JSON als String. Mit diesem Objekt kannst du die Unterstützung deiner Website für die Google Pay API konfigurieren. |
|
supportedCardNetworks |
Liste <SupportedCardNetworks > |
Verwenden Sie stattdessen facilitationSpecification. Typ der vom Agent unterstützten Kartennetzwerke. Dieses Feld wurde eingestellt. |
|
prepaidCardDisallowed |
Boolesch |
Verwenden Sie stattdessen facilitationSpecification. Gibt an, ob eine Prepaidkarte als Zahlungsart zulässig ist. Dieses Feld wurde eingestellt. |
|
billingAddressRequired |
Boolesch |
Verwenden Sie stattdessen „facilitationSpecification“. Gibt an, ob eine Rechnungsadresse erforderlich ist. Dieses Feld wurde eingestellt. |
|
tokenizationParameters |
TokenizationParameters |
Dieses Feld wurde eingestellt. |
Das folgende Beispiel zeigt ein GoogleProvidedPaymentOptions
-Element:
Beispiel 1
{ "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": { \"merchantId\": \"Merchant ID\", \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [ { \"type\": \"CARD\", \"parameters\": { \"allowedAuthMethods\": [ \"PAN_ONLY\" ], \"allowedCardNetworks\": [ \"VISA\", \"AMEX\", \"MASTERCARD\" ], \"billingAddressRequired\": false }, \"tokenizationSpecification\": { \"type\": \"PAYMENT_GATEWAY\", \"parameters\": { \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\", \"gateway\": \"stripe\", \"stripe:version\": \"2019-05-16\" } } }],\"transactionInfo\": { \"currencyCode\": \"AUD\", \"totalPriceStatus\": \"ESTIMATED\", \"totalPrice\": \"1.0\"}}" }
Beispiel 2
{ "tokenizationParameters": { "tokenizationType": "PAYMENT_GATEWAY", "parameters": { "gateway": "braintree", "braintree:apiVersion": "v1", "braintree:sdkVersion": "1.4.0", "braintree:merchantId": "a1b2c3d4e5", "braintree:clientKey": "production_braintree_client_key", "braintree:authorizationFingerprint": "same_as_client_key" } }, "supportedCardNetworks": [ "AMEX", "DISCOVER", "MASTERCARD", "JCB", "VISA" ], "prepaidCardDisallowed": true }
Beispiel 3
{ "tokenizationParameters": { "tokenizationType": "PAYMENT_GATEWAY", "parameters": { "gateway": "stripe", "stripe:publishableKey": "pk_live_stripe_client_key", "stripe:version": "2017-04-06" } }, "supportedCardNetworks": [ "AMEX", "DISCOVER", "MASTERCARD", "VISA", "JCB" ], "prepaidCardDisallowed": true, "billingAddressRequired": true }
MerchantInfo
Mit diesem Objekt kannst du die Unterstützung deiner Website für die Google Pay API konfigurieren.
In der folgenden Tabelle sind die Attribute für den Typ MerchantInfo
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
merchantId |
String |
Google-Händler-ID, die Ihnen von Google Pay zugewiesen wird. |
|
merchantName |
String | Erforderlich. Der Händlername ist in UTF-8 codiert. Der Händlername wird im Zahlungsblatt gerendert. |
OnFulfillmentPaymentData
Verwenden Sie dieses Objekt, um zusätzliche Daten für den PaymentType "ON_FULFILLMENT" zu senden.
In der folgenden Tabelle sind die Attribute für den Typ OnFulfillmentPaymentData
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
supportedPaymentOptions |
Liste <PaymentOptionsEnums > |
Liste der Zahlungsoptionen, die dem Nutzer zum Zeitpunkt der Auftragsabwicklung zur Verfügung stehen. |
Das folgende Beispiel zeigt ein OnFulfillmentPaymentData
-Element:
Beispiel
{ "supportedPaymentOptions": [ "Cash", "Card" ] }
Parameter
Definiert Typen für TokenizationParameters
.
In der folgenden Tabelle sind die Attribute für den Typ Parameters
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
gateway |
String | Erforderlich. Beispiel: |
|
gatewayMerchantId |
String | ||
[additionalKey: string] |
String | Zusätzliche Schlüssel/Wert-Paare |
Das folgende Beispiel zeigt ein Parameters
-Element:
Beispiel 1
{ "gatewayMerchantId": "90412491", "gateway": "olo" }
Beispiel 2
{ "gateway": "braintree", "braintree:apiVersion": "v1", "braintree:sdkVersion": "1.4.0", "braintree:merchantId": "YOUR_MERCHANT_ID", "braintree:clientKey": "YOUR_BRAINTREE_SANDVOX_OR_PRODUCTION_KEY" }
PaymentDataRequest
Mit diesem Objekt kannst du die Unterstützung deiner Website für die Google Pay API konfigurieren.
In der folgenden Tabelle sind die Attribute für den Typ PaymentDataRequest
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
apiVersion |
Nachst | Erforderlich. API-Hauptversion. Wert: |
|
apiVersionMinor |
Nachst | 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 von der Google Pay API unterstützte Zahlungsmethoden unterstützt werden. |
|
transactionInfo |
TransactionInfo |
Erforderlich. Details zur Autorisierung der Transaktion basierend darauf, ob der Nutzer der Transaktion zustimmt. Dieses Feld enthält den Gesamtpreis und den Preisstatus. |
Das folgende Beispiel zeigt ein PaymentDataRequest
-Element:
Beispiel
{ "apiVersion": 2, "apiVersionMinor": 0, "merchantInfo": { "merchantId": "10391231", "merchantName": "Burrito Town" }, "allowedPaymentMethods": [ { "type": "CARD", "parameters": { "allowedAuthMethods": [ "PAN_ONLY" ], "allowedCardNetworks": [ "VISA", "AMEX", "MASTERCARD" ], "billingAddressRequired": true, "billingAddressParameters": { "format": "FULL" }, "cvcRequired": false }, "tokenizationSpecification": { "type": "PAYMENT_GATEWAY", "parameters": { "gateway": "stripe", "stripe:version": "2019-05-16", "stripe:publishableKey": "pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA" } } } ], "transactionInfo": { "currencyCode": "INR", "totalPriceStatus": "ESTIMATED", "totalPrice": "185.00" } }
PaymentInfo
Zahlungsbezogene Informationen zu einer Bestellung.
In der folgenden Tabelle sind die Attribute für den Typ PaymentInfo
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
displayName |
String | Erforderlich. Für Nutzer sichtbarer Name des Zahlungsmittels, das auf dem Beleg angezeigt werden soll. |
|
paymentType |
PaymentType |
Erforderlich. |
|
googleProvidedPaymentInstrument |
GoogleProvidedPaymentInstrument |
Token, das von der Aktion verwendet werden kann. Geben Sie dies nur an, wenn Sie „GoogleProvidedPaymentOptions“ als Zahlungsoption in der CheckoutResponseMessage angegeben haben. |
Das folgende Beispiel zeigt ein PaymentInfo
-Element:
Beispiel 1
{ "displayName": "Visa\u2006****\u20061111", "googleProvidedPaymentInstrument": { "instrumentToken": "abcd" }, "paymentType": "PAYMENT_CARD" }
Beispiel 2
{ "displayName": "Visa\u2006****\u20061111", "googleProvidedPaymentInstrument": { "instrumentToken": "abcd", "billingAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "123 Random Street", "Unit ABC" ], "recipients": [ "sample_receipient" ] } }, "paymentType": "PAYMENT_CARD" }
Zahlungsmethode
Mit diesem Objekt kannst du die Unterstützung deiner Website für die Google Pay API konfigurieren.
In der folgenden Tabelle sind die Attribute für den Typ PaymentMethod
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
type |
Nachst | Erforderlich. Kurze ID für die unterstützte Zahlungsmethode. Derzeit wird nur CARD unterstützt. Wert: |
|
parameters |
CardParameters |
Erforderlich. Parameter, die zum Konfigurieren des angegebenen Zahlungsmethodentyps erforderlich sind. |
|
tokenizationSpecification |
TokenizationSpecification |
Erforderlich. Konfigurieren Sie ein Konto oder einen Anbieter für die Entschlüsselung, um Zahlungsinformationen zu erhalten. Diese Unterkunft ist für die Zahlungsmethode CARD erforderlich. |
Das folgende Beispiel zeigt ein PaymentMethod
-Element:
Beispiel
{ "type": "CARD", "parameters": { "allowedAuthMethods": [ "PAN_ONLY" ], "allowedCardNetworks": [ "VISA", "AMEX", "MASTERCARD" ], "billingAddressRequired": false }, "tokenizationSpecification": { "type": "PAYMENT_GATEWAY", "parameters": { "gatewayMerchantId": "90412491", "gateway": "olo" } } }
PaymentOptions
In der folgenden Tabelle sind die Attribute für den Typ PaymentOptions
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
Genau eine der folgenden Gruppen von Properties ist erforderlich. | |||
googleProvidedOptions |
Gruppe 1 | GoogleProvidedPaymentOptions |
Schließt sich mit actionProvidedOptions gegenseitig aus. Verwenden Sie diese Nummer für Onlinezahlungen mit gPay. |
actionProvidedOptions |
Gruppe 2 | ActionProvidedPaymentOptions |
Schließt sich mit „googleProvidedOptions“ gegenseitig aus. Verwenden Sie dieses Attribut für „Nachzahlung per Nachnahme“. oder „Pay on fulfillment“. |
Das folgende Beispiel zeigt ein PaymentOptions
-Element:
Beispiel 1
{ "googleProvidedOptions": { "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": { \"merchantId\": \"Merchant ID\", \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [ { \"type\": \"CARD\", \"parameters\": { \"allowedAuthMethods\": [ \"PAN_ONLY\" ], \"allowedCardNetworks\": [ \"VISA\", \"AMEX\", \"MASTERCARD\" ], \"billingAddressRequired\": false }, \"tokenizationSpecification\": { \"type\": \"PAYMENT_GATEWAY\", \"parameters\": { \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\", \"gateway\": \"stripe\", \"stripe:version\": \"2019-05-16\" } } }],\"transactionInfo\": { \"currencyCode\": \"AUD\", \"totalPriceStatus\": \"ESTIMATED\", \"totalPrice\": \"1.0\"}}" } }
Beispiel 2
{ "googleProvidedOptions": { "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": { \"merchantId\": \"Merchant ID\", \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [ { \"type\": \"CARD\", \"parameters\": { \"allowedAuthMethods\": [ \"PAN_ONLY\" ], \"allowedCardNetworks\": [ \"VISA\", \"AMEX\", \"MASTERCARD\" ], \"billingAddressRequired\":true, \"billingAddressParameters\": { \"format\":\"MIN\" } }, \"tokenizationSpecification\": { \"type\": \"PAYMENT_GATEWAY\", \"parameters\": { \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\", \"gateway\": \"stripe\", \"stripe:version\": \"2019-05-16\" } } }],\"transactionInfo\": { \"currencyCode\": \"AUD\", \"totalPriceStatus\": \"ESTIMATED\", \"totalPrice\": \"1.0\"}}" } }
Beispiel 3
{ "actionProvidedOptions": { "paymentType": "ON_FULFILLMENT", "displayName": "Pay when you get your food.", "onFulfillmentPaymentData": { "supportedPaymentOptions": [ "Cash", "Card" ] } } }
PaymentOptionsEnums
Für den Typ PaymentOptionsEnums
sind folgende Werte möglich:
Cash
Card
UPI
Paytm
PaymentType
Für den Typ PaymentType
sind folgende Werte möglich:
PAYMENT_CARD
: Für GoogleProvidedPaymentOptions.ON_FULFILLMENT
: For ActionProvidedPaymentOptions.
SupportedCardNetworks
Definiert Typen fürGoogleProvidedPaymentOptions
.
Für den Typ SupportedCardNetworks
sind folgende Werte möglich:
UNSPECIFIED_CARD_NETWORK
AMEX
DISCOVER
JCB
MASTERCARD
VISA
TokenizationParameters
<ph type="x-smartling-placeholder"> Definiert Typen fürGoogleProvidedPaymentOptions
.
In der folgenden Tabelle sind die Attribute für den Typ TokenizationParameters
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
tokenizationType |
Enum [
"UNSPECIFIED_TOKENIZATION_TYPE",
"PAYMENT_GATEWAY"
] |
Erforderlich. Verwenden Sie stattdessen facilitationSpecification. Tokentyp zulässig. |
|
parameters |
Parameters |
Verwenden Sie stattdessen facilitationSpecification. |
TokenizationSpecification
Mit diesem Objekt können Sie ein Konto für anrechenbare Zahlungsinformationen konfigurieren.
In der folgenden Tabelle sind die Attribute für den Typ TokenizationSpecification
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
type |
Nachst | Erforderlich. |
|
parameters |
Parameters |
Erforderlich. |
Das folgende Beispiel zeigt ein TokenizationSpecification
-Element:
Beispiel 1
{ "type": "PAYMENT_GATEWAY", "parameters": { "gatewayMerchantId": "1247192", "gateway": "cybersource" } }
Beispiel 2
{ "type": "PAYMENT_GATEWAY", "parameters": { "gateway": "stripe", "stripe:version": "2018-10-31", "stripe:publishableKey": "12378127" } }
TransactionInfo
Dieses Objekt beschreibt eine Transaktion, die die Zahlungsfähigkeit eines Zahlungspflichtigen bestimmt. Damit wird ein Dialogfeld für die Zahlungsautorisierung angezeigt.
In der folgenden Tabelle sind die Attribute für den Typ TransactionInfo
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
currencyCode |
String | Erforderlich. Alphabetischer Währungscode gemäß ISO 4217. |
|
transactionId |
String |
Eindeutige ID, die einen Transaktionsversuch identifiziert. Händler können für Google Pay-Transaktionsversuche eine vorhandene ID verwenden oder eine bestimmte generieren. Dieses Feld ist erforderlich, wenn Sie Callbacks an die Google Transaction Events API senden. |
|
totalPriceStatus |
Nachst | Erforderlich. Verwenden Sie „GESCHÄTZT“. als Standard eingerichtet. Der Gesamtpreis wird unter Umständen auf Grundlage der Antwortdetails angepasst, z. B. die anhand einer Rechnungsadresse erhobene Steuer. Wert: |
|
totalPrice |
String | Erforderlich. Der gesamte Geldwert der Transaktion mit optionaler Dezimalgenauigkeit von zwei Dezimalstellen. Dieses Feld sollte denselben Wert wie „cart.totalPrice“ enthalten. |
Das folgende Beispiel zeigt ein TransactionInfo
-Element:
Beispiel
{ "totalPriceStatus": "ESTIMATED", "totalPrice": "12.34", "currencyCode": "USD" }