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

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

Temel Türleri

Alışveriş sepeti

Siparişle ilgili ayrıntıların yanı sıra isteğin teslim alma mı yoksa teslimat için mi olduğunu içerir. Alışveriş sepetinde ayrıca teslimat ayrıntıları, bahşiş ve teslimat adresi de bulunur. Cart nesnesi bir Checkout AppRequest içinde tanımlanır.Sepetin bir kopyasını Checkout AppResponse

Aşağıdaki tabloda Cart türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
@type Devam

Bu nesnenin türü. Üst Cart nesnesi ProposedOrder'ın parçasıysa bu alanı çıkarın.

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

id String

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

merchant Merchant

Bu sepetle ilişkili satıcı.

lineItems List<LineItem>

Zorunlu.

Kullanıcının sipariş ettiği malların veya hizmetlerin listesi.

En az 1 öğe içermelidir.

promotions List<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 ayrıntıları (ör. sipariş tamamlama tercihleri) 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 alan kişiyle ilgili ayrıntıları belirtir. Yalnızca AppResponse olarak kullanılabilir.

Aşağıdaki tabloda Contact türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
displayName String

Siparişi teslim alacak kişinin, görünmesini istediğiniz adı. firstName ve lastName belirtilmemişse 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 teslim alacak kişinin soyadı.

Örnek: Ordering

phoneNumber String

Siparişi teslim alacak kişinin telefon numarası (ülke kodu dahil).

Örnek: +16501234567

emailVerified Boole

Siparişi alan kişinin Google Hesabı ile oturum açıp açmadığı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 değerini içerir.

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

Mülk 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ünün özellikleri listelenmektedir:

Mülk Tür Açıklama
deliveryTimeIso8601 String

ISO 8601 zaman damgası biçiminde tahmini teslimat süresi: "{yıl}-{ay}-{gün}T{saat}:{dakika}:{saniye}[.{frac_sec}]Z" veya süre biçiminde: "P(n)Y(n)M(n)DT(n)H(n)M(n)S". Örneğin, PT90M 90 dakikalık bir süreyi temsil eder. "PT0M" varsayılan değeri, tercih edilen teslimat süresinin mümkün olan en kısa sürede olduğunu gösterir. Referans: https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations. Ödeme yanıtı sırasında tahmini teslimat süresini güncellemek için bu seçeneği 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ünün özellikleri listelenmektedir:

Mülk Tür Açıklama
predefinedMessage PredefinedMessage

Zorunlu.

Ödeme sırasında önceden tanımlanmış sorumluluk reddi beyanı mesajlarını gösterir.

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 kapalıdır.
  • NO_CAPACITY: Kullanılabilir hizmet kapasitesi yoktur (ör. yoğun saatler nedeniyle geçici kesinti).
  • NO_COURIER_AVAILABLE: Teslimat personeli sınırlı olduğundan sipariş işlenemiyor.
  • REQUIREMENTS_NOT_MET: Siparişi kabul etmeyle ilgili kısıtlamalar karşılanmadı (örneğin, minimum sepet boyutu).
  • UNAVAILABLE_SLOT: Sipariş, DeliveryInfo veya PickupInfo tarafından belirtilen önceden sipariş verme zamanında yerine getirilemez.
  • OUT_OF_SERVICE_AREA: Sipariş, kullanıcının adresine teslim edilemez.
  • PROMO_EXPIRED: Promosyon süresi dolduğu için uygulanamadı.
  • PROMO_NOT_APPLICABLE: Diğer promosyon kodu hatalarından hiçbiri uygun değilse promosyon kodunu uygulamayla ilgili tüm hataları 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 kuponu kullanamaz.
  • AVAILABILITY_CHANGED: Öğe artık mevcut değil veya isteği karşılayacak yeterli öğe yok.
  • INCORRECT_PRICE: Ücretlerde veya toplamda fiyat hataları.
  • INVALID: Bir Satır Öğesi, FulfillmentOption veya Promosyon, geçersiz veri içeriyor.
  • NOT_FOUND: Satır öğesi, FulfillmentOption veya promosyon bulunamadı.
  • PRICE_CHANGED: Bir öğenin fiyatı değişti.

FeeAmountRange

Aşağıdaki tabloda FeeAmountRange türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
minFeeAmount Money

Tahsil edilen ücret tutarının alt sınırı.

maxFeeAmount Money

Tahsil edilen ücret tutarının üst sınırı.

FeePercentRange

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

Mülk Tür Açıklama
minFeePercent Number

Tahsil edilen ücret yüzdesinin alt sınırı.

maxFeePercent Number

Tahsil edilen ücret yüzdesinin üst sınırı.

FoodCartExtension

Kullanıcıyla ilgili ayrıntıları (ör. sipariş tamamlama tercihleri) içerir.

Aşağıdaki tabloda FoodCartExtension türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
@type Const

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

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

contact Contact

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

fulfillmentPreference FulfillmentOption

Zorunlu.

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

location Location

CheckoutRequestMessage'de bu alan teslimat adresini belirtir. Sipariş teslimat içinse bu alan gereklidir. Paket servis veya teslim alma siparişlerinde 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

İstek işlenirken oluşan bir veya daha fazla hatayı tespit eder. Aşağıdaki tabloda FoodErrorExtension türündeki alanlar açıklanmaktadır. Hatalar CheckoutResponse ile gönderilebilir.

Aşağıdaki tabloda FoodErrorExtension türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
@type Const

Zorunlu.

Bu uzantının türü.

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

foodOrderErrors List<FoodOrderError>

Zorunlu.

Oluşmuş hataları açıklayan FoodOrderError nesneleri dizisi. Her alışveriş sepeti veya öğe için bir hata önerilir.

En az 1 öğe olmalıdır.

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 gereklidir.

Düzeltme içeren yeni bir Proposed Order. Orijinal ProposedOrder'da kurtarılabilir hatalar varsa bu nesneyi döndürün. Örneğin, sepetteki bir veya daha fazla satır öğesinin fiyatında yapılan bir değişiklik düzeltilebilir bir hatadır. Geçerli bir ProposedOrder içeren kurtarılabilir hatalar, kullanıcının alışveriş sepetini incelemesini gerektirmek yerine onay aşamasına geçirilir.

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 gereklidir.

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

additionalPaymentOptions List<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 öğeleriyle ilgili eklentileri tanımlar.

Aşağıdaki tabloda FoodItemExtension türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
@type Const

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 List<FoodItemOption>

Seçenek, bir eklenti grubu veya eklenti grubu içeren eklenti öğesi 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ünün özellikleri listelenmektedir:

Mülk Tür Açıklama
id String

Google tarafından atanan benzersiz kimlik. FoodOrderError veya AsyncOrderUpdateRequest gönderdiğinizde, bir sepetin 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 List<FoodItemOption>

Varsa seçenekle ilgili alt seçenekler.

Ö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'daki hatalarla ilgili ayrıntıları içerir.

Aşağıdaki tabloda FoodOrderError türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
error Error

Zorunlu.

id String

Şu durumlarda zorunludur: error = "AVAILABILITY_CHANGED", "INCORRECT_PRICE", "PRICE_CHANGED", "INVALID", or "NOT_FOUND".

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

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 gereklidir.

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

availableQuantity Tamsayı

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

Hataya neden olan öğenin kullanılabilir yeni 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ünün özellikleri listelenmektedir:

Mülk Tür Açıklama
@type Const

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 List<FulfillmentOption>

Sipariş için kullanılabilen sipariş karşılama seçeneklerini temsil eder.

optinForRemarketing Boole

Kullanıcının pazarlama kanallarınıza dahil olma isteği. Varsayılan olarak, kullanıcının izni olmadan pazarlama içeriği gönderemezsiniz. optinForRemarketing doğruysa kullanıcıyı abone edebilirsiniz. optinForRemarketing yanlışsa veya mevcut değilse sisteminizde abonelik durumunu olduğu gibi tutmanız gerekir. Kullanıcılar Google üzerinden kapsam dışında kalmayı seçemez, yalnızca pazarlama kanallarınızda sağlanan bir abonelikten çıkma işleviyle bunu yapabilir. Bu işaret yalnızcaSubmit OrderRequestMessage'da bulunur.

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

FulfillmentOption nesnesini aşağıdaki şekillerde kullanabilirsiniz:
  • Checkout AppRequest ve Submit AppRequest içinde Cart.extension.fulfillmentPreference: Kullanıcının tercihini (teslimat veya teslim alma) depolar. Ö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ğini tanımlar (şu anda yalnızca bir seçenek desteklenir). Varsayılan seçeneği ProposedOrder.otherItems içinde LineItem olarak belirtirsiniz. FulfillmentOption öğesinin offerId özelliği, ProposedOrder.otherItems içinde belirtilen LineItem kimliğiyle eşleşmelidir.

Aşağıdaki tabloda FulfillmentOption türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
offerId String

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

fulfillmentInfo FulfillmentOptionInfo

Zorunlu.

expiresAt ISO Zaman Damgası

Bu sipariş karşılama seçeneğinin geçerlilik süresinin sona erdiği zaman.

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 listelenmektedir:

Mülk Tür Açıklama
Aşağıdaki mülk 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 gösterir.

Resim

Aşağıdaki tabloda Image türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
sourceUrl String

Zorunlu.

Resmin URL'si. Resim en az 72x72 piksel olmalıdır. En iyi sonucu almak için en az 216x216 piksel çözünürlüğünde bir resim kullanın. Resim 6 MB'tan ve 64 megapikselden küçük olmalıdır.

LineItem

Alışveriş sepetinin içeriğini (Cart.lineItems) veya siparişle ilgili ek ücretleri (ProposedOrder.otherItems) tanımlar.

Aşağıdaki tabloda LineItem türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
id String

type = "REGULAR" olduğunda gereklidir.

Alışveriş sepeti (ProposedOrder.cart.lineItems[0].id) içindeki bir satır öğesi için bu, sipariş oluşturulurken Google tarafından oluşturulan benzersiz kimliktir. Kargo ücretleri ve vergiler gibi öğeler eklemek için kullanılan ProposedOrder (ProposedOrder.otherItems[0].id) öğesindeki LineItem için kimlik değeri sağlayıcı tarafından tanımlanır. Örneğin, bir sepette farklı hazırlık talimatlarına sahip aynı öğeden iki tane varsa (ör. farklı malzemelerle hazırlanmış iki orta boy pizza) Bu durumda her iki öğe de aynı temel offerId değerine sahiptir. Bir öğenin reddedildiğini belirtmek için sipariş güncelleme isteği gönderirken bu kimliği belirsizlik giderici olarak kullanın. Diğer bir deyişle, pizzalardan biri belirli bir malzeme içermediği için reddedilirse kimlik, Google'ın siparişteki hangi öğeyi kastettiğinizi belirlemesine yardımcı olur. Bu alan, otherItems hariç 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 büyük harfleriyle yazılmalıdır ("Teslimat ücreti", "Hizmet ücreti", "Vergi" gibi). Bu alan, kullanıcılar için 100 karaktere kısaltılır.

type LineItemType

Zorunlu.

quantity Tamsayı

Şu durumlarda zorunludur: type = "REGULAR".

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

description String

Öğenin açıklaması.

price Price

Zorunlu.

Öğe veya öğelerin fiyatıdır. Bu değer, bu satır öğesindeki tüm mal veya hizmetlerin toplam fiyatını yansıtır (yani tüm eklentilerin maliyetini ekleyin ve miktarla çarpın). Örneğin: 10 TL değerindeki bir öğenin miktarı 3 ise fiyat 30 TL olur. Taban fiyatı 5 TL ve eklentisi 1 TL olan bir pizzanın fiyatı 6 TL olur. Taban fiyatı 5 TL olan ve her birinin eklentisi 1 TL olan iki pizzanın (miktar = 2) fiyatı 12 TL olur. Her satır öğesinin, fiyatı "0" olsa bile bir fiyatı olmalıdır. Tür DISCOUNT olduğunda değeri negatif olarak belirtin (ör. "-2").

subLines List<SublineNote>

İsteğe bağlıdır ve yalnızca türü "NORMAL" ise geçerlidir. Ödeme isteği ve sipariş gönderme isteğindeki bu alana kullanıcının öğeye özel bir not gönderilebilir. Notu gönderildiğinde satıcının aldığından emin olun. İstekte subLines[0].note olarak yer alır. Bu alan bir istekte mevcut olduğunda bu alanda sağlanan tek değerdir.

En fazla 1 öğe olmalıdır.

offerId String

type = "REGULAR" olduğunda gereklidir.

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

extension FoodItemExtension

Gıda öğeleriyle ilgili 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: İndirim 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çin SubmitOrderRequestMessage için ayrılmıştır. ProposedOrders.otherItems için geçerlidir.
  • DELIVERY: Yayınlama satır öğesi. ProposedOrder.otherItems için geçerlidir.
  • SUBTOTAL: Alt toplam satır öğesi. ProposedOrder.otherItems için geçerlidir.
  • FEE: Diğer türler kapsamında olmayan ek satır öğesi. ProposedOrder.otherItems için geçerlidir.

Konum

Yemek siparişi için bir adres belirtir. Location türü, yalnızca bir teslimat siparişinin hedefini belirtmek için Cart içinde kullanılır. Kullanıcı sipariş verirse kesinleştirilen konum TransactionDecisionValue içinde de bulunur. Teslim alma seçeneği belirtilen siparişlerde konum hiç dahil edilmez (boş bir konum bile dahil edilmez).

Aşağıdaki tabloda Location türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
coordinates Coordinates
formattedAddress String

Konumun görünen adresi.

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

postalAddress PostalAddress
zipCode String

Örnek: 90210

city String

Şehrin adı.

Örnek: Los Angeles

notes String

Kapı kodları gibi konumla ilgili notlar. 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ünün özellikleri listelenmektedir:

Mülk Tür Açıklama
id String

Satıcının kimliği. Belirtilen 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

Aşağıdaki tabloda Money türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
currencyCode String

Zorunlu.

ISO 4217 biçiminde 3 harfli para birimi kodu.

Örnek: USD

units String

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

Örnek: 36

nanos Tamsayı

Tutarın nano (10^-9) birimlerinin sayısı. Değer, -999.999.999 ile +999.999.999 arasında (değerler dahil) olmalıdır. Şu kuralları kullanın: Birimler pozitifse nanos değeri pozitif veya sıfır olmalıdır. units sıfır ise nanos pozitif, sıfır veya negatif olabilir. units negatifse nanos negatif veya sıfır olmalıdır. Örneğin, -1,75 ABD doları, units = -1 ve nanos = -750.000.000 olarak gösterilir.

Ö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ş

Vergiler, ücretler ve teslimat ücretleri ile birlikte ödeme bilgilerini de içeren nihai siparişi içerir. Bu nesne, işleminiz tarafından Submit AppRequest içinde alınır.

Aşağıdaki tabloda Order türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
finalOrder ProposedOrder

Zorunlu.

Siparişin verilmesine neden olan önerilen sipariş.

googleOrderId String

Zorunlu.

Google tarafından atanan sipariş kimliği. 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şin ödemesine karşılık gelen ö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 öğesine dahil olan OrderUpdate türündeki alanlar açıklanmaktadır.

Aşağıdaki tabloda OrderUpdate türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
actionOrderId String

Zorunlu.

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

orderState OrderState

Zorunlu.

Siparişin yeni durumu.

lineItemUpdates Map<String, LineItemUpdate>
updateTime ISO Zaman Damgası

Zorunlu.

Siparişin güncellendiği zaman.

orderManagementActions Liste<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 olmalıdır.

rejectionInfo RejectionInfo

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

cancellationInfo CancellationInfo

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

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 gereklidir.

Kullanıcının görebileceği sipariş kimliğini makbuzda sağlayın.

totalPrice Price

Siparişin toplam fiyatı.

infoExtension FoodOrderUpdateExtension

Sipariş güncellemesiyle ilgili daha fazla ayrıntı (ör. tahmini teslimat veya teslim alma aralığı) 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ünün özellikleri listelenmektedir:

Mülk Tür Açıklama
pickupTimeIso8601 String

ISO 8601 zaman damgası biçiminde tahmini teslim alma zamanı: "{yıl}-{ay}-{gün}T{saat}:{dakika}:{saniye}[.{frac_sec}]Z" veya süre biçiminde: "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 en kısa süre olduğunu gösterir. Referans: https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations. Ödeme yanıtı sırasında tahmini teslim alma süresini güncellemek için bu özelliği 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 listelenmektedir:

Mülk Tür Açıklama
regionCode String

Zorunlu.

İki harfli ülke kodu.

Örnek: US

postalCode String

Posta kodu.

Örnek: 94043

administrativeArea String

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

Örnek: CA

locality String

Bu konumun bulunduğu şehir veya kasaba. Dünyanın, yerleşim yerlerinin iyi tanımlanmadığı veya bu yapıya uymadığı bölgelerinde yerleşim yerini belirtmeyin ve bunun yerine addressLines alanını kullanın.

Örnek: Mountain View

addressLines Liste<Dize>

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

Örnek: [ "1350 Charleston Road" ]

recipients List<String>

Bir siparişin alıcılarının listesi. Bu alan yalnızca billingAddress içinde 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ünün özellikleri listelenmektedir:

Mülk Tür Açıklama
type Enum [ "ESTIMATE", "ACTUAL" ]

Zorunlu.

Promosyon kuponu kodu.

amount Money

Zorunlu.

Tanıtım

Aşağıdaki tabloda Promotion türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
coupon String

Zorunlu.

Promosyon kuponu kodu.

ProposedOrder

Aşağıdaki tabloda ProposedOrder türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
id String

Teklif edilen siparişin isteğe bağlı kimliği.

cart Cart

Zorunlu.

Kullanıcının öğeleri.

otherItems List<LineItem>

Sağlayıcı tarafından eklenen öğeler (ör. teslimat ücretleri, diğer ücretler ve vergiler). otherItems, kullanıcı tarafından eklenen bahşiş ve/veya indirimleri 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 List<Disclaimer>

Sipariş verilmeden önce kullanıcı arayüzünde gösterilecek 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ünün özellikleri listelenmektedir:

Mülk Tür Açıklama
note String

Zorunlu.

Zaman damgası

Tarih ve saat, aşağıdaki biçimde: "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"

TransactionDecisionValue

Order içerir.

Aşağıdaki tabloda TransactionDecisionValue türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
order Order

Zorunlu.

Ödeme ayrıntılarıyla birlikte 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şin karşılanması için istek

AppRequest

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

Mülk Tür Açıklama
isInSandbox Boole

Sonraki işlemlerin korumalı alanda yapılıp yapılmadığını belirtir.

conversation Conversation
inputs Liste<Input>

Zorunlu.

Alışveriş sepetini ödemek 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.

Konuşma

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

Aşağıdaki tabloda Conversation türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
conversationId String

Zorunlu.

İleti dizisinin 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ünün özellikleri listelenmektedir:

Mülk 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", sipariş isteği mesajı ise "actions.intent.TRANSACTION_DECISION" olarak ayarlayın.

arguments List<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 incelemek istediği yiyeceklerle ilgili ayrıntıları içerir. Ödeme için yalnızca ek süre geçerlidir. Sipariş gönderme için yalnızca transactionDecisionValue geçerlidir

Aşağıdaki tabloda Argument türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
Aşağıdaki mülk gruplarından tam olarak biri gereklidir.
extension 1. Grup Cart

Kullanıcının incelemek istediği yiyecek öğelerini ayrıntılı olarak gösterir.

transactionDecisionValue 2. Grup TransactionDecisionValue

Ödeme ayrıntılarıyla birlikte verilecek siparişi içerir.

Siparişin karşılanmasına yönelik yanıt

AppResponse

Aşağıdaki tabloda AppResponse türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
expectUserResponse Const

Yanlış olarak ayarlayın.

Değer: False

finalResponse FinalResponse

Zorunlu.

Alışveriş sepeti ödemesine 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'dir.

SubmitOrderResponseMessage

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

FinalResponse

Alışveriş sepeti ödemesine veya SubmitOrderRequestMessage'e verdiğiniz yanıt.

Aşağıdaki tabloda FinalResponse türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
richResponse RichResponse

Zorunlu.

CheckoutRequestMessage veya SubmitOrderRequestMessage mesajına verdiğiniz yanıtı içerir.

CheckoutResponse

Aşağıdaki tabloda CheckoutResponse türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
proposedOrder ProposedOrder

Zorunlu.

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

paymentOptions PaymentOptions

Zorunlu.

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

additionalPaymentOptions Liste<PaymentOptions>

Kullanıcının kullanabileceği 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

Alışveriş sepeti ödemesine veya SubmitOrderRequestMessage mesajına verdiğiniz yanıtı içerir.

Aşağıdaki tabloda Item türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
structuredResponse StructuredResponse

Zorunlu.

RichResponse

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

Aşağıdaki tabloda RichResponse türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
items List<Item>

Zorunlu.

Tam olarak 1 öğe içermelidir.

StructuredResponse

CheckoutResponseMessage için bu aşağıdakilerden biri olabilir: CheckoutResponse Başarılı bir ödeme olduğunu belirtir. VEYA FoodErrorExtension: Ödeme sırasında bir hatayı gösterir. Yanıt, düzeltilmiş bir ProposedOrder ve PaymentOptions veya PaymentOptions içermeyen bir hata mesajı içerebilir. SubmitOrderResponseMessage için yalnızca orderUpdate geçerlidir.

Aşağıdaki tabloda StructuredResponse türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
Aşağıdaki mülk gruplarından tam olarak biri gereklidir.
checkoutResponse 1. Grup CheckoutResponse

Ödeme yapılan öğeler, vergiler ve indirimler.

error 2. Grup FoodErrorExtension

Alışveriş sepeti öğelerinde gözlemlenen hatalar. Hatanın yapısına bağlı olarak bu mülk, düzeltilmiş bir Proposed Order ve PaymentOptions veya PaymentOptions içermeyen 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önderilip onaylandıktan sonra kullanıcıyı değişikliklerden haberdar eder. Örneğin, kullanıcıya siparişin nakliyede olduğunu veya fiyatın değiştiğini bildirebilirsiniz. Daha fazla bilgi edinmek için şu sayfaya bakın:

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

Mülk Tür Açıklama
isInSandbox Boole

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

customPushMessage CustomPushMessage

Zorunlu.

İsteğin OrderUpdate öğesini 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, HTTP 200 durumu ve boş gövdeyle yanıt verir. Güncelleme başarısız olursa Google, sipariş güncellemesinin neden başarısız olduğuyla ilgili ayrıntıları 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ü öğesini tanımlar.

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

Mülk Tür Açıklama
title String

Zorunlu.

Görünen etiket. Oluşturma işleminin düzgün çalışması için cümle düzeninde en fazla 30 karakter 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 listelenmektedir:

Mülk Tür Açıklama
reason String

Zorunlu.

OrderState.state "CANCELLED" olduğunda, reddin 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 olacağı zaman için tahmini bir aralık sağlar. Bilgiler mevcut olduğunda veya son gönderildiğinde bu uzantıyı bir OrderUpdate ile gönderin.

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

ISO 8601 süresi veya zaman damgası, OrderUpdate öğesinin updateTime (aslında "şimdi") ile updateTime artı duration arasındaki aralığı anlamına gelecek şekilde yorumlanır. "Şimdi" ifadesi makul bir beklenti değilse bu biçimi kullanmayın.

ISO 8601 aralığı, aralığın başlangıcından sonuna kadar olan aralığı ifade eder.

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

Mülk Tür Açıklama
@type Const

Bu uzantının türü. Bu alan her zaman "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension" olarak 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 zaman. Dize ISO 8601 biçiminde olmalı ve sabit bir saat yerine bir aralığa karşılık gelmelidir. Kabul edilen kurallar şunlardır: Aralıklar, Süreler ve Tarihler/Saatler. Bu alan, bilgiler mevcut olduğunda veya erken veya gecikmeli varışlar gibi bir değişiklik olduğunda SubmitOrderResponseMessage veya AsyncOrderUpdateRequestMessage ile gönderilebilir.

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

foodOrderErrors List<FoodOrderError>

Sipariş sonrası oluşan hataları açıklar. Her alışveriş sepeti veya öğe için bir hata önerilir. RejectionInfo kapsamında yer almayan hatalar için FoodOrderUpdateExtension.FoodOrderErrors öğesini kullanın.

En az 1 öğe olmalıdır.

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ünün özellikleri listelenmektedir:

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

FoodOrderingUpdateExtension mesajında estimatedFulfillmentTimeIso8601 değerini kullanın

pickupTime 2. Grup ISO Zaman Damgası

FoodOrderingUpdateExtension mesajında estimatedFulfillmentTimeIso8601 değerini kullanın

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ünün özellikleri listelenmektedir:

Mülk Tür Açıklama
updatedTime ISO Zaman Damgası

Food OrderingUpdateExtension mesajında estimatedFulfillmentTimeIso8601'i kullanın

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 listelenmektedir:

Mülk Tür Açıklama
orderState OrderState
price Price
reason String

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

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ünün özellikleri listelenmektedir:

Mülk Tür Açıklama
url String

Zorunlu.

Düğmenin tıklanması veya dokunulması ile tetiklenen işlem. Geçerli ön eklerin listesi, orderManagementActionType değerine 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ı destek almasını sağlar ve sipariş gönderme AppResponse işleminin her bir OrderUpdate ve sonraki her AsyncOrderUpdateRequestMessage işleminde gönderilmelidir. Belirli bir sipariş için gönderilen sipariş yönetimi işlemleri, siparişin durumuna göre değişiklik gösterebilir.

Örneğin, "CREATED" durumunda CUSTOMER_SERVICE, müşteri desteği telefon numaranızı referans alabilir. Ardından, "ONAYLANDI" durumunda, CUSTOMER_SERVICE müşteri için en iyi iletişim noktası restoranın telefon numarasıysa restoranın telefon numarasına değiştirilebilir. Benzer şekilde, sipariş "TAMAMLANDI" durumundayken CUSTOMER_SERVICE, destek e-posta adresinize referans verebilir.

Aşağıdaki tabloda OrderManagementAction türünün özellikleri listelenmektedir:

Mülk 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 zorunludur. openUrlAction.url ön eki "mailto", "tel", "http" veya "https" olmalıdır.
  • EMAIL: Yalnızca sipariş ayrıntıları sayfasında e-posta işlemi yapılır. openUrlAction.url öneki "mailto" olmalıdır.
  • CALL_DRIVER: Yalnızca sipariş ayrıntıları sayfasında arama işlemi. openUrlAction.url öneki "tel" olmalıdır.
  • CALL_RESTAURANT: İşlemi yalnızca sipariş ayrıntıları sayfasında çağırın. openUrlAction.url ön eki "tel" olmalıdır.

OrderState

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

Aşağıdaki tabloda OrderState türünün özellikleri listelenmektedir:

Mülk 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 cümle 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şin integrator tarafından oluşturulduğu ve sağlayıcı tarafından onaylanması bekleniyor. "Sipariş verildi" satın alma durumuna karşılık gelir.
  • CONFIRMED: Sipariş sağlayıcı tarafından onaylanmış ve etkindir. "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: Yemek teslim alınmaya hazır. "Teslim almaya 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 alındı" satın alma durumuna karşılık gelir.

Fatura

Bu türü, OrderState "CONFIRMED", "FULFILLED" veya "IN_TRANSIT" olduğunda sipariş gönderme AppResponse isteğiyle gönderin. userVisibleOrderId kullanılabilir olduğunda makbuzu gönderin. Sonraki güncellemelerde makbuzu göndermeye devam etmeniz gerekmez.

Aşağıdaki tabloda Receipt türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
userVisibleOrderId String

Zorunlu.

Sipariş "CONFIRMED", "IN_TRANSIT" veya "FULFILLED" ise gereklidir. Bu alan, söz konusu siparişle ilgili kullanıcılara yönelik tek kimliktir (genellikle restoranın sipariş kimliğidir) ve hem entegrasyon uzmanının makbuzunda hem de Google sipariş kartında gösterilir. Kullanıcı, sağlayıcı ve entegratörle müşteri hizmetleri için siparişine referans vermek üzere bu kimliği kullanabilmelidir. Bu kimliği herhangi bir OrderUpdate'te yalnızca bir kez sağlamanız gerekir. Bu sağlanana kadar actionOrderId, userVisibleOrderId olur. Örneğin, sipariş restoran tarafından onaylanana kadar kullanıcı görünür sipariş kimliğiniz olmayabilir. Onaylandıktan sonra OrderUpdate ve Receipt 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ünün özellikleri listelenmektedir:

Mülk Tür Açıklama
type RejectionType

Zorunlu.

reason String

Dahili günlük kaydı için kullanılan ret nedeni. Bu alan kullanıcılara gösterilmez.

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: Ödeme işlenmesiyle ilgili bir sorun var.
  • UNAVAILABLE_SLOT: Sipariş, DeliveryInfo veya PickupInfo tarafından belirtilen önceden sipariş verme zamanında yerine getirilemez.
  • PROMO_NOT_APPLICABLE: Promosyonla ilgili bir sorun var.
  • UNKNOWN: Diğer nedenler.

Ö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

İşlemle sağlanan ödeme yöntemi şartları.

Aşağıdaki tabloda ActionProvidedPaymentOptions türünün özellikleri listelenmektedir:

Mülk 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" ödeme türü için ek veriler. Örneğin, bu alanı kullanarak sipariş karşılama işleminde nakit veya kartın desteklenip desteklenmediğini belirtebilirsiniz.

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. Döndürülen ödeme verileri, son kullanma ayı ve son kullanma tarihiyle 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 listelenmektedir:

Mülk Tür Açıklama
format String

İşlemi tamamlamak için fatura adresi biçimi gereklidir. MİN: Ad, ülke kodu ve posta kodu. TAM: Ad, açık adres, yerleşim yeri, 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 desteğini yapılandırmak için bu nesneyi kullanın.

Aşağıdaki tabloda CardParameters türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
allowedAuthMethods List<Const>

Zorunlu.

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

En az 1 öğe olmalıdır.

allowedCardNetworks List<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 adresi gerekiyorsa true olarak ayarlayın. Fatura adresini yalnızca işlemin işlenmesi için gerekli olduğunda isteyin. Ek veri istekleri, ödeme sürecindeki sürtünmeyi artırabilir ve dönüşüm oranlarının düşmesine neden olabilir.

billingAddressParameters BillingAddressParameters

billingAddressRequired doğru olarak ayarlanırsa döndürülen beklenen alanlar.

cvcRequired Boole

TimesofMoney kullanılıyorsa doğru, diğer tüm ödeme işleyiciler için yanlış olarak 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ünün özellikleri listelenmektedir:

Mülk Tür Açıklama
instrumentToken String

Zorunlu.

Daha önce belirtilen GoogleProvidedPaymentOptions'a göre, kullanıcıdan katılımcı bir Google Pay işleyiciyle ödeme almak için ödeme jetonunu içeren Base64 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öntemi için şartlar.

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

Mülk Tür Açıklama
facilitationSpecification String

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

supportedCardNetworks Liste<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 özelliğini kullanın. Fatura adresinin gerekli 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 desteğini yapılandırmak için bu nesneyi kullanın.

Aşağıdaki tabloda MerchantInfo türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
merchantId String

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

merchantName String

Zorunlu.

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

OnFulfillmentPaymentData

"ON_FULFILLMENT" ödeme türü için ek veri göndermek üzere bu nesneyi kullanın.

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

Mülk Tür Açıklama
supportedPaymentOptions List<PaymentOptionsEnums>

Sipariş karşılama sırası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 listelenmektedir:

Mülk 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 desteğini yapılandırmak için bu nesneyi kullanın.

Aşağıdaki tabloda PaymentDataRequest türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
apiVersion Const

Zorunlu.

Ana API sürümü.

Değer: 2

apiVersionMinor Const

Zorunlu.

Alt API sürümü.

Değer: 0

merchantInfo MerchantInfo

Zorunlu.

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

allowedPaymentMethods Liste<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 yetkilendirmesi hakkında ayrıntılar. Bu alan toplam fiyatı ve fiyat durumunu içerir.

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şle ilgili ödeme bilgileri.

Aşağıdaki tabloda PaymentInfo türünün özellikleri listelenmektedir:

Mülk 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ılabilen jeton. Bunu yalnızca CheckoutResponseMessage'da ödeme seçeneği olarak GoogleProvidedPaymentOptions'ı 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'sine yönelik desteğini yapılandırmak için bu nesneyi kullanın.

Aşağıdaki tabloda PaymentMethod türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
type Const

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 gereken parametreler.

tokenizationSpecification TokenizationSpecification

Zorunlu.

Ödeme bilgilerini almak için bir hesap veya şifre çözme sağlayıcısı yapılandırın. Bu özellik, KART ö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ünün özellikleri listelenmektedir:

Mülk Tür Açıklama
Aşağıdaki mülk gruplarından tam olarak biri gereklidir.
googleProvidedOptions 1. Grup GoogleProvidedPaymentOptions

actionProvidedOptions ile birbirini dışlar. gPay'i kullanarak online ödeme yapmak için bunu kullanın.

actionProvidedOptions 2. Grup ActionProvidedPaymentOptions

googleProvidedOptions ile birbirini dışlar. "Teslimatta ödeme" veya "sipariş karşılığında ö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ünün özellikleri listelenmektedir:

Mülk Tür Açıklama
tokenizationType Enum [ "UNSPECIFIED_TOKENIZATION_TYPE", "PAYMENT_GATEWAY" ]

Zorunlu.

Bunun yerine facilitationSpecification özelliğini kullanın. Kabul edilen jeton türü.

parameters Parameters

Bunun yerine facilitationSpecification özelliğini kullanın.

TokenizationSpecification

Bu nesne, bir hesabı ücretli ödeme bilgilerini alacak şekilde yapılandırmanıza olanak tanır.

Aşağıdaki tabloda TokenizationSpecification türünün özellikleri listelenmektedir:

Mülk Tür Açıklama
type Const

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 yeteneğini belirleyen bir işlemi tanımlar. Ödeme provizyonu iletişim kutusunu göstermek için kullanılır.

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

Mülk 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, Google Pay işlem denemeleri için mevcut bir kimliği kullanabilir veya belirli bir kimlik oluşturabilir. Google Transaction Events API'ye geri çağırma gönderdiğinizde bu alan gereklidir.

totalPriceStatus Const

Zorunlu.

Varsayılan olarak "ESTIMATED" değerini kullanın. Toplam fiyat, yanıtın ayrıntılarına göre (ör. fatura adresine göre tahsil edilen satış vergisi) ayarlanabilir.

Değer: ESTIMATED

totalPrice String

Zorunlu.

İsteğe bağlı olarak iki ondalık basamak hassasiyetinde ondalık değer olarak işlem tutarının toplam parasal değeri. Bu alan, cart.totalPrice ile aynı değere sahip olmalıdır.

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

Örnek

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