Sipariş karşılama işlemleri şeması

Bu sayfada, Ordering End-to-Uçtan İşlem API'si ile çalışırken sipariş karşılama web hizmetinin (Ordering End-to-End API) yükü açıklanmaktadır. Bu bilgilerin makine tarafından okunabilir bir sürümü için JSON şemasını indirebilirsiniz.

Taban Türleri

Alışveriş sepeti

Siparişle ilgili ayrıntıları ve isteğin teslim alma mı yoksa teslimat için mi olduğunu içerir. Alışveriş sepetinde teslimat bilgileri, bahşiş ve teslimat adresi de bulunur. Cart nesnesi Checkout AppRequest.f dosyasında tanımlanır Alışveriş sepetinin bir kopyasını Checkout AppResponse öğenize eklersiniz.

Aşağıdaki tabloda Cart türü için özellikler listelenmiştir:

Özellik Tür Açıklama
@type Sabit

Bu nesnenin türü. Üst Alışveriş sepeti nesnesi, ProposedOrder'ın bir parçasıysa bu alanı atlayın.

Değer: type.googleapis.com/google.actions.v2.orders.Cart

id String

İsteğe bağlı alışveriş sepeti kimliği.

merchant Merchant

Bu alışveriş sepetiyle ilişkili satıcı.

lineItems Listele<LineItem>

Zorunlu.

Kullanıcının sipariş ettiği ürünlerin veya hizmetlerin listesi.

En az 1 öğe içermelidir.

promotions Listele<Promotion>

Bu alışveriş sepetine uygulanan promosyon. Şu anda yalnızca bir promosyon desteklenmektedir.

notes String

Sipariş veya teslimat talimatlarıyla ilgili notlar.

extension FoodCartExtension

Kullanıcıyla ilgili, sipariş karşılama tercihleri gibi ayrıntıları tanımlar.

Aşağıdaki örnekte bir Cart öğesi gösterilmektedir:

1. Örnek

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

2. Örnek

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

İletişim

Siparişi teslim alan kişiyle ilgili ayrıntıları belirtir. Yalnızca AppResponse olarak kullanılabilir.

Aşağıdaki tabloda Contact türü için özellikler listelenmiştir:

Özellik Tür Açıklama
displayName String

Siparişi alan kişinin (siparişin gösterilmesini istediğiniz şekilde) adı. firstName ve lastName belirtilmezse bu alanı kullanın.

Örnek: Lovefood Ordering

email String

Siparişi alan kişinin e-posta adresi.

Örnek: ilovefood@example.com

firstName String

Siparişi alan kişinin adı.

Örnek: Lovefood

lastName String

Siparişi alan kişinin soyadı.

Örnek: Ordering

phoneNumber String

Ülke kodu dahil olmak üzere siparişi alan kişinin telefon numarası.

Örnek: +16501234567

emailVerified Boole

Siparişi alan kişinin Google hesabıyla giriş yapıp yapmadığını belirtir.

Aşağıdaki örnekte bir Contact öğesi gösterilmektedir:

Örnek

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

CustomPushMessage

İsteğin OrderUpdate öğesini içerir.

Aşağıdaki tabloda CustomPushMessage türü için özellikler listelenmiştir:

Özellik Tür Açıklama
orderUpdate OrderUpdate

Zorunlu.

Siparişle ilgili bilgiler güncellendi.

Aşağıdaki örnekte bir CustomPushMessage öğesi gösterilmektedir:

Örnek

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

Aşağıdaki tabloda DeliveryInfo türü için özellikler listelenmiştir:

Özellik Tür Açıklama
deliveryTimeIso8601 String

ISO 8601 zaman damgası biçiminde tahmini teslimat süresi: "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" veya süre biçimi: "P(n)Y(n)M(n)DT(n)H(n)M(n)S". Örneğin, PT90M, 90 dakikalık bir süreyi temsil eder. Varsayılan değer olan "PT0M", tercih edilen teslimat süresinin mümkün olan en kısa zaman olduğunu gösterir. Referans: https://en.wikipedia.org/wiki/ISO_8601#Merged_date_and_time_representations. Ödeme yanıtı sırasında tahmini teslimat süresini güncellemek için bunu kullanın.

Örnek: PT90M

Aşağıdaki örnekte bir DeliveryInfo öğesi gösterilmektedir:

Örnek

{
  "deliveryTimeIso8601": "PT90M"
}

Sorumluluk Reddi Beyanı

Aşağıdaki tabloda Disclaimer türü için özellikler listelenmiştir:

Özellik Tür Açıklama
predefinedMessage PredefinedMessage

Zorunlu.

Ödeme sırasında önceden tanımlanmış sorumluluk reddi beyanı mesajlarının gösterilmesi için.

feeAmount Money

İş ortağı, bu sipariş için satıcıdan N tutarında ücret alır.

feeAmountRange FeeAmountRange

İş ortağı, restorandan sipariş başına N ila M tutarında ücret alır.

feePercent Number

İş ortağı, bu sipariş için satıcıdan% N oranında ücret alır.

feePercentRange FeePercentRange

İş ortağı, satıcıdan sipariş başına% N ila% M oranında ücret alır.

Aşağıdaki örnekte bir Disclaimer öğesi gösterilmektedir:

1. Örnek

{
  "predefinedMessage": "NEW_YORK_DELIVERY_FEE_TIP_DISCLAIMER"
}

2. Örnek

{
  "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE"
}

3. Örnek

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

4. Örnek

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

Örnek 5

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

6. Örnek

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

Hata

Error türü aşağıdaki olası değerlere sahiptir:

  • CLOSED: Restoran, sipariş sırasında işletme için kapalıdır.
  • NO_CAPACITY: Kullanılabilir hizmet kapasitesi yok (örneğin, yoğun saatler nedeniyle geçici kesinti).
  • NO_COURIER_AVAILABLE: Teslimat personeli sınırlı olduğundan sipariş işlenemiyor.
  • REQUIREMENTS_NOT_MET: Siparişin kabul edilmesine ilişkin kısıtlamalar karşılanmadı (örneğin, minimum sepet boyutu).
  • UNAVAILABLE_SLOT: Sipariş, DeliveryInfo veya PickupInfo tarafından belirtilen zamanında yerine getirilemez.
  • OUT_OF_SERVICE_AREA: Sipariş, kullanıcının adresine teslim edilemiyor.
  • PROMO_EXPIRED: Promosyonun süresi dolduğu için uygulanamadı.
  • PROMO_NOT_APPLICABLE: Diğer promosyon kodu hatalarının hiçbiri sığmadığı takdirde promosyon kodunun uygulanamadığı tüm durumları yakalamak için kullanılan genel hata kodu.
  • PROMO_NOT_RECOGNIZED: Kupon kodu tanınmadı.
  • PROMO_ORDER_INELIGIBLE: Mevcut sipariş bu kupon için uygun değil.
  • PROMO_USER_INELIGIBLE: Mevcut kullanıcı bu kupon için uygun değil.
  • AVAILABILITY_CHANGED: Öğe artık mevcut değil veya isteği yerine getirmek için yeterli öğe yok.
  • INCORRECT_PRICE: Ücret veya toplam fiyat hataları.
  • INVALID: Bir Satır Öğesi, FulfillmentOption veya Promosyon geçersiz veri içeriyor.
  • NOT_FOUND: Bir Satır Öğesi, FulfillmentOption veya Promosyon bulunamıyor.
  • PRICE_CHANGED: Bir öğenin fiyatı değişti.

FeeAmountRange

Aşağıdaki tabloda FeeAmountRange türü için özellikler listelenmiştir:

Özellik Tür Açıklama
minFeeAmount Money

Alınan ücret tutarının alt sınırı.

maxFeeAmount Money

Alınan ücret tutarının üst sınırı.

FeePercentRange

Aşağıdaki tabloda FeePercentRange türü için özellikler listelenmiştir:

Özellik Tür Açıklama
minFeePercent Number

Alınan ücret yüzdesinin alt sınırı.

maxFeePercent Number

Alınan ücret yüzdesinin üst sınırı.

FoodCartExtension

Kullanıcıyla ilgili, sipariş karşılama tercihleri gibi ayrıntıları içerir.

Aşağıdaki tabloda FoodCartExtension türü için özellikler listelenmiştir:

Özellik Tür Açıklama
@type Sabit

Bu uzantının türü. Bu alan her zaman "type.googleapis.com/google.actions.v2.orders.FoodCartExtension" değerine ayarlanır.

Değer: type.googleapis.com/google.actions.v2.orders.FoodCartExtension

contact Contact

Siparişi alan kişinin iletişim bilgileri. Ayrıntılar arasında kişinin adı, telefon numarası ve e-posta adresi bulunur.

fulfillmentPreference FulfillmentOption

Zorunlu.

Kullanıcının sipariş karşılama tercihi.

location Location

CheckoutRequestMessage'da bu alan, siparişin teslim edilmesi için gerekli olan teslimat adresini belirtir. Paket servisi veya teslim alma için verilen siparişlerde bu alan mesaja dahil edilmez.

Aşağıdaki örnekte bir FoodCartExtension öğesi gösterilmektedir:

1. Örnek

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

2. Örnek

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

Bir istek işlenirken oluşan bir veya daha fazla hatayı tanımlar. Aşağıdaki tabloda FoodErrorExtension türündeki alanlar açıklanmaktadır. Hatalar CheckoutResponse içinde gönderilebilir.

Aşağıdaki tabloda FoodErrorExtension türü için özellikler listelenmiştir:

Özellik Tür Açıklama
@type Sabit

Zorunlu.

Bu uzantının türü.

Değer: type.googleapis.com/google.actions.v2.orders.FoodErrorExtension

foodOrderErrors Listele<FoodOrderError>

Zorunlu.

Oluşan hataları açıklayan FoodOrderError nesneleri dizisi. Alışveriş sepeti veya öğe başına bir hata önerilir.

En az 1 öğe içermelidir.

correctedProposedOrder ProposedOrder

foodOrderErrors.error = "UNAVAILABLE_SLOT", "PROMO_EXPIRED", "PROMO_NOT_APPLICABLE", "PROMO_NOT_RECOGNIZED", "PROMO_ORDER_INELIGIBLE", "PROMO_USER_INELIGIBLE", "AVAILABILITY_CHANGED", "INCORRECT_PRICE", "INVALID", "NOT_FOUND", or "PRICE_CHANGED" olduğunda zorunludur.

Düzeltmeler içeren yeni bir ProposedOrder. Orijinal ProposedOrder'da kurtarılabilir hatalar varsa bu nesneyi döndürün. Örneğin, alışveriş sepetindeki bir veya daha fazla satır öğesinin fiyatındaki değişiklik kurtarılabilir bir hatadır. Geçerli bir ProposedOrder ile ilgili kurtarılabilir hatalar, kullanıcının alışveriş sepetini incelemesini gerektirmeden onay aşamasına geçilir.

paymentOptions PaymentOptions

foodOrderErrors.error = "UNAVAILABLE_SLOT", "PROMO_EXPIRED", "PROMO_NOT_APPLICABLE", "PROMO_NOT_RECOGNIZED", "PROMO_ORDER_INELIGIBLE", "PROMO_USER_INELIGIBLE", "AVAILABILITY_CHANGED", "INCORRECT_PRICE", "INVALID", "NOT_FOUND", or "PRICE_CHANGED" olduğunda zorunludur.

Kullanıcı için varsayılan ödeme seçenekleri belirlendi.

additionalPaymentOptions Listele<PaymentOptions>

Kullanıcıya sunulan alternatif ödeme seçenekleri.

Aşağıdaki örnekte bir FoodErrorExtension öğesi gösterilmektedir:

Örnek

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

Gıda öğeleri için eklentileri tanımlar.

Aşağıdaki tabloda FoodItemExtension türü için özellikler listelenmiştir:

Özellik Tür Açıklama
@type Sabit

Zorunlu.

Bu uzantının türü. Bu alan her zaman "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" olarak ayarlanır.

Değer: type.googleapis.com/google.actions.v2.orders.FoodItemExtension

options Listele<FoodItemOption>

Bir seçenek, bir eklenti grubu içeren bir eklenti öğesi veya eklenti grubu olabilir.

Aşağıdaki örnekte bir FoodItemExtension öğesi gösterilmektedir:

Örnek

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

Aşağıdaki tabloda FoodItemOption türü için özellikler listelenmiştir:

Özellik Tür Açıklama
id String

Google tarafından atanan benzersiz kimlik. Bir FoodOrderError veya AsyncOrderUpdateRequest gönderdiğinizde bir alışveriş sepetinin aynı offerId değerine sahip birden fazla öğe içerdiği durumları ayırt etmek için bu alanı kullanın.

Örnek: 39231093

offerId String

Öğenin teklif kimliği.

Örnek: 912835081

name String

Seçenek adı.

Örnek: Honey Mustard

price Money
note String

Seçenekle ilgili not.

quantity Number

Öğe olan seçenekler için öğe sayısı.

Örnek: 3

subOptions Listele<FoodItemOption>

Seçeneğin alt seçenekleri (varsa).

Örnek: [ { "id": "71283712", "offerId": "51209121", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "units": "3", "nanos": 780000000 }, "quantity": 2 }, { "id": "102941024", "offerId": "12084102", "name": "Ketchup", "price": { "currencyCode": "USD", "units": "2", "nanos": 980000000 }, "quantity": 6 } ]

Aşağıdaki örnekte bir FoodItemOption öğesi gösterilmektedir:

1. Örnek

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

2. Örnek

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

CheckoutResponse içindeki hatalarla ilgili ayrıntıları içerir.

Aşağıdaki tabloda FoodOrderError türü için özellikler listelenmiştir:

Özellik Tür Açıklama
error Error

Zorunlu.

id String

error = "AVAILABILITY_CHANGED", "INCORRECT_PRICE", "PRICE_CHANGED", "INVALID", or "NOT_FOUND" olduğunda zorunludur.

Bu alan, öğe düzeyindeki hatalar için gereklidir. Menü öğeleri için Google tarafından atanan LineItem.id veya eklentiler için FoodItemOption.id'dir.

description String

Hatanın açıklaması. Bu açıklama dahili günlük kaydı içindir ve kullanıcılar tarafından görülemez.

updatedPrice Money

error = "PRICE_CHANGED" olduğunda zorunludur.

Hataya neden olan öğenin yeni fiyatı. Bu yalnızca hata "PRICE_CHANGED" olduğunda gereklidir.

availableQuantity Integer

error = "INVALID", or "NOT_FOUND" olduğunda zorunludur.

Hataya neden olan öğenin yeni kullanılabilir miktarı. Bu yalnızca hata "INVALID" veya "NOT_FOUND" olduğunda gereklidir. "INVALID" ve "NOT_FOUND" için değer sıfır olmalıdır.

Aşağıdaki örnekte bir FoodOrderError öğesi gösterilmektedir:

1. Örnek

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

2. Örnek

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

FoodOrderExtension

Siparişle ilgili sipariş karşılama bilgilerini içerir.

Aşağıdaki tabloda FoodOrderExtension türü için özellikler listelenmiştir:

Özellik Tür Açıklama
@type Sabit

Bu uzantının türü. Bu alan her zaman "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension" olarak ayarlanır.

Değer: type.googleapis.com/google.actions.v2.orders.FoodOrderExtension

availableFulfillmentOptions Listele<FulfillmentOption>

Sipariş için mevcut sipariş karşılama seçeneklerini gösterir.

optinForRemarketing Boole

Kullanıcı, pazarlama kanallarınıza kaydolmayı talep ediyor. Varsayılan olarak, kullanıcının izni olmadan pazarlama içeriği gönderemezsiniz. optinForYeniden Pazarlama doğruysa kullanıcıyı abone yapabilirsiniz. optinForYeniden Pazarlama yanlışsa veya mevcut değilse, abonelik durumunu sisteminizde olduğu gibi tutmanız gerekir. Kullanıcılar Google aracılığıyla bu özelliği devre dışı bırakamaz, yalnızca pazarlama kanallarınızda sağlanan bir abonelik iptali işleviyle bu özelliği devre dışı bırakabilirler. Bu işaret yalnızcaSubmitOrderRequestMessage'da mevcuttur.

Aşağıdaki örnekte bir FoodOrderExtension öğesi gösterilmektedir:

1. Örnek

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

2. Örnek

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

FulfillmentOption

Bir FulfillmentOption nesnesini aşağıdaki şekillerde kullanabilirsiniz:
  • Checkout AppRequest ve Submit AppRequest içinde Cart.extension.fulfillmentPreference: Kullanıcının tercihini depolar (teslimat veya teslim alma). Ödeme isteği gönderildiğinde fiyat her zaman 0 olur.
  • Checkout AppResponse içinde ProposedOrder.extension.availableFulfillmentOptions: Bir veya daha fazla yayınlama seçeneği tanımlar (şu anda yalnızca bir seçenek desteklenmektedir). ProposedOrder.otherItems ürününde varsayılan seçeneği LineItem olarak belirtirsiniz. FulfillmentOption öğesinin offerId öğesi, ProposedOrder.otherItems özelliğinde belirtilen LineItem kimliğiyle eşleşmelidir.

Aşağıdaki tabloda FulfillmentOption türü için özellikler listelenmiştir:

Özellik Tür Açıklama
offerId String

Varsa bu sipariş karşılama seçeneğinin benzersiz tanımlayıcısı.

fulfillmentInfo FulfillmentOptionInfo

Zorunlu.

expiresAt ISO Zaman Damgası

Bu sipariş karşılama seçeneğinin süresinin dolacağı saat.

price Money

Bu seçeneğin maliyeti.

Aşağıdaki örnekte bir FulfillmentOption öğesi gösterilmektedir:

Örnek

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

FulfillmentOptionInfo

FulfillmentInfo ile ilgili bilgileri tanımlar.

Aşağıdaki tabloda FulfillmentOptionInfo türü için özellikler listelenmiştir:

Özellik Tür Açıklama
Aşağıdaki tesis gruplarından tam olarak biri gereklidir.
delivery 1. Grup DeliveryInfo

Varsa teslimat sırasını belirtir.

pickup 2. Grup PickupInfo

Varsa, teslim alma siparişini belirtir.

Resim

Aşağıdaki tabloda Image türü için özellikler listelenmiştir:

Özellik Tür Açıklama
sourceUrl String

Zorunlu.

Resmin URL'si Resim en azından 72x72 piksel olmalıdır. En iyi sonuçlar için en az 216x216 piksel boyutunda bir resim kullanın. Resim 6 MB'tan küçük ve 64 megapiksel olmalıdır.

LineItem

Bir alışveriş sepetinin içeriğini (Cart.lineItems) veya sipariş için ek ödemeleri (ProposedOrder.otherItems) tanımlar.

Aşağıdaki tabloda LineItem türü için özellikler listelenmiştir:

Özellik Tür Açıklama
id String

type = "REGULAR" olduğunda zorunludur.

Alışveriş Sepetindeki bir Satır Öğesi (ProposedOrder.cart.lineItems[0].id) için, Google tarafından siparişi oluştururken oluşturulan benzersiz kimliktir. Teslimat ücretleri ve vergiler gibi öğeleri eklemek için kullanılan ProposedOrder (ProposedOrder.otherItems[0].id) içindeki bir Satır Öğesi için kimliğin değeri sağlayıcı tarafından tanımlanır. Örneğin, bir alışveriş sepetinde aynı öğelerden iki tanesi farklı hazırlama talimatlarına sahip (farklı malzeme setleri olan iki orta boy pizza gibi). Bu durumda, her iki öğe de aynı temel OfferId'ye sahiptir. Bir öğenin reddedildiğini belirtmek için sipariş güncelleme isteği gönderdiğinizde, açıklayıcı olarak bu kimliği kullanın. Diğer bir deyişle, pizzalardan biri belirli bir malzemesi olmadığı için reddedilirse kimlik Google'ın hangi siparişte bahsettiğiniz öğeyi belirlemesine yardımcı olur. Bu alan, otherItems dışında zorunludur.

name String

Zorunlu.

Satır öğesinin adı. Bu, kullanıcı tarafından görülebilen bir dizedir ve mümkün olduğunda cümle düzeninde olmalıdır (ör. "Teslimat ücreti", "Hizmet ücreti", "Vergi"). Bu alan, kullanıcılar için 100 karakter olacak şekilde kısaltılmıştır.

type LineItemType

Zorunlu.

quantity Integer

type = "REGULAR" olduğunda zorunludur.

Dahil edilen öğe sayısı. ProposedOrder.otherItems için geçerli değildir.

description String

Öğenin açıklaması.

price Price

Zorunlu.

Öğenin veya öğelerin fiyatı. Bu değer, bu satır öğesi için tüm ürün veya hizmetlerin toplam fiyatını yansıtır (başka bir deyişle, tüm eklentilerin maliyetini ekleyin ve miktarla çarpın). Örneğin: 10 TL'lik bir öğenin miktarı 3 ise fiyat 30 TL olur. Taban fiyatı 5 TL ve eklenti fiyatı 1 TL olan bir pizzanın fiyatı 6 TL olur. Taban fiyatı 5 TL olan ve her birinin eklentisi 1 TL olan iki pizza (miktar = 2) için fiyat 12 TL olur. Fiyat "0" olsa bile her bir Satır Öğesinin bir fiyatı olmalıdır. Tür DISCOUNT olduğunda değeri negatif olarak belirtin (örneğin, "-2").

subLines Listele<SublineNote>

İsteğe bağlıdır ve yalnızca tür "DÜZENLİ" ise geçerlidir. Ödeme ve sipariş gönderme isteklerindeki bu alana kullanıcıdan öğeye özel bir not gönderilebilir. Notun, satıcıya ulaştığından emin olun. Bu değer, istekte subLines[0].note olarak yer alacaktır. Bu, bir istekte mevcut olduğunda bu alanda sağlanan tek değerdir.

En fazla 1 öğe içermelidir.

offerId String

type = "REGULAR" olduğunda zorunludur.

Öğenin Menü Öğesinin teklif kimliği. ProposedOrder.otherItems için geçerli değildir.

extension FoodItemExtension

Gıda öğeleri için eklentileri tanımlar.

Aşağıdaki örnekte bir LineItem öğesi gösterilmektedir:

1. Örnek

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

2. Örnek

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

LineItemType türü aşağıdaki olası değerlere sahiptir:

  • REGULAR: Ürün satır öğesi. Cart.lineItems için geçerlidir.
  • TAX: Vergi satır öğesi. ProposedOrder.otherItems için geçerlidir.
  • DISCOUNT: İndirimli satır öğesi. Fiyatın negatif olması gerektiğini unutmayın. ProposedOrder.otherItems için geçerlidir.
  • GRATUITY: Bahşiş satır öğesi. Genellikle kullanıcı tarafından seçilen bir ipucu içinSubmitOrderRequestMessage için ayrılmıştır. ProposedOrder.otherItems için geçerlidir.
  • DELIVERY: Yayınlama satır öğesi. ProposedOrder.otherItems için geçerlidir.
  • SUBTOTAL: Satır öğesinin ara toplamı. ProposedOrder.otherItems için geçerlidir.
  • FEE: Diğer türlerin kapsamına girmeyen ek satır öğesi. ProposedOrder.otherItems için geçerlidir.

Konum

Yemek siparişi için bir adres belirtir. Location türü, Cart içinde yalnızca teslimat siparişinin hedefini belirtmek için kullanılır. Kullanıcı siparişi verirse nihai konum TransactionDecisionValue'da da gösterilir. Teslim alma değerini belirten siparişlerde konum hiçbir şekilde dahil edilmez (boş bir yer bile dahil).

Aşağıdaki tabloda Location türü için özellikler listelenmiştir:

Özellik Tür Açıklama
coordinates Coordinates
formattedAddress String

Konumun adresini görüntüleyin.

Örnek: 1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States

postalAddress PostalAddress
zipCode String

Örnek: 90210

city String

Şehrin adı.

Örnek: Los Angeles

notes String

Konumla ilgili notlar (ör. kapı kodları.) Ad en fazla 500 karakter olmalıdır.

Örnek: Gate code is #111

Aşağıdaki örnekte bir Location öğesi gösterilmektedir:

Örnek

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

Satıcı

Aşağıdaki tabloda Merchant türü için özellikler listelenmiştir:

Özellik Tür Açıklama
id String

Satıcının kimliği. Belirtilmişse Restoran feed'indeki Restaurant.@id ile eşleşir.

Örnek: https://www.exampleprovider.com/merchant/id1

name String

Zorunlu.

Satıcının, kullanıcı tarafından görülebilen adı.

Örnek: Falafel Bite

Aşağıdaki örnekte bir Merchant öğesi gösterilmektedir:

Örnek

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

Para birimi

Aşağıdaki tabloda Money türü için özellikler listelenmiştir:

Özellik Tür Açıklama
currencyCode String

Zorunlu.

ISO 4217 biçiminde 3 harfli para birimi kodu.

Örnek: USD

units String

Tutarın tam birimleri. Örneğin currencyCode "USD" ise "1" birimi bir ABD dolarıdır.

Örnek: 36

nanos Integer

Tutarın nano (10^-9) birimlerinin sayısı. Değer, -999.999.999 ile +999.999.999 (ikisi de dahil) arasında olmalıdır. Şu kuralları kullanın: Birim sayısı pozitifse nanos değeri pozitif veya sıfır olmalıdır. Units değeri sıfırsa nanos değeri pozitif, sıfır veya negatif olabilir. Units değeri negatifse nanos değeri negatif veya sıfır olmalıdır. Örneğin,$-1,75 birimler = -1 ve nanos = -750.000.000 olarak ifade edilir.

Örnek: 730000000

Aşağıdaki örnekte bir Money öğesi gösterilmektedir:

1. Örnek

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

2. Örnek

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

Sipariş verin

Vergiler, ücretler ve teslimat ücretleri dahil son siparişi ve ödeme bilgilerini içerir. Bu nesne, Submit AppRequest içindeki işleminiz tarafından alındı.

Aşağıdaki tabloda Order türü için özellikler listelenmiştir:

Özellik Tür Açıklama
finalOrder ProposedOrder

Zorunlu.

Siparişe neden olan sipariş.

googleOrderId String

Zorunlu.

Sipariş kimliği Google tarafından atanır. Bu kimlik, siparişin tüm yaşam döngüsü boyunca sabit olmalıdır. Bu kimlik son kullanıcı tarafından görülemez.

orderDate ISO Zaman Damgası

Zorunlu.

Siparişin oluşturulduğu tarih ve saat.

paymentInfo PaymentInfo

Zorunlu.

Bu sipariş için ödemeyle ilgili ödeme bilgileri.

Aşağıdaki örnekte bir Order öğesi gösterilmektedir:

Örnek

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

Aşağıdaki tabloda, AppResponse'e dahil olan OrderUpdate türündeki alanlar açıklanmaktadır.

Aşağıdaki tabloda OrderUpdate türü için özellikler listelenmiştir:

Özellik Tür Açıklama
actionOrderId String

Zorunlu.

Güncellemenin gönderildiği sırayı tanımlamak için kullanılan ve entegratörün sistemindeki siparişin benzersiz kimliği. makbuz.user_visible_order_id, "CREATED" siparişi için OrderUpdate'de en az bir kez sağlanmazsa bu kimlik, Google sipariş kartında görüntülenen ve girilen kullanıcı tarafından görülebilen kimlik olacaktır.

orderState OrderState

Zorunlu.

Siparişin yeni durumu.

lineItemUpdates Harita<Dize, LineItemUpdate>
updateTime ISO Zaman Damgası

Zorunlu.

Siparişin güncellendiği saat.

orderManagementActions Listele<OrderManagementAction>

Destek ekibiyle iletişime geçme ve sipariş ayrıntılarını görüntüleme gibi sipariş sonrası işlemler.

En az 1 öğe ve en fazla 6 öğe içermelidir.

rejectionInfo RejectionInfo

orderState.state = "REJECTED" olduğunda zorunludur.

cancellationInfo CancellationInfo

orderState.state = "CANCELLED" olduğunda zorunludur.

inTransitInfo InTransitInfo

Bu alan kullanımdan kaldırılmıştır.

fulfillmentInfo FulfillmentInfo

Bu alan kullanımdan kaldırılmıştır.

receipt Receipt

orderState.state = "CONFIRMED", "IN_PREPARATION", or "READY_FOR_PICKUP" olduğunda zorunludur.

Makbuzda kullanıcının görebildiği sipariş kimliğini girin.

totalPrice Price

Siparişin toplam fiyatı.

infoExtension FoodOrderUpdateExtension

Tahmini teslimat veya teslim alma aralığı gibi sipariş güncellemesiyle ilgili daha fazla ayrıntıyı tanımlar.

Aşağıdaki örnekte bir OrderUpdate öğesi gösterilmektedir:

Örnek

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

Aşağıdaki tabloda PickupInfo türü için özellikler listelenmiştir:

Özellik Tür Açıklama
pickupTimeIso8601 String

ISO 8601 zaman damgası biçiminde tahmini teslim alma zamanı: "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" veya süre biçimi: "P(n)Y(n)M(n)DT(n)H(n)M(n)S". Örneğin, PT90M, 90 dakikalık bir süreyi temsil eder. Varsayılan değer olan "PT0M", tercih edilen teslim alma süresinin mümkün olan en kısa zaman olduğunu gösterir. Referans: https://en.wikipedia.org/wiki/ISO_8601#Merged_date_and_time_representations. Ödeme yanıtı sırasında tahmini teslim alma süresini güncellemek için bunu kullanın.

Örnek: PT90M

Aşağıdaki örnekte bir PickupInfo öğesi gösterilmektedir:

Örnek

{
  "pickupTimeIso8601": "PT90M"
}

PostalAddress

Aşağıdaki tabloda PostalAddress türü için özellikler listelenmiştir:

Özellik Tür Açıklama
regionCode String

Zorunlu.

İki harfli ülke kodu.

Örnek: US

postalCode String

Posta kodu.

Örnek: 94043

administrativeArea String

Bir ülkenin veya bölgenin posta adresleri için kullanılan en yüksek idari alt bölüm. Bu bir eyalet, il, oblast veya il olabilir.

Örnek: CA

locality String

Bu konumun bulunduğu şehir veya ilçe. Dünyanın iyi tanımlanmadığı veya bu yapıya uymayan bölgelerinde, yerellik belirtmeyin ve bunun yerine addressLines alanını kullanın.

Örnek: Mountain View

addressLines List<String>

Açık adresi belirtmek için kullanabileceğiniz bir veya daha fazla satır. Bu alan, belirsiz yerler içerebileceği için değiştirilmemelidir.

Örnek: [ "1350 Charleston Road" ]

recipients List<String>

Siparişin alıcılarının listesi. Bu alan yalnızca billingAddress alanında kullanılabilir.

Aşağıdaki örnekte bir PostalAddress öğesi gösterilmektedir:

Örnek

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

Fiyat

Aşağıdaki tabloda Price türü için özellikler listelenmiştir:

Özellik Tür Açıklama
type Enum [ "ESTIMATE", "ACTUAL" ]

Zorunlu.

Promosyon kupon kodu.

amount Money

Zorunlu.

Tanıtım

Aşağıdaki tabloda Promotion türü için özellikler listelenmiştir:

Özellik Tür Açıklama
coupon String

Zorunlu.

Promosyon kupon kodu.

ProposedOrder

Aşağıdaki tabloda ProposedOrder türü için özellikler listelenmiştir:

Özellik Tür Açıklama
id String

Önerilen sipariş için isteğe bağlı kimlik.

cart Cart

Zorunlu.

Kullanıcının öğeleri.

otherItems Listele<LineItem>

Teslimat ücretleri, diğer ücretler ve vergiler gibi sağlayıcı tarafından eklenen öğeler. Diğer öğeler, kullanıcı tarafından eklenen bahşiş ve/veya indirimi de içerebilir.

En fazla 10 öğe içermelidir.

image Image

Önerilen siparişle ilişkili resim.

totalPrice Price

Zorunlu.

Önerilen siparişin toplam fiyatı.

extension FoodOrderExtension

Zorunlu.

Yemek siparişleri için sipariş karşılama bilgilerini tanımlar.

disclaimers Listele<Disclaimer>

Sipariş verilmeden önce kullanıcı arayüzünde gösterilen sorumluluk reddi beyanı mesajlarına karşılık gelir.

Aşağıdaki örnekte bir ProposedOrder öğesi gösterilmektedir:

Örnek

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

Aşağıdaki tabloda SublineNote türü için özellikler listelenmiştir:

Özellik Tür Açıklama
note String

Zorunlu.

Zaman damgası

Şu biçimde tarih ve saat: "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"

TransactionDecisionValue

Order öğesini içerir.

Aşağıdaki tabloda TransactionDecisionValue türü için özellikler listelenmiştir:

Özellik Tür Açıklama
order Order

Zorunlu.

Ödeme ayrıntılarıyla verilecek sipariş.

Aşağıdaki örnekte bir TransactionDecisionValue öğesi gösterilmektedir:

Örnek

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

Sipariş Karşılama İsteği

AppRequest

Aşağıdaki tabloda AppRequest türü için özellikler listelenmiştir:

Özellik Tür Açıklama
isInSandbox Boole

Sonraki işlemlerin korumalı alan ortamında yapılıp yapılmadığını belirtir.

conversation Conversation
inputs Listele<Input>

Zorunlu.

Alışveriş sepetini ödeme için beklenen bağımsız değişkenleri içerir.

Tam olarak 1 öğe olmalıdır.

Aşağıdaki örnekte bir AppRequest öğesi gösterilmektedir:

1. Örnek

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

2. Örnek

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

CheckoutRequestMessage, actions.foodordering.intent.CHECKOUT amacına sahip bir AppRequest'dir.

SubmitOrderRequestMessage

SubmitOrderRequestMessage, actions.foodordering.intent.TRANSACTION_DECISION amacına sahip bir AppRequest'dir.

Etkileşim

Conversation yalnızca bir oturuma özgüdür. Gerekirse birden fazla Checkout ve SubmitOrder işlemini birbirine bağlamak için bu alanı kullanabilirsiniz.

Aşağıdaki tabloda Conversation türü için özellikler listelenmiştir:

Özellik Tür Açıklama
conversationId String

Zorunlu.

Görüşmenin benzersiz kimliği.

Aşağıdaki örnekte bir Conversation öğesi gösterilmektedir:

Örnek

{
  "conversationId": "CQnJ7Z4i7UmvEZ9ph3AxyZRJ"
}

Giriş

Alışveriş sepetini ödeme için beklenen bağımsız değişkenler.

Aşağıdaki tabloda Input türü için özellikler listelenmiştir:

Özellik Tür Açıklama
intent Enum [ "actions.foodordering.intent.CHECKOUT", "actions.intent.TRANSACTION_DECISION" ]

Zorunlu.

Ödeme isteği mesajı için "actions.foodordering.intent.CHECKOUT" veya sipariş isteği mesajı göndermek için "actions.intent.TRANSACTION_DECISION" olarak ayarlayın.

arguments Listele<Argument>

Zorunlu.

Ödeme yapılacak alışveriş sepetini veya verilecek siparişi içerir

Tam olarak 1 öğe olmalıdır.

Argüman

Kullanıcının göz atmak istediği gıda ürünleriyle ilgili ayrıntıları içerir. Ödeme için yalnızca uzantı kullanılabilir. Sipariş göndermek için yalnızca transactionDecisionValue geçerlidir

Aşağıdaki tabloda Argument türü için özellikler listelenmiştir:

Özellik Tür Açıklama
Aşağıdaki tesis gruplarından tam olarak biri gereklidir.
extension 1. Grup Cart

Kullanıcının göz atmak istediği gıda ürünlerini ayrıntılı bir şekilde gösterir.

transactionDecisionValue 2. Grup TransactionDecisionValue

Verilecek siparişi ve ödeme ayrıntılarını içerir.

Sipariş Karşılama Yanıtı

AppResponse

Aşağıdaki tabloda AppResponse türü için özellikler listelenmiştir:

Özellik Tür Açıklama
expectUserResponse Sabit

Yanlış değerine ayarlayın.

Değer: False

finalResponse FinalResponse

Zorunlu.

Alışveriş sepeti ödeme işlemine verdiğiniz yanıtı içerir.

Aşağıdaki örnekte bir AppResponse öğesi gösterilmektedir:

1. Örnek

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

2. Örnek

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

3. Örnek

{
  "expectUserResponse": false,
  "finalResponse": {
    "richResponse": {
      "items": [
        {
          "structuredResponse": {
            "error": {
              "@type": "type.googleapis.com/google.actions.v2.orders.FoodErrorExtension",
              "foodOrderErrors": [
                {
                  "error": "CLOSED",
                  "description": "The restaurant is closed."
                }
              ]
            }
          }
        }
      ]
    }
  }
}

4. Örnek

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

CheckoutResponseMessage, StructuredResponse içinde checkoutResponse veya error bulunan bir AppResponse öğesidir.

SubmitOrderResponseMessage

SubmitOrderResponseMessage, StructuredResponse içinde orderUpdate bulunan bir AppResponse'dir.

FinalResponse

Alışveriş sepetinde ödeme işlemine veya SendOrderRequestMessage'a verdiğiniz yanıt.

Aşağıdaki tabloda FinalResponse türü için özellikler listelenmiştir:

Özellik Tür Açıklama
richResponse RichResponse

Zorunlu.

CheckoutRequestMessage veya SendOrderRequestMessage için verdiğiniz yanıtı içerir.

CheckoutResponse

Aşağıdaki tabloda CheckoutResponse türü için özellikler listelenmiştir:

Özellik Tür Açıklama
proposedOrder ProposedOrder

Zorunlu.

İşlem için kullanılması önerilen sıra.

paymentOptions PaymentOptions

Zorunlu.

Kullanıcı için varsayılan ödeme seçeneği belirlendi.

additionalPaymentOptions Listele<PaymentOptions>

Kullanıcıya sunulan alternatif ödeme seçenekleri.

Aşağıdaki örnekte bir CheckoutResponse öğesi gösterilmektedir:

Örnek

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

Öğe

Bir alışveriş sepeti ödemesine veya submitOrderRequestMessage'a verdiğiniz yanıtı içerir.

Aşağıdaki tabloda Item türü için özellikler listelenmiştir:

Özellik Tür Açıklama
structuredResponse StructuredResponse

Zorunlu.

RichResponse

Alışveriş sepeti ödemelerine verdiğiniz yanıtı içerir.

Aşağıdaki tabloda RichResponse türü için özellikler listelenmiştir:

Özellik Tür Açıklama
items Listele<Item>

Zorunlu.

Tam olarak 1 öğe olmalıdır.

StructuredResponse

CheckoutResponseMessage için bu şunlardan biri olabilir: CheckoutResponse Başarılı ödeme işlemini belirtir. VEYA FoodErrorExtension: Ödeme sırasında bir hatayı gösterir. Yanıtta, düzeltilmiş bir ProposedOrder ve PaymentOptions veya PaymentOptions'ın olmadığı bir hata mesajı yer alabilir. PurchaseOrderResponseMessage için yalnızca orderUpdate geçerlidir.

Aşağıdaki tabloda StructuredResponse türü için özellikler listelenmiştir:

Özellik Tür Açıklama
Aşağıdaki tesis gruplarından tam olarak biri gereklidir.
checkoutResponse 1. Grup CheckoutResponse

Öğeler, vergiler ve indirimler ödemesi yapıldı.

error 2. Grup FoodErrorExtension

Alışveriş sepeti öğelerinde gözlemlenen hatalar. Hatanın niteliğine bağlı olarak bu özellik, düzeltilmiş bir ProposedOrder ve PaymentOptions veya sadece PaymentOptions öğesi olmayan bir hata mesajı içerebilir.

orderUpdate 3. Grup OrderUpdate

Eşzamansız sipariş güncellemeleri

Bu bölümde, tipik bir yemek siparişi yerleşik işlem etkileşiminin isteklerini ve yanıtlarını oluşturan üst düzey türler açıklanmaktadır.

AsyncOrderUpdateRequestMessage

Sipariş gönderildikten ve onaylandıktan sonra kullanıcıyı değişiklikler hakkında bilgilendirir. Örneğin, kullanıcıya siparişin nakliye sürecinde olduğunu veya fiyatın değişip değişmediğini bildirebilirsiniz. Daha fazla bilgi edinmek için şu sayfaya bakın:

Aşağıdaki tabloda AsyncOrderUpdateRequestMessage türü için özellikler listelenmiştir:

Özellik Tür Açıklama
isInSandbox Boole

Bu güncellemenin gönderildiği siparişin bir korumalı alan ödemesi olduğunu belirtir.

customPushMessage CustomPushMessage

Zorunlu.

İsteğin Sipariş Güncellemesi'ni içerir.

Aşağıdaki örnekte bir AsyncOrderUpdateRequestMessage öğesi gösterilmektedir:

Örnek

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

AsyncOrderUpdateRequestMessage başarıyla gönderildikten sonra, Google bir HTTP 200 durumu ve boş bir gövdeyle yanıt verir. Güncelleme başarısız olduysa Google, sipariş güncellemesinin neden başarısız olduğuyla ilgili ayrıntıları da içeren bir yanıt verir.

Sipariş güncelleme türleri

Düğme

Kullanıcı etkileşimi sağlamak için ekleyebileceğiniz bir kullanıcı arayüzü öğesi tanımlar.

Aşağıdaki tabloda Button türü için özellikler listelenmiştir:

Özellik Tür Açıklama
title String

Zorunlu.

Görüntü etiketi. Düzgün şekilde oluşturulması için en fazla 30 karakterden oluşan cümle düzeni kullanın.

Örnek: Contact us

openUrlAction OpenUrlAction

Zorunlu.

Aşağıdaki örnekte bir Button öğesi gösterilmektedir:

Örnek

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

CancellationInfo

Aşağıdaki tabloda CancellationInfo türü için özellikler listelenmiştir:

Özellik Tür Açıklama
reason String

Zorunlu.

OrderState.state "CANCELLED" olduğunda, ret için görüntülenebilir metin nedeni.

Örnek: Restaurant closed

Aşağıdaki örnekte bir CancellationInfo öğesi gösterilmektedir:

Örnek

{
  "reason": "Insufficient inventory"
}

FoodOrderUpdateExtension

Bu tür, kullanıcıya siparişin teslim edileceği veya teslim alınmaya hazır hale geleceği tahmini aralığı sunar. Bilgiler mevcut olduğunda veya son gönderimlerinden sonra her değiştiğinde bu uzantıyı OrderUpdate ile gönderin.

Kullanıcı beklentilerinin tutarlı bir şekilde karşılanması için sipariş karşılama aralığı için ölçülü bir tahmin sağlayın. Örneğin, siparişin bugün saat 13:00'te teslim edileceği tahmin ediliyorsa trafik koşullarından kaynaklanan değişikliklerle tutarlı olan tahmini bir aralık göndermeniz gerekir (ör. bugün saat 12:45 ile 13:15).

ISO 8601 süresi veya zaman damgası, OrderUpdate için updateTime (aslında "şimdi") ile updateTime artı duration arasındaki aralığı ifade edecek şekilde yorumlanır. "Şimdi" ifadesi aslında makul bir beklenti olmadığı sürece bu biçimi kullanmayın.

ISO 8601 aralığı, aralığın başlangıcından sonuna kadar olan aralığı ifade edecek şekilde yorumlanır.

Aşağıdaki tabloda FoodOrderUpdateExtension türü için özellikler listelenmiştir:

Özellik Tür Açıklama
@type Sabit

Bu uzantının türü. Bu alan her zaman "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension" değerine ayarlanır.

Değer: type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension

estimatedFulfillmentTimeIso8601 String

Siparişin teslim edileceği veya teslim alınmaya hazır olacağı tahmini süre. Dize ISO 8601 biçiminde olmalı ve tek bir sabit zaman yerine bir aralığa karşılık gelmelidir. Kabul edilebilir kurallar şunlardır: Aralıklar, Süreler ve Tarihler/Saatler. Bu alan, bilgiler kullanıma sunulduğunda veya erken ya da gecikmeli varışlar gibi bir değişiklik olduğunda FromOrderResponseMessage veya AsyncOrderUpdateRequestMessage aracılığıyla gönderilebilir.

Örnek: 2017-07-17T13:00:00Z/2017-07-17T13:30:00Z

foodOrderErrors Listele<FoodOrderError>

Sipariş sonrası oluşan hataları açıklar. Alışveriş sepeti veya öğe başına bir hata önerilir. Reddetme Bilgileri kapsamına girmeyen hatalar için FoodOrderUpdateExtension.FoodOrderErrors öğesini kullanın.

En az 1 öğe içermelidir.

Aşağıdaki örnekte bir FoodOrderUpdateExtension öğesi gösterilmektedir:

1. Örnek

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

2. Örnek

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

FulfillmentInfo

Aşağıdaki tabloda FulfillmentInfo türü için özellikler listelenmiştir:

Özellik Tür Açıklama
Aşağıdaki tesis gruplarından tam olarak biri gereklidir.
deliveryTime 1. Grup ISO Zaman Damgası

FoodOrderingUpdateExtension mesajında estimatedFulfillmentTimeIso8601 değerini kullan

pickupTime 2. Grup ISO Zaman Damgası

FoodOrderingUpdateExtension mesajında estimatedFulfillmentTimeIso8601 değerini kullan

Aşağıdaki örnekte bir FulfillmentInfo öğesi gösterilmektedir:

1. Örnek

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

2. Örnek

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

InTransitInfo

Aşağıdaki tabloda InTransitInfo türü için özellikler listelenmiştir:

Özellik Tür Açıklama
updatedTime ISO Zaman Damgası

FoodOrderingUpdateExtension mesajında estimatedFulfillmentTimeIso8601 değerini kullan

Aşağıdaki örnekte bir InTransitInfo öğesi gösterilmektedir:

Örnek

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

LineItemUpdate

Aşağıdaki tabloda LineItemUpdate türü için özellikler listelenmiştir:

Özellik Tür Açıklama
orderState OrderState
price Price
reason String

Değişikliğin nedeni. Fiyat değişiklikleri için zorunludur.

Aşağıdaki örnekte bir LineItemUpdate öğesi gösterilmektedir:

Örnek

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

OpenUrlAction

Aşağıdaki tabloda OpenUrlAction türü için özellikler listelenmiştir:

Özellik Tür Açıklama
url String

Zorunlu.

Düğmenin tıklanması veya düğmeye dokunulmasıyla tetiklenen işlem. Geçerli ön eklerin listesi orderManagementActionType'a bağlıdır. "EMAIL": Önek "mailto" olmalıdır. "CALL": Önek "tel" olmalıdır. "CUSTOMER_SERVICE": Önek "mailto", "tel", "http" veya "https" olmalıdır.

Örnek: https://www.google.com

OrderManagementAction

Sipariş yönetimi, kullanıcıların sipariş sonrası desteği almasına olanak tanır. Sipariş gönderme AppResponse sırasında her OrderUpdate içinde gönderilmelidir. Belirli bir sipariş için gönderilen sonraki her AsyncOrderUpdateRequestMessage sipariş yönetimi işlemi, eyalete göre değişiklik gösterebilir.

Örneğin, "OLUŞTURULDU" durumunda CUSTOMER_SERVICE, müşteri desteği telefonunuza başvurabilir. Daha sonra CUSTOMER_SERVICE, "ONAYLANDI" durumunda müşteri için en iyi iletişim noktası haline gelirse restoranın telefonuna geçebilir. Benzer şekilde, sipariş "TAMAMLANDI" durumuna geldiğinde, CUSTOMER_SERVICE destek e-posta adreslerinize referans verebilir.

Aşağıdaki tabloda OrderManagementAction türü için özellikler listelenmiştir:

Özellik Tür Açıklama
type OrderManagementActionType

Zorunlu.

button Button

Zorunlu.

Aşağıdaki örnekte bir OrderManagementAction öğesi gösterilmektedir:

1. Örnek

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

2. Örnek

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

OrderManagementActionType

OrderManagementAction ile ilgili türleri tanımlar.

OrderManagementActionType türü aşağıdaki olası değerlere sahiptir:

  • CUSTOMER_SERVICE: Sipariş onay sayfasında gösterilecek müşteri hizmetlerinin e-posta adresi ve/veya iletişim numarası. Bu gereklidir. openUrlAction.url ön eki "mailto", "tel", "http" veya "https" olmalıdır.
  • EMAIL: E-posta işlemi yalnızca sipariş ayrıntıları sayfasında. openUrlAction.url ön eki "mailto" olmalıdır.
  • CALL_DRIVER: Çağrı işlemi yalnızca sipariş ayrıntıları sayfasında yapılır. openUrlAction.url ön eki "tel" olmalıdır.
  • CALL_RESTAURANT: Çağrı işlemi yalnızca sipariş ayrıntıları sayfasında yapılır. openUrlAction.url ön eki "tel" olmalıdır.

OrderState

Siparişin mevcut durumu. Her OrderState state değeri, myaccount.google.com adresindeki bir satın alma durumuna da karşılık gelir.

Aşağıdaki tabloda OrderState türü için özellikler listelenmiştir:

Özellik Tür Açıklama
state OrderStateEnum

Zorunlu.

label String

Zorunlu.

Durum için kullanıcı tarafından görülebilen görüntüleme dizesi. Normal tümce düzeni kullanın.

Örnek: Your order has been received

Aşağıdaki örnekte bir OrderState öğesi gösterilmektedir:

Örnek

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

OrderStateEnum

OrderState ile ilgili türleri tanımlar.

OrderStateEnum türü aşağıdaki olası değerlere sahiptir:

  • CREATED: Sipariş, entegratör tarafından oluşturuldu ve sağlayıcı tarafından onay bekleniyor. "Sipariş verildi" satın alma durumuna karşılık gelir.
  • CONFIRMED: Sipariş, sağlayıcı tarafından onaylandı ve etkin. "Kabul edildi" satın alma durumuna karşılık gelir.
  • REJECTED: Sipariş, entegratör veya sağlayıcı tarafından reddedildi. "Reddedildi" satın alma durumuna karşılık gelir.
  • CANCELLED: Kullanıcı siparişi iptal etti. "İptal edildi" satın alma durumuna karşılık gelir.
  • IN_PREPARATION: Yemek hazırlanıyor. "Durum bilinmiyor" satın alma durumuna karşılık gelir.
  • READY_FOR_PICKUP: Yiyecek teslim alınmaya hazır. "Teslim alma için hazır" satın alma durumuna karşılık gelir.
  • IN_TRANSIT: Sipariş teslim ediliyor. "Devam ediyor" satın alma durumuna karşılık gelir.
  • FULFILLED: Kullanıcı, siparişi aldı. "Teslim edildi" satın alma durumuna karşılık gelir.

Fatura

Bu türü, OrderState değerinin "ONAYLANDI", "FULFILLED" veya "IN_TRANSIT" olduğu AppResponse gönderim siparişiyle gönderin. Makbuzu, userVisibleOrderId hazır olduğunda gönderin. Sonraki güncellemelerde makbuzu göndermeye devam etmeniz gerekmez.

Aşağıdaki tabloda Receipt türü için özellikler listelenmiştir:

Özellik Tür Açıklama
userVisibleOrderId String

Zorunlu.

Sipariş "ONAYLANDI", "IN_TRANSIT" veya "FULFILLED" ise gereklidir. Bu alan, bu sipariş için kullanıcıya gösterilen tek kimliktir (genellikle restoranın sipariş kimliği). Hem entegratörün makbuzunda hem de Google sipariş kartında gösterilir. Kullanıcı, sağlayıcı ve entegratörle müşteri hizmetleri siparişine referans vermek için bu kimliği kullanabilmelidir. Bu kimliği herhangi bir Sipariş Güncellemesi'nde yalnızca bir kez sağlamanız yeterlidir. Bu sağlanana kadar actionOrderId, uservisibleOrderId olacaktır. Örneğin, sipariş restoran tarafından onaylanana kadar uservisibleOrderId değeriniz olmayabilir. Onaylandıktan sonra, OrderUpdate ve Makbuz içeren bir AsyncOrderUpdateRequestMessage göndermeniz gerekir.

Aşağıdaki örnekte bir Receipt öğesi gösterilmektedir:

Örnek

{
  "userVisibleOrderId": "userVisibleId1234"
}

RejectionInfo

Aşağıdaki tabloda RejectionInfo türü için özellikler listelenmiştir:

Özellik Tür Açıklama
type RejectionType

Zorunlu.

reason String

Dahili günlük kaydı için kullanılan reddetme nedeni. Bu alan kullanıcılar tarafından görülemez.

Aşağıdaki örnekte bir RejectionInfo öğesi gösterilmektedir:

Örnek

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

RejectionType

RejectionType türü aşağıdaki olası değerlere sahiptir:

  • INELIGIBLE: Kullanıcı, politikayla veya riskle ilgili endişeler nedeniyle uygun değil.
  • PAYMENT_DECLINED: Ödemenin işlenmesiyle ilgili bir sorun var.
  • UNAVAILABLE_SLOT: Sipariş, DeliveryInfo veya PickupInfo tarafından belirtilen zamanında yerine getirilemez.
  • PROMO_NOT_APPLICABLE: Promosyonla ilgili bir sorun var.
  • UNKNOWN: Başka herhangi bir nedenden ötürü.

Ödemeyle ilgili türler

Bu bölümde, yemek siparişi karşılama için kullanılan ödemeyle ilgili türler açıklanmaktadır.

ActionProvidedPaymentOptions

İşlem tarafından sağlanan ödeme yöntemiyle ilgili koşullar.

Aşağıdaki tabloda ActionProvidedPaymentOptions türü için özellikler listelenmiştir:

Özellik Tür Açıklama
paymentType PaymentType

Zorunlu.

displayName String

Zorunlu.

Makbuzda gösterilen ödeme aracının adı.

Örnek: Taco Points Total

onFulfillmentPaymentData OnFulfillmentPaymentData

"ON_FULFILLMENT" paymentType için ek veriler. Örneğin, sipariş karşılamada nakit veya kart desteklenip desteklenmediğini belirtmek için bu alanı kullanabilirsiniz.

Aşağıdaki örnekte bir ActionProvidedPaymentOptions öğesi gösterilmektedir:

Örnek

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

AllowedAuthMethods

AllowedAuthMethods türü aşağıdaki olası değerlere sahiptir:

  • PAN_ONLY: Kullanıcının Google Hesabında kayıtlı ödeme kartlarıyla ilişkili kimlik doğrulama yöntemi. İade edilen ödeme verileri, son kullanma ayı ve son kullanma yılı ile birlikte kişisel hesap numarasını (PAN) içerir.

AllowedCardNetworks

AllowedCardNetworks türü aşağıdaki olası değerlere sahiptir:

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

BillingAddressParameters

Bu nesne, istenen fatura adresi için döndürülecek ek alanları ayarlamanıza olanak tanır.

Aşağıdaki tabloda BillingAddressParameters türü için özellikler listelenmiştir:

Özellik Tür Açıklama
format String

İşlemi tamamlamak için fatura adresi biçimi gereklidir. MIN: Ad, ülke kodu ve posta kodu. TAM: Ad, açık adres, şehir, bölge, ülke kodu ve posta kodu.

Aşağıdaki örnekte bir BillingAddressParameters öğesi gösterilmektedir:

1. Örnek

{
  "format": "MIN"
}

2. Örnek

{
  "format": "FULL"
}

CardParameters

Sitenizin Google Pay API'ye yönelik desteğini yapılandırmak için bu nesneyi kullanın.

Aşağıdaki tabloda CardParameters türü için özellikler listelenmiştir:

Özellik Tür Açıklama
allowedAuthMethods List<Const>

Zorunlu.

Kart işlemlerinin kimliğini doğrulamak için desteklenen alanlar.

En az 1 öğe içermelidir.

allowedCardNetworks Listele<AllowedCardNetworks>

Zorunlu.

Desteklediğiniz ve Google Pay API tarafından da desteklenen bir veya daha fazla kart ağı.

En az 1 öğe içermelidir.

billingAddressRequired Boole

Fatura adresine ihtiyacınız varsa değeri true olarak ayarlayın. Yalnızca işlemin gerçekleştirilmesi için fatura adresi gerekiyorsa istekte bulunun. Ek veri istekleri, ödeme sürecindeki zorlukları artırabilir ve daha düşük dönüşüm oranlarına yol açabilir.

billingAddressParameters BillingAddressParameters

billingAddressRequired doğru değerine ayarlanırsa beklenen alanlar döndürülür.

cvcRequired Boole

TimesofMoney kullanılıyorsa "true" (doğru), diğer tüm ödeme işleyiciler için "false" (yanlış) değerine ayarlayın.

Aşağıdaki örnekte bir CardParameters öğesi gösterilmektedir:

1. Örnek

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

2. Örnek

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

GoogleProvidedPaymentInstrument

Aşağıdaki tabloda GoogleProvidedPaymentInstrument türü için özellikler listelenmiştir:

Özellik Tür Açıklama
instrumentToken String

Zorunlu.

Daha önce belirtilen GoogleProvidedPaymentOptions'a göre, kullanıcıdan katılımcı bir Google Pay işlemcisinden ödeme almak için ödeme jetonunu içeren temel 64 kodlu dize.

billingAddress PostalAddress

Ödemenin fatura adresi.

Aşağıdaki örnekte bir GoogleProvidedPaymentInstrument öğesi gösterilmektedir:

Örnek

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

GoogleProvidedPaymentOptions

Google tarafından sağlanan ödeme yöntemiyle ilgili koşullar.

Aşağıdaki tabloda GoogleProvidedPaymentOptions türü için özellikler listelenmiştir:

Özellik Tür Açıklama
facilitationSpecification String

Dize olarak bir PaymentDataRequest JSON dosyası. Sitenizin Google Pay API'ye yönelik desteğini yapılandırmak için bu nesneyi kullanın.

supportedCardNetworks Listele<SupportedCardNetworks>

Bunun yerine facilitationSpecification'ı kullanın. Temsilci tarafından desteklenen kart ağlarının türü.

Bu alan kullanımdan kaldırılmıştır.

prepaidCardDisallowed Boole

Bunun yerine facilitationSpecification'ı kullanın. Ödeme türü olarak ön ödemeli karta izin verilip verilmediği.

Bu alan kullanımdan kaldırılmıştır.

billingAddressRequired Boole

Bunun yerine facilitationSpecification'ı kullanın. Fatura adresinin zorunlu olup olmadığı.

Bu alan kullanımdan kaldırılmıştır.

tokenizationParameters TokenizationParameters

Bu alan kullanımdan kaldırılmıştır.

Aşağıdaki örnekte bir GoogleProvidedPaymentOptions öğesi gösterilmektedir:

1. Örnek

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

2. Örnek

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

3. Örnek

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

Sitenizin Google Pay API'ye yönelik desteğini yapılandırmak için bu nesneyi kullanın.

Aşağıdaki tabloda MerchantInfo türü için özellikler listelenmiştir:

Özellik Tür Açıklama
merchantId String

Google Pay tarafından size verilen Google satıcı tanımlayıcısı.

merchantName String

Zorunlu.

Satıcı adı UTF-8 olarak kodlanmış. Satıcı adı, ödeme sayfasında oluşturulur.

OnFulfillmentPaymentData

PaymentType "ON_FULFILLMENT" için ek veri göndermek amacıyla bu nesneyi kullanın.

Aşağıdaki tabloda OnFulfillmentPaymentData türü için özellikler listelenmiştir:

Özellik Tür Açıklama
supportedPaymentOptions Listele<PaymentOptionsEnums>

Sipariş karşılandığında kullanıcının kullanabileceği ödeme seçeneklerinin listesi.

Aşağıdaki örnekte bir OnFulfillmentPaymentData öğesi gösterilmektedir:

Örnek

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

Parametreler

TokenizationParameters ile ilgili türleri tanımlar.

Aşağıdaki tabloda Parameters türü için özellikler listelenmiştir:

Özellik Tür Açıklama
gateway String

Zorunlu.

Örnek: braintree

gatewayMerchantId String
[additionalKey: string] String Ek anahtar/değer çiftleri

Aşağıdaki örnekte bir Parameters öğesi gösterilmektedir:

1. Örnek

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

2. Örnek

{
  "gateway": "braintree",
  "braintree:apiVersion": "v1",
  "braintree:sdkVersion": "1.4.0",
  "braintree:merchantId": "YOUR_MERCHANT_ID",
  "braintree:clientKey": "YOUR_BRAINTREE_SANDVOX_OR_PRODUCTION_KEY"
}

PaymentDataRequest

Sitenizin Google Pay API'ye yönelik desteğini yapılandırmak için bu nesneyi kullanın.

Aşağıdaki tabloda PaymentDataRequest türü için özellikler listelenmiştir:

Özellik Tür Açıklama
apiVersion Sabit

Zorunlu.

Ana API sürümü.

Değer: 2

apiVersionMinor Sabit

Zorunlu.

Küçük API sürümü.

Değer: 0

merchantInfo MerchantInfo

Zorunlu.

(Google Pay satıcı kimliği) Ödeme verilerini isteyen satıcıyla ilgili bilgiler.

allowedPaymentMethods Listele<PaymentMethod>

Zorunlu.

Google Pay API tarafından desteklenen bir veya daha fazla ödeme yönteminin desteğini belirtir.

transactionInfo TransactionInfo

Zorunlu.

Kullanıcının işlemi kabul edip etmediğine bağlı olarak işlemin yetkilendirilmesiyle ilgili ayrıntılar. Bu alanda toplam fiyat ve fiyat durumu yer alır.

Aşağıdaki örnekte bir PaymentDataRequest öğesi gösterilmektedir:

Örnek

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

Bir sipariş için ödemeyle ilgili bilgiler.

Aşağıdaki tabloda PaymentInfo türü için özellikler listelenmiştir:

Özellik Tür Açıklama
displayName String

Zorunlu.

Makbuzda gösterilecek ödeme aracının kullanıcı tarafından görülebilen adı.

paymentType PaymentType

Zorunlu.

googleProvidedPaymentInstrument GoogleProvidedPaymentInstrument

İşlem tarafından kullanılabilecek jeton. Bunu yalnızca, CheckoutResponseMessage'da GoogleProvidedPaymentOptions'ı bir ödeme seçeneği olarak belirttiyseniz belirtin.

Aşağıdaki örnekte bir PaymentInfo öğesi gösterilmektedir:

1. Örnek

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

2. Örnek

{
  "displayName": "Visa\u2006****\u20061111",
  "googleProvidedPaymentInstrument": {
    "instrumentToken": "abcd",
    "billingAddress": {
      "regionCode": "US",
      "postalCode": "94043",
      "administrativeArea": "CA",
      "locality": "Mountain View",
      "addressLines": [
        "123 Random Street",
        "Unit ABC"
      ],
      "recipients": [
        "sample_receipient"
      ]
    }
  },
  "paymentType": "PAYMENT_CARD"
}

PaymentMethod

Sitenizin Google Pay API'ye yönelik desteğini yapılandırmak için bu nesneyi kullanın.

Aşağıdaki tabloda PaymentMethod türü için özellikler listelenmiştir:

Özellik Tür Açıklama
type Sabit

Zorunlu.

Desteklenen ödeme yönteminin kısa tanımlayıcısı. Şu anda yalnızca CARD desteklenmektedir.

Değer: CARD

parameters CardParameters

Zorunlu.

Sağlanan ödeme yöntemi türünü yapılandırmak için gerekli parametreler.

tokenizationSpecification TokenizationSpecification

Zorunlu.

Ödeme bilgilerini almak için bir hesap veya şifre çözme sağlayıcısı yapılandırın. Bu özellik, CARD ödeme yöntemi için gereklidir.

Aşağıdaki örnekte bir PaymentMethod öğesi gösterilmektedir:

Örnek

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

PaymentOptions

Aşağıdaki tabloda PaymentOptions türü için özellikler listelenmiştir:

Özellik Tür Açıklama
Aşağıdaki tesis gruplarından tam olarak biri gereklidir.
googleProvidedOptions 1. Grup GoogleProvidedPaymentOptions

actionProvidedOptions ile birlikte kullanılamaz. Bu numarayı, gPay ile online ödeme yapmak için kullanın.

actionProvidedOptions 2. Grup ActionProvidedPaymentOptions

googleProvidedOptions ile kullanılamaz. Bunu "teslimatta nakit ödeme" veya "sipariş karşılamada ödeme" için kullanın.

Aşağıdaki örnekte bir PaymentOptions öğesi gösterilmektedir:

1. Örnek

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

2. Örnek

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

3. Örnek

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

PaymentOptionsEnums

PaymentOptionsEnums türü aşağıdaki olası değerlere sahiptir:

  • Cash
  • Card
  • UPI
  • Paytm

PaymentType

PaymentType türü aşağıdaki olası değerlere sahiptir:

  • PAYMENT_CARD: GoogleProvidedPaymentOptions için.
  • ON_FULFILLMENT: ActionProvidedPaymentOptions için.

SupportedCardNetworks

GoogleProvidedPaymentOptions ile ilgili türleri tanımlar.

SupportedCardNetworks türü aşağıdaki olası değerlere sahiptir:

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

TokenizationParameters

GoogleProvidedPaymentOptions ile ilgili türleri tanımlar.

Aşağıdaki tabloda TokenizationParameters türü için özellikler listelenmiştir:

Özellik Tür Açıklama
tokenizationType Enum [ "UNSPECIFIED_TOKENIZATION_TYPE", "PAYMENT_GATEWAY" ]

Zorunlu.

Bunun yerine facilitationSpecification'ı kullanın. Kabul edilebilir jeton türleri.

parameters Parameters

Bunun yerine facilitationSpecification'ı kullanın.

TokenizationSpecification

Bu nesne, ücretlendirilebilir ödeme bilgilerini almak için bir hesap yapılandırmanıza olanak tanır.

Aşağıdaki tabloda TokenizationSpecification türü için özellikler listelenmiştir:

Özellik Tür Açıklama
type Sabit

Zorunlu.

parameters Parameters

Zorunlu.

Aşağıdaki örnekte bir TokenizationSpecification öğesi gösterilmektedir:

1. Örnek

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

2. Örnek

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

TransactionInfo

Bu nesne, ödeyenin ödeme yapma durumunu belirleyen bir işlemi açıklar. Ödeme yetkilendirmesi iletişim kutusunu göstermek için kullanılır.

Aşağıdaki tabloda TransactionInfo türü için özellikler listelenmiştir:

Özellik Tür Açıklama
currencyCode String

Zorunlu.

ISO 4217 alfabetik para birimi kodu.

transactionId String

Bir işlem denemesini tanımlayan benzersiz kimlik. Satıcılar mevcut bir kimliği kullanabilir veya Google Pay işlem denemeleri için belirli bir kimlik oluşturabilir. Google Transaction Events API'ye geri çağırmalar gönderdiğinizde bu alan gereklidir.

totalPriceStatus Sabit

Zorunlu.

Varsayılan olarak "TAHMİNİ" kullan. Toplam fiyat, yanıtın ayrıntılarına (ör. fatura adresi temel alınarak alınan satış vergisi) göre değişebilir.

Değer: ESTIMATED

totalPrice String

Zorunlu.

İşlemin, isteğe bağlı olarak iki ondalık basamakluk ondalık basamak içeren toplam parasal değeri. Bu alanın, shopping.totalPrice ile aynı değere sahip olması gerekir.

Aşağıdaki örnekte bir TransactionInfo öğesi gösterilmektedir:

Örnek

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