Basistypen
Einkaufswagen
Enthält Details zur Bestellung sowie Informationen dazu, ob es sich um eine Abholung oder Lieferung handelt. Ein Einkaufswagen enthält außerdem Lieferdetails, Trinkgeld und die Lieferadresse. DasCart
-Objekt ist in einer Checkout AppRequest
-Datei definiert. Sie fügen eine Kopie des Einkaufswagens in Ihre Checkout AppResponse
-Datei ein.
In der folgenden Tabelle sind die Properties für den Typ Cart
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
@type |
Const |
Der Typ dieses Objekts. Lassen Sie dieses Feld aus, wenn das übergeordnete Einkaufswagenobjekt Teil von „ProposedOrder“ ist. Wert: |
|
id |
String |
Optionale ID des Einkaufswagens. |
|
merchant |
Merchant |
Händler, der mit diesem Einkaufswagen verknüpft ist. |
|
lineItems |
List<LineItem > |
Erforderlich. Liste der Waren oder Dienstleistungen, die der Nutzer bestellt. Es muss mindestens 1 Artikel enthalten. |
|
promotions |
List<Promotion > |
Angebot, das auf diesen Einkaufswagen angewendet wird. Derzeit wird nur ein Angebot unterstützt. |
|
notes |
String |
Hinweise zur Bestellung oder Lieferanweisungen. |
|
extension |
FoodCartExtension |
Hier werden Details zum Nutzer definiert, z. B. die Abwicklungseinstellungen. |
Das folgende Beispiel zeigt ein Cart
-Element:
Beispiel 1
{ "@type": "type.googleapis.com/google.actions.v2.orders.Cart", "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Cucina Venti" }, "lineItems": [ { "name": "Sizzling Prawns Dinner", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "16", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }
Beispiel 2
{ "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } }, { "name": "Chicken Shwarma Wrap", "type": "REGULAR", "id": "sample_item_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/offer/id2", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "8" } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Greek Salad", "type": "REGULAR", "id": "sample_item_offer_id_3", "offerId": "https://www.exampleprovider.com/menu/item/offer/id3", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Prawns Biryani", "type": "REGULAR", "id": "sample_item_offer_id_4", "offerId": "https://www.exampleprovider.com/menu/item/offer/id4", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "15", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }
Kontakt
Gibt Details zur Person an, die die Bestellung erhält. Sie ist nur inAppResponse
verfügbar.
In der folgenden Tabelle sind die Properties für den Typ Contact
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
displayName |
String |
Name der Person, die die Bestellung erhält, wie er angezeigt werden soll. Verwenden Sie dieses Feld, wenn „firstName“ und „lastName“ nicht angegeben sind. Beispiel: |
|
email |
String |
E-Mail-Adresse der Person, die die Bestellung erhält. Beispiel: |
|
firstName |
String |
Vorname der Person, die die Bestellung erhält. Beispiel: |
|
lastName |
String |
Nachname der Person, die die Bestellung erhält. Beispiel: |
|
phoneNumber |
String |
Telefonnummer der Person, die die Bestellung entgegennimmt, einschließlich der Landesvorwahl. Beispiel: |
|
emailVerified |
Boolesch |
Gibt an, ob die Person, die die Bestellung erhält, mit ihrem Google-Konto angemeldet ist. |
Das folgende Beispiel zeigt ein Contact
-Element:
Beispiel
{ "displayName": "Lovefood Ordering", "email": "ilovefood@example.com", "phoneNumber": "+16501234567" }
CustomPushMessage
Enthält denOrderUpdate
für die Anfrage.
In der folgenden Tabelle sind die Properties für den Typ CustomPushMessage
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
orderUpdate |
OrderUpdate |
Erforderlich. Aktualisierte Informationen zur 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" } } }
DeliveryInfo
In der folgenden Tabelle sind die Properties für den Typ DeliveryInfo
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
deliveryTimeIso8601 |
String |
Geschätzte Zustellungszeit im Zeitstempelformat ISO 8601: „{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z“ oder im Format für die Dauer: „P(n)Y(n)M(n)DT(n)H(n)M(n)S“. So steht beispielsweise PT90M für eine Dauer von 90 Minuten. Der Standardwert „PT0M“ gibt an, dass die bevorzugte Zustellung so schnell wie möglich erfolgen soll. Referenz: https://de.wikipedia.org/wiki/ISO_8601#Kombinierte_Darstellung_von_Datum_und_Uhrzeit Hiermit können Sie die geschätzte Lieferzeit während der Antwort auf die Kasse aktualisieren. Beispiel: |
Das folgende Beispiel zeigt ein DeliveryInfo
-Element:
Beispiel
{ "deliveryTimeIso8601": "PT90M" }
Haftungsausschluss
In der folgenden Tabelle sind die Properties für den Typ Disclaimer
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
predefinedMessage |
PredefinedMessage |
Erforderlich. Sie können vordefinierte Haftungsausschlüsse an der Kasse anzeigen lassen. |
|
feeAmount |
Money |
Der Partner berechnet dem Händler eine Gebühr in Höhe von N € für diese Bestellung. |
|
feeAmountRange |
FeeAmountRange |
Der Partner berechnet dem Restaurant eine Gebühr von N bis M pro Bestellung. |
|
feePercent |
Number |
Der Partner berechnet dem Händler eine Gebühr von N% für diese Bestellung. |
|
feePercentRange |
FeePercentRange |
Der Partner berechnet dem Händler eine Gebühr von N% bis M% pro Bestellung. |
Das folgende Beispiel zeigt ein Disclaimer
-Element:
Beispiel 1
{ "predefinedMessage": "NEW_YORK_DELIVERY_FEE_TIP_DISCLAIMER" }
Beispiel 2
{ "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE" }
Beispiel 3
{ "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE", "feePercent": 25 }
Beispiel 4
{ "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE", "feePercentRange": { "minFeePercent": 20, "maxFeePercent": 30 } }
Beispiel 5
{ "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE", "feeAmount": { "currencyCode": "AUD", "units": 2, "nanos": 500000000 } }
Beispiel 6
{ "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE", "feeAmountRange": { "minFeeAmount": { "currencyCode": "AUD", "units": 2, "nanos": 500000000 }, "maxFeeAmount": { "currencyCode": "AUD", "units": 10, "nanos": 0 } } }
Fehler
Der Typ Error
hat folgende mögliche Werte:
CLOSED
: Das Restaurant ist zum Zeitpunkt der Bestellung geschlossen.NO_CAPACITY
: Es ist keine Dienstkapazität verfügbar (z. B. eine vorübergehende Störung aufgrund von Spitzenzeiten).NO_COURIER_AVAILABLE
: Die Bestellung kann aufgrund von Personalmangel nicht bearbeitet werden.REQUIREMENTS_NOT_MET
: Die Einschränkungen für die Annahme der Bestellung wurden nicht erfüllt (z. B. Mindestbestellwert).UNAVAILABLE_SLOT
: Die Bestellung kann nicht zum in DeliveryInfo oder PickupInfo angegebenen Zeitpunkt für die Vorbestellung ausgeführt werden.OUT_OF_SERVICE_AREA
: Die Bestellung kann nicht an die Adresse des Nutzers geliefert werden.PROMO_EXPIRED
: Das Angebot konnte nicht angewendet werden, da es abgelaufen ist.PROMO_NOT_APPLICABLE
: Generischer Fehlercode, der alle Fälle erfasst, in denen der Gutscheincode nicht angewendet werden kann, wenn keiner der anderen Gutscheincodefehler zutrifft.PROMO_NOT_RECOGNIZED
: Der Gutscheincode wurde nicht erkannt.PROMO_ORDER_INELIGIBLE
: Der aktuelle Gutschein kann nicht für diese Bestellung verwendet werden.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 Gesamtpreis.INVALID
: Ein Artikel, eine Ausführungsoption oder ein Angebot enthält ungültige Daten.NOT_FOUND
: Die Position, die Ausführungsoption oder das Angebot konnte nicht gefunden werden.PRICE_CHANGED
: Der Preis eines Artikels hat sich geändert.
FeeAmountRange
In der folgenden Tabelle sind die Properties für den Typ FeeAmountRange
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
minFeeAmount |
Money |
Untergrenze des in Rechnung gestellten Gebührenbetrags. |
|
maxFeeAmount |
Money |
Obergrenze des in Rechnung gestellten Gebührenbetrags. |
FeePercentRange
In der folgenden Tabelle sind die Properties für den Typ FeePercentRange
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
minFeePercent |
Number |
Untergrenze des in Rechnung gestellten Gebührenprozentsatzes. |
|
maxFeePercent |
Number |
Obergrenze für den in Rechnung gestellten Gebührenprozentsatz. |
FoodCartExtension
Enthält Details zum Nutzer, z. B. die bevorzugte Abwicklungsart.
In der folgenden Tabelle sind die Properties für den Typ FoodCartExtension
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
@type |
Const |
Der Typ dieser Erweiterung. Dieses Feld ist immer auf „type.googleapis.com/google.actions.v2.orders.FoodCartExtension“ festgelegt. Wert: |
|
contact |
Contact |
Kontaktdaten der Person, die die Bestellung erhält. Dazu gehören der Name, die Telefonnummer und die E-Mail-Adresse der Person. |
|
fulfillmentPreference |
FulfillmentOption |
Erforderlich. Die Auftragsausführungseinstellung des Nutzers. |
|
location |
Location |
In der CheckoutRequestMessage gibt dieses Feld die Lieferadresse an, die erforderlich ist, wenn die Bestellung geliefert werden soll. 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" } }
FoodErrorExtension
Hier werden mindestens ein oder mehrere Fehler angegeben, die bei der Verarbeitung einer Anfrage aufgetreten sind. In der folgenden Tabelle sind die Felder des TypsFoodErrorExtension
beschrieben.
Fehler können in einem CheckoutResponse
gesendet werden.
In der folgenden Tabelle sind die Properties für den Typ FoodErrorExtension
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
@type |
Const | Erforderlich. Der Typ dieser Erweiterung. Wert: |
|
foodOrderErrors |
List<FoodOrderError > |
Erforderlich. Array von FoodOrderError-Objekten, die die aufgetretenen Fehler beschreiben. Wir empfehlen, pro Einkaufswagen oder pro Artikel einen Fehler anzugeben. Es muss mindestens 1 Artikel enthalten. |
|
correctedProposedOrder |
ProposedOrder |
Erforderlich, wenn Eine neue „Vorgeschlagene Bestellung“ mit Korrekturen. Gib dieses Objekt zurück, wenn in der ursprünglichen ProposedOrder wiederherstellbare Fehler vorhanden sind. Ein Beispiel für einen korrigierbaren Fehler ist eine Preisänderung bei einer oder mehreren Werbebuchungen im Einkaufswagen. Korrigierbare Fehler mit einer gültigen ProposedOrder werden zur Bestätigungsphase fortgesetzt, anstatt dass der Nutzer seinen Einkaufswagen überprüfen muss. |
|
paymentOptions |
PaymentOptions |
Erforderlich, wenn Für den Nutzer ausgewählte Standardzahlungsoptionen. |
|
additionalPaymentOptions |
List<PaymentOptions > |
Alternative Zahlungsoptionen, die dem Nutzer zur Verfügung stehen. |
Das folgende Beispiel zeigt ein FoodErrorExtension
-Element:
Beispiel
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodErrorExtension", "foodOrderErrors": [ { "error": "PRICE_CHANGED", "id": "sample_item_offer_id_1", "description": "The price has changed.", "updatedPrice": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, { "error": "PRICE_CHANGED", "id": "sample_item_offer_id_2", "description": "The price has changed.", "updatedPrice": { "currencyCode": "USD", "units": "8" } } ], "correctedProposedOrder": { "id": "sample_corrected_proposed_order_id_1", "otherItems": [ { "name": "New customer discount", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "-5", "nanos": -500000000 } }, "type": "DISCOUNT" }, { "name": "Delivery fee", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } }, "type": "DELIVERY" }, { "name": "Tax", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 500000000 } }, "type": "TAX" } ], "cart": { "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } }, { "name": "Chicken Shwarma Wrap", "type": "REGULAR", "id": "sample_item_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/offer/id2", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "8" } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Greek Salad", "type": "REGULAR", "id": "sample_item_offer_id_3", "offerId": "https://www.exampleprovider.com/menu/item/offer/id3", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Prawns Biryani", "type": "REGULAR", "id": "sample_item_offer_id_4", "offerId": "https://www.exampleprovider.com/menu/item/offer/id4", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "15", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }, "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "36", "nanos": 730000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ] } }, "paymentOptions": { "googleProvidedOptions": { "tokenizationParameters": { "tokenizationType": "PAYMENT_GATEWAY", "parameters": { "gateway": "stripe", "stripe:publishableKey": "pk_live_stripe_client_key", "stripe:version": "2017-04-06" } }, "supportedCardNetworks": [ "AMEX", "DISCOVER", "MASTERCARD", "JCB", "VISA" ], "prepaidCardDisallowed": true } } }
FoodItemExtension
Definiert Zusätze für Lebensmittel.
In der folgenden Tabelle sind die Properties für den Typ FoodItemExtension
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
@type |
Const | Erforderlich. Der Typ dieser Erweiterung. Dieses Feld ist immer auf „type.googleapis.com/google.actions.v2.orders.FoodItemExtension“ festgelegt. Wert: |
|
options |
List<FoodItemOption > |
Eine Option kann ein Add-on-Artikel oder eine Add-on-Gruppe mit mehreren Add-ons sein. |
Das folgende Beispiel zeigt ein FoodItemExtension
-Element:
Beispiel
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1, "subOptions": [ { "id": "10239138", "offerId": "912391723", "name": "Fries", "price": { "currencyCode": "USD", "units": "2", "nanos": 230000000 }, "quantity": 1 } ] } ] }
FoodItemOption
In der folgenden Tabelle sind die Properties für den Typ FoodItemOption
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
id |
String |
Eine eindeutige ID, die von Google zugewiesen wird. Wenn Sie eine FoodOrderError- oder AsyncOrderUpdateRequest-Anfrage senden, können Sie mit diesem Feld unterscheiden, ob ein Einkaufswagen mehr als einen Artikel mit derselben Angebots-ID enthält. Beispiel: |
|
offerId |
String |
Die Angebots-ID für den Artikel. Beispiel: |
|
name |
String |
Der Name der Option. Beispiel: |
|
price |
Money |
||
note |
String |
Hinweis zur Option. |
|
quantity |
Number |
Bei Optionen, die Elemente sind, die Anzahl der Elemente. Beispiel: |
|
subOptions |
List<FoodItemOption > |
Untergeordnete Optionen für die Option, falls vorhanden. Beispiel: |
Das folgende Beispiel zeigt ein FoodItemOption
-Element:
Beispiel 1
{ "id": "10293231", "offerId": "1918491", "name": "Honey Mustard", "price": { "currencyCode": "USD", "units": "1", "nanos": 250000000 }, "quantity": 5 }
Beispiel 2
{ "id": "123166552", "offerId": "912849184", "name": "Make It A Meal", "price": { "currencyCode": "USD", "units": "3", "nanos": 730000000 }, "quantity": 1, "subOptions": [ { "id": "10239138", "offerId": "912391723", "name": "Fries", "price": { "currencyCode": "USD", "units": "2", "nanos": 230000000 }, "quantity": 1 }, { "id": "57159183", "offerId": "81837123", "name": "Drink", "price": { "currencyCode": "USD", "units": "3", "nanos": 130000000 }, "quantity": 1 } ] }
FoodOrderError
Enthält Details zu Fehlern in einemCheckoutResponse
.
In der folgenden Tabelle sind die Properties für den Typ FoodOrderError
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
error |
Error |
Erforderlich. |
|
id |
String | Erforderlich, wenn Dieses Feld ist für Fehler auf Artikelebene erforderlich. Dies ist die von Google zugewiesene LineItem.id für Menüpunkte oder die FoodItemOption.id für Extras. |
|
description |
String |
Beschreibung des Fehlers. Diese Beschreibung dient nur der internen Protokollierung und ist für Nutzer nicht sichtbar. |
|
updatedPrice |
Money |
Erforderlich, wenn Der neue Preis eines Artikels, der den Fehler verursacht hat. Dies ist nur erforderlich, wenn der Fehler „PRICE_CHANGED“ lautet. |
|
availableQuantity |
Ganzzahl | Erforderlich, wenn Neue verfügbare Stückzahl des Artikels, der den Fehler verursacht hat. Diese Angabe ist 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.
In der folgenden Tabelle sind die Properties für den Typ FoodOrderExtension
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
@type |
Const |
Der Typ dieser Erweiterung. Dieses Feld ist immer auf „type.googleapis.com/google.actions.v2.orders.FoodOrderExtension“ festgelegt. Wert: |
|
availableFulfillmentOptions |
List<FulfillmentOption > |
Stellt die verfügbaren Abwicklungsoptionen für die Bestellung dar. |
|
optinForRemarketing |
Boolesch |
Der Nutzer möchte Ihre Marketingkanäle aktivieren. Standardmäßig können Sie keine Marketinginhalte ohne Einwilligung der Nutzer senden. Wenn „optinForRemarketing“ auf „true“ gesetzt ist, kannst du den Nutzer abonnieren. Wenn „optinForRemarketing“ falsch ist oder nicht vorhanden ist, müssen Sie den Abostatus in Ihrem System unverändert lassen. Nutzer können sich nicht über Google abmelden, sondern nur über eine Funktion 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 }
FulfillmentOption
Sie können einFulfillmentOption
-Objekt auf folgende Arten verwenden:
-
In
Checkout AppRequest
undSubmit AppRequest
:Cart.extension.fulfillmentPreference
: Hier wird die Einstellung des Nutzers (Lieferung oder Abholung) gespeichert. Der Preis ist immer 0, wenn die Zahlungsanfrage gesendet wird. -
In
Checkout AppResponse
wird mitProposedOrder.extension.availableFulfillmentOptions
eine oder mehrere Übermittlungsoptionen definiert. Derzeit wird nur eine Option unterstützt. Sie geben die Standardoption alsLineItem
inProposedOrder.otherItems
an. DieofferId
vonFulfillmentOption
muss mit der ID derLineItem
übereinstimmen, die inProposedOrder.otherItems
angegeben ist.
In der folgenden Tabelle sind die Properties für den Typ FulfillmentOption
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
offerId |
String |
Eindeutige Kennung für diese Option zur Auftragsausführung, falls zutreffend. |
|
fulfillmentInfo |
FulfillmentOptionInfo |
Erforderlich. |
|
expiresAt |
ISO-Zeitstempel |
Der Zeitpunkt, zu dem diese Option für die Auftragsausführung abläuft. |
|
price |
Money |
Die Kosten für diese Option. |
Das folgende Beispiel zeigt ein FulfillmentOption
-Element:
Beispiel
{ "offerId": "offer5", "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } }, "expiresAt": "2019-05-02T00:00:00-07:00", "price": { "currencyCode": "USD", "units": "5", "nanos": 230000000 } }
FulfillmentOptionInfo
Hier werden Informationen zuFulfillmentInfo
definiert.
In der folgenden Tabelle sind die Properties für den Typ FulfillmentOptionInfo
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
Es ist genau eine der folgenden Gruppen von Properties erforderlich. | |||
delivery |
Gruppe 1 | DeliveryInfo |
Falls vorhanden, gibt dies den Lieferauftrag an. |
pickup |
Gruppe 2 | PickupInfo |
Falls vorhanden, gibt dies einen Abholauftrag an. |
Bild
In der folgenden Tabelle sind die Properties für den Typ Image
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
sourceUrl |
String | Erforderlich. URL für das Bild. Das Bild muss mindestens 72 × 72 Pixel groß sein. Für eine optimale Darstellung empfehlen wir, ein Bild mit mindestens 216 x 216 Pixeln hochzuladen. Das Bild darf maximal 6 MB und 64 Megapixel groß sein. |
LineItem
Hiermit wird der Inhalt eines Einkaufswagens (Cart.lineItems
) oder zusätzliche Kosten für eine Bestellung (ProposedOrder.otherItems
) definiert.
In der folgenden Tabelle sind die Properties für den Typ LineItem
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
id |
String | Erforderlich, wenn Bei einem Artikel in einem Einkaufswagen (ProposedOrder.cart.lineItems[0].id) ist dies die eindeutige ID, die von Google beim Erstellen der Bestellung erstellt wurde. Für eine Werbebuchung in einer vorgeschlagenen Bestellung (ProposedOrder.otherItems[0].id), mit der Artikel wie Versandkosten und Steuern hinzugefügt werden, wird der Wert von „id“ vom Anbieter definiert. Beispiel: Im Einkaufswagen befinden sich zwei Artikel mit derselben Bezeichnung, aber unterschiedlichen Zubereitungsanleitungen (z. B. zwei mittelgroße Pizzen mit unterschiedlichen Belägen). In diesem Fall haben beide Artikel dieselbe Basis-Angebots-ID. Wenn Sie eine Bestellaktualisierungsanfrage senden, um anzugeben, dass ein Artikel abgelehnt wurde, verwenden Sie diese ID als eindeutigen Bezeichner. Wenn also eine der Pizzen abgelehnt wird, weil ihr ein bestimmtes Topping fehlt, kann Google anhand der ID ermitteln, auf welchen Artikel in der Bestellung sich Ihre Beschwerde bezieht. Dieses Feld ist mit Ausnahme von „otherItems“ ein Pflichtfeld. |
|
name |
String | Erforderlich. Name der Werbebuchung. Dieser für Nutzer sichtbare String sollte nach Möglichkeit in Großbuchstaben geschrieben werden, z. B. „Liefergebühr“, „Servicegebühr“ oder „Steuern“. Dieses Feld wird für Nutzer auf 100 Zeichen gekürzt. |
|
type |
LineItemType |
Erforderlich. |
|
quantity |
Ganzzahl | Erforderlich, wenn Anzahl der enthaltenen Artikel. Gilt nicht für ProposedOrder.otherItems. |
|
description |
String |
Beschreibung des Artikels. |
|
price |
Price |
Erforderlich. Der Preis des Artikels oder der Artikel. Dieser Wert entspricht dem Gesamtpreis aller Waren oder Dienstleistungen für diese Position. Dazu werden die Kosten aller Add-ons addiert und mit der Stückzahl multipliziert. Beispiel: Wenn ein Artikel für 10 € in einer Menge von 3 Stücken angeboten wird, beträgt der Preis 30 €. Für eine Pizza mit einem Grundpreis von 5 € und einem Add-on von 1 € würde der Preis 6 € betragen. Für zwei Pizzen (Menge = 2) mit einem Grundpreis von 5 € und jeweils einem Zubehör von 1 € würde der Preis 12 € betragen. Jede Position muss 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 |
List<SublineNote > |
Optional und nur gültig, wenn „TYPE“ den Wert „REGULAR“ hat. In diesem Feld in der Zahlungsanfrage und der Anfrage zum Einreichen der Bestellung kann ein artikelspezifischer Hinweis vom Nutzer gesendet werden. Achten Sie darauf, dass der Händler die Notiz erhält, sobald sie verfügbar ist. Er wird in der Anfrage als „subLines[0].note“ angegeben. Dies ist der einzige Wert, der in diesem Feld angegeben wird, wenn er in einer Anfrage vorhanden ist. Darf maximal 1 Element enthalten. |
|
offerId |
String | Erforderlich, wenn Die Angebots-ID des Artikels für den Artikel. Gilt nicht für ProposedOrder.otherItems. |
|
extension |
FoodItemExtension |
Definiert Zusätze für Lebensmittel. |
Das folgende Beispiel zeigt ein LineItem
-Element:
Beispiel 1
{ "name": "New customer discount", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "-5", "nanos": -500000000 } }, "type": "DISCOUNT" }
Beispiel 2
{ "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } }
LineItemType
Der Typ LineItemType
hat folgende mögliche Werte:
REGULAR
: Position für Waren. Gilt für „Cart.lineItems“.TAX
: Steuerposition Gilt für ProposedOrder.otherItems.DISCOUNT
: Position für Rabatt Der Preis sollte negativ sein. Gilt für ProposedOrder.otherItems.GRATUITY
: Position für Trinkgeld In der Regel für die SubmitOrderRequestMessage für ein vom Nutzer ausgewähltes Trinkgeld reserviert. Gilt für ProposedOrder.otherItems.DELIVERY
: Werbebuchung für die Auslieferung. Gilt für ProposedOrder.otherItems.SUBTOTAL
: Zwischensumme Gilt für ProposedOrder.otherItems.FEE
: Zusätzliche Werbebuchung, die nicht durch die anderen Typen abgedeckt wird. Gilt für ProposedOrder.otherItems.
Standort
Gibt eine Adresse für die Essensbestellung an. Der TypLocation
wird in einem Cart
nur verwendet, um das Ziel eines Lieferauftrags anzugeben.
Der endgültige Standort ist auch in TransactionDecisionValue
enthalten, wenn der Nutzer die Bestellung aufgibt. Bei Bestellungen, für die eine Abholung angegeben ist, ist kein Standort angegeben, auch kein leerer.
In der folgenden Tabelle sind die Properties für den Typ Location
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
coordinates |
Coordinates |
||
formattedAddress |
String |
Adresse des Standorts anzeigen Beispiel: |
|
postalAddress |
PostalAddress |
||
zipCode |
String |
Beispiel: |
|
city |
String |
Der Name der Stadt. Beispiel: |
|
notes |
String |
Hinweise zum Standort, z. B. Torcodes Er darf maximal 500 Zeichen enthalten. Beispiel: |
Das folgende Beispiel zeigt ein Location
-Element:
Beispiel
{ "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" }
Händler
In der folgenden Tabelle sind die Properties für den Typ Merchant
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
id |
String |
Die ID des Händlers. Wenn angegeben, stimmt sie mit der Restaurant.@id im Restaurant-Feed überein. Beispiel: |
|
name |
String | Erforderlich. Der für Nutzer sichtbare Name des Händlers. Beispiel: |
Das folgende Beispiel zeigt ein Merchant
-Element:
Beispiel
{ "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }
Geld
In der folgenden Tabelle sind die Properties für den Typ Money
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
currencyCode |
String | Erforderlich. Ein dreistelliger Währungscode im ISO 4217-Format. Beispiel: |
|
units |
String |
Die ganzen Einheiten des Betrags. Beispiel: Wenn für „currencyCode“ der Wert „USD“ angegeben ist, entspricht eine Einheit „1“ einem US-Dollar. Beispiel: |
|
nanos |
Ganzzahl |
Anzahl der Nanoeinheiten (10^-9) des Betrags. Der Wert muss im Bereich von -999.999.999 bis +999.999.999 liegen. Beachten Sie die folgenden Regeln: Wenn „units“ positiv ist, müssen die Nanoeinheiten positiv oder null sein. Wenn „units“ null ist, können die Nanoeinheiten positiv, null oder negativ sein. Wenn „units“ negativ ist, müssen die Nanoeinheiten negativ oder null sein. -1,75 $ wird z. B. als „units“ = −1 und „nanos“ = −750.000.000 dargestellt. Beispiel: |
Das folgende Beispiel zeigt ein Money
-Element:
Beispiel 1
{ "currencyCode": "USD", "units": "36", "nanos": 730000000 }
Beispiel 2
{ "currencyCode": "EUR", "units": "10" }
Auftrag
Enthält die endgültige Bestellung, einschließlich Steuern, Gebühren und Versandkosten sowie Zahlungsinformationen. Dieses Objekt wird von Ihrer Aktion in einemSubmit AppRequest
empfangen.
In der folgenden Tabelle sind die Properties für den Typ Order
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
finalOrder |
ProposedOrder |
Erforderlich. Der vorgeschlagene Antrag, der zur Verfügungsverfügung geführt hat. |
|
googleOrderId |
String | Erforderlich. Von Google zugewiesene Bestell-ID. Diese ID sollte während des gesamten Lebenszyklus einer Bestellung unverändert bleiben. Diese ID ist für den Endnutzer nicht sichtbar. |
|
orderDate |
ISO-Zeitstempel | Erforderlich. Datum und Uhrzeit der Erstellung der Bestellung. |
|
paymentInfo |
PaymentInfo |
Erforderlich. Zahlungsinformationen, die der Zahlung für diese Bestellung entsprechen. |
Das folgende Beispiel zeigt ein Order
-Element:
Beispiel
{ "finalOrder": { "cart": { "notes": "Guest prefers their food to be hot when it is delivered.", "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Cucina Venti" }, "lineItems": [ { "name": "Sizzling Prawns Dinner", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "16", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } } }, "contact": { "displayName": "Lovefood Ordering", "email": "ilovefood@example.com", "phoneNumber": "+16501234567" } } }, "otherItems": [ { "name": "Service fee", "type": "FEE", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } } }, { "name": "Tax", "type": "TAX", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 370000000 } } }, { "name": "Tip", "type": "GRATUITY", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 590000000 } } } ], "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "23", "nanos": 710000000 } }, "id": "sample_final_order_id", "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ], "optinForRemarketing": true } }, "googleOrderId": "sample_google_order_id", "orderDate": "2017-07-17T12:00:00Z", "paymentInfo": { "displayName": "Visa\u2006****\u20061111", "googleProvidedPaymentInstrument": { "instrumentToken": "abcd" }, "paymentType": "PAYMENT_CARD" } }
OrderUpdate
In der folgenden Tabelle werden die Felder des Typs „OrderUpdate“ beschrieben, der inAppResponse
enthalten ist.
In der folgenden Tabelle sind die Properties für den Typ OrderUpdate
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
actionOrderId |
String | Erforderlich. Die eindeutige ID der Bestellung im System des Integrators, mit der die Bestellung identifiziert wird, für die die Aktualisierung gesendet wird. Wenn „receipt.user_visible_order_id“ für eine Bestellung mit dem Status „CREATED“ nicht mindestens einmal in „OrderUpdate“ angegeben ist, wird diese ID als eingegebene sichtbare Nutzer-ID auf der Google-Bestellkarte angezeigt. |
|
orderState |
OrderState |
Erforderlich. Der neue Status der Bestellung. |
|
lineItemUpdates |
Map<String, LineItemUpdate > |
||
updateTime |
ISO-Zeitstempel | Erforderlich. Die Uhrzeit, zu der die Bestellung aktualisiert wurde. |
|
orderManagementActions |
List<OrderManagementAction > |
Aktionen nach der Bestellung, z. B. Kontakt mit dem Support und Aufruf von Bestelldetails Es müssen mindestens 1 Artikel und maximal 6 Artikel enthalten sein. |
|
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 auf dem Beleg an. |
|
totalPrice |
Price |
Gesamtpreis der Bestellung. |
|
infoExtension |
FoodOrderUpdateExtension |
Hier werden weitere Details zur Auftragsaktualisierung definiert, z. B. das Intervall für die voraussichtliche Lieferung oder Abholung. |
Das folgende Beispiel zeigt ein OrderUpdate
-Element:
Beispiel
{ "actionOrderId": "sample_action_order_id", "orderState": { "state": "CONFIRMED", "label": "Provider confirmed" }, "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "41", "nanos": 600000000 } }, "lineItemUpdates": { "sample_item_id_1": { "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } }, "reason": "This item has an updated price." } }, "receipt": { "userVisibleOrderId": "userVisibleId1234" }, "updateTime": "2017-07-17T12:00:00Z", "orderManagementActions": [ { "type": "CUSTOMER_SERVICE", "button": { "title": "Contact customer service", "openUrlAction": { "url": "mailto:support@example.com" } } }, { "type": "EMAIL", "button": { "title": "Email restaurant", "openUrlAction": { "url": "mailto:person@example.com" } } }, { "type": "CALL_RESTAURANT", "button": { "title": "Call restaurant", "openUrlAction": { "url": "tel:+16505554679" } } } ], "infoExtension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension", "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z" } }
PickupInfo
In der folgenden Tabelle sind die Properties für den Typ PickupInfo
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
pickupTimeIso8601 |
String |
Geschätzte Abholzeit im Zeitstempelformat ISO 8601: „{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z“ oder im Format für die Dauer: „P(n)Y(n)M(n)DT(n)H(n)M(n)S“. So steht beispielsweise PT90M für eine Dauer von 90 Minuten. Der Standardwert „PT0M“ gibt an, dass die bevorzugte Abholzeit so schnell wie möglich ist. Referenz: https://de.wikipedia.org/wiki/ISO_8601#Kombinierte_Darstellung_von_Datum_und_Uhrzeit Verwenden Sie diesen Parameter, um die geschätzte Abholzeit während der Antwort auf die Kasse zu aktualisieren. Beispiel: |
Das folgende Beispiel zeigt ein PickupInfo
-Element:
Beispiel
{ "pickupTimeIso8601": "PT90M" }
PostalAddress
In der folgenden Tabelle sind die Properties für den Typ PostalAddress
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
regionCode |
String | Erforderlich. Ein Ländercode mit zwei Buchstaben. Beispiel: |
|
postalCode |
String |
Die Postleitzahl. Beispiel: |
|
administrativeArea |
String |
Höchste administrative Untergliederung, die für Postadressen eines Landes oder einer Region verwendet wird. Dies kann beispielsweise ein Bundesland, eine Provinz, eine Oblast oder eine Präfektur sein. Beispiel: |
|
locality |
String |
Die Stadt für diesen Standort. Lassen Sie in Regionen der Welt, in denen Postorte nicht hinreichend definiert sind oder nicht dieser Struktur entsprechen, diese Angabe leer und verwenden Sie stattdessen das Feld „addressLines“. Beispiel: |
|
addressLines |
List<String> |
Eine oder mehrere Zeilen, mit denen Sie die Adresse angeben können. Dieses Feld sollte nicht geändert werden, da es unklare Ortsangaben enthalten kann. Beispiel: |
|
recipients |
List<String> |
Liste der Empfänger einer Bestellung. Dieses Feld ist nur in „billingAddress“ verfügbar. |
Das folgende Beispiel zeigt ein PostalAddress
-Element:
Beispiel
{ "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }
Preis
In der folgenden Tabelle sind die Properties für den Typ Price
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
type |
Enum [
"ESTIMATE",
"ACTUAL"
] |
Erforderlich. Der Gutscheincode der Aktion. |
|
amount |
Money |
Erforderlich. |
Angebot
In der folgenden Tabelle sind die Properties für den Typ Promotion
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
coupon |
String | Erforderlich. Der Gutscheincode der Aktion. |
ProposedOrder
In der folgenden Tabelle sind die Properties für den Typ ProposedOrder
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
id |
String |
Optionale ID für den vorgeschlagenen Antrag. |
|
cart |
Cart |
Erforderlich. Die Artikel des Nutzers. |
|
otherItems |
List<LineItem > |
Vom Anbieter hinzugefügte Artikel, z. B. Versandkosten, andere Gebühren und Steuern. „otherItems“ kann auch Trinkgeld und/oder Rabatt enthalten, die vom Nutzer hinzugefügt wurden. Darf maximal 10 Elemente enthalten. |
|
image |
Image |
Bild, das mit der vorgeschlagenen Verfügung verknüpft ist. |
|
totalPrice |
Price |
Erforderlich. Gesamtpreis der vorgeschlagenen Bestellung. |
|
extension |
FoodOrderExtension |
Erforderlich. Hier werden Informationen zur Auftragsausführung für Essensbestellungen definiert. |
|
disclaimers |
List<Disclaimer > |
Entspricht den Haftungsausschlüssen, die vor der Bestellung auf der Benutzeroberfläche angezeigt werden. |
Das folgende Beispiel zeigt ein ProposedOrder
-Element:
Beispiel
{ "id": "sample_proposed_order_id_1", "otherItems": [ { "name": "New customer discount", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "-5", "nanos": -500000000 } }, "type": "DISCOUNT" }, { "name": "Delivery fee", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } }, "type": "DELIVERY" }, { "name": "Tax", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 500000000 } }, "type": "TAX" } ], "cart": { "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } }, { "name": "Chicken Shwarma Wrap", "type": "REGULAR", "id": "sample_item_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/offer/id2", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "8" } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Greek Salad", "type": "REGULAR", "id": "sample_item_offer_id_3", "offerId": "https://www.exampleprovider.com/menu/item/offer/id3", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Prawns Biryani", "type": "REGULAR", "id": "sample_item_offer_id_4", "offerId": "https://www.exampleprovider.com/menu/item/offer/id4", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "15", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }, "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "36", "nanos": 730000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ] } }
SublineNote
In der folgenden Tabelle sind die Properties für den Typ SublineNote
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
note |
String | Erforderlich. |
Zeitstempel
Datum und Uhrzeit im folgenden Format:
"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
TransactionDecisionValue
Enthält dieOrder
.
In der folgenden Tabelle sind die Properties für den Typ TransactionDecisionValue
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
order |
Order |
Erforderlich. Bestellung mit Zahlungsdetails. |
Das folgende Beispiel zeigt ein TransactionDecisionValue
-Element:
Beispiel
{ "order": { "finalOrder": { "cart": { "notes": "Guest prefers their food to be hot when it is delivered.", "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Cucina Venti" }, "lineItems": [ { "name": "Sizzling Prawns Dinner", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "16", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } } }, "contact": { "displayName": "Lovefood Ordering", "email": "ilovefood@example.com", "phoneNumber": "+16501234567" } } }, "otherItems": [ { "name": "Service fee", "type": "FEE", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } } }, { "name": "Tax", "type": "TAX", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 370000000 } } }, { "name": "Tip", "type": "GRATUITY", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 590000000 } } } ], "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "23", "nanos": 710000000 } }, "id": "sample_final_order_id", "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ], "optinForRemarketing": true } }, "googleOrderId": "sample_google_order_id", "orderDate": "2017-07-17T12:00:00Z", "paymentInfo": { "displayName": "Visa\u2006****\u20061111", "googleProvidedPaymentInstrument": { "instrumentToken": "abcd" }, "paymentType": "PAYMENT_CARD" } } }
Auftragsausführung beantragen
AppRequest
In der folgenden Tabelle sind die Properties für den Typ AppRequest
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
isInSandbox |
Boolesch |
Gibt an, ob die nachfolgenden Transaktionen in einer Sandbox-Umgebung ausgeführt werden. |
|
conversation |
Conversation |
||
inputs |
List<Input > |
Erforderlich. Enthält die erwarteten Argumente für den Bezahlvorgang eines Einkaufswagens. Es muss genau 1 Element enthalten. |
Das folgende Beispiel zeigt ein AppRequest
-Element:
Beispiel 1
{ "isInSandbox": true, "inputs": [ { "intent": "actions.foodordering.intent.CHECKOUT", "arguments": [ { "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.Cart", "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Cucina Venti" }, "lineItems": [ { "name": "Sizzling Prawns Dinner", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "16", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } } } ] } ] }
Beispiel 2
{ "isInSandbox": true, "inputs": [ { "intent": "actions.intent.TRANSACTION_DECISION", "arguments": [ { "transactionDecisionValue": { "order": { "finalOrder": { "cart": { "notes": "Guest prefers their food to be hot when it is delivered.", "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Cucina Venti" }, "lineItems": [ { "name": "Sizzling Prawns Dinner", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "16", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } } }, "contact": { "displayName": "Lovefood Ordering", "email": "ilovefood@example.com", "phoneNumber": "+16501234567" } } }, "otherItems": [ { "name": "Service fee", "type": "FEE", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } } }, { "name": "Tax", "type": "TAX", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 370000000 } } }, { "name": "Tip", "type": "GRATUITY", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 590000000 } } } ], "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "23", "nanos": 710000000 } }, "id": "sample_final_order_id", "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ], "optinForRemarketing": true } }, "googleOrderId": "sample_google_order_id", "orderDate": "2017-07-17T12:00:00Z", "paymentInfo": { "displayName": "Visa\u2006****\u20061111", "googleProvidedPaymentInstrument": { "instrumentToken": "abcd" }, "paymentType": "PAYMENT_CARD" } } } } ] } ] }
CheckoutRequestMessage
EinCheckoutRequestMessage
ist ein AppRequest
mit dem Intent actions.foodordering.intent.CHECKOUT
.
SubmitOrderRequestMessage
EinSubmitOrderRequestMessage
ist ein AppRequest
mit dem Intent actions.foodordering.intent.TRANSACTION_DECISION
.
Unterhaltung
EinConversation
ist nur für eine Sitzung eindeutig. Sie können damit bei Bedarf mehrere Checkout
- und SubmitOrder
-Aktionen verknüpfen.
In der folgenden Tabelle sind die Properties für den Typ Conversation
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
conversationId |
String | Erforderlich. Eindeutige ID für die Unterhaltung. |
Das folgende Beispiel zeigt ein Conversation
-Element:
Beispiel
{ "conversationId": "CQnJ7Z4i7UmvEZ9ph3AxyZRJ" }
Eingabe
Die erwarteten Argumente für den Bezahlvorgang eines Einkaufswagens.
In der folgenden Tabelle sind die Properties für den Typ Input
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
intent |
Enum [
"actions.foodordering.intent.CHECKOUT",
"actions.intent.TRANSACTION_DECISION"
] |
Erforderlich. Legen Sie „actions.foodordering.intent.CHECKOUT“ für die Zahlungsanfragenachricht ODER „actions.intent.TRANSACTION_DECISION“ für die Bestellanfragenachricht fest. |
|
arguments |
List<Argument > |
Erforderlich. Enthält den Einkaufswagen, der bezahlt werden soll, oder die Bestellung, die aufgegeben werden soll Es muss genau 1 Element enthalten. |
Argument
Enthält Details zu den Lebensmitteln, die der Nutzer kaufen möchte. Für den Bezahlvorgang gilt nur die Verlängerung. Für die Bestellung ist nur „transactionDecisionValue“ zulässig.
In der folgenden Tabelle sind die Properties für den Typ Argument
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
Es ist genau eine der folgenden Gruppen von Properties erforderlich. | |||
extension |
Gruppe 1 | Cart |
Details zu den Lebensmitteln, die der Nutzer kaufen möchte. |
transactionDecisionValue |
Gruppe 2 | TransactionDecisionValue |
Enthält die Bestellung, die aufgegeben werden soll, sowie Zahlungsdetails. |
Auftragsausführungsantwort
AppResponse
In der folgenden Tabelle sind die Properties für den Typ AppResponse
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
expectUserResponse |
Const |
Legen Sie „false“ fest. Wert: |
|
finalResponse |
FinalResponse |
Erforderlich. Enthält Ihre Antwort auf die Kasse im Einkaufswagen. |
Das folgende Beispiel zeigt ein AppResponse
-Element:
Beispiel 1
{ "expectUserResponse": false, "finalResponse": { "richResponse": { "items": [ { "structuredResponse": { "checkoutResponse": { "proposedOrder": { "id": "sample_proposed_order_id_1", "otherItems": [ { "name": "New customer discount", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "-5", "nanos": -500000000 } }, "type": "DISCOUNT" }, { "name": "Delivery fee", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } }, "type": "DELIVERY" }, { "name": "Tax", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 500000000 } }, "type": "TAX" } ], "cart": { "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } }, { "name": "Chicken Shwarma Wrap", "type": "REGULAR", "id": "sample_item_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/offer/id2", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "8" } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Greek Salad", "type": "REGULAR", "id": "sample_item_offer_id_3", "offerId": "https://www.exampleprovider.com/menu/item/offer/id3", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Prawns Biryani", "type": "REGULAR", "id": "sample_item_offer_id_4", "offerId": "https://www.exampleprovider.com/menu/item/offer/id4", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "15", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }, "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "36", "nanos": 730000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ] } }, "paymentOptions": { "googleProvidedOptions": { "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": { \"merchantId\": \"Merchant ID\", \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [ { \"type\": \"CARD\", \"parameters\": { \"allowedAuthMethods\": [ \"PAN_ONLY\" ], \"allowedCardNetworks\": [ \"VISA\", \"AMEX\", \"MASTERCARD\" ], \"billingAddressRequired\": false }, \"tokenizationSpecification\": { \"type\": \"PAYMENT_GATEWAY\", \"parameters\": { \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\", \"gateway\": \"stripe\", \"stripe:version\": \"2019-05-16\" } } }],\"transactionInfo\": { \"currencyCode\": \"AUD\", \"totalPriceStatus\": \"ESTIMATED\", \"totalPrice\": \"1.0\"}}" } }, "additionalPaymentOptions": [ { "actionProvidedOptions": { "paymentType": "ON_FULFILLMENT", "displayName": "Cash on delivery." } } ] } } } ] } } }
Beispiel 2
{ "expectUserResponse": false, "finalResponse": { "richResponse": { "items": [ { "structuredResponse": { "orderUpdate": { "actionOrderId": "sample_action_order_id", "orderState": { "state": "CONFIRMED", "label": "Provider confirmed" }, "receipt": { "userVisibleOrderId": "userVisibleId1234" }, "updateTime": "2017-07-17T12:00:00Z", "orderManagementActions": [ { "type": "CUSTOMER_SERVICE", "button": { "title": "Contact customer service", "openUrlAction": { "url": "mailto:support@example.com" } } }, { "type": "CUSTOMER_SERVICE", "button": { "title": "Call customer service", "openUrlAction": { "url": "tel:+18005554679" } } }, { "type": "EMAIL", "button": { "title": "Email restaurant", "openUrlAction": { "url": "mailto:person@example.com" } } }, { "type": "CALL_RESTAURANT", "button": { "title": "Call restaurant", "openUrlAction": { "url": "tel:+16505554679" } } } ], "infoExtension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension", "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z" } } } } ] } } }
Beispiel 3
{ "expectUserResponse": false, "finalResponse": { "richResponse": { "items": [ { "structuredResponse": { "error": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodErrorExtension", "foodOrderErrors": [ { "error": "CLOSED", "description": "The restaurant is closed." } ] } } } ] } } }
Beispiel 4
{ "expectUserResponse": false, "finalResponse": { "richResponse": { "items": [ { "structuredResponse": { "checkoutResponse": { "proposedOrder": { "otherItems": [ { "name": "Delivery Fees", "subLines": [], "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } }, "type": "DELIVERY" }, { "name": "Tax", "subLines": [], "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 370000000 } }, "type": "TAX" }, { "name": "Promotion", "subLines": [], "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "-5", "nanos": 0 } }, "id": "OWG_ACTIVE_CODE", "type": "DISCOUNT" } ], "cart": { "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "promotions": [ { "coupon": "OWG_ACTIVE_CODE" } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } } } } }, "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "14", "nanos": 860000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } }, "expiresAt": "2018-04-10T01:20:08.471Z" } ] } }, "paymentOptions": { "googleProvidedOptions": { "tokenizationParameters": { "tokenizationType": "PAYMENT_GATEWAY", "parameters": { "gateway": "stripe", "stripe:publishableKey": "pk_live_stripe_client_key", "stripe:version": "2017-04-06" } }, "supportedCardNetworks": [ "AMEX", "DISCOVER", "MASTERCARD", "VISA", "JCB" ], "prepaidCardDisallowed": true, "billingAddressRequired": true } } } } } ] } } }
CheckoutResponseMessage
EineCheckoutResponseMessage
ist eine AppResponse
mit einer checkoutResponse
oder error
in der StructuredResponse
.
SubmitOrderResponseMessage
EineSubmitOrderResponseMessage
ist eine AppResponse
mit einer orderUpdate
in der StructuredResponse
.
FinalResponse
Ihre Antwort auf die Direktkauf-URL oder SubmitOrderRequestMessage.
In der folgenden Tabelle sind die Properties für den Typ FinalResponse
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
richResponse |
RichResponse |
Erforderlich. Enthält Ihre Antwort auf die CheckoutRequestMessage oder SubmitOrderRequestMessage. |
CheckoutResponse
In der folgenden Tabelle sind die Properties für den Typ CheckoutResponse
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
proposedOrder |
ProposedOrder |
Erforderlich. Vorgeschlagene Reihenfolge für die Transaktion. |
|
paymentOptions |
PaymentOptions |
Erforderlich. Die für den Nutzer ausgewählte Standardzahlungsoption. |
|
additionalPaymentOptions |
List<PaymentOptions > |
Alternative Zahlungsoptionen, die dem Nutzer zur Verfügung stehen. |
Das folgende Beispiel zeigt ein CheckoutResponse
-Element:
Beispiel
{ "proposedOrder": { "id": "sample_proposed_order_id_1", "otherItems": [ { "name": "New customer discount", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "-5", "nanos": -500000000 } }, "type": "DISCOUNT" }, { "name": "Delivery fee", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } }, "type": "DELIVERY" }, { "name": "Tax", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 500000000 } }, "type": "TAX" } ], "cart": { "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } }, { "name": "Chicken Shwarma Wrap", "type": "REGULAR", "id": "sample_item_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/offer/id2", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "8" } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Greek Salad", "type": "REGULAR", "id": "sample_item_offer_id_3", "offerId": "https://www.exampleprovider.com/menu/item/offer/id3", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Prawns Biryani", "type": "REGULAR", "id": "sample_item_offer_id_4", "offerId": "https://www.exampleprovider.com/menu/item/offer/id4", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "15", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }, "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "36", "nanos": 730000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ] } }, "paymentOptions": { "googleProvidedOptions": { "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": { \"merchantId\": \"Merchant ID\", \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [ { \"type\": \"CARD\", \"parameters\": { \"allowedAuthMethods\": [ \"PAN_ONLY\" ], \"allowedCardNetworks\": [ \"VISA\", \"AMEX\", \"MASTERCARD\" ], \"billingAddressRequired\": false }, \"tokenizationSpecification\": { \"type\": \"PAYMENT_GATEWAY\", \"parameters\": { \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\", \"gateway\": \"stripe\", \"stripe:version\": \"2019-05-16\" } } }],\"transactionInfo\": { \"currencyCode\": \"AUD\", \"totalPriceStatus\": \"ESTIMATED\", \"totalPrice\": \"1.0\"}}" } }, "additionalPaymentOptions": [ { "actionProvidedOptions": { "paymentType": "ON_FULFILLMENT", "displayName": "Cash on delivery." } } ] }
Element
Enthält Ihre Antwort auf die Kasse im Einkaufswagen oder die Nachricht „SubmitOrderRequestMessage“.
In der folgenden Tabelle sind die Properties für den Typ Item
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
structuredResponse |
StructuredResponse |
Erforderlich. |
RichResponse
Enthält Ihre Antwort auf die Zahlung im Einkaufswagen.
In der folgenden Tabelle sind die Properties für den Typ RichResponse
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
items |
List<Item > |
Erforderlich. Es muss genau 1 Element enthalten. |
StructuredResponse
Für „CheckoutResponseMessage“ kann dies eine der folgenden Optionen sein: ODER FoodErrorExtension: Gibt einen Fehler an der Kasse an. Die Antwort kann eine korrigierte ProposedOrder und PaymentOptions oder eine Fehlermeldung ohne PaymentOptions enthalten. Für „SubmitOrderResponseMessage“ ist nur „orderUpdate“ zulässig.
In der folgenden Tabelle sind die Properties für den Typ StructuredResponse
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
Es ist genau eine der folgenden Gruppen von Properties erforderlich. | |||
checkoutResponse |
Gruppe 1 | CheckoutResponse |
Ausgecheckte Artikel zuzüglich Steuern und Rabatte. |
error |
Gruppe 2 | FoodErrorExtension |
Bei den Artikeln im Einkaufswagen wurden Fehler festgestellt. Je nach Art des Fehlers kann diese Property eine korrigierte „ProposedOrder“ und „PaymentOptions“ oder nur eine Fehlermeldung ohne „PaymentOptions“ enthalten. |
orderUpdate |
Gruppe 3 | OrderUpdate |
Asynchrone Bestellupdates
In diesem Abschnitt werden die allgemeinen Typen beschrieben, aus denen die Anfragen und Antworten einer typischen integrierten Aktionsinteraktion für die Bestellung von Essen bestehen.AsyncOrderUpdateRequestMessage
Der Nutzer wird über Änderungen informiert, nachdem eine Bestellung gesendet und bestätigt wurde. Sie können den Nutzer beispielsweise darüber informieren, dass die Bestellung auf dem Weg ist oder dass sich der Preis geändert hat. Weitere Informationen finden Sie unterIn der folgenden Tabelle sind die Properties für den Typ AsyncOrderUpdateRequestMessage
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
isInSandbox |
Boolesch |
Gibt an, dass es sich bei der Bestellung, für die dieses Update gesendet wurde, um eine Sandbox-Zahlung handelt. |
|
customPushMessage |
CustomPushMessage |
Erforderlich. Enthält die Bestellaktualisierung für die Anfrage. |
Das folgende Beispiel zeigt ein AsyncOrderUpdateRequestMessage
-Element:
Beispiel
{ "isInSandbox": true, "customPushMessage": { "orderUpdate": { "actionOrderId": "sample_action_order_id", "orderState": { "state": "IN_TRANSIT", "label": "Order is on the way" }, "inTransitInfo": { "updatedTime": "2017-07-17T12:00:00Z" }, "updateTime": "2017-07-17T12:00:00Z", "receipt": { "userVisibleOrderId": "userVisibleId1234" }, "orderManagementActions": [ { "type": "CUSTOMER_SERVICE", "button": { "title": "Contact customer service", "openUrlAction": { "url": "mailto:support@example.com" } } }, { "type": "EMAIL", "button": { "title": "Email restaurant", "openUrlAction": { "url": "mailto:person@example.com" } } }, { "type": "CALL_RESTAURANT", "button": { "title": "Call restaurant", "openUrlAction": { "url": "tel:+16505554679" } } } ], "infoExtension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension", "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z" } } } }
AsyncOrderUpdateResponseMessage
Nachdem Sie einenAsyncOrderUpdateRequestMessage
gesendet haben, antwortet Google mit dem HTTP-Status 200 und einem leeren Textkörper. Wenn die Aktualisierung nicht erfolgreich war, antwortet Google mit Details dazu, warum die Aktualisierung des Auftrags fehlgeschlagen ist.
Arten von Bestellaktualisierungen
Schaltfläche
Hiermit wird ein Benutzeroberflächenelement definiert, das Sie hinzufügen können, um eine Nutzerinteraktion zu ermöglichen.
In der folgenden Tabelle sind die Properties für den Typ Button
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
title |
String | Erforderlich. Das Anzeigelabel. Verwenden Sie die Großschreibung am Satzanfang mit maximal 30 Zeichen, damit die Texte korrekt dargestellt werden. Beispiel: |
|
openUrlAction |
OpenUrlAction |
Erforderlich. |
Das folgende Beispiel zeigt ein Button
-Element:
Beispiel
{ "title": "Send us feedback", "openUrlAction": { "url": "mailto:person@example.com" } }
CancellationInfo
In der folgenden Tabelle sind die Properties für den Typ CancellationInfo
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
reason |
String | Erforderlich. Der angezeigte Text für den Ablehnungsgrund, wenn OrderState.state „CANCELLED“ ist. Beispiel: |
Das folgende Beispiel zeigt ein CancellationInfo
-Element:
Beispiel
{ "reason": "Insufficient inventory" }
FoodOrderUpdateExtension
Bei diesem Typ wird dem Nutzer ein geschätzter Zeitraum angegeben, in dem die Bestellung geliefert oder abgeholt werden kann. 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 Erfüllungsintervall an, damit die Erwartungen der Nutzer immer erfüllt werden. Wenn die Bestellung beispielsweise voraussichtlich heute um 13:00 Uhr geliefert wird, sollten Sie ein geschätztes Intervall senden, das den Schwankungen aufgrund der Verkehrslage entspricht, z. B. heute von 12:45 Uhr bis 13:15 Uhr.
Eine ISO 8601-Dauer oder ein ISO 8601-Zeitstempel bezieht sich auf das Intervall vom updateTime
des OrderUpdate
(im Grunde „jetzt“) bis zum updateTime
plus duration
.
Verwenden Sie dieses Format nur, wenn „jetzt“ tatsächlich eine angemessene Erwartung ist.
Ein ISO 8601-Intervall bezieht sich auf das Intervall vom Beginn bis zum Ende.
In der folgenden Tabelle sind die Properties für den Typ FoodOrderUpdateExtension
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
@type |
Const |
Der Typ dieser Erweiterung. Dieses Feld ist immer auf „type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension“ festgelegt. Wert: |
|
estimatedFulfillmentTimeIso8601 |
String |
Die geschätzte Zeit, zu der die Bestellung geliefert oder zur Abholung bereitsteht. Der String muss im ISO 8601-Format angegeben sein und einem Intervall statt einer einzelnen festen Uhrzeit entsprechen. Zulässige Konventionen sind Intervalle, Zeiträume und Datumsangaben/Uhrzeiten. Dieses Feld kann in SubmitOrderResponseMessage oder AsyncOrderUpdateRequestMessage gesendet werden, wenn die Informationen verfügbar sind oder es eine Änderung gibt, z. B. eine frühere oder spätere Ankunft. Beispiel: |
|
foodOrderErrors |
List<FoodOrderError > |
Hier werden die Fehler beschrieben, die nach der Bestellung aufgetreten sind. Wir empfehlen, pro Einkaufswagen oder pro Artikel einen Fehler anzugeben. Verwenden Sie „FoodOrderUpdateExtension.FoodOrderErrors“ für alle Fehler, die nicht von „RejectionInfo“ abgedeckt werden. Es muss mindestens 1 Artikel 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 Properties für den Typ FulfillmentInfo
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
Es ist genau eine der folgenden Gruppen von Properties erforderlich. | |||
deliveryTime |
Gruppe 1 | ISO-Zeitstempel |
Verwenden Sie „estimatedFulfillmentTimeIso8601“ in der Nachricht vom Typ „FoodOrderingUpdateExtension“. |
pickupTime |
Gruppe 2 | ISO-Zeitstempel |
Verwenden Sie „estimatedFulfillmentTimeIso8601“ in der Nachricht vom Typ „FoodOrderingUpdateExtension“. |
Das folgende Beispiel zeigt ein FulfillmentInfo
-Element:
Beispiel 1
{ "deliveryTime": "2017-05-10T02:36:38.803Z" }
Beispiel 2
{ "pickupTime": "2019-12-26T07:24:27.803Z" }
InTransitInfo
In der folgenden Tabelle sind die Properties für den Typ InTransitInfo
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
updatedTime |
ISO-Zeitstempel |
Verwenden Sie „estimatedFulfillmentTimeIso8601“ in der Nachricht vom Typ „FoodOrderingUpdateExtension“. |
Das folgende Beispiel zeigt ein InTransitInfo
-Element:
Beispiel
{ "updatedTime": "2017-05-10T02:36:38.803Z" }
LineItemUpdate
In der folgenden Tabelle sind die Properties für den Typ LineItemUpdate
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
orderState |
OrderState |
||
price |
Price |
||
reason |
String |
Grund für die Änderung. Erforderlich für Preisänderungen. |
Das folgende Beispiel zeigt ein LineItemUpdate
-Element:
Beispiel
{ "orderState": { "state": "CONFIRMED", "label": "Provider confirmed" }, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "5", "nanos": 500000000 } }, "reason": "Menu updated prices." }
OpenUrlAction
In der folgenden Tabelle sind die Properties für den Typ OpenUrlAction
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
url |
String | Erforderlich. Die Aktion, die durch Klicken oder Berühren der Schaltfläche ausgelöst wird. Die Liste der gültigen Präfixe hängt von „orderManagementActionType“ ab. „EMAIL“: Das Präfix muss „mailto“ sein. „CALL“: Das Präfix muss „tel“ sein. „CUSTOMER_SERVICE“: Das Präfix muss „mailto“, „tel“, „http“ oder „https“ sein. Beispiel: |
OrderManagementAction
Mit der Bestellverwaltung können Nutzer nach der Bestellung Support erhalten. Sie sollte in jeder OrderUpdate
innerhalb der Bestellung AppResponse
und in jeder nachfolgenden AsyncOrderUpdateRequestMessage
gesendet werden. Die für eine bestimmte Bestellung gesendeten Bestellverwaltungsaktionen können je nach Status variieren.
Im Status „CREATED“ (ERSTELLT) kann CUSTOMER_SERVICE
beispielsweise auf die Telefonnummer deines Kundensupports verweisen. Im Status „BEStätigt“ kann CUSTOMER_SERVICE
dann zur Telefonnummer des Restaurants wechseln, wenn dies die beste Kontaktmöglichkeit für den Kunden ist. Sobald der Bestellstatus „ABGESCHLOSSEN“ ist, kann CUSTOMER_SERVICE
auch auf deine Support-E-Mail-Adresse verweisen.
In der folgenden Tabelle sind die Properties für den Typ OrderManagementAction
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
type |
OrderManagementActionType |
Erforderlich. |
|
button |
Button |
Erforderlich. |
Das folgende Beispiel zeigt ein OrderManagementAction
-Element:
Beispiel 1
{ "type": "CUSTOMER_SERVICE", "button": { "title": "Contact customer service", "openUrlAction": { "url": "mailto:support@example.com" } } }
Beispiel 2
{ "type": "EMAIL", "button": { "title": "Email restaurant", "openUrlAction": { "url": "mailto:person@example.com" } } }
OrderManagementActionType
Hier werden Typen fürOrderManagementAction
definiert.
Der Typ OrderManagementActionType
hat folgende mögliche Werte:
CUSTOMER_SERVICE
: E-Mail-Adresse und/oder Telefonnummer des Kundenservice, die auf der Bestellbestätigungsseite angezeigt werden soll. Dies ist erforderlich. Das Präfix von „openUrlAction.url“ muss „mailto“, „tel“, „http“ oder „https“ sein.EMAIL
: E-Mail-Aktion nur auf der Seite mit den Bestelldetails. Das Präfix von „openUrlAction.url“ muss „mailto“ sein.CALL_DRIVER
: Aktion nur auf der Seite mit den Bestelldetails aufrufen. Das Präfix von „openUrlAction.url“ muss „tel“ sein.CALL_RESTAURANT
: Aktion nur auf der Seite mit den Bestelldetails aufrufen. Das Präfix von „openUrlAction.url“ muss „tel“ sein.
OrderState
Der aktuelle Status der Bestellung. Jedem state
-Wert von OrderState
entspricht auch ein Kaufstatus auf myaccount.google.com.
In der folgenden Tabelle sind die Properties für den Typ OrderState
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
state |
OrderStateEnum |
Erforderlich. |
|
label |
String | Erforderlich. Der für den Nutzer sichtbare Anzeigestring für den Status. Achten Sie auf korrekte Groß- und Kleinschreibung. Beispiel: |
Das folgende Beispiel zeigt ein OrderState
-Element:
Beispiel
{ "state": "CONFIRMED", "label": "Provider confirmed" }
OrderStateEnum
Hier werden Typen fürOrderState
definiert.
Der Typ OrderStateEnum
hat folgende mögliche Werte:
CREATED
: Bestellung wurde vom Integrationspartner 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
: Die Speisen werden vorbereitet. Entspricht dem Kaufstatus „Status unbekannt“.READY_FOR_PICKUP
: Das Essen kann abgeholt werden. Entspricht dem Kaufstatus „Bereit zur Abholung“.IN_TRANSIT
: Die Bestellung wird geliefert. Entspricht dem Kaufstatus „In Bearbeitung“.FULFILLED
: Der Nutzer hat das erhalten, was er bestellt hat. Entspricht dem Kaufstatus „Abgeholt“.
Beleg
Senden Sie diesen Typ in einer Bestellung vom Typ „Senden“AppResponse
, wobei OrderState
„CONFIRMED“, „FULFILLED“ oder „IN_TRANSIT“ ist. Senden Sie den Beleg, sobald die userVisibleOrderId
verfügbar ist. Sie müssen den Beleg bei nachfolgenden Aktualisierungen nicht noch einmal senden.
In der folgenden Tabelle sind die Properties für den Typ Receipt
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
userVisibleOrderId |
String | Erforderlich. Erforderlich, wenn der Status der Bestellung „CONFIRMED“, „IN_TRANSIT“ oder „FULFILLED“ ist. Dieses Feld ist die einzige für Nutzer sichtbare ID für diese Bestellung (in der Regel die Bestell-ID des Restaurants), die sowohl auf dem Beleg des Integrators als auch auf der Google-Bestellkarte angezeigt wird. Der Nutzer muss diese ID verwenden können, um sich beim Kundenservice des Anbieters und Integrators auf seine Bestellung zu beziehen. Sie müssen diese ID nur einmal in einer OrderUpdate-Anfrage angeben. Bis dahin ist die „actionOrderId“ die „userVisibleOrderId“. Möglicherweise ist die „userVisibleOrderId“ erst verfügbar, wenn die Bestellung vom Restaurant bestätigt wurde. Nach der Bestätigung musst du eine AsyncOrderUpdateRequestMessage mit einem OrderUpdate und einem Beleg senden. |
Das folgende Beispiel zeigt ein Receipt
-Element:
Beispiel
{ "userVisibleOrderId": "userVisibleId1234" }
RejectionInfo
In der folgenden Tabelle sind die Properties für den Typ RejectionInfo
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
type |
RejectionType |
Erforderlich. |
|
reason |
String |
Grund für die Ablehnung, der für die interne Protokollierung verwendet wird. Dieses Feld ist für Nutzer nicht sichtbar. |
Das folgende Beispiel zeigt ein RejectionInfo
-Element:
Beispiel
{ "type": "PAYMENT_DECLINED", "reason": "There is an issue with payment processing." }
RejectionType
Der Typ RejectionType
hat folgende mögliche Werte:
INELIGIBLE
: Der Nutzer ist aufgrund von Richtlinienverstößen oder aus Risikogründen nicht berechtigt.PAYMENT_DECLINED
: Es gibt ein Problem mit der Zahlungsabwicklung.UNAVAILABLE_SLOT
: Die Bestellung kann nicht zum in DeliveryInfo oder PickupInfo angegebenen Zeitpunkt für die Vorbestellung ausgeführt werden.PROMO_NOT_APPLICABLE
: Es gibt ein Problem mit dem Angebot.UNKNOWN
: Sonstige Gründe
Zahlungsbezogene Typen
In diesem Abschnitt werden die zahlungsbezogenen Typen beschrieben, die für die Ausführung von Essensbestellungen verwendet werden.ActionProvidedPaymentOptions
Anforderungen an eine von einer Aktion bereitgestellte Zahlungsmethode
In der folgenden Tabelle sind die Properties für den Typ ActionProvidedPaymentOptions
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
paymentType |
PaymentType |
Erforderlich. |
|
displayName |
String | Erforderlich. Name des Zahlungsmittels, das auf dem Beleg angezeigt wird. Beispiel: |
|
onFulfillmentPaymentData |
OnFulfillmentPaymentData |
Zusätzliche Daten für den Zahlungstyp „ON_FULFILLMENT“. In diesem Feld können Sie beispielsweise angeben, ob bei der Abwicklung Bargeld oder Kartenzahlung 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" ] } }
AllowedAuthMethods
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 umfassen die persönliche Kontonummer (PAN) mit dem Ablaufmonat und dem Ablaufjahr.
AllowedCardNetworks
Der Typ AllowedCardNetworks
hat folgende mögliche Werte:
AMEX
DISCOVER
INTERAC
JCB
MASTERCARD
VISA
BillingAddressParameters
Mit diesem Objekt können Sie zusätzliche Felder für eine angeforderte Rechnungsadresse festlegen.
In der folgenden Tabelle sind die Properties für den Typ BillingAddressParameters
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
format |
String |
Das Format der Rechnungsadresse ist erforderlich, um die Transaktion abzuschließen. MIN: Name, Ländercode und Postleitzahl. VOLLSTÄNDIG: Name, Adresse, Ort, Region, Ländercode und Postleitzahl |
Das folgende Beispiel zeigt ein BillingAddressParameters
-Element:
Beispiel 1
{ "format": "MIN" }
Beispiel 2
{ "format": "FULL" }
CardParameters
Mit diesem Objekt können Sie die Unterstützung der Google Pay API für Ihre Website konfigurieren.
In der folgenden Tabelle sind die Properties für den Typ CardParameters
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
allowedAuthMethods |
List<Const> | Erforderlich. Felder, die zur Authentifizierung einer Kartentransaktion unterstützt werden. Es muss mindestens 1 Artikel enthalten. |
|
allowedCardNetworks |
List<AllowedCardNetworks > |
Erforderlich. Ein oder mehrere von Ihnen unterstützte Kartennetzwerke, die auch von der Google Pay API unterstützt werden. Es muss mindestens 1 Artikel enthalten. |
|
billingAddressRequired |
Boolesch |
Legen Sie „wahr“ fest, wenn eine Rechnungsadresse erforderlich ist. Fordern Sie eine Rechnungsadresse nur dann an, wenn dies zur Bearbeitung der Transaktion erforderlich ist. Zusätzliche Datenanfragen können den Bezahlvorgang erschweren und zu niedrigeren Conversion-Raten führen. |
|
billingAddressParameters |
BillingAddressParameters |
Die erwarteten Felder, die zurückgegeben werden, wenn „billingAddressRequired“ auf „true“ festgelegt ist. |
|
cvcRequired |
Boolesch |
Legen Sie „wahr“ fest, wenn Sie TimesofMoney verwenden, und „falsch“ für alle anderen Zahlungsabwickler. |
Das folgende Beispiel zeigt ein CardParameters
-Element:
Beispiel 1
{ "allowedAuthMethods": [ "PAN_ONLY" ], "allowedCardNetworks": [ "AMEX", "DISCOVER" ], "billingAddressRequired": false, "cvcRequired": false }
Beispiel 2
{ "allowedAuthMethods": [ "PAN_ONLY" ], "allowedCardNetworks": [ "AMEX", "DISCOVER" ], "billingAddressRequired": true, "billingAddressParameters": { "format": "MIN" }, "cvcRequired": false }
GoogleProvidedPaymentInstrument
In der folgenden Tabelle sind die Properties für den Typ GoogleProvidedPaymentInstrument
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
instrumentToken |
String | Erforderlich. Base64-codierter String, der das Zahlungstoken für die Abrechnung des Nutzers über einen teilnehmenden Google Pay-Abwickler enthält, gemäß den zuvor angegebenen GoogleProvidedPaymentOptions. |
|
billingAddress |
PostalAddress |
Rechnungsadresse für die Zahlung. |
Das folgende Beispiel zeigt ein GoogleProvidedPaymentInstrument
-Element:
Beispiel
{ "instrumentToken": "abcd", "billingAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] } }
GoogleProvidedPaymentOptions
Anforderungen an die von Google bereitgestellte Zahlungsmethode
In der folgenden Tabelle sind die Properties für den Typ GoogleProvidedPaymentOptions
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
facilitationSpecification |
String |
Ein JSON-Objekt vom Typ „PaymentDataRequest“ als String. Mit diesem Objekt können Sie die Unterstützung der Google Pay API für Ihre Website konfigurieren. |
|
supportedCardNetworks |
List<SupportedCardNetworks > |
Verwenden Sie stattdessen „facilitationSpecification“. Art der vom Kundenservicemitarbeiter unterstützten Kartennetzwerke. Dieses Feld wurde eingestellt. |
|
prepaidCardDisallowed |
Boolesch |
Verwenden Sie stattdessen „facilitationSpecification“. Gibt an, ob eine Prepaidkarte als Zahlungsmittel zulässig ist. Dieses Feld wurde eingestellt. |
|
billingAddressRequired |
Boolesch |
Verwenden Sie stattdessen „facilitationSpecification“. Gibt an, ob eine Rechnungsadresse erforderlich ist. Dieses Feld wurde eingestellt. |
|
tokenizationParameters |
TokenizationParameters |
Dieses Feld wurde eingestellt. |
Das folgende Beispiel zeigt ein GoogleProvidedPaymentOptions
-Element:
Beispiel 1
{ "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": { \"merchantId\": \"Merchant ID\", \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [ { \"type\": \"CARD\", \"parameters\": { \"allowedAuthMethods\": [ \"PAN_ONLY\" ], \"allowedCardNetworks\": [ \"VISA\", \"AMEX\", \"MASTERCARD\" ], \"billingAddressRequired\": false }, \"tokenizationSpecification\": { \"type\": \"PAYMENT_GATEWAY\", \"parameters\": { \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\", \"gateway\": \"stripe\", \"stripe:version\": \"2019-05-16\" } } }],\"transactionInfo\": { \"currencyCode\": \"AUD\", \"totalPriceStatus\": \"ESTIMATED\", \"totalPrice\": \"1.0\"}}" }
Beispiel 2
{ "tokenizationParameters": { "tokenizationType": "PAYMENT_GATEWAY", "parameters": { "gateway": "braintree", "braintree:apiVersion": "v1", "braintree:sdkVersion": "1.4.0", "braintree:merchantId": "a1b2c3d4e5", "braintree:clientKey": "production_braintree_client_key", "braintree:authorizationFingerprint": "same_as_client_key" } }, "supportedCardNetworks": [ "AMEX", "DISCOVER", "MASTERCARD", "JCB", "VISA" ], "prepaidCardDisallowed": true }
Beispiel 3
{ "tokenizationParameters": { "tokenizationType": "PAYMENT_GATEWAY", "parameters": { "gateway": "stripe", "stripe:publishableKey": "pk_live_stripe_client_key", "stripe:version": "2017-04-06" } }, "supportedCardNetworks": [ "AMEX", "DISCOVER", "MASTERCARD", "VISA", "JCB" ], "prepaidCardDisallowed": true, "billingAddressRequired": true }
MerchantInfo
Mit diesem Objekt können Sie die Unterstützung der Google Pay API für Ihre Website konfigurieren.
In der folgenden Tabelle sind die Properties für den Typ MerchantInfo
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
merchantId |
String |
Die von Google Pay vergebene Google-Händler-ID. |
|
merchantName |
String | Erforderlich. Der Name des Händlers, codiert als UTF-8. Der Name des Händlers wird auf der Zahlungsseite angezeigt. |
OnFulfillmentPaymentData
Verwende dieses Objekt, um zusätzliche Daten für den Zahlungstyp „ON_FULFILLMENT“ zu senden.
In der folgenden Tabelle sind die Properties für den Typ OnFulfillmentPaymentData
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
supportedPaymentOptions |
List<PaymentOptionsEnums > |
Liste der Zahlungsoptionen, die dem Nutzer zum Zeitpunkt der Auftragsausführung zur Verfügung stehen. |
Das folgende Beispiel zeigt ein OnFulfillmentPaymentData
-Element:
Beispiel
{ "supportedPaymentOptions": [ "Cash", "Card" ] }
Parameter
Hier werden Typen für TokenizationParameters
definiert.
In der folgenden Tabelle sind die Properties für den Typ Parameters
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
gateway |
String | Erforderlich. Beispiel: |
|
gatewayMerchantId |
String | ||
[additionalKey: string] |
String | Zusätzliche Schlüssel/Wert-Paare |
Das folgende Beispiel zeigt ein Parameters
-Element:
Beispiel 1
{ "gatewayMerchantId": "90412491", "gateway": "olo" }
Beispiel 2
{ "gateway": "braintree", "braintree:apiVersion": "v1", "braintree:sdkVersion": "1.4.0", "braintree:merchantId": "YOUR_MERCHANT_ID", "braintree:clientKey": "YOUR_BRAINTREE_SANDVOX_OR_PRODUCTION_KEY" }
PaymentDataRequest
Mit diesem Objekt können Sie die Unterstützung der Google Pay API für Ihre Website konfigurieren.
In der folgenden Tabelle sind die Properties für den Typ PaymentDataRequest
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
apiVersion |
Const | Erforderlich. Hauptversion der API. Wert: |
|
apiVersionMinor |
Const | Erforderlich. Nebenversion der API. Wert: |
|
merchantInfo |
MerchantInfo |
Erforderlich. (Google Pay-Händler-ID) Informationen zum Händler, der Zahlungsdaten anfordert. |
|
allowedPaymentMethods |
List<PaymentMethod > |
Erforderlich. Gibt die Unterstützung für eine oder mehrere von der Google Pay API unterstützte Zahlungsmethoden an. |
|
transactionInfo |
TransactionInfo |
Erforderlich. Details zur Autorisierung der Transaktion, je nachdem, ob der Nutzer der Transaktion zustimmt oder nicht. Dieses Feld enthält den Gesamtpreis und den Preisstatus. |
Das folgende Beispiel zeigt ein PaymentDataRequest
-Element:
Beispiel
{ "apiVersion": 2, "apiVersionMinor": 0, "merchantInfo": { "merchantId": "10391231", "merchantName": "Burrito Town" }, "allowedPaymentMethods": [ { "type": "CARD", "parameters": { "allowedAuthMethods": [ "PAN_ONLY" ], "allowedCardNetworks": [ "VISA", "AMEX", "MASTERCARD" ], "billingAddressRequired": true, "billingAddressParameters": { "format": "FULL" }, "cvcRequired": false }, "tokenizationSpecification": { "type": "PAYMENT_GATEWAY", "parameters": { "gateway": "stripe", "stripe:version": "2019-05-16", "stripe:publishableKey": "pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA" } } } ], "transactionInfo": { "currencyCode": "INR", "totalPriceStatus": "ESTIMATED", "totalPrice": "185.00" } }
PaymentInfo
Zahlungsinformationen für eine Bestellung.
In der folgenden Tabelle sind die Properties für den Typ PaymentInfo
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
displayName |
String | Erforderlich. Der für Nutzer sichtbare Name des Zahlungsmittels, der auf dem Beleg angezeigt werden soll. |
|
paymentType |
PaymentType |
Erforderlich. |
|
googleProvidedPaymentInstrument |
GoogleProvidedPaymentInstrument |
Token, das von der Aktion verwendet werden kann. Geben Sie diese Option nur an, wenn Sie in der CheckoutResponseMessage „GoogleProvidedPaymentOptions“ als Zahlungsoption angegeben haben. |
Das folgende Beispiel zeigt ein PaymentInfo
-Element:
Beispiel 1
{ "displayName": "Visa\u2006****\u20061111", "googleProvidedPaymentInstrument": { "instrumentToken": "abcd" }, "paymentType": "PAYMENT_CARD" }
Beispiel 2
{ "displayName": "Visa\u2006****\u20061111", "googleProvidedPaymentInstrument": { "instrumentToken": "abcd", "billingAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "123 Random Street", "Unit ABC" ], "recipients": [ "sample_receipient" ] } }, "paymentType": "PAYMENT_CARD" }
Zahlungsmethode
Mit diesem Objekt können Sie die Unterstützung der Google Pay API für Ihre Website konfigurieren.
In der folgenden Tabelle sind die Properties für den Typ PaymentMethod
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
type |
Const | Erforderlich. Kurze Kennung für die unterstützte Zahlungsmethode. Derzeit wird nur CARD unterstützt. Wert: |
|
parameters |
CardParameters |
Erforderlich. Parameter, die zum Konfigurieren des angegebenen Zahlungsmitteltyps 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" } } }
PaymentOptions
In der folgenden Tabelle sind die Properties für den Typ PaymentOptions
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
Es ist genau eine der folgenden Gruppen von Properties erforderlich. | |||
googleProvidedOptions |
Gruppe 1 | GoogleProvidedPaymentOptions |
Schließt sich mit „actionProvidedOptions“ aus. Verwenden Sie diese für Onlinezahlungen mit gPay. |
actionProvidedOptions |
Gruppe 2 | ActionProvidedPaymentOptions |
Schließt sich gegenseitig mit „googleProvidedOptions“ aus. Verwenden Sie diese Option für „Barzahlung bei Lieferung“ oder „Zahlung bei Lieferung“. |
Das folgende Beispiel zeigt ein PaymentOptions
-Element:
Beispiel 1
{ "googleProvidedOptions": { "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": { \"merchantId\": \"Merchant ID\", \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [ { \"type\": \"CARD\", \"parameters\": { \"allowedAuthMethods\": [ \"PAN_ONLY\" ], \"allowedCardNetworks\": [ \"VISA\", \"AMEX\", \"MASTERCARD\" ], \"billingAddressRequired\": false }, \"tokenizationSpecification\": { \"type\": \"PAYMENT_GATEWAY\", \"parameters\": { \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\", \"gateway\": \"stripe\", \"stripe:version\": \"2019-05-16\" } } }],\"transactionInfo\": { \"currencyCode\": \"AUD\", \"totalPriceStatus\": \"ESTIMATED\", \"totalPrice\": \"1.0\"}}" } }
Beispiel 2
{ "googleProvidedOptions": { "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": { \"merchantId\": \"Merchant ID\", \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [ { \"type\": \"CARD\", \"parameters\": { \"allowedAuthMethods\": [ \"PAN_ONLY\" ], \"allowedCardNetworks\": [ \"VISA\", \"AMEX\", \"MASTERCARD\" ], \"billingAddressRequired\":true, \"billingAddressParameters\": { \"format\":\"MIN\" } }, \"tokenizationSpecification\": { \"type\": \"PAYMENT_GATEWAY\", \"parameters\": { \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\", \"gateway\": \"stripe\", \"stripe:version\": \"2019-05-16\" } } }],\"transactionInfo\": { \"currencyCode\": \"AUD\", \"totalPriceStatus\": \"ESTIMATED\", \"totalPrice\": \"1.0\"}}" } }
Beispiel 3
{ "actionProvidedOptions": { "paymentType": "ON_FULFILLMENT", "displayName": "Pay when you get your food.", "onFulfillmentPaymentData": { "supportedPaymentOptions": [ "Cash", "Card" ] } } }
PaymentOptionsEnums
Der Typ PaymentOptionsEnums
hat folgende mögliche Werte:
Cash
Card
UPI
Paytm
PaymentType
Der Typ PaymentType
hat folgende mögliche Werte:
PAYMENT_CARD
: Für GoogleProvidedPaymentOptions.ON_FULFILLMENT
: Für ActionProvidedPaymentOptions.
SupportedCardNetworks
Hier werden Typen fürGoogleProvidedPaymentOptions
definiert.
Der Typ SupportedCardNetworks
hat folgende mögliche Werte:
UNSPECIFIED_CARD_NETWORK
AMEX
DISCOVER
JCB
MASTERCARD
VISA
TokenizationParameters
Definiert Typen im Zusammenhang mitGoogleProvidedPaymentOptions
.
In der folgenden Tabelle sind die Properties für den Typ TokenizationParameters
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
tokenizationType |
Enum [
"UNSPECIFIED_TOKENIZATION_TYPE",
"PAYMENT_GATEWAY"
] |
Erforderlich. Verwenden Sie stattdessen „facilitationSpecification“. Zulässige Tokentypen |
|
parameters |
Parameters |
Verwenden Sie stattdessen „facilitationSpecification“. |
TokenizationSpecification
Mit diesem Objekt können Sie ein Konto für den Empfang abrechenbarer Zahlungsinformationen konfigurieren.
In der folgenden Tabelle sind die Properties für den Typ TokenizationSpecification
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
type |
Const | 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, mit der die Zahlungsfähigkeit eines Zahlungspflichtigen bestimmt wird. Damit wird ein Dialogfeld für die Zahlungsautorisierung angezeigt.
In der folgenden Tabelle sind die Properties für den Typ TransactionInfo
aufgeführt:
Attribut | Typ | Beschreibung | |
---|---|---|---|
currencyCode |
String | Erforderlich. Alphabetischer Währungscode gemäß ISO 4217. |
|
transactionId |
String |
Eindeutige ID, die einen Transaktionsversuch identifiziert. Händler können eine vorhandene ID verwenden oder eine bestimmte ID für Google Pay-Transaktionsversuche generieren. Dieses Feld ist erforderlich, wenn Sie Rückrufe an die Google Transaction Events API senden. |
|
totalPriceStatus |
Const | Erforderlich. Verwenden Sie „ESTIMATED“ (GESCHÄTZT) als Standard. Der Gesamtpreis kann sich je nach den Details der Antwort ändern, z. B. aufgrund der Mehrwertsteuer, die anhand einer Rechnungsadresse erhoben wird. Wert: |
|
totalPrice |
String | Erforderlich. Der Gesamtwert der Transaktion mit einer optionalen Dezimalgenauigkeit von zwei Dezimalstellen. Dieses Feld sollte denselben Wert wie „cart.totalPrice“ haben. |
Das folgende Beispiel zeigt ein TransactionInfo
-Element:
Beispiel
{ "totalPriceStatus": "ESTIMATED", "totalPrice": "12.34", "currencyCode": "USD" }