Basistypen
Sammlung
Enthält Angaben zur Bestellung und gibt an, ob die Bestellung zum Abholen oder Liefern angefordert wird. Ein Einkaufswagen enthält außerdem Lieferdetails, Trinkgeld und die Lieferadresse. Das ObjektCart
ist in einem Checkout AppRequest
definiert. Sie fügen eine Kopie des Einkaufswagens in Ihre Checkout AppResponse
ein.
In der folgenden Tabelle sind die Attribute für den Typ Cart
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
@type |
Konst |
Der Typ dieses Objekts. Lassen Sie dieses Feld weg, wenn das übergeordnete Einkaufswagen-Objekt Teil von ProposeOrder ist. Wert: |
|
id |
String |
Optionale ID des Einkaufswagens. |
|
merchant |
Merchant |
Händler, der mit diesem Einkaufswagen verknüpft ist |
|
lineItems |
Liste<LineItem > |
Erforderlich. Liste der Waren oder Dienstleistungen, die der Nutzer bestellt. Darf nicht weniger als 1 Element enthalten. |
|
promotions |
Liste<Promotion > |
Angebot, das in diesem Einkaufswagen angewendet wird. Derzeit wird nur ein Angebot unterstützt. |
|
notes |
String |
Hinweise zur Bestellung oder Lieferanleitung |
|
extension |
FoodCartExtension |
Definiert Details zum Nutzer, z. B. Einstellungen für die Auftragsausführung. |
Das folgende Beispiel zeigt ein Cart
-Element:
Beispiel 1
{ "@type": "type.googleapis.com/google.actions.v2.orders.Cart", "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Cucina Venti" }, "lineItems": [ { "name": "Sizzling Prawns Dinner", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "16", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }
Beispiel 2
{ "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } }, { "name": "Chicken Shwarma Wrap", "type": "REGULAR", "id": "sample_item_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/offer/id2", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "8" } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Greek Salad", "type": "REGULAR", "id": "sample_item_offer_id_3", "offerId": "https://www.exampleprovider.com/menu/item/offer/id3", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Prawns Biryani", "type": "REGULAR", "id": "sample_item_offer_id_4", "offerId": "https://www.exampleprovider.com/menu/item/offer/id4", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "15", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }
Kontakt
Gibt Details zur Person an, die die Bestellung erhält. Es ist nur inAppResponse
verfügbar.
In der folgenden Tabelle sind die Attribute für den Typ Contact
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
displayName |
String |
Der Name des Empfängers der Bestellung, wie er angezeigt werden soll. Verwenden Sie dieses Feld, wenn „firstName“ und „lastName“ nicht angegeben sind. Beispiel: |
|
email |
String |
E-Mail-Adresse der Person, die die Bestellung erhält. Beispiel: |
|
firstName |
String |
Vorname der Person, die die Bestellung erhält. Beispiel: |
|
lastName |
String |
Nachname der Person, die die Bestellung erhält. Beispiel: |
|
phoneNumber |
String |
Telefonnummer der Person, die die Bestellung erhält, einschließlich der Landesvorwahl. Beispiel: |
|
emailVerified |
Boolesch |
Gibt an, ob die Person, die die Bestellung erhält, mit ihrem Google-Konto angemeldet ist. |
Das folgende Beispiel zeigt ein Contact
-Element:
Beispiel
{ "displayName": "Lovefood Ordering", "email": "ilovefood@example.com", "phoneNumber": "+16501234567" }
Benutzerdefinierte Push-Nachricht
Enthält dieOrderUpdate
für die Anfrage.
In der folgenden Tabelle sind die Attribute für den Typ CustomPushMessage
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
orderUpdate |
OrderUpdate |
Erforderlich. Aktualisierte Informationen für die Bestellung. |
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" } } }
Lieferinformationen
In der folgenden Tabelle sind die Attribute für den Typ DeliveryInfo
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
deliveryTimeIso8601 |
String |
Geschätzte Lieferdauer im Format von ISO 8601-Zeitstempeln: "{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". Beispiel: PT90M stellt eine Dauer von 90 Minuten dar. Der Standardwert PT0M gibt an, dass die bevorzugte Lieferzeit so bald wie möglich ist. Referenz: https://de.wikipedia.org/wiki/ISO_8601#Kombiniertes_Datum und Uhrzeit Hiermit können Sie die geschätzte Lieferdauer während 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:
Property | Typ | Beschreibung | |
---|---|---|---|
predefinedMessage |
PredefinedMessage |
Erforderlich. Beim Bezahlen werden im Haftungsausschluss vordefinierte Nachrichten angezeigt. |
|
feeAmount |
Money |
Der Partner berechnet dem Händler für diese Bestellung eine Gebühr in Höhe von N. |
|
feeAmountRange |
FeeAmountRange |
Der Partner berechnet dem Restaurant eine Gebühr in Höhe von N bis M. |
|
feePercent |
Number |
Der Partner berechnet dem Händler eine N-%-Gebühr für diese Bestellung. |
|
feePercentRange |
FeePercentRange |
Der Partner berechnet dem Händler eine Gebühr in Höhe von N% bis M% pro Bestellung. |
Das folgende Beispiel zeigt ein Disclaimer
-Element:
Beispiel 1
{ "predefinedMessage": "NEW_YORK_DELIVERY_FEE_TIP_DISCLAIMER" }
Beispiel 2
{ "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE" }
Beispiel 3
{ "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE", "feePercent": 25 }
Beispiel 4
{ "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE", "feePercentRange": { "minFeePercent": 20, "maxFeePercent": 30 } }
Beispiel 5
{ "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE", "feeAmount": { "currencyCode": "AUD", "units": 2, "nanos": 500000000 } }
Beispiel 6
{ "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE", "feeAmountRange": { "minFeeAmount": { "currencyCode": "AUD", "units": 2, "nanos": 500000000 }, "maxFeeAmount": { "currencyCode": "AUD", "units": 10, "nanos": 0 } } }
Fehler
Der Typ Error
hat folgende mögliche Werte:
CLOSED
: Das Restaurant ist zum Bestellzeitpunkt geschlossen.NO_CAPACITY
: Es steht keine Servicekapazität zur Verfügung (z. B. ein vorübergehender Ausfall aufgrund von Spitzenzeiten).NO_COURIER_AVAILABLE
: Die Bestellung kann aufgrund eines eingeschränkten Lieferpersonals nicht bearbeitet werden.REQUIREMENTS_NOT_MET
: Die Einschränkungen für die Annahme der Bestellung wurden nicht erfüllt (z. B. die Mindestgröße für den Warenkorb).UNAVAILABLE_SLOT
: Die Bestellung kann nicht zu der im Voraus angegebenen Lieferzeit abgewickelt werden.OUT_OF_SERVICE_AREA
: Die Bestellung kann nicht an die Adresse des Nutzers geliefert werden.PROMO_EXPIRED
: Die Werbeaktion konnte nicht angewendet werden, da das Angebot abgelaufen ist.PROMO_NOT_APPLICABLE
: Generischer Fehlercode, um alle Fälle zu vermeiden, in denen der Gutscheincode nicht angewendet werden kann, wenn keiner der anderen Gutscheincodes passt.PROMO_NOT_RECOGNIZED
: Der Gutscheincode wurde nicht erkannt.PROMO_ORDER_INELIGIBLE
: Für die aktuelle Bestellung ist dieser Gutschein nicht verfügbar.PROMO_USER_INELIGIBLE
: Der aktuelle Nutzer ist nicht berechtigt, diesen Gutschein zu verwenden.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 bei Gebühren oder Gesamtpreisen.INVALID
: Eine Position, FulfillmentOption oder Werbeaktion enthält ungültige Daten.NOT_FOUND
: Eine Position, FulfillmentOption oder eine Werbeaktion wurde nicht gefunden.PRICE_CHANGED
: Der Preis eines Artikels hat sich geändert.
GebührsbetragBereich
In der folgenden Tabelle sind die Attribute für den Typ FeeAmountRange
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
minFeeAmount |
Money |
Die Untergrenze für den Gebührenbetrag wurde in Rechnung gestellt. |
|
maxFeeAmount |
Money |
Die Obergrenze für den Gebührenbetrag wurde in Rechnung gestellt. |
Gebühr in Prozent
In der folgenden Tabelle sind die Attribute für den Typ FeePercentRange
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
minFeePercent |
Number |
Die Untergrenze des Gebührenprozentsatzes wurde berechnet. |
|
maxFeePercent |
Number |
Obergrenze für Gebühr in Prozent. |
Lebensmitteleinkaufswagen-Erweiterung
Enthält Details zum Nutzer, z. B. Einstellungen für die Auftragsausführung.
In der folgenden Tabelle sind die Attribute für den Typ FoodCartExtension
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
@type |
Konst |
Typ der Erweiterung. Dieses Feld ist immer auf "type.googleapis.com/google.actions.v2.orders.FoodCartExtension" festgelegt. Wert: |
|
contact |
Contact |
Kontaktdaten der Person, die die Bestellung erhält. Dazu gehören der Name, die Telefonnummer und die E-Mail-Adresse der Person. |
|
fulfillmentPreference |
FulfillmentOption |
Erforderlich. Auftragsausführung der Nutzer. |
|
location |
Location |
In der CheckoutRequestMessage gibt dieses Feld die Lieferadresse an, die für die Lieferung erforderlich ist. Bei Bestellungen zum Mitnehmen oder zur 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" } }
Lebensmittel-Fehlererweiterung
Kennzeichnet mindestens einen Fehler, der bei der Verarbeitung einer Anfrage aufgetreten ist. In der folgenden Tabelle werden die Felder des TypsFoodErrorExtension
beschrieben.
Fehler können in einem CheckoutResponse
gesendet werden.
In der folgenden Tabelle sind die Attribute für den Typ FoodErrorExtension
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
@type |
Konst | Erforderlich. Typ der Erweiterung. Wert: |
|
foodOrderErrors |
Liste<FoodOrderError > |
Erforderlich. Array von FoodOrderError-Objekten, die die aufgetretenen Fehler beschreiben Empfohlener Fehler pro Einkaufswagen oder Artikel. Darf nicht weniger als 1 Element enthalten. |
|
correctedProposedOrder |
ProposedOrder |
Erforderlich, wenn Ein neuer vorgeschlagener Auftrag mit Korrekturen. Gibt dieses Objekt zurück, wenn in der ursprünglichen ProposeOrder-Klasse wiederholbare Fehler enthalten sind. Beispielsweise ist eine Preisänderung für eine oder mehrere Positionen im Einkaufswagen ein behebbarer Fehler. Wiederherstellbare Fehler mit einem gültigen ProOrderOrder werden in die Bestätigungsphase eingespeist, sodass der Nutzer seinen Einkaufswagen nicht überprüfen muss. |
|
paymentOptions |
PaymentOptions |
Erforderlich, wenn Standard-Zahlungsoptionen für den Nutzer ausgewählt. |
|
additionalPaymentOptions |
Liste<PaymentOptions > |
Alternative Zahlungsoptionen für Nutzer |
Das folgende Beispiel zeigt ein FoodErrorExtension
-Element:
Beispiel
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodErrorExtension", "foodOrderErrors": [ { "error": "PRICE_CHANGED", "id": "sample_item_offer_id_1", "description": "The price has changed.", "updatedPrice": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, { "error": "PRICE_CHANGED", "id": "sample_item_offer_id_2", "description": "The price has changed.", "updatedPrice": { "currencyCode": "USD", "units": "8" } } ], "correctedProposedOrder": { "id": "sample_corrected_proposed_order_id_1", "otherItems": [ { "name": "New customer discount", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "-5", "nanos": -500000000 } }, "type": "DISCOUNT" }, { "name": "Delivery fee", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } }, "type": "DELIVERY" }, { "name": "Tax", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 500000000 } }, "type": "TAX" } ], "cart": { "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } }, { "name": "Chicken Shwarma Wrap", "type": "REGULAR", "id": "sample_item_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/offer/id2", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "8" } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Greek Salad", "type": "REGULAR", "id": "sample_item_offer_id_3", "offerId": "https://www.exampleprovider.com/menu/item/offer/id3", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Prawns Biryani", "type": "REGULAR", "id": "sample_item_offer_id_4", "offerId": "https://www.exampleprovider.com/menu/item/offer/id4", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "15", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }, "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "36", "nanos": 730000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ] } }, "paymentOptions": { "googleProvidedOptions": { "tokenizationParameters": { "tokenizationType": "PAYMENT_GATEWAY", "parameters": { "gateway": "stripe", "stripe:publishableKey": "pk_live_stripe_client_key", "stripe:version": "2017-04-06" } }, "supportedCardNetworks": [ "AMEX", "DISCOVER", "MASTERCARD", "JCB", "VISA" ], "prepaidCardDisallowed": true } } }
Lebensmittelerweiterung
Definiert Add-ons für Lebensmittel.
In der folgenden Tabelle sind die Attribute für den Typ FoodItemExtension
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
@type |
Konst | Erforderlich. Typ der 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 } ] } ] }
Lebensmitteloption
In der folgenden Tabelle sind die Attribute für den Typ FoodItemOption
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
id |
String |
Eindeutige ID, die von Google zugewiesen wird. Verwenden Sie dieses Feld beim Senden eines FoodOrderError- oder AsyncOrderUpdateRequest-Felds zur Unterscheidung in Fällen, in denen ein Einkaufswagen mehrere Artikel mit derselben „offerId“ enthält. Beispiel: |
|
offerId |
String |
Die Angebots-ID des Artikels. Beispiel: |
|
name |
String |
Der Name der Option. Beispiel: |
|
price |
Money |
||
note |
String |
Hinweis zur 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 } ] }
Fehler bei Essensbestellung
Enthält Details zu Fehlern in einemCheckoutResponse
.
In der folgenden Tabelle sind die Attribute für den Typ FoodOrderError
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
error |
Error |
Erforderlich. |
|
id |
String | Erforderlich, wenn Dieses Feld ist für Fehler auf Artikelebene erforderlich. Das ist die von Google zugewiesene „LineItem.id“ für Menüelemente oder „FoodItemOption.id“ für Add-ons. |
|
description |
String |
Beschreibung des Fehlers. Diese Beschreibung dient der internen Protokollierung und ist für Nutzer nicht sichtbar. |
|
updatedPrice |
Money |
Erforderlich, wenn Neuer Preis eines Artikels, der den Fehler verursacht hat Nur erforderlich, wenn der Fehler "PRICE_CHANGED" lautet. |
|
availableQuantity |
Ganzzahl | Erforderlich, wenn Neue verfügbare Menge des Artikels, der den Fehler verursacht hat. Nur erforderlich, wenn der Fehler "INVALID" oder "NOT_FOUND" lautet. Der Wert sollte für "INVALID" und "NOT_FOUND" null sein. |
Das folgende Beispiel zeigt ein FoodOrderError
-Element:
Beispiel 1
{ "error": "CLOSED", "description": "This store is currently reachable. Please try again later." }
Beispiel 2
{ "error": "PRICE_CHANGED", "id": "french_fries", "description": "The price has changed.", "updatedPrice": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }
FoodOrderExtension
Enthält Informationen zur Auftragsausführung der Bestellung.
In der folgenden Tabelle sind die Attribute für den Typ FoodOrderExtension
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
@type |
Konst |
Typ der Erweiterung. Dieses Feld ist immer auf "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension" festgelegt. Wert: |
|
availableFulfillmentOptions |
Liste<FulfillmentOption > |
Stellt verfügbare Optionen für die Auftragsausführung für den Auftrag dar. |
|
optinForRemarketing |
Boolesch |
Nutzeranfrage zur Aktivierung Ihrer Marketingkanäle. Standardmäßig dürfen Sie keine Marketinginhalte ohne Nutzereinwilligung senden. Wenn „optForForRemarketing“ auf „true“ gesetzt ist, können Sie den Nutzer abonnieren. Wenn „optforForRemarketing“ auf „false“ gesetzt oder nicht vorhanden ist, müssen Sie den Abostatus in Ihrem System beibehalten. Nutzer können die Option nicht über Google deaktivieren, sondern nur über die entsprechende Abofunktion in Ihren Marketingkanälen. Dieses Flag ist nur in "SubmitOrderRequestMessage" vorhanden. |
Das folgende Beispiel zeigt ein FoodOrderExtension
-Element:
Beispiel 1
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ] }
Beispiel 2
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } }, "expiresAt": "2020-08-20T11:41:00Z" } ], "optinForRemarketing": true }
Fulfillment-Option
Sie können einFulfillmentOption
-Objekt so verwenden:
-
In
Checkout AppRequest
undSubmit AppRequest
wird inCart.extension.fulfillmentPreference
: die Einstellung des Nutzers (Lieferung oder Abholung) gespeichert. Der Preis ist immer 0, wenn die Zahlungsanforderung gesendet wird. -
In
Checkout AppResponse
definiertProposedOrder.extension.availableFulfillmentOptions
eine oder mehrere Lieferoptionen (derzeit wird nur eine Option unterstützt). Die Standardoption geben Sie alsLineItem
inProposedOrder.otherItems
an. DieofferId
vonFulfillmentOption
sollte mit der ID vonLineItem
übereinstimmen, die inProposedOrder.otherItems
angegeben ist.
In der folgenden Tabelle sind die Attribute für den Typ FulfillmentOption
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
offerId |
String |
Eindeutige Kennung für diese Auftragsausführungsoption, falls vorhanden. |
|
fulfillmentInfo |
FulfillmentOptionInfo |
Erforderlich. |
|
expiresAt |
ISO-Zeitstempel |
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 } }
Informationen zur Auftragsausführung
Definiert Informationen im Zusammenhang mitFulfillmentInfo
.
In der folgenden Tabelle sind die Attribute für den Typ FulfillmentOptionInfo
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
Genau eine der folgenden Gruppen von Properties ist erforderlich. | |||
delivery |
Gruppe 1 | DeliveryInfo |
Falls vorhanden, zeigt diese an. |
pickup |
Gruppe 2 | PickupInfo |
Falls vorhanden, gibt das einen Abholauftrag an. |
Bild
In der folgenden Tabelle sind die Attribute für den Typ Image
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
sourceUrl |
String | Erforderlich. URL für das Bild. Das Bild muss mindestens 72 × 72 Pixel groß sein. Die besten Ergebnisse erzielen Sie mit Bildern, die mindestens 216 × 216 Pixel groß sind. 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 Auftrag (ProposedOrder.otherItems
).
In der folgenden Tabelle sind die Attribute für den Typ LineItem
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
id |
String | Erforderlich, wenn Für eine Position in einem Einkaufswagen (ProposeOrder.cart.lineItems[0].id) ist dies die eindeutige ID, die von Google beim Erstellen des Auftrags erstellt wird. Der Wert der ID für eine Position in einem ProOrderOrder (ProprovidedOrder.otherItems[0].id), mit der Artikel wie Liefergebühren und Steuern hinzugefügt werden, wird vom Anbieter definiert. Beispiel: In einem Einkaufswagen befinden sich zwei identische Artikel mit unterschiedlichen Zubereitungsanleitungen, z. B. zwei mittelgroße Pizzen mit unterschiedlicher Garnierung. In diesem Fall haben beide Artikel dieselbe Basis-Angebots-ID. Wenn Sie eine Anfrage zur Bestellaktualisierung senden, um anzugeben, dass ein Artikel abgelehnt wurde, verwenden Sie diese ID als Unterscheidungsmerkmal. Das heißt, wenn eine der Pizzen abgelehnt wird, weil ein bestimmter Belag fehlt, kann die ID Google dabei helfen, den Artikel in der Reihenfolge zu ermitteln, auf die Sie sich beziehen. Dieses Feld ist mit Ausnahme von anderen Elementen erforderlich. |
|
name |
String | Erforderlich. Name der Position Dieser String ist für den Nutzer sichtbar und sollte nach Möglichkeit im Groß- und Kleinschreibung formuliert werden, z. B. „Liefergebühr“ und „Servicegebühr“. 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 ProposeOrder.otherItems. |
|
description |
String |
Beschreibung des Artikels. |
|
price |
Price |
Erforderlich. Der Preis des Artikels oder der Artikel. Dieser Wert stellt den Gesamtpreis aller Waren oder Dienstleistungen für diese Position dar. Addieren Sie also die Kosten aller Add-ons und multiplizieren Sie sie mit der Menge. 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 Add-on für 1 $beträgt der Preis 6 $. Für zwei Pizzen (Menge = 2) mit einem Grundpreis von 5 $und jeweils mit einem Add-on für 1 $beträgt der Preis 12 $. Jede Position sollte einen Preis haben, auch wenn der Preis "0" ist. Wenn der Typ DISCOUNT ist, geben Sie den Wert als negativ an (z. B. "-2"). |
|
subLines |
Liste<SublineNote > |
Optional und nur gültig, wenn der Typ "REGULAR" ist. In diesem Feld kann ein artikelspezifischer Hinweis des Nutzers in der Zahlungs- und Bestellanfrage enthalten sein. Achten Sie darauf, dass der Händler den Hinweis erhält, wenn er zur Verfügung gestellt wird. Es ist in der Anfrage als subLines[0].note enthalten. Dies ist der einzige Wert in diesem Feld, 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 ProposeOrder.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 } ] } }
Werbebuchungstyp
Der Typ LineItemType
hat folgende mögliche Werte:
REGULAR
: Werbebuchung für Waren. Gilt für Cart.lineItems.TAX
: Steuerposition. Gilt für PropositionOrder.otherItems.DISCOUNT
: Werbebuchung mit Rabatt. Der Preis sollte negativ sein. Gilt für PropositionOrder.otherItems.GRATUITY
: Werbebuchung vom Typ „Schwerpunkt“. Dieser Wert ist im Allgemeinen für die vom Nutzer ausgewählte Tipp „SubmitOrderRequestMessage“ reserviert. Gilt für PropositionOrder.otherItems.DELIVERY
: Auslieferungswerbebuchung. Gilt für PropositionOrder.otherItems.SUBTOTAL
: Zwischensumme der Werbebuchung. Gilt für PropositionOrder.otherItems.FEE
: Zusätzliche Werbebuchung, die nicht von den anderen Typen abgedeckt wird. Gilt für PropositionOrder.otherItems.
Standort
Gibt eine Adresse für Essensbestellungen an. Der TypLocation
wird in einem Cart
verwendet, um das Ziel eines Lieferauftrags anzugeben.
Der endgültige Standort ist auch in TransactionDecisionValue
vorhanden, wenn der Nutzer die Bestellung aufgibt. Bei Bestellungen mit Abholoption wird ein Standort überhaupt nicht oder gar nicht angegeben.
In der folgenden Tabelle sind die Attribute für den Typ Location
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
coordinates |
Coordinates |
||
formattedAddress |
String |
Angezeigte Adresse des Standorts. Beispiel: |
|
postalAddress |
PostalAddress |
||
zipCode |
String |
Beispiel: |
|
city |
String |
Der Name der Stadt. Beispiel: |
|
notes |
String |
Hinweise zum Standort, z. B. Gatecodes Sie darf maximal 500 Zeichen umfassen. Beispiel: |
Das folgende Beispiel zeigt ein Location
-Element:
Beispiel
{ "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" }
Händler
In der folgenden Tabelle sind die Attribute für den Typ Merchant
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
id |
String |
Die ID des Händlers. Wenn dieses Flag angegeben ist, wird es mit „Restaurant.@id“ im Restaurantfeed abgeglichen. Beispiel: |
|
name |
String | Erforderlich. Für den 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" }
Money
In der folgenden Tabelle sind die Attribute für den Typ Money
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
currencyCode |
String | Erforderlich. Ein dreistelliger Währungscode im Format ISO 4217. Beispiel: |
|
units |
String |
Die ganzen Einheiten des Betrags. Beispiel: Wenn currencyCode "USD" ist, dann ist "1" Einheit ein US-Dollar. Beispiel: |
|
nanos |
Ganzzahl |
Anzahl der Nanoeinheiten (10^-9) des Betrags. Der Wert muss zwischen -999.999.999 und +999.999.999 liegen. Verwenden Sie die folgenden Regeln: Wenn die Einheiten positiv sind, müssen die Nanos positiv oder null sein. Wenn „units“ null ist, können die Nanoeinheiten positiv, null oder negativ sein. Wenn „units“ negativ ist, müssen die Nanos negativ oder null sein. Beispiel: -1,75 $ wird mit den Einheiten = -1 und Nanos = -750.000.000 dargestellt. Beispiel: |
Das folgende Beispiel zeigt ein Money
-Element:
Beispiel 1
{ "currencyCode": "USD", "units": "36", "nanos": 730000000 }
Beispiel 2
{ "currencyCode": "EUR", "units": "10" }
Bestellen
Enthält die endgültige Bestellung, einschließlich Steuern, Gebühren und Lieferkosten sowie Zahlungsinformationen. Dieses Objekt wird von Ihrer Aktion in einemSubmit AppRequest
empfangen.
In der folgenden Tabelle sind die Attribute für den Typ Order
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
finalOrder |
ProposedOrder |
Erforderlich. Der vorgeschlagene Auftrag, der den Auftrag verursacht hat. |
|
googleOrderId |
String | Erforderlich. Die von Google zugewiesene Bestell-ID. Diese ID sollte für den gesamten Lebenszyklus eines Auftrags gleich sein. Diese ID ist für den Endnutzer nicht sichtbar. |
|
orderDate |
ISO-Zeitstempel | Erforderlich. Datum und Uhrzeit der Auftragserstellung. |
|
paymentInfo |
PaymentInfo |
Erforderlich. Zahlungsinformationen, die der Zahlung für diese Bestellung entsprechen. |
Das folgende Beispiel zeigt ein Order
-Element:
Beispiel
{ "finalOrder": { "cart": { "notes": "Guest prefers their food to be hot when it is delivered.", "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Cucina Venti" }, "lineItems": [ { "name": "Sizzling Prawns Dinner", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "16", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } } }, "contact": { "displayName": "Lovefood Ordering", "email": "ilovefood@example.com", "phoneNumber": "+16501234567" } } }, "otherItems": [ { "name": "Service fee", "type": "FEE", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } } }, { "name": "Tax", "type": "TAX", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 370000000 } } }, { "name": "Tip", "type": "GRATUITY", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 590000000 } } } ], "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "23", "nanos": 710000000 } }, "id": "sample_final_order_id", "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ], "optinForRemarketing": true } }, "googleOrderId": "sample_google_order_id", "orderDate": "2017-07-17T12:00:00Z", "paymentInfo": { "displayName": "Visa\u2006****\u20061111", "googleProvidedPaymentInstrument": { "instrumentToken": "abcd" }, "paymentType": "PAYMENT_CARD" } }
Update zur Bestellung
In der folgenden Tabelle werden die Felder des OrderUpdate-Typs beschrieben, der inAppResponse
enthalten ist.
In der folgenden Tabelle sind die Attribute für den Typ OrderUpdate
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
actionOrderId |
String | Erforderlich. Eindeutige ID der Bestellung im System, mit der die Bestellung identifiziert wird, für die das Update gesendet wird. Wenn beleg.user_visible_order_id nicht mindestens einmal in OrderUpdate für eine CREATED-Bestellung angegeben wird, ist diese ID die für den Nutzer sichtbare ID, die auf der Google-Bestellkarte angezeigt wird. |
|
orderState |
OrderState |
Erforderlich. Der neue Status der Bestellung. |
|
lineItemUpdates |
Karte<String, LineItemUpdate > |
||
updateTime |
ISO-Zeitstempel | Erforderlich. Der Zeitpunkt, zu dem die Bestellung aktualisiert wurde. |
|
orderManagementActions |
Liste<OrderManagementAction > |
Nachbestellte Aktionen, z. B. Kontakt zum Support oder Aufrufen von Bestelldetails Darf nicht weniger als 1 Element und höchstens 6 Elemente enthalten. |
|
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 der Bestellaktualisierung, z. B. das Intervall für die voraussichtliche Lieferung oder Abholung. |
Das folgende Beispiel zeigt ein OrderUpdate
-Element:
Beispiel
{ "actionOrderId": "sample_action_order_id", "orderState": { "state": "CONFIRMED", "label": "Provider confirmed" }, "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "41", "nanos": 600000000 } }, "lineItemUpdates": { "sample_item_id_1": { "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } }, "reason": "This item has an updated price." } }, "receipt": { "userVisibleOrderId": "userVisibleId1234" }, "updateTime": "2017-07-17T12:00:00Z", "orderManagementActions": [ { "type": "CUSTOMER_SERVICE", "button": { "title": "Contact customer service", "openUrlAction": { "url": "mailto:support@example.com" } } }, { "type": "EMAIL", "button": { "title": "Email restaurant", "openUrlAction": { "url": "mailto:person@example.com" } } }, { "type": "CALL_RESTAURANT", "button": { "title": "Call restaurant", "openUrlAction": { "url": "tel:+16505554679" } } } ], "infoExtension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension", "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z" } }
Abholinformationen
In der folgenden Tabelle sind die Attribute für den Typ PickupInfo
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
pickupTimeIso8601 |
String |
Geschätzte Abholzeit im ISO-8601-Zeitstempelformat: "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" oder Dauerformat: "P(n)Y(n)M(n)DT(n)H(n)M(n)S". Beispiel: PT90M stellt eine Dauer von 90 Minuten dar. Der Standardwert PT0M gibt an, dass die bevorzugte Abholzeit schnellstmöglich ist. Referenz: https://de.wikipedia.org/wiki/ISO_8601#Kombiniertes_Datum und Uhrzeit Hiermit können Sie die geschätzte Abholzeit während der Kasse angeben. Beispiel: |
Das folgende Beispiel zeigt ein PickupInfo
-Element:
Beispiel
{ "pickupTimeIso8601": "PT90M" }
PostalAddress
In der folgenden Tabelle sind die Attribute für den Typ PostalAddress
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
regionCode |
String | Erforderlich. Ein zweistelliger 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. Das kann ein Bundesland, eine Provinz, ein Oblast oder eine Präfektur sein. Beispiel: |
|
locality |
String |
Die Stadt oder der Ort für diesen Ort. Geben Sie in Regionen der Welt, in denen Orte nicht genau definiert sind oder nicht dieser Struktur entsprechen, keinen Ort an. Verwenden Sie stattdessen das Feld "addressLines". Beispiel: |
|
addressLines |
Liste<String> |
Eine oder mehrere Zeilen, in denen Sie die Adresse angeben können. Dieses Feld sollte nicht geändert werden, da es unklare Angaben enthalten kann. Beispiel: |
|
recipients |
Liste<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:
Property | 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:
Property | Typ | Beschreibung | |
---|---|---|---|
coupon |
String | Erforderlich. Der Gutscheincode. |
Vorgeschlagene Bestellung
In der folgenden Tabelle sind die Attribute für den Typ ProposedOrder
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
id |
String |
Optionale ID für den vorgeschlagenen Auftrag. |
|
cart |
Cart |
Erforderlich. Elemente des Nutzers |
|
otherItems |
Liste<LineItem > |
Vom Anbieter hinzugefügte Artikel wie Liefergebühren, andere Gebühren und Steuern. otherItems können auch Trinkgeld und/oder Rabatt enthalten, der vom Nutzer hinzugefügt wurde. Darf nicht mehr als 10 Elemente enthalten. |
|
image |
Image |
Mit dem vorgeschlagenen Auftrag verknüpftes Bild. |
|
totalPrice |
Price |
Erforderlich. Gesamtpreis des vorgeschlagenen Auftrags. |
|
extension |
FoodOrderExtension |
Erforderlich. Definiert Informationen zur Auftragsausführung für Essensbestellungen. |
|
disclaimers |
Liste<Disclaimer > |
Korrespondiert mit Haftungsausschlüssen, die vor der Aufgabe 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" } ] } }
Unterüberschrift
In der folgenden Tabelle sind die Attribute für den Typ SublineNote
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
note |
String | Erforderlich. |
Zeitstempel
Datum und Uhrzeit im folgenden Format:
"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
Transaktionsentscheidwert
Enthält dieOrder
.
In der folgenden Tabelle sind die Attribute für den Typ TransactionDecisionValue
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
order |
Order |
Erforderlich. Bestellung mit Zahlungsdetails senden. |
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" } } }
Anfrage zur Auftragsausführung
App-Anfrage
In der folgenden Tabelle sind die Attribute für den Typ AppRequest
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
isInSandbox |
Boolesch |
Gibt an, ob die nachfolgenden Transaktionen in einer Sandbox-Umgebung ausgeführt werden. |
|
conversation |
Conversation |
||
inputs |
Liste<Input > |
Erforderlich. Enthält die erwarteten Argumente für den Bezahlvorgang mit Einkaufswagen. 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" } } } } ] } ] }
Nachricht zur Zahlungsanforderung
CheckoutRequestMessage
ist ein AppRequest
mit dem Intent actions.foodordering.intent.CHECKOUT
.
Nachricht zur Bestellanforderung
SubmitOrderRequestMessage
ist ein AppRequest
mit dem Intent actions.foodordering.intent.TRANSACTION_DECISION
.
Unterhaltung
EineConversation
ist nur für eine Sitzung eindeutig. Sie können damit bei Bedarf mehrere Aktionen vom Typ Checkout
und SubmitOrder
verknüpfen.
In der folgenden Tabelle sind die Attribute für den Typ Conversation
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
conversationId |
String | Erforderlich. Eindeutige ID für die Unterhaltung. |
Das folgende Beispiel zeigt ein Conversation
-Element:
Beispiel
{ "conversationId": "CQnJ7Z4i7UmvEZ9ph3AxyZRJ" }
Eingabe
Die erwarteten Argumente für den Bezahlvorgang mit Einkaufswagen.
In der folgenden Tabelle sind die Attribute für den Typ Input
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
intent |
Enum [
"actions.foodordering.intent.CHECKOUT",
"actions.intent.TRANSACTION_DECISION"
] |
Erforderlich. Auf "actions.foodordering.intent.CHECKOUT" für Zahlungsanforderung ODER "actions.intent.TRANSACTION_DECISION" für Nachricht zur Anforderung der Bestellung gesetzt. |
|
arguments |
Liste<Argument > |
Erforderlich. Enthält den zu bezahlenden Einkaufswagen oder die Bestellung, die aufgegeben werden soll Muss genau 1 Element enthalten. |
Argument
Enthält Details zu den Speisen, die der Nutzer sich ansehen möchte. Beim Bezahlen gilt nur die Erweiterung. Beim Einreichen einer Bestellung ist nur „transactionEntscheidungValue“ zulässig
In der folgenden Tabelle sind die Attribute für den Typ Argument
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
Genau eine der folgenden Gruppen von Properties ist erforderlich. | |||
extension |
Gruppe 1 | Cart |
Gibt die Lebensmittel an, die der Nutzer ansehen möchte. |
transactionDecisionValue |
Gruppe 2 | TransactionDecisionValue |
Enthält die Bestellung, die zusammen mit den Zahlungsdetails aufgegeben werden soll. |
Antwort zur Auftragsausführung
AppResponse
In der folgenden Tabelle sind die Attribute für den Typ AppResponse
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
expectUserResponse |
Konst |
Wird auf „false“ gesetzt. Wert: |
|
finalResponse |
FinalResponse |
Erforderlich. Enthält Ihre Antwort auf den Warenkorb |
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 } } } } } ] } } }
Antwort zur Kasse
EinCheckoutResponseMessage
ist ein AppResponse
mit einem checkoutResponse
oder error
in der StructuredResponse
.
OrderOrderResponseMessage
EinSubmitOrderResponseMessage
ist ein AppResponse
mit einem orderUpdate
in der StructuredResponse
.
Endgültige Antwort
Ihre Antwort auf den Einkaufswagen oder „SubmitOrderRequestMessage“.
In der folgenden Tabelle sind die Attribute für den Typ FinalResponse
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
richResponse |
RichResponse |
Erforderlich. Enthält Ihre Antwort auf "CheckoutRequestMessage" oder "SubmitOrderRequestMessage" |
Antwort zur Kasse
In der folgenden Tabelle sind die Attribute für den Typ CheckoutResponse
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
proposedOrder |
ProposedOrder |
Erforderlich. Vorgeschlagener Auftrag für die Transaktion. |
|
paymentOptions |
PaymentOptions |
Erforderlich. Standard-Zahlungsoption für den Nutzer ausgewählt. |
|
additionalPaymentOptions |
Liste<PaymentOptions > |
Alternative Zahlungsoptionen für Nutzer |
Das folgende Beispiel zeigt ein CheckoutResponse
-Element:
Beispiel
{ "proposedOrder": { "id": "sample_proposed_order_id_1", "otherItems": [ { "name": "New customer discount", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "-5", "nanos": -500000000 } }, "type": "DISCOUNT" }, { "name": "Delivery fee", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } }, "type": "DELIVERY" }, { "name": "Tax", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 500000000 } }, "type": "TAX" } ], "cart": { "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } }, { "name": "Chicken Shwarma Wrap", "type": "REGULAR", "id": "sample_item_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/offer/id2", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "8" } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Greek Salad", "type": "REGULAR", "id": "sample_item_offer_id_3", "offerId": "https://www.exampleprovider.com/menu/item/offer/id3", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Prawns Biryani", "type": "REGULAR", "id": "sample_item_offer_id_4", "offerId": "https://www.exampleprovider.com/menu/item/offer/id4", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "15", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }, "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "36", "nanos": 730000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ] } }, "paymentOptions": { "googleProvidedOptions": { "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": { \"merchantId\": \"Merchant ID\", \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [ { \"type\": \"CARD\", \"parameters\": { \"allowedAuthMethods\": [ \"PAN_ONLY\" ], \"allowedCardNetworks\": [ \"VISA\", \"AMEX\", \"MASTERCARD\" ], \"billingAddressRequired\": false }, \"tokenizationSpecification\": { \"type\": \"PAYMENT_GATEWAY\", \"parameters\": { \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\", \"gateway\": \"stripe\", \"stripe:version\": \"2019-05-16\" } } }],\"transactionInfo\": { \"currencyCode\": \"AUD\", \"totalPriceStatus\": \"ESTIMATED\", \"totalPrice\": \"1.0\"}}" } }, "additionalPaymentOptions": [ { "actionProvidedOptions": { "paymentType": "ON_FULFILLMENT", "displayName": "Cash on delivery." } } ] }
Artikel
Enthält Ihre Antwort auf einen Einkaufswagen oder „SubmitOrderRequestMessage“
In der folgenden Tabelle sind die Attribute für den Typ Item
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
structuredResponse |
StructuredResponse |
Erforderlich. |
RichResponse
Enthält Ihre Antwort auf einen Kaufabschluss im Einkaufswagen.
In der folgenden Tabelle sind die Attribute für den Typ RichResponse
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
items |
Liste<Item > |
Erforderlich. Muss genau 1 Element enthalten. |
Strukturierte Antwort
Für CheckoutResponseMessage kann es sich um einen der folgenden Werte handeln: CheckoutResponse Zeigt an, dass der Kaufvorgang erfolgreich war. ODER FoodErrorExtension: Gibt an, dass beim Bezahlen ein Fehler aufgetreten ist. Die Antwort kann einen korrigierten PropositionOrder und PaymentOptions oder eine Fehlermeldung ohne PaymentOptions enthalten. Für „SubmitOrderResponseMessage“ ist nur „orderUpdate“ verfügbar.
In der folgenden Tabelle sind die Attribute für den Typ StructuredResponse
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
Genau eine der folgenden Gruppen von Properties ist erforderlich. | |||
checkoutResponse |
Gruppe 1 | CheckoutResponse |
Artikel mit Kassengebühren sowie Steuern und Rabatte. |
error |
Gruppe 2 | FoodErrorExtension |
In den Einkaufswagen-Artikeln sind Fehler aufgetreten. Je nach Art des Fehlers kann diese Property einen korrigierten ProOrderOrder und PaymentOptions oder eine Fehlermeldung ohne PaymentOptions enthalten. |
orderUpdate |
Gruppe 3 | OrderUpdate |
Asynchrone Bestellaktualisierungen
In diesem Abschnitt werden die allgemeinen Typen beschrieben, aus denen die Anfragen und Antworten einer typischen Interaktion mit Essensbestellungen bestehen.AsyncOrderUpdateRequestMessage
Der Nutzer wird über Änderungen informiert, nachdem eine Bestellung eingereicht und bestätigt wurde. Beispielsweise können Sie den Nutzer darüber informieren, dass die Bestellung unterwegs ist oder sich der Preis geändert hat. Weitere Informationen erhalten Sie unter:In der folgenden Tabelle sind die Attribute für den Typ AsyncOrderUpdateRequestMessage
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
isInSandbox |
Boolesch |
Gibt an, dass die Bestellung, für die dieses Update gesendet wurde, eine Sandbox-Zahlung ist. |
|
customPushMessage |
CustomPushMessage |
Erforderlich. Enthält das OrderUpdate für die 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 duAsyncOrderUpdateRequestMessage
gesendet hast, antwortet Google mit dem HTTP 200-Status und mit einem leeren Textkörper. Wenn die Aktualisierung fehlgeschlagen ist, gibt Google an, warum die Bestellaktualisierung fehlgeschlagen ist.
Arten von Bestellaktualisierungen
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:
Property | Typ | Beschreibung | |
---|---|---|---|
title |
String | Erforderlich. Das Displaylabel. Verwenden Sie die korrekte Groß- und Kleinschreibung von 30 Zeichen oder weniger, um ein korrektes Rendering zu gewährleisten. Beispiel: |
|
openUrlAction |
OpenUrlAction |
Erforderlich. |
Das folgende Beispiel zeigt ein Button
-Element:
Beispiel
{ "title": "Send us feedback", "openUrlAction": { "url": "mailto:person@example.com" } }
Stornierungsinformationen
In der folgenden Tabelle sind die Attribute für den Typ CancellationInfo
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
reason |
String | Erforderlich. Angezeigter Textgrund für die Ablehnung, wenn OrderState.state "CANCELLED" ist. Beispiel: |
Das folgende Beispiel zeigt ein CancellationInfo
-Element:
Beispiel
{ "reason": "Insufficient inventory" }
FoodOrderUpdate-Erweiterung
Bei diesem Typ stellt der Nutzer ein geschätztes Intervall für die Lieferung oder Abholung bereit. Senden Sie diese Erweiterung in einer OrderUpdate
, wenn die Informationen verfügbar sind oder sich seit dem letzten Senden geändert haben.
Geben Sie eine konservative Schätzung für das Auftragsausführungsintervall an, damit die Nutzererwartungen konstant erfüllt werden. Beispiel: Wenn die Bestellung voraussichtlich heute um 13:00 Uhr ausgeliefert wird, sollten Sie ein geschätztes Intervall senden, das den Abweichungen aufgrund der Verkehrslage entspricht, z. B. heute um 12:45 Uhr bis 13:15 Uhr.
Eine ISO 8601-Dauer oder ein Zeitstempel wird als Intervall von updateTime
des OrderUpdate
(im Wesentlichen "now") zur updateTime
plus duration
interpretiert.
Verwenden Sie dieses Format nur, wenn „nicht“ tatsächlich eine angemessene Erwartung ist.
Ein Intervall nach ISO 8601 ist definiert als das Intervall vom Beginn bis zum Ende des Intervalls.
In der folgenden Tabelle sind die Attribute für den Typ FoodOrderUpdateExtension
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
@type |
Konst |
Typ der 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 oder abgeholt werden kann. Der String muss im ISO-8601-Format vorliegen und muss einem Intervall und nicht einer festen Zeit entsprechen. Zulässige Konventionen sind Intervalle, Dauer und Daten/Uhrzeiten. Dieses Feld kann in „SubmitOrderResponseMessage“ oder „AsyncOrderUpdateRequestMessage“ gesendet werden, wenn die Informationen verfügbar sind oder sich eine Änderung ergibt, z. B. frühzeitige oder verspätete Lieferungen. Beispiel: |
|
foodOrderErrors |
Liste<FoodOrderError > |
Beschreibt die Fehler, die nach der Reihenfolge aufgetreten sind. Empfohlener Fehler pro Einkaufswagen oder Artikel. Verwenden Sie FoodOrderUpdateExtension.FoodOrderErrors für Fehler, die nicht von RejectedionInfo abgedeckt werden. Darf nicht weniger als 1 Element enthalten. |
Das folgende Beispiel zeigt ein FoodOrderUpdateExtension
-Element:
Beispiel 1
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension", "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z" }
Beispiel 2
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension", "foodOrderErrors": [ { "error": "NO_CAPACITY", "description": "Sorry, the restaurant cannot take your order right now." } ] }
FulfillmentInfo
In der folgenden Tabelle sind die Attribute für den Typ FulfillmentInfo
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
Genau eine der folgenden Gruppen von Properties ist erforderlich. | |||
deliveryTime |
Gruppe 1 | ISO-Zeitstempel |
GeschätzteAuftragsausführungZeitIso8601 in FoodOrderingUpdateExtension-Nachricht verwenden |
pickupTime |
Gruppe 2 | ISO-Zeitstempel |
GeschätzteAuftragsausführungZeitIso8601 in FoodOrderingUpdateExtension-Nachricht 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" }
Informationen zu öffentlichen Verkehrsmitteln
In der folgenden Tabelle sind die Attribute für den Typ InTransitInfo
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
updatedTime |
ISO-Zeitstempel |
GeschätzteAuftragsausführungZeitIso8601 in FoodOrderingUpdateExtension-Nachricht verwenden |
Das folgende Beispiel zeigt ein InTransitInfo
-Element:
Beispiel
{ "updatedTime": "2017-05-10T02:36:38.803Z" }
Position aktualisieren
In der folgenden Tabelle sind die Attribute für den Typ LineItemUpdate
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
orderState |
OrderState |
||
price |
Price |
||
reason |
String |
Grund für die Änderung. Erforderlich für Preisänderungen. |
Das folgende Beispiel zeigt ein LineItemUpdate
-Element:
Beispiel
{ "orderState": { "state": "CONFIRMED", "label": "Provider confirmed" }, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "5", "nanos": 500000000 } }, "reason": "Menu updated prices." }
OpenUrlAction
In der folgenden Tabelle sind die Attribute für den Typ OpenUrlAction
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
url |
String | Erforderlich. Die Aktion, die durch Klicken oder Tippen auf die Schaltfläche ausgelöst wird Die Liste der anwendbaren Präfixe hängt von orderManagementActionType ab. "EMAIL": Das Präfix muss "mailto" lauten. "CALL": Das Präfix muss "tel" sein. "CUSTOMER_SERVICE": Das Präfix muss "mailto", "tel", "http" oder "https" sein. Beispiel: |
OrderManagementAction
Mit der Bestellverwaltung können Nutzer Support nach der Bestellung erhalten. Sie sollten in jeder OrderUpdate
innerhalb der Bestellreihenfolge AppResponse
und jeder nachfolgenden AsyncOrderUpdateRequestMessage
-Bestellverwaltungsaktion für eine bestimmte Bestellung gesendet werden, die je nach Status variieren kann.
Beispielsweise kann CUSTOMER_SERVICE
im Status „CREATED“ auf Ihr Kundensupport-Telefon verweisen. Im Status „BESTÄTIGT“ kann dann CUSTOMER_SERVICE
zum Telefon des Restaurants geändert werden, wenn dies der beste Ansprechpartner für den Kunden ist. Sobald die Bestellung den Status „FULFILLED“ hat, kann CUSTOMER_SERVICE
auch auf Ihre Support-E-Mail-Adressen verweisen.
In der folgenden Tabelle sind die Attribute für den Typ OrderManagementAction
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
type |
OrderManagementActionType |
Erforderlich. |
|
button |
Button |
Erforderlich. |
Das folgende Beispiel zeigt ein OrderManagementAction
-Element:
Beispiel 1
{ "type": "CUSTOMER_SERVICE", "button": { "title": "Contact customer service", "openUrlAction": { "url": "mailto:support@example.com" } } }
Beispiel 2
{ "type": "EMAIL", "button": { "title": "Email restaurant", "openUrlAction": { "url": "mailto:person@example.com" } } }
OrderManagementActionType
Definiert Typen im Zusammenhang mitOrderManagementAction
.
Der Typ OrderManagementActionType
hat folgende mögliche Werte:
CUSTOMER_SERVICE
: E-Mail-Adresse und/oder Kontaktnummer des Kundenservices, die auf der Bestellbestätigungsseite angezeigt werden. Dies ist erforderlich. Das Präfix "openUrlAction.url" muss "mailto", "tel", "http" oder "https" sein.EMAIL
: E-Mail-Aktion nur auf der Seite mit den Bestelldetails. Das Präfix „openUrlAction.url“ muss "mailto" sein.CALL_DRIVER
: Aufrufaktion nur auf der Seite mit den Bestelldetails. Das Präfix „openUrlAction.url“ muss "tel" sein.CALL_RESTAURANT
: Aufrufaktion nur auf der Seite mit den Bestelldetails. Das Präfix „openUrlAction.url“ muss "tel" sein.
OrderState
Der aktuelle Status der Bestellung. Jeder state
-Wert von OrderState
entspricht auch einem Kaufstatus auf myaccount.google.com.
In der folgenden Tabelle sind die Attribute für den Typ OrderState
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
state |
OrderStateEnum |
Erforderlich. |
|
label |
String | Erforderlich. Der für den Nutzer sichtbare Anzeigestring für den 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 im Zusammenhang mitOrderState
.
Der Typ OrderStateEnum
hat folgende mögliche Werte:
CREATED
: Bestellung wurde vom Integrator erstellt und wartet auf Bestätigung durch den Anbieter. Entspricht dem Kaufstatus „Bestellt“.CONFIRMED
: Die Bestellung wurde vom Anbieter bestätigt und ist aktiv. Entspricht dem Kaufstatus &akzeptiert.REJECTED
: Bestellung wurde vom Integrator oder Anbieter abgelehnt. Entspricht dem Kaufstatus "Abgelehnt".CANCELLED
: Der Nutzer hat die Bestellung storniert. Entspricht dem Kaufstatus „Storniert“.IN_PREPARATION
: Das Essen wird vorbereitet. Entspricht dem Kaufstatus "Unbekannt".READY_FOR_PICKUP
: Das Essen ist zur Abholung bereit. Entspricht dem Kaufstatus „Bereit zur Abholung“.IN_TRANSIT
: Die Bestellung wird geliefert. Entspricht dem Kaufstatus „In Bearbeitung“.FULFILLED
: Der Nutzer hat erhalten, was bestellt wurde. Entspricht dem Kaufstatus „Abgeholt“.
Beleg
Senden Sie diesen Typ in einem ÜbermittlungsauftragAppResponse
, wobei OrderState
den Wert "CONFIRMED", "FULFILLED" oder "IN_TRANSIT" enthält. Senden Sie den Beleg, sobald userVisibleOrderId
verfügbar ist. Sie müssen den Beleg in nachfolgenden Updates nicht mehr senden.
In der folgenden Tabelle sind die Attribute für den Typ Receipt
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
userVisibleOrderId |
String | Erforderlich. Erforderlich, wenn die Bestellung "CONFIRMED", "IN_TRANSIT" oder "FULFILLED" ist. Dieses Feld enthält die Nutzer-ID dieser Bestellung (in der Regel die Bestell-ID des Restaurants), die sowohl auf dem Beleg als auch auf der Google-Bestellkarte angezeigt wird. Der Nutzer muss diese ID verwenden können, um beim Kundenservicemitarbeiter auf die Bestellung des Dienstleisters zu verweisen. Sie müssen diese ID in einem beliebigen OrderUpdate nur einmal angeben. Bis zu diesem Zeitpunkt ist „actionOrderId“ die „userVisibleOrderId“. Es kann beispielsweise vorkommen, dass eine „userVisibleOrderId“ erst vorhanden ist, wenn die Bestellung vom Restaurant bestätigt wurde. Nach der Bestätigung müssen Sie eine AsyncOrderUpdateRequestMessage mit einem OrderUpdate und einem Beleg senden. |
Das folgende Beispiel zeigt ein Receipt
-Element:
Beispiel
{ "userVisibleOrderId": "userVisibleId1234" }
Ablehnungsinformationen
In der folgenden Tabelle sind die Attribute für den Typ RejectionInfo
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
type |
RejectionType |
Erforderlich. |
|
reason |
String |
Grund für die Ablehnung des internen Loggings. 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." }
Ablehnungstyp
Der Typ RejectionType
hat folgende mögliche Werte:
INELIGIBLE
: Der Nutzer ist aufgrund von Richtlinien- oder risikobezogenen Bedenken nicht berechtigt.PAYMENT_DECLINED
: Bei der Zahlungsabwicklung ist ein Problem aufgetreten.UNAVAILABLE_SLOT
: Die Bestellung kann nicht zu der im Voraus angegebenen Lieferzeit abgewickelt werden.PROMO_NOT_APPLICABLE
: Es gibt ein Problem mit dem Angebot.UNKNOWN
: Sonstige Gründe.
Zahlungsarten
In diesem Abschnitt werden die zahlungsbezogenen Typen beschrieben, die für die Auftragsausführung von Lebensmitteln verwendet werden.AktionBereitgestellte Zahlungsoptionen
Anforderungen an eine bereitgestellte Zahlungsmethode.
In der folgenden Tabelle sind die Attribute für den Typ ActionProvidedPaymentOptions
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
paymentType |
PaymentType |
Erforderlich. |
|
displayName |
String | Erforderlich. Name des Zahlungsmittels, das auf dem Beleg angegeben ist. Beispiel: |
|
onFulfillmentPaymentData |
OnFulfillmentPaymentData |
Zusätzliche Daten für „paymentType“ ON_FULFILLMENT" Mit diesem Feld können Sie beispielsweise angeben, ob Bargeld oder Karte bei der Auftragsausführung unterstützt werden. |
Das folgende Beispiel zeigt ein ActionProvidedPaymentOptions
-Element:
Beispiel
{ "paymentType": "ON_FULFILLMENT", "displayName": "Pay when you get your food.", "onFulfillmentPaymentData": { "supportedPaymentOptions": [ "Cash", "Card" ] } }
Zulässige Authentifizierungsmethoden
Der Typ AllowedAuthMethods
hat folgende mögliche Werte:
PAN_ONLY
: Authentifizierungsmethode, die mit Zahlungskarten verknüpft ist, die im Google-Konto des Nutzers gespeichert sind. Die zurückgegebenen Zahlungsdaten enthalten die persönliche Kontonummer (PAN) mit dem Ablaufmonat und dem Ablaufjahr.
Zulässige Kartennetzwerke
Der Typ AllowedCardNetworks
hat folgende mögliche Werte:
AMEX
DISCOVER
INTERAC
JCB
MASTERCARD
VISA
Kartenparameter
Verwenden Sie dieses Objekt, um die Unterstützung Ihrer Website für die Google Pay API zu konfigurieren.
In der folgenden Tabelle sind die Attribute für den Typ CardParameters
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
allowedAuthMethods |
Liste< | Erforderlich. Felder, die zur Authentifizierung einer Kartentransaktion unterstützt werden. Darf nicht weniger als 1 Element enthalten. |
|
allowedCardNetworks |
Liste<AllowedCardNetworks > |
Erforderlich. Ein oder mehrere von Ihnen unterstützte Kartennetzwerke, die auch von der Google Pay API unterstützt werden. Darf nicht weniger als 1 Element enthalten. |
|
billingAddressRequired |
Boolesch |
Geben Sie „wahr“ an, wenn Sie eine Rechnungsadresse benötigen. Fordern Sie eine Rechnungsadresse nur an, wenn sie zur Verarbeitung der Transaktion erforderlich ist. Zusätzliche Datenanfragen können den Bezahlvorgang vereinfachen und zu niedrigeren Conversion-Raten führen. |
|
cvcRequired |
Boolesch |
Setzen Sie den Wert auf „true“, wenn Sie TimesofMoney verwenden, und für alle anderen Zahlungsabwickler auf „false“. |
Das folgende Beispiel zeigt ein CardParameters
-Element:
Beispiel
{ "allowedAuthMethods": [ "PAN_ONLY" ], "allowedCardNetworks": [ "AMEX", "DISCOVER" ], "billingAddressRequired": false, "cvcRequired": false }
Von Google bereitgestelltes Zahlungsmittel
In der folgenden Tabelle sind die Attribute für den Typ GoogleProvidedPaymentInstrument
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
instrumentToken |
String | Erforderlich. Base 64-codierter String, der das Zahlungstoken für die Belastung des Nutzers bei einem teilnehmenden Google Pay-Prozessor gemäß den zuvor angegebenen GoogleProvidedPaymentOptions-Optionen enthält. |
|
billingAddress |
PostalAddress |
Rechnungsadresse für die Zahlung. |
Das folgende Beispiel zeigt ein GoogleProvidedPaymentInstrument
-Element:
Beispiel
{ "instrumentToken": "abcd", "billingAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] } }
Bereitgestellte Zahlungsoptionen
Anforderungen an die von Google angegebene Zahlungsmethode
In der folgenden Tabelle sind die Attribute für den Typ GoogleProvidedPaymentOptions
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
facilitationSpecification |
String |
Eine PaymentDataRequest-JSON als String. Verwenden Sie dieses Objekt, um die Unterstützung Ihrer Website für die Google Pay API zu 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 }
Händlerinfo
Verwenden Sie dieses Objekt, um die Unterstützung Ihrer Website für die Google Pay API zu konfigurieren.
In der folgenden Tabelle sind die Attribute für den Typ MerchantInfo
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
merchantId |
String |
Eine von Google Pay ausgestellte Google-Händler-ID. |
|
merchantName |
String | Erforderlich. Händlername, codiert als UTF-8. Der Händlername wird im Zahlungsformular gerendert. |
OnFulfillmentPaymentDaten
Verwenden Sie dieses Objekt, um zusätzliche Daten für den PaymentType „ON_FULFILLMENT“ zu senden.
In der folgenden Tabelle sind die Attribute für den Typ OnFulfillmentPaymentData
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
supportedPaymentOptions |
Liste<PaymentOptionsEnums > |
Liste der Zahlungsoptionen, die dem Nutzer zum Zeitpunkt der Auftragserfüllung zur Verfügung stehen. |
Das folgende Beispiel zeigt ein OnFulfillmentPaymentData
-Element:
Beispiel
{ "supportedPaymentOptions": [ "Cash", "Card" ] }
Parameter
Definiert Typen im Zusammenhang mit TokenizationParameters
.
In der folgenden Tabelle sind die Attribute für den Typ Parameters
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
gateway |
String | Erforderlich. Beispiel: |
|
gatewayMerchantId |
String | ||
[additionalKey: string] |
String | Zusätzliche Schlüssel/Wert-Paare |
Das folgende Beispiel zeigt ein Parameters
-Element:
Beispiel 1
{ "gatewayMerchantId": "90412491", "gateway": "olo" }
Beispiel 2
{ "gateway": "braintree", "braintree:apiVersion": "v1", "braintree:sdkVersion": "1.4.0", "braintree:merchantId": "YOUR_MERCHANT_ID", "braintree:clientKey": "YOUR_BRAINTREE_SANDVOX_OR_PRODUCTION_KEY" }
Zahlungsanfrage
Verwenden Sie dieses Objekt, um die Unterstützung Ihrer Website für die Google Pay API zu konfigurieren.
In der folgenden Tabelle sind die Attribute für den Typ PaymentDataRequest
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
apiVersion |
Konst | Erforderlich. Haupt-API-Version. Wert: |
|
apiVersionMinor |
Konst | Erforderlich. Nebenversion. Wert: |
|
merchantInfo |
MerchantInfo |
Erforderlich. (Google Pay-Händler-ID) Informationen zum Händler, der Zahlungsdaten anfordert |
|
allowedPaymentMethods |
Liste<PaymentMethod > |
Erforderlich. Gibt die Unterstützung für eine oder mehrere Zahlungsmethoden an, die von der Google Pay API unterstützt werden. |
|
transactionInfo |
TransactionInfo |
Erforderlich. Details zur Autorisierung der Transaktion basierend darauf, ob der Nutzer der Transaktion zustimmt oder nicht. Dieses Feld enthält den Gesamtpreis und den Preisstatus. |
Das folgende Beispiel zeigt ein PaymentDataRequest
-Element:
Beispiel
{ "apiVersion": 2, "apiVersionMinor": 0, "merchantInfo": { "merchantId": "10391231", "merchantName": "Burrito Town" }, "allowedPaymentMethods": [ { "type": "CARD", "parameters": { "allowedAuthMethods": [ "PAN_ONLY" ], "allowedCardNetworks": [ "VISA", "AMEX", "MASTERCARD" ], "billingAddressRequired": true, "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" } }
Zahlungsinformationen
Zahlungsbezogene Informationen für eine Bestellung.
In der folgenden Tabelle sind die Attribute für den Typ PaymentInfo
aufgeführt:
Property | 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
Verwenden Sie dieses Objekt, um die Unterstützung Ihrer Website für die Google Pay API zu konfigurieren.
In der folgenden Tabelle sind die Attribute für den Typ PaymentMethod
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
type |
Konst | 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 Entschlüsselungsanbieter, um Zahlungsinformationen zu erhalten. Diese Property 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" } } }
Zahlungsoptionen
In der folgenden Tabelle sind die Attribute für den Typ PaymentOptions
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
Genau eine der folgenden Gruppen von Properties ist erforderlich. | |||
googleProvidedOptions |
Gruppe 1 | GoogleProvidedPaymentOptions |
Schließt sich exklusiv mit actionProvidedOptions aus. Verwenden Sie diese Zahlungsmethode für Onlinezahlungen mit gPay. |
actionProvidedOptions |
Gruppe 2 | ActionProvidedPaymentOptions |
Schließt sich mit googleProvidedOptions gegenseitig aus. Verwenden Sie dies für die Barzahlung bei der Lieferung oder für die Auftragsausführung. |
Das folgende Beispiel zeigt ein PaymentOptions
-Element:
Beispiel 1
{ "googleProvidedOptions": { "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": { \"merchantId\": \"Merchant ID\", \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [ { \"type\": \"CARD\", \"parameters\": { \"allowedAuthMethods\": [ \"PAN_ONLY\" ], \"allowedCardNetworks\": [ \"VISA\", \"AMEX\", \"MASTERCARD\" ], \"billingAddressRequired\": false }, \"tokenizationSpecification\": { \"type\": \"PAYMENT_GATEWAY\", \"parameters\": { \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\", \"gateway\": \"stripe\", \"stripe:version\": \"2019-05-16\" } } }],\"transactionInfo\": { \"currencyCode\": \"AUD\", \"totalPriceStatus\": \"ESTIMATED\", \"totalPrice\": \"1.0\"}}" } }
Beispiel 2
{ "actionProvidedOptions": { "paymentType": "ON_FULFILLMENT", "displayName": "Pay when you get your food.", "onFulfillmentPaymentData": { "supportedPaymentOptions": [ "Cash", "Card" ] } } }
Zahlungsoptionen
Der Typ PaymentOptionsEnums
hat folgende mögliche Werte:
Cash
Card
UPI
Paytm
PaymentType
Der Typ PaymentType
hat folgende mögliche Werte:
PAYMENT_CARD
: Für GoogleProvidedPaymentOptions.ON_FULFILLMENT
: Für ActionProvidedPaymentOptions.
Unterstützte Kartennetzwerke
Definiert Typen im Zusammenhang mitGoogleProvidedPaymentOptions
.
Der Typ SupportedCardNetworks
hat folgende mögliche Werte:
UNSPECIFIED_CARD_NETWORK
AMEX
DISCOVER
JCB
MASTERCARD
VISA
Tokenisierungsparameter
Definiert Typen, die sich aufGoogleProvidedPaymentOptions
beziehen.
In der folgenden Tabelle sind die Attribute für den Typ TokenizationParameters
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
tokenizationType |
Enum [
"UNSPECIFIED_TOKENIZATION_TYPE",
"PAYMENT_GATEWAY"
] |
Erforderlich. Verwenden Sie stattdessen „facilitationSpecification“. Tokentyp zulässig. |
|
parameters |
Parameters |
Verwenden Sie stattdessen „facilitationSpecification“. |
Spezifikation der Tokenisierung
Mit diesem Objekt können Sie ein Konto konfigurieren, um zahlungspflichtige Zahlungsinformationen zu erhalten.
In der folgenden Tabelle sind die Attribute für den Typ TokenizationSpecification
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
type |
Konst | 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 Zahlungsfunktion eines Zahlenden bestimmt. Hiermit wird ein Dialogfeld für die Zahlungsautorisierung angezeigt.
In der folgenden Tabelle sind die Attribute für den Typ TransactionInfo
aufgeführt:
Property | Typ | Beschreibung | |
---|---|---|---|
currencyCode |
String | Erforderlich. Alphabetischer Währungscode gemäß ISO 4217. |
|
transactionId |
String |
Eindeutige ID, die einen Transaktionsversuch identifiziert. Händler können eine vorhandene ID verwenden oder eine bestimmte ID für Google Pay-Transaktionsversuche generieren. Dieses Feld ist erforderlich, wenn Sie Callbacks an die Google Transaction Events API senden. |
|
totalPriceStatus |
Konst | Erforderlich. Als Standard „ESTIMATED“ verwenden Der Gesamtpreis kann je nach Details der Antwort angepasst werden, z. B. anhand der Rechnungsadresse. Wert: |
|
totalPrice |
String | Erforderlich. Der gesamte Geldwert der Transaktion mit einer optionalen Dezimalgenauigkeit von zwei Dezimalstellen. Dieses Feld muss denselben Wert wie „cart.totalPrice“ haben. |
Das folgende Beispiel zeigt ein TransactionInfo
-Element:
Beispiel
{ "totalPriceStatus": "ESTIMATED", "totalPrice": "12.34", "currencyCode": "USD" }