फ़ुलफ़िलमेंट ऐक्शन स्कीमा

इस पेज पर, ऑर्डर करने की पूरी प्रोसेस में शामिल एक्शन एपीआई के साथ काम करते समय, फ़ुलफ़िलमेंट वेब सेवा (ऑर्डर करने की पूरी प्रोसेस में शामिल एपीआई) के पेलोड के बारे में बताया गया है. इस जानकारी का मशीन से पढ़ा जा सकने वाला वर्शन पाने के लिए, JSON स्कीमा डाउनलोड करें.

बेस टाइप

कार्ट

इसमें ऑर्डर की जानकारी के साथ-साथ यह जानकारी भी शामिल होती है कि अनुरोध, पिकअप के लिए है या डिलीवरी के लिए. कार्ट में डिलीवरी की जानकारी, उपहार में दी जाने वाली रकम, और डिलीवरी के पते की जानकारी भी शामिल होती है. Cart ऑब्जेक्ट को Checkout AppRequest.f में तय किया गया है आपने अपने Checkout AppResponse में कार्ट की कॉपी शामिल की है

नीचे दी गई टेबल में, Cart टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
@type Const

इस ऑब्जेक्ट का टाइप. अगर पैरंट कार्ट ऑब्जेक्ट, ProposedOrder का हिस्सा है, तो इस फ़ील्ड को शामिल न करें.

मान: type.googleapis.com/google.actions.v2.orders.Cart

id String

कार्ट का आईडी, जो देना ज़रूरी नहीं है.

merchant Merchant

इस कार्ट से जुड़ा व्यापारी/कंपनी.

lineItems List<LineItem>

ज़रूरी है.

उन सामान या सेवाओं की सूची जिन्हें उपयोगकर्ता ऑर्डर कर रहा है.

इसमें कम से कम एक आइटम होना चाहिए.

promotions List<Promotion>

इस कार्ट में लागू किया गया प्रमोशन. फ़िलहाल, सिर्फ़ एक प्रमोशन जोड़ा जा सकता है.

notes String

ऑर्डर या डिलीवरी के निर्देशों के बारे में नोट.

extension FoodCartExtension

इसमें उपयोगकर्ता के बारे में जानकारी होती है, जैसे कि ऑर्डर पूरा करने की प्राथमिकताएं.

इस उदाहरण में Cart एलिमेंट दिखाया गया है:

उदाहरण 1

{
  "@type": "type.googleapis.com/google.actions.v2.orders.Cart",
  "merchant": {
    "id": "https://www.exampleprovider.com/merchant/id1",
    "name": "Cucina Venti"
  },
  "lineItems": [
    {
      "name": "Sizzling Prawns Dinner",
      "type": "REGULAR",
      "id": "sample_item_offer_id_1",
      "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
      "quantity": 1,
      "price": {
        "type": "ESTIMATE",
        "amount": {
          "currencyCode": "USD",
          "units": "16",
          "nanos": 750000000
        }
      },
      "subLines": [
        {
          "note": "Notes for this item."
        }
      ],
      "extension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
        "options": [
          {
            "id": "sample_addon_offer_id_1",
            "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
            "name": "Honey Mustard",
            "price": {
              "currencyCode": "USD"
            },
            "quantity": 1
          },
          {
            "id": "sample_addon_offer_id_2",
            "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
            "name": "BBQ Sauce",
            "price": {
              "currencyCode": "USD",
              "nanos": 500000000
            },
            "quantity": 1
          }
        ]
      }
    }
  ],
  "extension": {
    "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
    "fulfillmentPreference": {
      "fulfillmentInfo": {
        "delivery": {
          "deliveryTimeIso8601": "P0M"
        }
      }
    },
    "location": {
      "coordinates": {
        "latitude": 37.788783,
        "longitude": -122.41384
      },
      "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States",
      "zipCode": "94043",
      "city": "Mountain View",
      "postalAddress": {
        "regionCode": "US",
        "postalCode": "94043",
        "administrativeArea": "CA",
        "locality": "Mountain View",
        "addressLines": [
          "1350 Charleston Road"
        ]
      },
      "notes": "Gate code is #111"
    }
  }
}

उदाहरण 2

{
  "merchant": {
    "id": "https://www.exampleprovider.com/merchant/id1",
    "name": "Falafel Bite"
  },
  "lineItems": [
    {
      "name": "Pita Chips",
      "type": "REGULAR",
      "id": "sample_item_offer_id_1",
      "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
      "quantity": 1,
      "price": {
        "type": "ESTIMATE",
        "amount": {
          "currencyCode": "USD",
          "units": "2",
          "nanos": 750000000
        }
      },
      "subLines": [
        {
          "note": "Notes for this item."
        }
      ],
      "extension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
        "options": [
          {
            "id": "sample_addon_offer_id_1",
            "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
            "name": "Honey Mustard",
            "price": {
              "currencyCode": "USD"
            },
            "quantity": 1
          },
          {
            "id": "sample_addon_offer_id_2",
            "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
            "name": "BBQ Sauce",
            "price": {
              "currencyCode": "USD",
              "nanos": 500000000
            },
            "quantity": 1
          }
        ]
      }
    },
    {
      "name": "Chicken Shwarma Wrap",
      "type": "REGULAR",
      "id": "sample_item_offer_id_2",
      "offerId": "https://www.exampleprovider.com/menu/item/offer/id2",
      "quantity": 1,
      "price": {
        "type": "ESTIMATE",
        "amount": {
          "currencyCode": "USD",
          "units": "8"
        }
      },
      "extension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
      }
    },
    {
      "name": "Greek Salad",
      "type": "REGULAR",
      "id": "sample_item_offer_id_3",
      "offerId": "https://www.exampleprovider.com/menu/item/offer/id3",
      "quantity": 1,
      "price": {
        "type": "ESTIMATE",
        "amount": {
          "currencyCode": "USD",
          "units": "9",
          "nanos": 990000000
        }
      },
      "extension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
      }
    },
    {
      "name": "Prawns Biryani",
      "type": "REGULAR",
      "id": "sample_item_offer_id_4",
      "offerId": "https://www.exampleprovider.com/menu/item/offer/id4",
      "quantity": 1,
      "price": {
        "type": "ESTIMATE",
        "amount": {
          "currencyCode": "USD",
          "units": "15",
          "nanos": 990000000
        }
      },
      "extension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
      }
    }
  ],
  "extension": {
    "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
    "fulfillmentPreference": {
      "fulfillmentInfo": {
        "delivery": {
          "deliveryTimeIso8601": "P90M"
        }
      }
    },
    "location": {
      "coordinates": {
        "latitude": 37.788783,
        "longitude": -122.41384
      },
      "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States",
      "zipCode": "94043",
      "city": "Mountain View",
      "postalAddress": {
        "regionCode": "US",
        "postalCode": "94043",
        "administrativeArea": "CA",
        "locality": "Mountain View",
        "addressLines": [
          "1350 Charleston Road"
        ]
      },
      "notes": "Gate code is #111"
    }
  }
}

संपर्क

ऑर्डर पाने वाले व्यक्ति की जानकारी. यह सिर्फ़ AppResponse में उपलब्ध है.

नीचे दी गई टेबल में, Contact टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
displayName String

ऑर्डर पाने वाले व्यक्ति का नाम, जैसा आपको दिखाना है. अगर firstName और lastName फ़ील्ड में कोई जानकारी नहीं दी गई है, तो इस फ़ील्ड का इस्तेमाल करें.

उदाहरण: Lovefood Ordering

email String

ऑर्डर पाने वाले व्यक्ति का ईमेल पता.

उदाहरण: ilovefood@example.com

firstName String

ऑर्डर पाने वाले व्यक्ति का नाम.

उदाहरण: Lovefood

lastName String

ऑर्डर पाने वाले व्यक्ति का सरनेम.

उदाहरण: Ordering

phoneNumber String

ऑर्डर पाने वाले व्यक्ति का फ़ोन नंबर, जिसमें देश का कोड भी शामिल हो.

उदाहरण: +16501234567

emailVerified बूलियन

इससे पता चलता है कि ऑर्डर पाने वाले व्यक्ति ने अपने Google खाते से लॉग इन किया है या नहीं.

इस उदाहरण में Contact एलिमेंट दिखाया गया है:

उदाहरण

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

CustomPushMessage

इसमें अनुरोध के लिए OrderUpdate शामिल होता है.

नीचे दी गई टेबल में, CustomPushMessage टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
orderUpdate OrderUpdate

ज़रूरी है.

ऑर्डर की अपडेट की गई जानकारी.

इस उदाहरण में 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",
    "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

नीचे दी गई टेबल में, DeliveryInfo टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
deliveryTimeIso8601 String

डिलीवरी में लगने वाला अनुमानित समय, ISO 8601 टाइमस्टैंप फ़ॉर्मैट में: "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" या कुल समय के फ़ॉर्मैट में: "P(n)Y(n)M(n)DT(n)H(n)M(n)S". उदाहरण के लिए, PT90M का मतलब है कि वीडियो 90 मिनट का है. डिफ़ॉल्ट वैल्यू ,"PT0M" से पता चलता है कि डिलीवरी का पसंदीदा समय, जितनी जल्दी हो सके. रेफ़रंस: https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations. चेकआउट के दौरान, डिलीवरी में लगने वाले अनुमानित समय को अपडेट करने के लिए इसका इस्तेमाल करें.

उदाहरण: PT90M

इस उदाहरण में DeliveryInfo एलिमेंट दिखाया गया है:

उदाहरण

{
  "deliveryTimeIso8601": "PT90M"
}

डिसक्लेमर

नीचे दी गई टेबल में, Disclaimer टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
predefinedMessage PredefinedMessage

ज़रूरी है.

चेकआउट के दौरान, पहले से तय डिसक्लेमर मैसेज दिखाने के लिए.

feeAmount Money

पार्टनर, इस ऑर्डर के लिए कारोबारी या कंपनी से N रकम का शुल्क लेगा.

feeAmountRange FeeAmountRange

पार्टनर, रेस्टोरेंट से हर ऑर्डर पर N से M तक का शुल्क लेगा.

feePercent Number

पार्टनर, इस ऑर्डर के लिए कारोबारी या कंपनी से N% शुल्क लेगा.

feePercentRange FeePercentRange

पार्टनर, हर ऑर्डर पर कारोबारी या कंपनी से N% से M% तक का शुल्क लेगा.

इस उदाहरण में Disclaimer एलिमेंट दिखाया गया है:

उदाहरण 1

{
  "predefinedMessage": "NEW_YORK_DELIVERY_FEE_TIP_DISCLAIMER"
}

उदाहरण 2

{
  "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE"
}

उदाहरण 3

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

उदाहरण 4

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

उदाहरण 5

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

छठा उदाहरण

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

गड़बड़ी

Error टाइप की ये वैल्यू हो सकती हैं:

  • CLOSED: ऑर्डर करने के समय रेस्टोरेंट बंद हो.
  • NO_CAPACITY: सेवा उपलब्ध नहीं है. उदाहरण के लिए, व्यस्त समय के दौरान कुछ समय के लिए सेवा बंद होना.
  • NO_COURIER_AVAILABLE: डिलीवरी करने वाले लोगों की संख्या सीमित होने की वजह से, ऑर्डर प्रोसेस नहीं किया जा सका.
  • REQUIREMENTS_NOT_MET: ऑर्डर स्वीकार करने से जुड़ी शर्तें पूरी नहीं की गई हैं. उदाहरण के लिए, बास्केट में प्रॉडक्ट की कम से कम संख्या.
  • UNAVAILABLE_SLOT: DeliveryInfo या PickupInfo में बताए गए, पहले से ऑर्डर करने के समय पर ऑर्डर पूरा नहीं किया जा सकता.
  • OUT_OF_SERVICE_AREA: ऑर्डर को उपयोगकर्ता के पते पर डिलीवर नहीं किया जा सकता.
  • PROMO_EXPIRED: प्रमोशन की समयसीमा खत्म हो चुकी है, इसलिए इसे लागू नहीं किया जा सका.
  • PROMO_NOT_APPLICABLE: प्रोमो कोड लागू न होने की सभी स्थितियों का पता लगाने के लिए, गड़बड़ी का सामान्य कोड. अगर प्रोमो कोड से जुड़ी कोई भी गड़बड़ी नहीं है, तो यह कोड दिखता है.
  • PROMO_NOT_RECOGNIZED: कूपन कोड की पहचान नहीं की जा सकी.
  • PROMO_ORDER_INELIGIBLE: मौजूदा ऑर्डर पर यह कूपन लागू नहीं होता.
  • PROMO_USER_INELIGIBLE: मौजूदा उपयोगकर्ता, इस कूपन का इस्तेमाल नहीं कर सकता.
  • AVAILABILITY_CHANGED: आइटम अब उपलब्ध नहीं है या अनुरोध पूरा करने के लिए ज़रूरत के मुताबिक आइटम नहीं हैं.
  • INCORRECT_PRICE: शुल्क या कुल कीमत में गड़बड़ियां.
  • INVALID: किसी LineItem, FulfillmentOption या प्रमोशन में अमान्य डेटा है.
  • NOT_FOUND: कोई लाइन आइटम, फ़ुलफ़िलमेंट का विकल्प या प्रमोशन नहीं मिला.
  • PRICE_CHANGED: किसी आइटम की कीमत बदल गई है.

FeeAmountRange

नीचे दी गई टेबल में, FeeAmountRange टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
minFeeAmount Money

शुल्क की तय की गई रकम की निचली सीमा..

maxFeeAmount Money

शुल्क की ऊपरी सीमा..

FeePercentRange

नीचे दी गई टेबल में, FeePercentRange टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
minFeePercent Number

शुल्क के प्रतिशत की निचली सीमा.

maxFeePercent Number

शुल्क के प्रतिशत की ऊपरी सीमा.

FoodCartExtension

इसमें उपयोगकर्ता के बारे में जानकारी होती है, जैसे कि ऑर्डर पूरा करने की प्राथमिकताएं.

नीचे दी गई टेबल में, FoodCartExtension टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
@type Const

इस एक्सटेंशन का टाइप. यह फ़ील्ड हमेशा "type.googleapis.com/google.actions.v2.orders.FoodCartExtension" पर सेट रहता है.

मान: type.googleapis.com/google.actions.v2.orders.FoodCartExtension

contact Contact

ऑर्डर पाने वाले व्यक्ति की संपर्क जानकारी. जानकारी में व्यक्ति का नाम, फ़ोन नंबर, और ईमेल पता शामिल होता है.

fulfillmentPreference FulfillmentOption

ज़रूरी है.

उपयोगकर्ता को आइटम भेजने की प्राथमिकता.

location Location

CheckoutRequestMessage में, यह फ़ील्ड डिलीवरी के पते की जानकारी देता है. यह जानकारी तब ज़रूरी होती है, जब ऑर्डर डिलीवर किया जाना हो. टेकआउट या पिकअप के लिए किए गए ऑर्डर के मैसेज में, यह फ़ील्ड शामिल नहीं किया जाता.

इस उदाहरण में FoodCartExtension एलिमेंट दिखाया गया है:

उदाहरण 1

{
  "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
  "fulfillmentPreference": {
    "fulfillmentInfo": {
      "delivery": {
        "deliveryTimeIso8601": "P0M"
      }
    }
  },
  "location": {
    "coordinates": {
      "latitude": 37.788783,
      "longitude": -122.41384
    },
    "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States",
    "zipCode": "94043",
    "city": "Mountain View",
    "postalAddress": {
      "regionCode": "US",
      "postalCode": "94043",
      "administrativeArea": "CA",
      "locality": "Mountain View",
      "addressLines": [
        "1350 Charleston Road"
      ]
    },
    "notes": "Gate code is #111"
  }
}

उदाहरण 2

{
  "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
  "fulfillmentPreference": {
    "fulfillmentInfo": {
      "pickup": {
        "pickupTimeIso8601": "P0M"
      }
    }
  },
  "contact": {
    "displayName": "Lovefood Ordering",
    "email": "ilovefood@example.com",
    "phoneNumber": "+16501234567"
  }
}

FoodErrorExtension

अनुरोध को प्रोसेस करते समय हुई एक या उससे ज़्यादा गड़बड़ियों की पहचान करता है. यहां दी गई टेबल में, FoodErrorExtension टाइप के फ़ील्ड के बारे में बताया गया है. गड़बड़ियों की जानकारी CheckoutResponse में भेजी जा सकती है.

नीचे दी गई टेबल में, FoodErrorExtension टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
@type Const

ज़रूरी है.

इस एक्सटेंशन का टाइप.

मान: type.googleapis.com/google.actions.v2.orders.FoodErrorExtension

foodOrderErrors List<FoodOrderError>

ज़रूरी है.

FoodOrderError ऑब्जेक्ट का कलेक्शन, जिसमें हुई गड़बड़ियों के बारे में बताया गया है. हमारा सुझाव है कि हर कार्ट या हर आइटम के लिए एक गड़बड़ी हो.

इसमें कम से कम एक आइटम होना चाहिए.

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

सुधारों के साथ नया ProposedOrder. अगर मूल ProposedOrder में ऐसी गड़बड़ियां हैं जिन्हें ठीक किया जा सकता है, तो यह ऑब्जेक्ट दिखाएं. उदाहरण के लिए, कार्ट में मौजूद एक या उससे ज़्यादा लाइन आइटम की कीमत में बदलाव होने पर, गड़बड़ी को ठीक किया जा सकता है. मान्य ProposedOrder वाली त्रुटियों को ठीक किया जा सकता है. इसलिए, उपयोगकर्ता को अपने कार्ट की समीक्षा करने के बजाय, पुष्टि करने के चरण पर भेजा जाता है.

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

उपयोगकर्ता के लिए चुने गए पेमेंट के डिफ़ॉल्ट विकल्प.

additionalPaymentOptions List<PaymentOptions>

उपयोगकर्ता के लिए पेमेंट के अन्य विकल्प उपलब्ध हैं.

इस उदाहरण में FoodErrorExtension एलिमेंट दिखाया गया है:

उदाहरण

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

खाने के आइटम के लिए ऐड-ऑन तय करता है.

नीचे दी गई टेबल में, FoodItemExtension टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
@type Const

ज़रूरी है.

इस एक्सटेंशन का टाइप. यह फ़ील्ड हमेशा "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" पर सेट रहता है.

मान: type.googleapis.com/google.actions.v2.orders.FoodItemExtension

options List<FoodItemOption>

विकल्प, ऐड-ऑन आइटम या ऐड-ऑन ग्रुप हो सकता है. इसमें ऐड-ऑन का एक सेट होता है.

इस उदाहरण में FoodItemExtension एलिमेंट दिखाया गया है:

उदाहरण

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

नीचे दी गई टेबल में, FoodItemOption टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
id String

Google से असाइन किया गया यूनीक आईडी. FoodOrderError या AsyncOrderUpdateRequest भेजते समय, इस फ़ील्ड का इस्तेमाल करके उन मामलों में अंतर करें जहां कार्ट में एक ही offerId वाले एक से ज़्यादा आइटम हैं.

उदाहरण: 39231093

offerId String

आइटम के लिए ऑफ़र आईडी.

उदाहरण: 912835081

name String

विकल्प का नाम.

उदाहरण: Honey Mustard

price Money
note String

विकल्प से जुड़ा नोट.

quantity Number

आइटम के तौर पर दिए गए विकल्पों के लिए, आइटम की संख्या.

उदाहरण: 3

subOptions List<FoodItemOption>

अगर कोई विकल्प है, तो उसके लिए सब-विकल्प.

उदाहरण: [ { "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 } ]

इस उदाहरण में FoodItemOption एलिमेंट दिखाया गया है:

उदाहरण 1

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

उदाहरण 2

{
  "id": "123166552",
  "offerId": "912849184",
  "name": "Make It A Meal",
  "price": {
    "currencyCode": "USD",
    "units": "3",
    "nanos": 730000000
  },
  "quantity": 1,
  "subOptions": [
    {
      "id": "10239138",
      "offerId": "912391723",
      "name": "Fries",
      "price": {
        "currencyCode": "USD",
        "units": "2",
        "nanos": 230000000
      },
      "quantity": 1
    },
    {
      "id": "57159183",
      "offerId": "81837123",
      "name": "Drink",
      "price": {
        "currencyCode": "USD",
        "units": "3",
        "nanos": 130000000
      },
      "quantity": 1
    }
  ]
}

FoodOrderError

इसमें CheckoutResponse में मौजूद गड़बड़ियों की जानकारी होती है.

नीचे दी गई टेबल में, FoodOrderError टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
error Error

ज़रूरी है.

id String

यह तब ज़रूरी है, जब error = "AVAILABILITY_CHANGED", "INCORRECT_PRICE", "PRICE_CHANGED", "INVALID", or "NOT_FOUND".

आइटम-लेवल की गड़बड़ियों के लिए, यह फ़ील्ड भरना ज़रूरी है. यह मेन्यू आइटम के लिए, Google से असाइन किया गया LineItem.id या ऐड-ऑन के लिए FoodItemOption.id है.

description String

गड़बड़ी की जानकारी. यह ब्यौरा, संगठन के लोगों के लिए लॉगिंग के मकसद से दिया जाता है. यह उपयोगकर्ताओं को नहीं दिखता.

updatedPrice Money

यह तब ज़रूरी है, जब error = "PRICE_CHANGED".

उस आइटम की नई कीमत जिसकी वजह से गड़बड़ी हुई. इसकी ज़रूरत सिर्फ़ तब होती है, जब गड़बड़ी "PRICE_CHANGED" हो.

availableQuantity Integer

यह तब ज़रूरी है, जब error = "INVALID", or "NOT_FOUND".

उस आइटम की नई उपलब्ध संख्या जिसकी वजह से गड़बड़ी हुई. यह सिर्फ़ तब ज़रूरी है, जब गड़बड़ी "INVALID" या "NOT_FOUND" हो. "INVALID" और "NOT_FOUND" के लिए वैल्यू शून्य होनी चाहिए.

इस उदाहरण में FoodOrderError एलिमेंट दिखाया गया है:

उदाहरण 1

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

उदाहरण 2

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

FoodOrderExtension

इसमें ऑर्डर की डिलीवरी से जुड़ी जानकारी होती है.

नीचे दी गई टेबल में, FoodOrderExtension टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
@type Const

इस एक्सटेंशन का टाइप. यह फ़ील्ड हमेशा "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension" पर सेट रहता है.

मान: type.googleapis.com/google.actions.v2.orders.FoodOrderExtension

availableFulfillmentOptions List<FulfillmentOption>

ऑर्डर के लिए, प्रॉडक्ट की डिलीवरी के उपलब्ध विकल्प दिखाता है.

optinForRemarketing बूलियन

उपयोगकर्ता का आपके मार्केटिंग चैनलों में ऑप्ट-इन करने का अनुरोध. डिफ़ॉल्ट रूप से, उपयोगकर्ता की सहमति के बिना मार्केटिंग कॉन्टेंट नहीं भेजा जा सकता. अगर optinForRemarketing सही है, तो उपयोगकर्ता की सदस्यता ली जा सकती है. अगर optinForRemarketing की वैल्यू 'गलत है' है या यह मौजूद नहीं है, तो आपको अपने सिस्टम में सदस्यता की स्थिति को पहले जैसा ही रखना होगा. उपयोगकर्ता, Google के ज़रिए ऑप्ट आउट नहीं कर सकते. वे सिर्फ़ आपके मार्केटिंग चैनलों में दिए गए, सदस्यता छोड़ने के फ़ंक्शन से ऑप्ट आउट कर सकते हैं. यह फ़्लैग सिर्फ़ SubmitOrderRequestMessage में मौजूद होता है.

इस उदाहरण में FoodOrderExtension एलिमेंट दिखाया गया है:

उदाहरण 1

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

उदाहरण 2

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

FulfillmentOption

FulfillmentOption ऑब्जेक्ट का इस्तेमाल इन तरीकों से किया जा सकता है:
  • Checkout AppRequest और Submit AppRequest में, Cart.extension.fulfillmentPreference: उपयोगकर्ता की प्राथमिकता (डिलीवरी या पिकअप) सेव करता है. चेकआउट का अनुरोध भेजे जाने पर, कीमत हमेशा 0 होती है.
  • Checkout AppResponse में, ProposedOrder.extension.availableFulfillmentOptions: डिलीवरी के एक या उससे ज़्यादा विकल्पों के बारे में बताता है (फ़िलहाल, सिर्फ़ एक विकल्प काम करता है). आपने डिफ़ॉल्ट विकल्प को ProposedOrder.otherItems में LineItem के तौर पर तय किया है. FulfillmentOption का offerId, ProposedOrder.otherItems में बताए गए LineItem के आईडी से मेल खाना चाहिए.

नीचे दी गई टेबल में, FulfillmentOption टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
offerId String

अगर ऑर्डर पूरा करने के लिए कोई विकल्प चुना गया है, तो उसके लिए यूनीक आइडेंटिफ़ायर.

fulfillmentInfo FulfillmentOptionInfo

ज़रूरी है.

expiresAt ISO टाइमस्टैंप

ऑर्डर पूरा करने के लिए चुने गए इस विकल्प की समयसीमा खत्म होने का समय.

price Money

इस विकल्प की कीमत.

इस उदाहरण में FulfillmentOption एलिमेंट दिखाया गया है:

उदाहरण

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

FulfillmentOptionInfo

FulfillmentInfo से जुड़ी जानकारी तय करता है.

नीचे दी गई टेबल में, FulfillmentOptionInfo टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
प्रॉपर्टी के इनमें से किसी एक ग्रुप का होना ज़रूरी है.
delivery ग्रुप 1 DeliveryInfo

अगर मौजूद है, तो डिलीवरी ऑर्डर के बारे में बताता है.

pickup ग्रुप 2 PickupInfo

अगर यह मौजूद है, तो इसका मतलब है कि पिकअप का ऑर्डर दिया गया है.

इमेज

नीचे दी गई टेबल में, Image टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
sourceUrl String

ज़रूरी है.

इमेज का यूआरएल. इमेज का साइज़ कम से कम 72x72 पिक्सल होना चाहिए. बेहतर नतीजे पाने के लिए, कम से कम 216 x 216 पिक्सल की इमेज का इस्तेमाल करें. इमेज का साइज़ 6 एमबी और 64 मेगापिक्सल से कम होना चाहिए.

LineItem

इससे कार्ट (Cart.lineItems) के कॉन्टेंट या ऑर्डर (ProposedOrder.otherItems) के लिए अतिरिक्त शुल्कों के बारे में पता चलता है.

नीचे दी गई टेबल में, LineItem टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
id String

यह तब ज़रूरी है, जब type = "REGULAR".

कार्ट में मौजूद किसी लाइन आइटम (ProposedOrder.cart.lineItems[0].id) के लिए, यह Google का बनाया हुआ यूनीक आईडी होता है. ProposedOrder (ProposedOrder.otherItems[0].id) में मौजूद लाइन आइटम के लिए, आईडी की वैल्यू सेवा देने वाली कंपनी तय करती है. इसका इस्तेमाल, डिलीवरी शुल्क और टैक्स जैसे आइटम जोड़ने के लिए किया जाता है. उदाहरण के लिए, अगर कार्ट में एक जैसे दो आइटम हैं और उन्हें तैयार करने के तरीके अलग-अलग हैं, तो उन आइटम के लिए अलग-अलग प्रॉडक्ट आईडी बनाए जाएंगे. जैसे, टॉपिंग के अलग-अलग सेट वाले दो मीडियम पिज़्ज़ा. इस मामले में, दोनों आइटम का बेस offerId एक ही है. जब किसी आइटम को अस्वीकार किए जाने की जानकारी देने के लिए, ऑर्डर अपडेट करने का अनुरोध भेजा जाता है, तो इस आईडी का इस्तेमाल, अलग-अलग चीज़ों को अलग-अलग बताने वाले शब्द के तौर पर करें. दूसरे शब्दों में, अगर किसी पिज़्ज़ा को अस्वीकार कर दिया जाता है, क्योंकि उसमें कोई खास टॉपिंग नहीं है, तो आईडी की मदद से Google यह तय कर पाता है कि ऑर्डर में किस आइटम की बात की जा रही है. otherItems को छोड़कर, इस फ़ील्ड को भरना ज़रूरी है.

name String

ज़रूरी है.

लाइन आइटम का नाम. यह उपयोगकर्ता को दिखने वाली स्ट्रिंग है. अगर हो सके, तो इसे वाक्य के केस में लिखें. जैसे, "डिलीवरी शुल्क", "सेवा शुल्क", "टैक्स". उपयोगकर्ताओं के लिए, इस फ़ील्ड में 100 से ज़्यादा वर्ण नहीं हो सकते.

type LineItemType

ज़रूरी है.

quantity Integer

यह तब ज़रूरी है, जब type = "REGULAR".

शामिल किए गए आइटम की संख्या. यह ProposedOrder.otherItems पर लागू नहीं होता.

description String

आइटम की जानकारी.

price Price

ज़रूरी है.

आइटम या आइटम की कीमत. इस वैल्यू से, इस लाइन आइटम के लिए सभी सामान या सेवाओं की कुल कीमत का पता चलता है. दूसरे शब्दों में, किसी भी ऐड-ऑन की कीमत जोड़ें और संख्या से गुणा करें. उदाहरण के लिए: अगर 10 डॉलर वाले आइटम की संख्या तीन है, तो कीमत 30 डॉलर होगी. अगर किसी पिज़्ज़ा की बुनियादी कीमत 50 रुपये और ऐड-ऑन की कीमत 10 रुपये है, तो उसकी कुल कीमत 60 रुपये होगी. दो पिज़्ज़ा (संख्या = 2) के लिए, अगर बेस कीमत 50 रुपये और हर पिज़्ज़ा के लिए 10 रुपये का ऐड-ऑन है, तो कुल कीमत 120 रुपये होगी. हर LineItem में कीमत होनी चाहिए, भले ही कीमत "0" हो. अगर टाइप DISCOUNT है, तो वैल्यू को नेगेटिव के तौर पर बताएं. उदाहरण के लिए, "-2".

subLines List<SublineNote>

यह वैकल्पिक है और सिर्फ़ तब मान्य है, जब टाइप "सामान्य" हो. चेकआउट के अनुरोध और ऑर्डर सबमिट करने के अनुरोध में, उपयोगकर्ता से आइटम के बारे में कोई नोट इस फ़ील्ड में भेजा जा सकता है. पक्का करें कि नोट देने पर, व्यापारी/कंपनी/कारोबारी को वह नोट मिल जाए. यह अनुरोध में subLines[0].note के तौर पर मौजूद होगा. यह इस फ़ील्ड में दी गई एकमात्र वैल्यू होती है, जब यह अनुरोध में मौजूद होती है.

इसमें एक से ज़्यादा आइटम नहीं होने चाहिए.

offerId String

यह तब ज़रूरी है, जब type = "REGULAR".

आइटम के लिए मेन्यू आइटम का ऑफ़र आईडी. यह ProposedOrder.otherItems पर लागू नहीं होता.

extension FoodItemExtension

खाने के आइटम के लिए ऐड-ऑन तय करता है.

इस उदाहरण में LineItem एलिमेंट दिखाया गया है:

उदाहरण 1

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

उदाहरण 2

{
  "name": "Pita Chips",
  "type": "REGULAR",
  "id": "sample_item_offer_id_1",
  "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
  "quantity": 1,
  "price": {
    "type": "ESTIMATE",
    "amount": {
      "currencyCode": "USD",
      "units": "2",
      "nanos": 750000000
    }
  },
  "subLines": [
    {
      "note": "Notes for this item."
    }
  ],
  "extension": {
    "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
    "options": [
      {
        "id": "sample_addon_offer_id_1",
        "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
        "name": "Honey Mustard",
        "price": {
          "currencyCode": "USD"
        },
        "quantity": 1
      },
      {
        "id": "sample_addon_offer_id_2",
        "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
        "name": "BBQ Sauce",
        "price": {
          "currencyCode": "USD",
          "nanos": 500000000
        },
        "quantity": 1
      }
    ]
  }
}

LineItemType

LineItemType टाइप की ये वैल्यू हो सकती हैं:

  • REGULAR: सामान का लाइन आइटम. यह Cart.lineItems पर लागू होता है.
  • TAX: टैक्स लाइन आइटम. यह ProposedOrder.otherItems पर लागू होता है.
  • DISCOUNT: छूट वाला लाइन आइटम. ध्यान दें कि कीमत ज़ीरो से कम होनी चाहिए. यह ProposedOrder.otherItems पर लागू होता है.
  • GRATUITY: ग्रेच्युटी का लाइन आइटम. आम तौर पर, उपयोगकर्ता के चुने गए सुझाव के लिए SubmitOrderRequestMessage के लिए आरक्षित है. यह ProposedOrder.otherItems पर लागू होता है.
  • DELIVERY: डिलीवरी लाइन आइटम. यह ProposedOrder.otherItems पर लागू होता है.
  • SUBTOTAL: कुल कीमत वाला लाइन आइटम. यह ProposedOrder.otherItems पर लागू होता है.
  • FEE: अन्य टाइप में शामिल नहीं किया गया अतिरिक्त लाइन आइटम. यह ProposedOrder.otherItems पर लागू होता है.

जगह

खाना ऑर्डर करने के लिए पता बताता है. Location टाइप का इस्तेमाल, सिर्फ़ डिलीवरी ऑर्डर के डेस्टिनेशन को बताने के लिए, Cart में किया जाता है. अगर उपयोगकर्ता ऑर्डर करता है, तो तय की गई जगह की जानकारी TransactionDecisionValue में भी दिखती है. पिकअप की सुविधा वाले ऑर्डर के लिए, जगह की जानकारी बिल्कुल शामिल नहीं की जाती.

नीचे दी गई टेबल में, Location टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
coordinates Coordinates
formattedAddress String

जगह का पता दिखाएं.

उदाहरण: 1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States

postalAddress PostalAddress
zipCode String

उदाहरण: 90210

city String

शहर का नाम.

उदाहरण: Los Angeles

notes String

जगह के बारे में नोट, जैसे कि गेट कोड. इसमें 500 या उससे कम वर्ण होने चाहिए.

उदाहरण: Gate code is #111

इस उदाहरण में 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"
}

व्यापारी

नीचे दी गई टेबल में, Merchant टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
id String

मर्चेंट का आईडी. अगर यह एट्रिब्यूट दिया गया है, तो यह रेस्टोरेंट फ़ीड में मौजूद Restaurant.@id से मेल खाता है.

उदाहरण: https://www.exampleprovider.com/merchant/id1

name String

ज़रूरी है.

व्यापारी/कंपनी/कारोबारी का वह नाम जो उपयोगकर्ता को दिखता है.

उदाहरण: Falafel Bite

इस उदाहरण में Merchant एलिमेंट दिखाया गया है:

उदाहरण

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

पैसे

नीचे दी गई टेबल में, Money टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
currencyCode String

ज़रूरी है.

ISO 4217 फ़ॉर्मैट में, तीन अक्षर का मुद्रा कोड.

उदाहरण: USD

units String

रकम की पूरी इकाइयां. उदाहरण के लिए, अगर currencyCode "USD" है, तो "1" यूनिट एक डॉलर है.

उदाहरण: 36

nanos Integer

रकम की नैनो (10^-9) यूनिट की संख्या. वैल्यू, -999,999,999 और +999,999, 999 के बीच होनी चाहिए. इन नियमों का पालन करें: अगर यूनिट की वैल्यू पॉज़िटिव है, तो नैनो की वैल्यू पॉज़िटिव या शून्य होनी चाहिए. अगर यूनिट शून्य है, तो नैनो पॉज़िटिव, शून्य या नेगेटिव हो सकते हैं. अगर यूनिट की वैल्यू नेगेटिव है, तो नैनो की वैल्यू नेगेटिव या शून्य होनी चाहिए. उदाहरण के लिए, -1.75 डॉलर को यूनिट = -1 और नैनो = -750,000,000 के तौर पर दिखाया जाता है.

उदाहरण: 730000000

इस उदाहरण में Money एलिमेंट दिखाया गया है:

उदाहरण 1

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

उदाहरण 2

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

क्रम

इसमें टैक्स, शुल्क, और डिलीवरी के लिए खरीदार से लिए जाने वाले शुल्क के साथ-साथ, पेमेंट की जानकारी भी शामिल होती है. यह ऑब्जेक्ट, आपकी कार्रवाई से Submit AppRequest में मिलता है.

नीचे दी गई टेबल में, Order टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
finalOrder ProposedOrder

ज़रूरी है.

वह सुझाया गया आदेश जिसकी वजह से ऑर्डर हुआ.

googleOrderId String

ज़रूरी है.

Google से असाइन किया गया ऑर्डर आईडी. यह आईडी, ऑर्डर के पूरे लाइफ़साइकल के दौरान स्थिर होना चाहिए. यह आईडी असली उपयोगकर्ता को नहीं दिखता.

orderDate ISO टाइमस्टैंप

ज़रूरी है.

ऑर्डर करने की तारीख और समय.

paymentInfo PaymentInfo

ज़रूरी है.

इस ऑर्डर के लिए किए गए पेमेंट की जानकारी.

इस उदाहरण में 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"
  }
}

OrderUpdate

नीचे दी गई टेबल में, OrderUpdate टाइप के फ़ील्ड के बारे में बताया गया है. ये फ़ील्ड, AppResponse में शामिल हैं.

नीचे दी गई टेबल में, OrderUpdate टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
actionOrderId String

ज़रूरी है.

इंटिग्रेटर के सिस्टम में ऑर्डर का यूनीक आईडी. इसका इस्तेमाल, उस ऑर्डर की पहचान करने के लिए किया जाता है जिसके लिए अपडेट भेजा जाता है. अगर "बनाया गया" ऑर्डर के लिए, OrderUpdate में receipt.user_visible_order_id को कम से कम एक बार नहीं दिया गया है, तो यह आईडी, Google ऑर्डर कार्ड में दिखने वाला वह आईडी होगा जिसे उपयोगकर्ता ने डाला है.

orderState OrderState

ज़रूरी है.

ऑर्डर की नई स्थिति.

lineItemUpdates Map<String, LineItemUpdate>
updateTime ISO टाइमस्टैंप

ज़रूरी है.

ऑर्डर अपडेट होने का समय.

orderManagementActions List<OrderManagementAction>

ऑर्डर के बाद की कार्रवाइयां, जैसे कि सहायता टीम से संपर्क करना और ऑर्डर की जानकारी देखना.

इसमें कम से कम एक आइटम और ज़्यादा से ज़्यादा छह आइटम होने चाहिए.

rejectionInfo RejectionInfo

यह तब ज़रूरी है, जब orderState.state = "REJECTED".

cancellationInfo CancellationInfo

यह तब ज़रूरी है, जब orderState.state = "CANCELLED".

inTransitInfo InTransitInfo

यह फ़ील्ड काम नहीं करता.

fulfillmentInfo FulfillmentInfo

यह फ़ील्ड काम नहीं करता.

receipt Receipt

यह तब ज़रूरी है, जब orderState.state = "CONFIRMED", "IN_PREPARATION", or "READY_FOR_PICKUP".

रसीद में, उपयोगकर्ता को दिखने वाला ऑर्डर आईडी दें.

totalPrice Price

ऑर्डर की कुल कीमत.

infoExtension FoodOrderUpdateExtension

ऑर्डर के अपडेट के बारे में ज़्यादा जानकारी देता है. जैसे, डिलीवरी या पिकअप के अनुमानित समय के बीच का अंतर.

इस उदाहरण में OrderUpdate एलिमेंट दिखाया गया है:

उदाहरण

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

नीचे दी गई टेबल में, PickupInfo टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
pickupTimeIso8601 String

ISO 8601 टाइमस्टैंप फ़ॉर्मैट में, पिकअप का अनुमानित समय: "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" या कुल समय का फ़ॉर्मैट: "P(n)Y(n)M(n)DT(n)H(n)M(n)S". उदाहरण के लिए, PT90M का मतलब है कि वीडियो 90 मिनट का है. डिफ़ॉल्ट वैल्यू ,"PT0M" से पता चलता है कि पिकअप का पसंदीदा समय, जल्द से जल्द है. रेफ़रंस: https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations. चेकआउट के दौरान, पिकअप के अनुमानित समय को अपडेट करने के लिए इसका इस्तेमाल करें.

उदाहरण: PT90M

इस उदाहरण में PickupInfo एलिमेंट दिखाया गया है:

उदाहरण

{
  "pickupTimeIso8601": "PT90M"
}

PostalAddress

नीचे दी गई टेबल में, PostalAddress टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
regionCode String

ज़रूरी है.

देश का दो अक्षर वाला कोड.

उदाहरण: US

postalCode String

पिन कोड.

उदाहरण: 94043

administrativeArea String

किसी देश या इलाके के डाक पते के लिए इस्तेमाल होने वाला सबसे बड़ा एडमिन के तौर पर उपखंड. यह कोई राज्य, प्रांत, ओब्लास्ट या प्रीफ़ेक्चर हो सकता है.

उदाहरण: CA

locality String

इस जगह का शहर या कस्बा. दुनिया के उन इलाकों में जहां इलाकों की जानकारी साफ़ तौर पर नहीं दी गई है या वे इस स्ट्रक्चर में फ़िट नहीं होते, वहां इलाके की जानकारी न दें. इसके बजाय, addressLines फ़ील्ड का इस्तेमाल करें.

उदाहरण: Mountain View

addressLines List<String>

एक या उससे ज़्यादा लाइनें, जिनका इस्तेमाल सड़क का पता बताने के लिए किया जा सकता है. इस फ़ील्ड में बदलाव नहीं किया जाना चाहिए, क्योंकि इसमें ऐसी जगहों की जानकारी हो सकती है जिनकी पहचान साफ़ तौर पर नहीं की जा सकती.

उदाहरण: [ "1350 Charleston Road" ]

recipients List<String>

किसी ऑर्डर के लिए, ईमेल पाने वाले लोगों की सूची. यह फ़ील्ड सिर्फ़ billingAddress में उपलब्ध है.

इस उदाहरण में PostalAddress एलिमेंट दिखाया गया है:

उदाहरण

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

कीमत

नीचे दी गई टेबल में, Price टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
type Enum [ "ESTIMATE", "ACTUAL" ]

ज़रूरी है.

प्रोमो कूपन कोड.

amount Money

ज़रूरी है.

प्रमोशन

नीचे दी गई टेबल में, Promotion टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
coupon String

ज़रूरी है.

प्रोमोशन कूपन का कोड.

ProposedOrder

नीचे दी गई टेबल में, ProposedOrder टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
id String

सुझाए गए ऑर्डर के लिए वैकल्पिक आईडी.

cart Cart

ज़रूरी है.

उपयोगकर्ता के आइटम.

otherItems List<LineItem>

सेवा देने वाली कंपनी के जोड़े गए आइटम, जैसे कि डिलीवरी शुल्क, अन्य शुल्क, और टैक्स. otherItems में, उपयोगकर्ता की ओर से जोड़ी गई ग्रेच्यूटी और/या छूट भी शामिल हो सकती है.

इसमें 10 आइटम से ज़्यादा नहीं होने चाहिए.

image Image

सुझाए गए ऑर्डर से जुड़ी इमेज.

totalPrice Price

ज़रूरी है.

सुझाए गए ऑर्डर की कुल कीमत.

extension FoodOrderExtension

ज़रूरी है.

खाना ऑर्डर करने की सुविधा के लिए, ऑर्डर पूरा करने की जानकारी तय करता है.

disclaimers List<Disclaimer>

यह डिसक्लेमर मैसेज से जुड़ा होता है, जो ऑर्डर करने से पहले यूज़र इंटरफ़ेस (यूआई) में दिखेगा.

इस उदाहरण में 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"
      }
    ]
  }
}

SublineNote

नीचे दी गई टेबल में, SublineNote टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
note String

ज़रूरी है.

टाइमस्टैंप

तारीख और समय, इस फ़ॉर्मैट में: "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"

TransactionDecisionValue

इसमें Order शामिल है.

नीचे दी गई टेबल में, TransactionDecisionValue टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
order Order

ज़रूरी है.

पेमेंट के तरीके की जानकारी के साथ ऑर्डर किया जाना है.

इस उदाहरण में 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"
    }
  }
}

ऑर्डर पूरा करने का अनुरोध

AppRequest

नीचे दी गई टेबल में, AppRequest टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
isInSandbox बूलियन

इससे पता चलता है कि बाद के लेन-देन, सैंडबॉक्स वाले एनवायरमेंट में किए जाते हैं या नहीं.

conversation Conversation
inputs List<Input>

ज़रूरी है.

इसमें कार्ट की जांच करने के लिए ज़रूरी आर्ग्युमेंट शामिल होते हैं.

इसमें एक आइटम होना चाहिए.

इस उदाहरण में AppRequest एलिमेंट दिखाया गया है:

उदाहरण 1

{
  "isInSandbox": true,
  "inputs": [
    {
      "intent": "actions.foodordering.intent.CHECKOUT",
      "arguments": [
        {
          "extension": {
            "@type": "type.googleapis.com/google.actions.v2.orders.Cart",
            "merchant": {
              "id": "https://www.exampleprovider.com/merchant/id1",
              "name": "Cucina Venti"
            },
            "lineItems": [
              {
                "name": "Sizzling Prawns Dinner",
                "type": "REGULAR",
                "id": "sample_item_offer_id_1",
                "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
                "quantity": 1,
                "price": {
                  "type": "ESTIMATE",
                  "amount": {
                    "currencyCode": "USD",
                    "units": "16",
                    "nanos": 750000000
                  }
                },
                "subLines": [
                  {
                    "note": "Notes for this item."
                  }
                ],
                "extension": {
                  "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
                  "options": [
                    {
                      "id": "sample_addon_offer_id_1",
                      "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
                      "name": "Honey Mustard",
                      "price": {
                        "currencyCode": "USD"
                      },
                      "quantity": 1
                    },
                    {
                      "id": "sample_addon_offer_id_2",
                      "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
                      "name": "BBQ Sauce",
                      "price": {
                        "currencyCode": "USD",
                        "nanos": 500000000
                      },
                      "quantity": 1
                    }
                  ]
                }
              }
            ],
            "extension": {
              "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
              "fulfillmentPreference": {
                "fulfillmentInfo": {
                  "delivery": {
                    "deliveryTimeIso8601": "P0M"
                  }
                }
              },
              "location": {
                "coordinates": {
                  "latitude": 37.788783,
                  "longitude": -122.41384
                },
                "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States",
                "zipCode": "94043",
                "city": "Mountain View",
                "postalAddress": {
                  "regionCode": "US",
                  "postalCode": "94043",
                  "administrativeArea": "CA",
                  "locality": "Mountain View",
                  "addressLines": [
                    "1350 Charleston Road"
                  ]
                },
                "notes": "Gate code is #111"
              }
            }
          }
        }
      ]
    }
  ]
}

उदाहरण 2

{
  "isInSandbox": true,
  "inputs": [
    {
      "intent": "actions.intent.TRANSACTION_DECISION",
      "arguments": [
        {
          "transactionDecisionValue": {
            "order": {
              "finalOrder": {
                "cart": {
                  "notes": "Guest prefers their food to be hot when it is delivered.",
                  "merchant": {
                    "id": "https://www.exampleprovider.com/merchant/id1",
                    "name": "Cucina Venti"
                  },
                  "lineItems": [
                    {
                      "name": "Sizzling Prawns Dinner",
                      "type": "REGULAR",
                      "id": "sample_item_offer_id_1",
                      "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
                      "quantity": 1,
                      "price": {
                        "type": "ESTIMATE",
                        "amount": {
                          "currencyCode": "USD",
                          "units": "16",
                          "nanos": 750000000
                        }
                      },
                      "subLines": [
                        {
                          "note": "Notes for this item."
                        }
                      ],
                      "extension": {
                        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
                        "options": [
                          {
                            "id": "sample_addon_offer_id_1",
                            "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
                            "name": "Honey Mustard",
                            "price": {
                              "currencyCode": "USD"
                            },
                            "quantity": 1
                          },
                          {
                            "id": "sample_addon_offer_id_2",
                            "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
                            "name": "BBQ Sauce",
                            "price": {
                              "currencyCode": "USD",
                              "nanos": 500000000
                            },
                            "quantity": 1
                          }
                        ]
                      }
                    }
                  ],
                  "extension": {
                    "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
                    "fulfillmentPreference": {
                      "fulfillmentInfo": {
                        "pickup": {
                          "pickupTimeIso8601": "P0M"
                        }
                      }
                    },
                    "contact": {
                      "displayName": "Lovefood Ordering",
                      "email": "ilovefood@example.com",
                      "phoneNumber": "+16501234567"
                    }
                  }
                },
                "otherItems": [
                  {
                    "name": "Service fee",
                    "type": "FEE",
                    "price": {
                      "type": "ESTIMATE",
                      "amount": {
                        "currencyCode": "USD",
                        "units": "3",
                        "nanos": 500000000
                      }
                    }
                  },
                  {
                    "name": "Tax",
                    "type": "TAX",
                    "price": {
                      "type": "ESTIMATE",
                      "amount": {
                        "currencyCode": "USD",
                        "units": "1",
                        "nanos": 370000000
                      }
                    }
                  },
                  {
                    "name": "Tip",
                    "type": "GRATUITY",
                    "price": {
                      "type": "ESTIMATE",
                      "amount": {
                        "currencyCode": "USD",
                        "units": "2",
                        "nanos": 590000000
                      }
                    }
                  }
                ],
                "totalPrice": {
                  "type": "ESTIMATE",
                  "amount": {
                    "currencyCode": "USD",
                    "units": "23",
                    "nanos": 710000000
                  }
                },
                "id": "sample_final_order_id",
                "extension": {
                  "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension",
                  "availableFulfillmentOptions": [
                    {
                      "fulfillmentInfo": {
                        "pickup": {
                          "pickupTimeIso8601": "P0M"
                        }
                      },
                      "expiresAt": "2017-07-17T12:30:00Z"
                    }
                  ],
                  "optinForRemarketing": true
                }
              },
              "googleOrderId": "sample_google_order_id",
              "orderDate": "2017-07-17T12:00:00Z",
              "paymentInfo": {
                "displayName": "Visa\u2006****\u20061111",
                "googleProvidedPaymentInstrument": {
                  "instrumentToken": "abcd"
                },
                "paymentType": "PAYMENT_CARD"
              }
            }
          }
        }
      ]
    }
  ]
}

CheckoutRequestMessage

CheckoutRequestMessage, actions.foodordering.intent.CHECKOUT इंटेंट वाला AppRequest होता है.

SubmitOrderRequestMessage

SubmitOrderRequestMessage, actions.foodordering.intent.TRANSACTION_DECISION इंटेंट वाला AppRequest होता है.

बातचीत

Conversation सिर्फ़ एक सेशन के लिए यूनीक होता है. ज़रूरत पड़ने पर, इसका इस्तेमाल करके एक से ज़्यादा Checkout और SubmitOrder कार्रवाइयों को एक साथ जोड़ा जा सकता है.

नीचे दी गई टेबल में, Conversation टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
conversationId String

ज़रूरी है.

बातचीत का यूनीक आईडी.

इस उदाहरण में Conversation एलिमेंट दिखाया गया है:

उदाहरण

{
  "conversationId": "CQnJ7Z4i7UmvEZ9ph3AxyZRJ"
}

इनपुट

कार्ट से चेकआउट करने के लिए ज़रूरी आर्ग्युमेंट.

नीचे दी गई टेबल में, Input टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
intent Enum [ "actions.foodordering.intent.CHECKOUT", "actions.intent.TRANSACTION_DECISION" ]

ज़रूरी है.

चेकआउट के अनुरोध वाले मैसेज के लिए, "actions.foodordering.intent.CHECKOUT" पर सेट करें या ऑर्डर सबमिट करने के अनुरोध वाले मैसेज के लिए, "actions.intent.TRANSACTION_DECISION" पर सेट करें.

arguments List<Argument>

ज़रूरी है.

इसमें चेकआउट किया जाने वाला कार्ट या ऑर्डर शामिल होता है

इसमें एक आइटम होना चाहिए.

आर्ग्यूमेंट

इसमें उन खाने की चीज़ों की जानकारी होती है जिन्हें उपयोगकर्ता को देखना है. चेकआउट के लिए, सिर्फ़ एक्सटेंशन लागू होता है. ऑर्डर सबमिट करने के लिए, सिर्फ़ transactionDecisionValue लागू है

नीचे दी गई टेबल में, Argument टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
प्रॉपर्टी के इनमें से किसी एक ग्रुप का होना ज़रूरी है.
extension ग्रुप 1 Cart

उन खाने के आइटम की जानकारी जिनकी जानकारी उपयोगकर्ता को चाहिए.

transactionDecisionValue ग्रुप 2 TransactionDecisionValue

इसमें पेमेंट की जानकारी के साथ-साथ, ऑर्डर की जानकारी शामिल होती है.

ऑर्डर पूरा करने के बारे में जानकारी

AppResponse

नीचे दी गई टेबल में, AppResponse टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
expectUserResponse Const

इसे 'गलत है' पर सेट करें.

मान: False

finalResponse FinalResponse

ज़रूरी है.

इसमें कार्ट से चेकआउट करने के लिए दिया गया आपका जवाब शामिल होता है.

इस उदाहरण में AppResponse एलिमेंट दिखाया गया है:

उदाहरण 1

{
  "expectUserResponse": false,
  "finalResponse": {
    "richResponse": {
      "items": [
        {
          "structuredResponse": {
            "checkoutResponse": {
              "proposedOrder": {
                "id": "sample_proposed_order_id_1",
                "otherItems": [
                  {
                    "name": "New customer discount",
                    "price": {
                      "type": "ESTIMATE",
                      "amount": {
                        "currencyCode": "USD",
                        "units": "-5",
                        "nanos": -500000000
                      }
                    },
                    "type": "DISCOUNT"
                  },
                  {
                    "name": "Delivery fee",
                    "price": {
                      "type": "ESTIMATE",
                      "amount": {
                        "currencyCode": "USD",
                        "units": "3",
                        "nanos": 500000000
                      }
                    },
                    "type": "DELIVERY"
                  },
                  {
                    "name": "Tax",
                    "price": {
                      "type": "ESTIMATE",
                      "amount": {
                        "currencyCode": "USD",
                        "units": "1",
                        "nanos": 500000000
                      }
                    },
                    "type": "TAX"
                  }
                ],
                "cart": {
                  "merchant": {
                    "id": "https://www.exampleprovider.com/merchant/id1",
                    "name": "Falafel Bite"
                  },
                  "lineItems": [
                    {
                      "name": "Pita Chips",
                      "type": "REGULAR",
                      "id": "sample_item_offer_id_1",
                      "offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
                      "quantity": 1,
                      "price": {
                        "type": "ESTIMATE",
                        "amount": {
                          "currencyCode": "USD",
                          "units": "2",
                          "nanos": 750000000
                        }
                      },
                      "subLines": [
                        {
                          "note": "Notes for this item."
                        }
                      ],
                      "extension": {
                        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension",
                        "options": [
                          {
                            "id": "sample_addon_offer_id_1",
                            "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
                            "name": "Honey Mustard",
                            "price": {
                              "currencyCode": "USD"
                            },
                            "quantity": 1
                          },
                          {
                            "id": "sample_addon_offer_id_2",
                            "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2",
                            "name": "BBQ Sauce",
                            "price": {
                              "currencyCode": "USD",
                              "nanos": 500000000
                            },
                            "quantity": 1
                          }
                        ]
                      }
                    },
                    {
                      "name": "Chicken Shwarma Wrap",
                      "type": "REGULAR",
                      "id": "sample_item_offer_id_2",
                      "offerId": "https://www.exampleprovider.com/menu/item/offer/id2",
                      "quantity": 1,
                      "price": {
                        "type": "ESTIMATE",
                        "amount": {
                          "currencyCode": "USD",
                          "units": "8"
                        }
                      },
                      "extension": {
                        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
                      }
                    },
                    {
                      "name": "Greek Salad",
                      "type": "REGULAR",
                      "id": "sample_item_offer_id_3",
                      "offerId": "https://www.exampleprovider.com/menu/item/offer/id3",
                      "quantity": 1,
                      "price": {
                        "type": "ESTIMATE",
                        "amount": {
                          "currencyCode": "USD",
                          "units": "9",
                          "nanos": 990000000
                        }
                      },
                      "extension": {
                        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
                      }
                    },
                    {
                      "name": "Prawns Biryani",
                      "type": "REGULAR",
                      "id": "sample_item_offer_id_4",
                      "offerId": "https://www.exampleprovider.com/menu/item/offer/id4",
                      "quantity": 1,
                      "price": {
                        "type": "ESTIMATE",
                        "amount": {
                          "currencyCode": "USD",
                          "units": "15",
                          "nanos": 990000000
                        }
                      },
                      "extension": {
                        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
                      }
                    }
                  ],
                  "extension": {
                    "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
                    "fulfillmentPreference": {
                      "fulfillmentInfo": {
                        "delivery": {
                          "deliveryTimeIso8601": "P90M"
                        }
                      }
                    },
                    "location": {
                      "coordinates": {
                        "latitude": 37.788783,
                        "longitude": -122.41384
                      },
                      "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States",
                      "zipCode": "94043",
                      "city": "Mountain View",
                      "postalAddress": {
                        "regionCode": "US",
                        "postalCode": "94043",
                        "administrativeArea": "CA",
                        "locality": "Mountain View",
                        "addressLines": [
                          "1350 Charleston Road"
                        ]
                      },
                      "notes": "Gate code is #111"
                    }
                  }
                },
                "totalPrice": {
                  "type": "ESTIMATE",
                  "amount": {
                    "currencyCode": "USD",
                    "units": "36",
                    "nanos": 730000000
                  }
                },
                "extension": {
                  "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension",
                  "availableFulfillmentOptions": [
                    {
                      "fulfillmentInfo": {
                        "delivery": {
                          "deliveryTimeIso8601": "P0M"
                        }
                      },
                      "expiresAt": "2017-07-17T12:30:00Z"
                    }
                  ]
                }
              },
              "paymentOptions": {
                "googleProvidedOptions": {
                  "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": {  \"merchantId\": \"Merchant ID\",  \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [  {    \"type\": \"CARD\",    \"parameters\": {      \"allowedAuthMethods\": [        \"PAN_ONLY\"      ],      \"allowedCardNetworks\": [        \"VISA\",        \"AMEX\",        \"MASTERCARD\"      ],      \"billingAddressRequired\": false    },    \"tokenizationSpecification\": {      \"type\": \"PAYMENT_GATEWAY\",      \"parameters\": {        \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\",        \"gateway\": \"stripe\",        \"stripe:version\": \"2019-05-16\"      }    }  }],\"transactionInfo\": {  \"currencyCode\": \"AUD\",  \"totalPriceStatus\": \"ESTIMATED\",  \"totalPrice\": \"1.0\"}}"
                }
              },
              "additionalPaymentOptions": [
                {
                  "actionProvidedOptions": {
                    "paymentType": "ON_FULFILLMENT",
                    "displayName": "Cash on delivery."
                  }
                }
              ]
            }
          }
        }
      ]
    }
  }
}

उदाहरण 2

{
  "expectUserResponse": false,
  "finalResponse": {
    "richResponse": {
      "items": [
        {
          "structuredResponse": {
            "orderUpdate": {
              "actionOrderId": "sample_action_order_id",
              "orderState": {
                "state": "CONFIRMED",
                "label": "Provider confirmed"
              },
              "receipt": {
                "userVisibleOrderId": "userVisibleId1234"
              },
              "updateTime": "2017-07-17T12:00:00Z",
              "orderManagementActions": [
                {
                  "type": "CUSTOMER_SERVICE",
                  "button": {
                    "title": "Contact customer service",
                    "openUrlAction": {
                      "url": "mailto:support@example.com"
                    }
                  }
                },
                {
                  "type": "CUSTOMER_SERVICE",
                  "button": {
                    "title": "Call customer service",
                    "openUrlAction": {
                      "url": "tel:+18005554679"
                    }
                  }
                },
                {
                  "type": "EMAIL",
                  "button": {
                    "title": "Email restaurant",
                    "openUrlAction": {
                      "url": "mailto:person@example.com"
                    }
                  }
                },
                {
                  "type": "CALL_RESTAURANT",
                  "button": {
                    "title": "Call restaurant",
                    "openUrlAction": {
                      "url": "tel:+16505554679"
                    }
                  }
                }
              ],
              "infoExtension": {
                "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension",
                "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z"
              }
            }
          }
        }
      ]
    }
  }
}

उदाहरण 3

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

उदाहरण 4

{
  "expectUserResponse": false,
  "finalResponse": {
    "richResponse": {
      "items": [
        {
          "structuredResponse": {
            "checkoutResponse": {
              "proposedOrder": {
                "otherItems": [
                  {
                    "name": "Delivery Fees",
                    "subLines": [],
                    "price": {
                      "type": "ESTIMATE",
                      "amount": {
                        "currencyCode": "USD",
                        "units": "3",
                        "nanos": 500000000
                      }
                    },
                    "type": "DELIVERY"
                  },
                  {
                    "name": "Tax",
                    "subLines": [],
                    "price": {
                      "type": "ESTIMATE",
                      "amount": {
                        "currencyCode": "USD",
                        "units": "1",
                        "nanos": 370000000
                      }
                    },
                    "type": "TAX"
                  },
                  {
                    "name": "Promotion",
                    "subLines": [],
                    "price": {
                      "type": "ESTIMATE",
                      "amount": {
                        "currencyCode": "USD",
                        "units": "-5",
                        "nanos": 0
                      }
                    },
                    "id": "OWG_ACTIVE_CODE",
                    "type": "DISCOUNT"
                  }
                ],
                "cart": {
                  "merchant": {
                    "id": "https://www.exampleprovider.com/merchant/id1",
                    "name": "Falafel Bite"
                  },
                  "lineItems": [
                    {
                      "name": "Pita Chips",
                      "type": "REGULAR",
                      "id": "sample_item_offer_id_1",
                      "quantity": 1,
                      "price": {
                        "type": "ESTIMATE",
                        "amount": {
                          "currencyCode": "USD",
                          "units": "2",
                          "nanos": 750000000
                        }
                      },
                      "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1",
                      "extension": {
                        "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension"
                      }
                    }
                  ],
                  "promotions": [
                    {
                      "coupon": "OWG_ACTIVE_CODE"
                    }
                  ],
                  "extension": {
                    "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
                    "fulfillmentPreference": {
                      "fulfillmentInfo": {
                        "pickup": {
                          "pickupTimeIso8601": "P0M"
                        }
                      }
                    }
                  }
                },
                "totalPrice": {
                  "type": "ESTIMATE",
                  "amount": {
                    "currencyCode": "USD",
                    "units": "14",
                    "nanos": 860000000
                  }
                },
                "extension": {
                  "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension",
                  "availableFulfillmentOptions": [
                    {
                      "fulfillmentInfo": {
                        "pickup": {
                          "pickupTimeIso8601": "P0M"
                        }
                      },
                      "expiresAt": "2018-04-10T01:20:08.471Z"
                    }
                  ]
                }
              },
              "paymentOptions": {
                "googleProvidedOptions": {
                  "tokenizationParameters": {
                    "tokenizationType": "PAYMENT_GATEWAY",
                    "parameters": {
                      "gateway": "stripe",
                      "stripe:publishableKey": "pk_live_stripe_client_key",
                      "stripe:version": "2017-04-06"
                    }
                  },
                  "supportedCardNetworks": [
                    "AMEX",
                    "DISCOVER",
                    "MASTERCARD",
                    "VISA",
                    "JCB"
                  ],
                  "prepaidCardDisallowed": true,
                  "billingAddressRequired": true
                }
              }
            }
          }
        }
      ]
    }
  }
}

CheckoutResponseMessage

CheckoutResponseMessage, AppResponse होता है, जिसमें StructuredResponse में checkoutResponse या error होता है.

SubmitOrderResponseMessage

SubmitOrderResponseMessage, AppResponse होता है, जिसमें StructuredResponse में orderUpdate होता है.

FinalResponse

कार्ट चेकआउट या SubmitOrderRequestMessage का आपका जवाब.

नीचे दी गई टेबल में, FinalResponse टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
richResponse RichResponse

ज़रूरी है.

इसमें CheckoutRequestMessage या SubmitOrderRequestMessage के लिए आपका जवाब शामिल होता है.

CheckoutResponse

नीचे दी गई टेबल में, CheckoutResponse टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
proposedOrder ProposedOrder

ज़रूरी है.

लेन-देन के लिए इस्तेमाल किए जाने वाले प्रॉडक्ट का सुझाया गया क्रम.

paymentOptions PaymentOptions

ज़रूरी है.

उपयोगकर्ता के लिए चुना गया पेमेंट का डिफ़ॉल्ट विकल्प.

additionalPaymentOptions List<PaymentOptions>

उपयोगकर्ता के लिए पेमेंट के अन्य विकल्प उपलब्ध हैं.

इस उदाहरण में 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."
      }
    }
  ]
}

आइटम

इसमें कार्ट चेकआउट या SubmitOrderRequestMessage के लिए आपका जवाब शामिल होता है.

नीचे दी गई टेबल में, Item टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
structuredResponse StructuredResponse

ज़रूरी है.

RichResponse

इसमें कार्ट से चेकआउट करने के लिए दिया गया आपका जवाब शामिल होता है.

नीचे दी गई टेबल में, RichResponse टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
items List<Item>

ज़रूरी है.

इसमें एक आइटम होना चाहिए.

StructuredResponse

CheckoutResponseMessage के लिए, इनमें से कोई एक हो सकता है: CheckoutResponse, चेकआउट की प्रोसेस पूरी होने का पता चलता है. OR FoodErrorExtension: इससे पता चलता है कि चेकआउट के दौरान कोई गड़बड़ी हुई है. जवाब में, सही किया गया ProposedOrder और PaymentOptions शामिल हो सकता है. इसके अलावा, PaymentOptions के बिना गड़बड़ी का मैसेज भी शामिल हो सकता है. SubmitOrderResponseMessage के लिए, सिर्फ़ orderUpdate लागू होता है.

नीचे दी गई टेबल में, StructuredResponse टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
प्रॉपर्टी के इनमें से किसी एक ग्रुप का होना ज़रूरी है.
checkoutResponse ग्रुप 1 CheckoutResponse

चेक आउट किए गए आइटम, टैक्स, और छूट.

error ग्रुप 2 FoodErrorExtension

कार्ट में मौजूद आइटम में गड़बड़ियां मिली हैं. गड़बड़ी के टाइप के आधार पर, इस प्रॉपर्टी में सुधार किया गया ProposedOrder और PaymentOptions शामिल हो सकता है. इसके अलावा, इसमें सिर्फ़ गड़बड़ी का मैसेज हो सकता है, जिसमें PaymentOptions शामिल नहीं होगा.

orderUpdate ग्रुप 3 OrderUpdate

ऑर्डर से जुड़े एसिंक्रोनस अपडेट

इस सेक्शन में, हाई-लेवल टाइप के बारे में बताया गया है. ये टाइप, खाने का ऑर्डर करने की सुविधा के लिए पहले से मौजूद ऐक्शन इंटरैक्शन के अनुरोधों और जवाबों को बनाते हैं.

AsyncOrderUpdateRequestMessage

ऑर्डर सबमिट होने और उसकी पुष्टि होने के बाद, उपयोगकर्ता को बदलावों की सूचना देता है. उदाहरण के लिए, उपयोगकर्ता को यह सूचना दी जा सकती है कि ऑर्डर डिलीवर किया जा रहा है या कीमत में बदलाव हुआ है. ज़्यादा जानकारी के लिए, इसे देखें

नीचे दी गई टेबल में, AsyncOrderUpdateRequestMessage टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
isInSandbox बूलियन

इससे पता चलता है कि जिस ऑर्डर के लिए यह अपडेट भेजा गया था वह सैंडबॉक्स पेमेंट है.

customPushMessage CustomPushMessage

ज़रूरी है.

इसमें अनुरोध के लिए OrderUpdate होता है.

इस उदाहरण में AsyncOrderUpdateRequestMessage एलिमेंट दिखाया गया है:

उदाहरण

{
  "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 भेजने के बाद, Google एचटीटीपी 200 स्टेटस और खाली बॉडी के साथ जवाब देता है. अगर ऑर्डर अपडेट नहीं हो पाता है, तो Google इसकी वजह बताता है.

ऑर्डर के अपडेट के टाइप

बटन

यूज़र इंटरफ़ेस के उस एलिमेंट के बारे में बताता है जिसे उपयोगकर्ता इंटरैक्शन देने के लिए जोड़ा जा सकता है.

नीचे दी गई टेबल में, Button टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
title String

ज़रूरी है.

डिसप्ले लेबल. सही रेंडरिंग के लिए, 30 या उससे कम वर्णों के साथ सेंटेंस केस का इस्तेमाल करें.

उदाहरण: Contact us

openUrlAction OpenUrlAction

ज़रूरी है.

इस उदाहरण में Button एलिमेंट दिखाया गया है:

उदाहरण

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

CancellationInfo

नीचे दी गई टेबल में, CancellationInfo टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
reason String

ज़रूरी है.

OrderState.state के "CANCELLED" होने पर, अस्वीकार किए जाने की वजह बताने वाला टेक्स्ट.

उदाहरण: Restaurant closed

इस उदाहरण में CancellationInfo एलिमेंट दिखाया गया है:

उदाहरण

{
  "reason": "Insufficient inventory"
}

FoodOrderUpdateExtension

इस टाइप की वैल्यू से, उपयोगकर्ता को यह अनुमानित समय पता चलता है कि ऑर्डर कब डिलीवर किया जाएगा या पिकअप के लिए कब तैयार होगा. जब भी जानकारी उपलब्ध हो या पिछली बार भेजे जाने के बाद उसमें बदलाव हुआ हो, तब इस एक्सटेंशन को OrderUpdate के साथ भेजें.

ऑर्डर पूरा होने में लगने वाले समय का अनुमानित समय बताएं, ताकि उपयोगकर्ता की उम्मीदों को लगातार पूरा किया जा सके. उदाहरण के लिए, अगर ऑर्डर आज 13:00 बजे डिलीवर होने का अनुमान है, तो आपको अनुमानित समयावधि भेजनी चाहिए. यह समयावधि, ट्रैफ़िक की स्थिति की वजह से होने वाले बदलावों के हिसाब से होनी चाहिए. जैसे, आज 12:45 बजे से 13:15 बजे तक.

ISO 8601 के मुताबिक, अवधि या टाइमस्टैंप का मतलब, OrderUpdate के updateTime (असल में, "अभी") से लेकर updateTime और duration तक के इंटरवल से है. इस फ़ॉर्मैट का इस्तेमाल तब तक न करें, जब तक कि "अभी" का मतलब सही न हो.

ISO 8601 इंटरवल का मतलब, इंटरवल के शुरू होने से लेकर खत्म होने तक का समय होता है.

नीचे दी गई टेबल में, FoodOrderUpdateExtension टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
@type Const

इस एक्सटेंशन का टाइप. यह फ़ील्ड हमेशा "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension" पर सेट रहता है.

मान: type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension

estimatedFulfillmentTimeIso8601 String

ऑर्डर डिलीवर होने या पिकअप के लिए तैयार होने का अनुमानित समय. स्ट्रिंग, ISO 8601 फ़ॉर्मैट में होनी चाहिए. साथ ही, यह किसी तय समय के बजाय किसी इंटरवल से जुड़ी होनी चाहिए. ये वैल्यू स्वीकार की जाती हैं: इंटरवल, अवधि, और तारीख/समय. यह फ़ील्ड, SubmitOrderResponseMessage या AsyncOrderUpdateRequestMessage में तब भेजा जा सकता है, जब जानकारी उपलब्ध हो या कोई बदलाव हो, जैसे कि सामान जल्दी या देर से पहुंचना.

उदाहरण: 2017-07-17T13:00:00Z/2017-07-17T13:30:00Z

foodOrderErrors List<FoodOrderError>

ऑर्डर करने के बाद हुई गड़बड़ियों के बारे में बताता है. हमारा सुझाव है कि हर कार्ट या हर आइटम के लिए एक गड़बड़ी हो. RejectionInfo में शामिल नहीं की गई गड़बड़ियों के लिए, FoodOrderUpdateExtension.FoodOrderErrors का इस्तेमाल करें.

इसमें कम से कम एक आइटम होना चाहिए.

इस उदाहरण में FoodOrderUpdateExtension एलिमेंट दिखाया गया है:

उदाहरण 1

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

उदाहरण 2

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

FulfillmentInfo

नीचे दी गई टेबल में, FulfillmentInfo टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
प्रॉपर्टी के इनमें से किसी एक ग्रुप का होना ज़रूरी है.
deliveryTime ग्रुप 1 ISO टाइमस्टैंप

FoodOrderingUpdateExtension मैसेज में estimatedFulfillmentTimeIso8601 का इस्तेमाल करना

pickupTime ग्रुप 2 ISO टाइमस्टैंप

FoodOrderingUpdateExtension मैसेज में estimatedFulfillmentTimeIso8601 का इस्तेमाल करना

इस उदाहरण में FulfillmentInfo एलिमेंट दिखाया गया है:

उदाहरण 1

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

उदाहरण 2

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

InTransitInfo

नीचे दी गई टेबल में, InTransitInfo टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
updatedTime ISO टाइमस्टैंप

FoodOrderingUpdateExtension मैसेज में estimatedFulfillmentTimeIso8601 का इस्तेमाल करना

इस उदाहरण में InTransitInfo एलिमेंट दिखाया गया है:

उदाहरण

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

LineItemUpdate

नीचे दी गई टेबल में, LineItemUpdate टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
orderState OrderState
price Price
reason String

बदलाव की वजह. कीमत में बदलाव करने के लिए ज़रूरी है.

इस उदाहरण में LineItemUpdate एलिमेंट दिखाया गया है:

उदाहरण

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

OpenUrlAction

नीचे दी गई टेबल में, OpenUrlAction टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
url String

ज़रूरी है.

बटन पर क्लिक या टच करने से ट्रिगर होने वाली कार्रवाई. लागू प्रीफ़िक्स की सूची, orderManagementActionType पर निर्भर करती है. "EMAIL": प्रीफ़िक्स "mailto" होना चाहिए. "CALL": प्रीफ़िक्स "tel" होना चाहिए. "CUSTOMER_SERVICE": प्रीफ़िक्स "mailto", "tel", "http" या "https" होना चाहिए.

उदाहरण: https://www.google.com

OrderManagementAction

ऑर्डर मैनेजमेंट की मदद से, उपयोगकर्ताओं को ऑर्डर के बाद सहायता मिलती है. इसे ऑर्डर सबमिट करने के AppResponse और उसके बाद की हर AsyncOrderUpdateRequestMessage कार्रवाई के लिए, हर OrderUpdate में भेजा जाना चाहिए. किसी ऑर्डर के लिए भेजी गई ऑर्डर मैनेजमेंट कार्रवाइयां, ऑर्डर की स्थिति के आधार पर अलग-अलग हो सकती हैं.

उदाहरण के लिए, "बनाया गया" स्टेटस में, CUSTOMER_SERVICE आपके ग्राहक सहायता केंद्र के टेलीफ़ोन नंबर का रेफ़रंस दे सकता है. इसके बाद, "पुष्टि हो गई" स्थिति में, CUSTOMER_SERVICE रेस्टोरेंट के टेलीफ़ोन नंबर में बदल सकता है. ऐसा तब होता है, जब वह ग्राहक के लिए सबसे सही संपर्क नंबर बन जाता है. इसी तरह, ऑर्डर की स्थिति "पूरा हो गया" होने पर, CUSTOMER_SERVICE सहायता के लिए दिए गए आपके ईमेल पते का रेफ़रंस दे सकता है.

नीचे दी गई टेबल में, OrderManagementAction टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
type OrderManagementActionType

ज़रूरी है.

button Button

ज़रूरी है.

इस उदाहरण में OrderManagementAction एलिमेंट दिखाया गया है:

उदाहरण 1

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

उदाहरण 2

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

OrderManagementActionType

OrderManagementAction से जुड़े टाइप तय करता है.

OrderManagementActionType टाइप की ये वैल्यू हो सकती हैं:

  • CUSTOMER_SERVICE: ऑर्डर की पुष्टि करने वाले पेज पर दिखाने के लिए, ग्राहक सेवा का ईमेल पता और/या संपर्क नंबर. यह ज़रूरी है. openUrlAction.url का प्रीफ़िक्स, "mailto", "tel", "http" या "https" होना चाहिए.
  • EMAIL: सिर्फ़ ऑर्डर की जानकारी वाले पेज पर ईमेल कार्रवाई. openUrlAction.url का प्रीफ़िक्स "mailto" होना चाहिए.
  • CALL_DRIVER: सिर्फ़ ऑर्डर की जानकारी वाले पेज पर कॉल ऐक्शन. openUrlAction.url का प्रीफ़िक्स "tel" होना चाहिए.
  • CALL_RESTAURANT: सिर्फ़ ऑर्डर की जानकारी वाले पेज पर कॉल ऐक्शन. openUrlAction.url का प्रीफ़िक्स "tel" होना चाहिए.

OrderState

ऑर्डर की मौजूदा स्थिति. OrderState की हर state वैल्यू, myaccount.google.com पर खरीदारी की स्थिति से भी जुड़ी होती है.

नीचे दी गई टेबल में, OrderState टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
state OrderStateEnum

ज़रूरी है.

label String

ज़रूरी है.

स्टेटस के लिए, उपयोगकर्ता को दिखने वाली डिसप्ले स्ट्रिंग. अंग्रेज़ी के वाक्यों में, पहला वर्ण बड़ा (अपर केस में) रखें.

उदाहरण: Your order has been received

इस उदाहरण में OrderState एलिमेंट दिखाया गया है:

उदाहरण

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

OrderStateEnum

OrderState से जुड़े टाइप तय करता है.

OrderStateEnum टाइप की ये वैल्यू हो सकती हैं:

  • CREATED: इंटिग्रेटर ने ऑर्डर बनाया है और सेवा देने वाली कंपनी की पुष्टि का इंतज़ार किया जा रहा है. यह "ऑर्डर किया गया" परचेज़ स्टेटस से मेल खाता है.
  • CONFIRMED: सेवा देने वाली कंपनी ने ऑर्डर की पुष्टि कर दी है और वह चालू है. यह "स्वीकार किया गया" खरीदारी स्टेटस से मेल खाता है.
  • REJECTED: इंटिग्रेटर या सेवा देने वाली कंपनी ने ऑर्डर अस्वीकार कर दिया है. यह "अस्वीकार किया गया" खरीदारी स्टेटस से मेल खाता है.
  • CANCELLED: उपयोगकर्ता ने ऑर्डर रद्द कर दिया. यह "रद्द की गई" खरीदारी की स्थिति से मेल खाता है.
  • IN_PREPARATION: खाना तैयार किया जा रहा है. यह खरीदारी के "स्टेटस की जानकारी नहीं है" स्टेटस से मेल खाता है.
  • READY_FOR_PICKUP: खाना पिकअप के लिए तैयार है. यह "पिकअप के लिए तैयार है" खरीदारी के स्टेटस से मेल खाता है.
  • IN_TRANSIT: ऑर्डर डिलीवर किया जा रहा है. यह खरीदारी के "प्रोसेस जारी है" स्टेटस से मेल खाता है.
  • FULFILLED: उपयोगकर्ता को वही आइटम मिला जो उसने ऑर्डर किया था. यह "पिक अप किया गया" खरीदारी के स्टेटस से मेल खाता है.

रसीद

इस टाइप को सबमिट किए गए ऑर्डर AppResponse में भेजें. इसमें OrderState, "CONFIRMED", "FULFILLED" या "IN_TRANSIT" हो. userVisibleOrderId उपलब्ध होने पर, रसीद भेजें. आपको बाद के अपडेट में, फिर से रसीद भेजने की ज़रूरत नहीं है.

नीचे दी गई टेबल में, Receipt टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
userVisibleOrderId String

ज़रूरी है.

अगर ऑर्डर की स्थिति "पुष्टि हो गई है", "ट्रांज़िट में है" या "पूरा हो गया है" है, तो यह जानकारी देना ज़रूरी है. यह फ़ील्ड, इस ऑर्डर के लिए उपयोगकर्ता के सामने दिखने वाला एक आईडी होता है. आम तौर पर, यह रेस्टोरेंट का ऑर्डर आईडी होता है. यह आईडी, इंटिग्रेटर की रसीद और Google के ऑर्डर कार्ड, दोनों में दिखता है. उपयोगकर्ता को इस आईडी का इस्तेमाल करके, सेवा देने वाली कंपनी और इंटिग्रेटर से ग्राहक सेवा के लिए अपने ऑर्डर का रेफ़रंस देना होगा. आपको किसी भी OrderUpdate में, यह आईडी सिर्फ़ एक बार देना होगा. जब तक यह जानकारी नहीं दी जाती, तब तक actionOrderId, userVisibleOrderId होता है. उदाहरण के लिए, हो सकता है कि रेस्टोरेंट की ओर से ऑर्डर की पुष्टि होने तक, आपके पास userVisibleOrderId न हो. पुष्टि होने के बाद, आपको OrderUpdate और रसीद के साथ AsyncOrderUpdateRequestMessage भेजना होगा.

इस उदाहरण में Receipt एलिमेंट दिखाया गया है:

उदाहरण

{
  "userVisibleOrderId": "userVisibleId1234"
}

RejectionInfo

नीचे दी गई टेबल में, RejectionInfo टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
type RejectionType

ज़रूरी है.

reason String

अस्वीकार करने की वजह, जिसका इस्तेमाल इंटरनल लॉगिंग के लिए किया जाता है. यह फ़ील्ड, उपयोगकर्ताओं को नहीं दिखता.

इस उदाहरण में RejectionInfo एलिमेंट दिखाया गया है:

उदाहरण

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

RejectionType

RejectionType टाइप की ये वैल्यू हो सकती हैं:

  • INELIGIBLE: नीति या जोखिम से जुड़ी समस्याओं की वजह से, उपयोगकर्ता ज़रूरी शर्तें पूरी नहीं करता.
  • PAYMENT_DECLINED: पेमेंट प्रोसेस करने में समस्या आ रही है.
  • UNAVAILABLE_SLOT: DeliveryInfo या PickupInfo में बताए गए, पहले से ऑर्डर करने के समय पर ऑर्डर पूरा नहीं किया जा सकता.
  • PROMO_NOT_APPLICABLE: प्रमोशन से जुड़ी कोई समस्या है.
  • UNKNOWN: कोई अन्य वजह.

पेमेंट से जुड़े टाइप

इस सेक्शन में, खाने का ऑर्डर देने और उसे डिलीवर करने के लिए, पेमेंट से जुड़े टाइप के बारे में बताया गया है.

ActionProvidedPaymentOptions

कार्रवाई के दौरान दिए गए पेमेंट के तरीके से जुड़ी ज़रूरी शर्तें.

नीचे दी गई टेबल में, ActionProvidedPaymentOptions टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
paymentType PaymentType

ज़रूरी है.

displayName String

ज़रूरी है.

रसीद पर दिखाए गए पेमेंट के तरीके का नाम.

उदाहरण: Taco Points Total

onFulfillmentPaymentData OnFulfillmentPaymentData

paymentType "ON_FULFILLMENT" के लिए अतिरिक्त डेटा. उदाहरण के लिए, इस फ़ील्ड का इस्तेमाल करके यह बताया जा सकता है कि पेमेंट के लिए नकद या कार्ड का इस्तेमाल किया जा सकता है या नहीं.

इस उदाहरण में ActionProvidedPaymentOptions एलिमेंट दिखाया गया है:

उदाहरण

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

AllowedAuthMethods

AllowedAuthMethods टाइप की ये वैल्यू हो सकती हैं:

  • PAN_ONLY: उपयोगकर्ता के Google खाते में सेव किए गए पेमेंट कार्ड से जुड़ा पुष्टि करने का तरीका. पेमेंट के रिटर्न किए गए डेटा में, निजी खाता नंबर (पैन) के साथ-साथ, उसकी समयसीमा खत्म होने का महीना और साल शामिल होता है.

AllowedCardNetworks

AllowedCardNetworks टाइप की ये वैल्यू हो सकती हैं:

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

BillingAddressParameters

इस ऑब्जेक्ट की मदद से, अनुरोध किए गए बिलिंग पते के लिए, अतिरिक्त फ़ील्ड सेट किए जा सकते हैं.

नीचे दी गई टेबल में, BillingAddressParameters टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
format String

लेन-देन पूरा करने के लिए, बिलिंग पते का फ़ॉर्मैट ज़रूरी है. कम से कम: नाम, देश का कोड, और पिन कोड. पूरा पता: नाम, मोहल्ले का पता, शहर, इलाका, देश कोड, और पिन कोड.

इस उदाहरण में BillingAddressParameters एलिमेंट दिखाया गया है:

उदाहरण 1

{
  "format": "MIN"
}

उदाहरण 2

{
  "format": "FULL"
}

CardParameters

Google Pay API के लिए, अपनी साइट की सहायता टीम को कॉन्फ़िगर करने के लिए, इस ऑब्जेक्ट का इस्तेमाल करें.

नीचे दी गई टेबल में, CardParameters टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
allowedAuthMethods List<Const>

ज़रूरी है.

कार्ड से किए गए लेन-देन की पुष्टि करने के लिए इस्तेमाल किए जाने वाले फ़ील्ड.

इसमें कम से कम एक आइटम होना चाहिए.

allowedCardNetworks List<AllowedCardNetworks>

ज़रूरी है.

एक या उससे ज़्यादा कार्ड नेटवर्क, जो आपके साथ काम करते हैं और Google Pay API के साथ भी काम करते हैं.

इसमें कम से कम एक आइटम होना चाहिए.

billingAddressRequired बूलियन

अगर आपको बिलिंग पता देना है, तो इसे 'सही है' पर सेट करें. बिलिंग पते का अनुरोध सिर्फ़ तब करें, जब लेन-देन को प्रोसेस करने के लिए इसकी ज़रूरत हो. ज़्यादा डेटा के अनुरोधों से चेकआउट की प्रोसेस में रुकावट आ सकती है. साथ ही, कन्वर्ज़न रेट भी कम हो सकते हैं.

billingAddressParameters BillingAddressParameters

billingAddressRequired को 'सही' पर सेट करने पर, ये फ़ील्ड दिखते हैं.

cvcRequired बूलियन

अगर TimesofMoney का इस्तेमाल किया जा रहा है, तो इसे 'सही है' पर सेट करें. पेमेंट प्रोसेस करने वाली अन्य सभी कंपनियों के लिए, इसे 'गलत है' पर सेट करें.

इस उदाहरण में CardParameters एलिमेंट दिखाया गया है:

उदाहरण 1

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

उदाहरण 2

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

GoogleProvidedPaymentInstrument

नीचे दी गई टेबल में, GoogleProvidedPaymentInstrument टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
instrumentToken String

ज़रूरी है.

पहले से तय किए गए GoogleProvidedPaymentOptions के मुताबिक, Google Pay के किसी प्रोसेसर से उपयोगकर्ता को शुल्क लगाने के लिए, पेमेंट टोकन वाली Base 64-एन्कोड की गई स्ट्रिंग.

billingAddress PostalAddress

पेमेंट के लिए बिलिंग पता.

इस उदाहरण में GoogleProvidedPaymentInstrument एलिमेंट दिखाया गया है:

उदाहरण

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

GoogleProvidedPaymentOptions

Google के दिए गए पेमेंट के तरीके से जुड़ी ज़रूरी शर्तें.

नीचे दी गई टेबल में, GoogleProvidedPaymentOptions टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
facilitationSpecification String

स्ट्रिंग के तौर पर PaymentDataRequest JSON. Google Pay API के लिए, अपनी साइट की सहायता टीम को कॉन्फ़िगर करने के लिए, इस ऑब्जेक्ट का इस्तेमाल करें.

supportedCardNetworks List<SupportedCardNetworks>

इसके बजाय, facilitationSpecification का इस्तेमाल करें. एजेंट के साथ काम करने वाले कार्ड नेटवर्क का टाइप.

यह फ़ील्ड काम नहीं करता.

prepaidCardDisallowed बूलियन

इसके बजाय, facilitationSpecification का इस्तेमाल करें. प्रीपेड कार्ड से पेमेंट करने की अनुमति है या नहीं.

यह फ़ील्ड काम नहीं करता.

billingAddressRequired बूलियन

इसके बजाय, facilitationSpecification का इस्तेमाल करें. बिलिंग पता देना ज़रूरी है या नहीं.

यह फ़ील्ड काम नहीं करता.

tokenizationParameters TokenizationParameters

यह फ़ील्ड काम नहीं करता.

इस उदाहरण में GoogleProvidedPaymentOptions एलिमेंट दिखाया गया है:

उदाहरण 1

{
  "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": {  \"merchantId\": \"Merchant ID\",  \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [  {    \"type\": \"CARD\",    \"parameters\": {      \"allowedAuthMethods\": [        \"PAN_ONLY\"      ],      \"allowedCardNetworks\": [        \"VISA\",        \"AMEX\",        \"MASTERCARD\"      ],      \"billingAddressRequired\": false    },    \"tokenizationSpecification\": {      \"type\": \"PAYMENT_GATEWAY\",      \"parameters\": {        \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\",        \"gateway\": \"stripe\",        \"stripe:version\": \"2019-05-16\"      }    }  }],\"transactionInfo\": {  \"currencyCode\": \"AUD\",  \"totalPriceStatus\": \"ESTIMATED\",  \"totalPrice\": \"1.0\"}}"
}

उदाहरण 2

{
  "tokenizationParameters": {
    "tokenizationType": "PAYMENT_GATEWAY",
    "parameters": {
      "gateway": "braintree",
      "braintree:apiVersion": "v1",
      "braintree:sdkVersion": "1.4.0",
      "braintree:merchantId": "a1b2c3d4e5",
      "braintree:clientKey": "production_braintree_client_key",
      "braintree:authorizationFingerprint": "same_as_client_key"
    }
  },
  "supportedCardNetworks": [
    "AMEX",
    "DISCOVER",
    "MASTERCARD",
    "JCB",
    "VISA"
  ],
  "prepaidCardDisallowed": true
}

उदाहरण 3

{
  "tokenizationParameters": {
    "tokenizationType": "PAYMENT_GATEWAY",
    "parameters": {
      "gateway": "stripe",
      "stripe:publishableKey": "pk_live_stripe_client_key",
      "stripe:version": "2017-04-06"
    }
  },
  "supportedCardNetworks": [
    "AMEX",
    "DISCOVER",
    "MASTERCARD",
    "VISA",
    "JCB"
  ],
  "prepaidCardDisallowed": true,
  "billingAddressRequired": true
}

MerchantInfo

Google Pay API के लिए, अपनी साइट की सहायता टीम को कॉन्फ़िगर करने के लिए, इस ऑब्जेक्ट का इस्तेमाल करें.

नीचे दी गई टेबल में, MerchantInfo टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
merchantId String

Google Pay से आपको जारी किया गया Google मर्चेंट आइडेंटिफ़ायर.

merchantName String

ज़रूरी है.

व्यापारी/कंपनी/कारोबारी का नाम, UTF-8 कोड में एन्कोड किया गया हो. व्यापारी/कंपनी/कारोबारी का नाम, पेमेंट शीट में रेंडर किया जाता है.

OnFulfillmentPaymentData

PaymentType "ON_FULFILLMENT" के लिए ज़्यादा डेटा भेजने के लिए, इस ऑब्जेक्ट का इस्तेमाल करें.

नीचे दी गई टेबल में, OnFulfillmentPaymentData टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
supportedPaymentOptions List<PaymentOptionsEnums>

ऑर्डर पूरा करने के समय, उपयोगकर्ता के लिए उपलब्ध पेमेंट के विकल्पों की सूची.

इस उदाहरण में OnFulfillmentPaymentData एलिमेंट दिखाया गया है:

उदाहरण

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

पैरामीटर

TokenizationParameters से जुड़े टाइप तय करता है.

नीचे दी गई टेबल में, Parameters टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
gateway String

ज़रूरी है.

उदाहरण: braintree

gatewayMerchantId String
[additionalKey: string] String अन्य की-वैल्यू पेयर

इस उदाहरण में Parameters एलिमेंट दिखाया गया है:

उदाहरण 1

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

उदाहरण 2

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

PaymentDataRequest

Google Pay API के लिए, अपनी साइट की सहायता टीम को कॉन्फ़िगर करने के लिए, इस ऑब्जेक्ट का इस्तेमाल करें.

नीचे दी गई टेबल में, PaymentDataRequest टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
apiVersion Const

ज़रूरी है.

एपीआई का मेजर वर्शन.

मान: 2

apiVersionMinor Const

ज़रूरी है.

एपीआई का माइनर वर्शन.

मान: 0

merchantInfo MerchantInfo

ज़रूरी है.

(Google Pay व्यापारी/कंपनी आईडी) उस व्यापारी/कंपनी की जानकारी जिसने पेमेंट डेटा का अनुरोध किया है.

allowedPaymentMethods List<PaymentMethod>

ज़रूरी है.

इससे पता चलता है कि Google Pay API के साथ, पेमेंट के एक या उससे ज़्यादा तरीके काम करते हैं.

transactionInfo TransactionInfo

ज़रूरी है.

लेन-देन की अनुमति के बारे में जानकारी. यह जानकारी इस बात पर निर्भर करती है कि उपयोगकर्ता ने लेन-देन के लिए सहमति दी है या नहीं. इस फ़ील्ड में कुल कीमत और कीमत की स्थिति शामिल होती है.

इस उदाहरण में PaymentDataRequest एलिमेंट दिखाया गया है:

उदाहरण

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

किसी ऑर्डर के लिए पेमेंट से जुड़ी जानकारी.

नीचे दी गई टेबल में, PaymentInfo टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
displayName String

ज़रूरी है.

रसीद पर दिखाने के लिए, पेमेंट के उस तरीके का नाम जो उपयोगकर्ता को दिखता है.

paymentType PaymentType

ज़रूरी है.

googleProvidedPaymentInstrument GoogleProvidedPaymentInstrument

टोकन, जिसका इस्तेमाल ऐक्शन कर सकता है. इसकी जानकारी सिर्फ़ तब दें, जब आपने CheckoutResponseMessage में पेमेंट के विकल्प के तौर पर GoogleProvidedPaymentOptions की जानकारी दी हो.

इस उदाहरण में PaymentInfo एलिमेंट दिखाया गया है:

उदाहरण 1

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

उदाहरण 2

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

PaymentMethod

Google Pay API के लिए, अपनी साइट की सहायता टीम को कॉन्फ़िगर करने के लिए, इस ऑब्जेक्ट का इस्तेमाल करें.

नीचे दी गई टेबल में, PaymentMethod टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
type Const

ज़रूरी है.

पेमेंट के इस्तेमाल किए जा सकने वाले तरीके का छोटा आइडेंटिफ़ायर. फ़िलहाल, सिर्फ़ कार्ड का इस्तेमाल किया जा सकता है.

मान: CARD

parameters CardParameters

ज़रूरी है.

पेमेंट के दिए गए तरीके को कॉन्फ़िगर करने के लिए ज़रूरी पैरामीटर.

tokenizationSpecification TokenizationSpecification

ज़रूरी है.

पेमेंट की जानकारी पाने के लिए, खाता या डिक्रिप्ट करने की सेवा देने वाली कंपनी को कॉन्फ़िगर करें. पेमेंट के कार्ड के तरीके के लिए, यह प्रॉपर्टी ज़रूरी है.

इस उदाहरण में PaymentMethod एलिमेंट दिखाया गया है:

उदाहरण

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

PaymentOptions

नीचे दी गई टेबल में, PaymentOptions टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
प्रॉपर्टी के इनमें से किसी एक ग्रुप का होना ज़रूरी है.
googleProvidedOptions ग्रुप 1 GoogleProvidedPaymentOptions

actionProvidedOptions के साथ म्यूचुअल एक्सक्लूज़िव. gPay का इस्तेमाल करके ऑनलाइन पेमेंट करने के लिए, इसका इस्तेमाल करें.

actionProvidedOptions ग्रुप 2 ActionProvidedPaymentOptions

यह एट्रिब्यूट, googleProvidedOptions के साथ इस्तेमाल नहीं किया जा सकता. इसका इस्तेमाल, "डिलीवरी के समय पैसे चुकाएं" या "ऑर्डर पूरा होने पर पैसे चुकाएं" के लिए करें.

इस उदाहरण में PaymentOptions एलिमेंट दिखाया गया है:

उदाहरण 1

{
  "googleProvidedOptions": {
    "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": {  \"merchantId\": \"Merchant ID\",  \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [  {    \"type\": \"CARD\",    \"parameters\": {      \"allowedAuthMethods\": [        \"PAN_ONLY\"      ],      \"allowedCardNetworks\": [        \"VISA\",        \"AMEX\",        \"MASTERCARD\"      ],      \"billingAddressRequired\": false    },    \"tokenizationSpecification\": {      \"type\": \"PAYMENT_GATEWAY\",      \"parameters\": {        \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\",        \"gateway\": \"stripe\",        \"stripe:version\": \"2019-05-16\"      }    }  }],\"transactionInfo\": {  \"currencyCode\": \"AUD\",  \"totalPriceStatus\": \"ESTIMATED\",  \"totalPrice\": \"1.0\"}}"
  }
}

उदाहरण 2

{
  "googleProvidedOptions": {
    "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": {  \"merchantId\": \"Merchant ID\",  \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [  {    \"type\": \"CARD\",    \"parameters\": {      \"allowedAuthMethods\": [        \"PAN_ONLY\"      ],      \"allowedCardNetworks\": [        \"VISA\",        \"AMEX\",        \"MASTERCARD\"      ],      \"billingAddressRequired\":true,   \"billingAddressParameters\": {  \"format\":\"MIN\"  }    },    \"tokenizationSpecification\": {      \"type\": \"PAYMENT_GATEWAY\",      \"parameters\": {        \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\",        \"gateway\": \"stripe\",        \"stripe:version\": \"2019-05-16\"      }    }  }],\"transactionInfo\": {  \"currencyCode\": \"AUD\",  \"totalPriceStatus\": \"ESTIMATED\",  \"totalPrice\": \"1.0\"}}"
  }
}

उदाहरण 3

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

PaymentOptionsEnums

PaymentOptionsEnums टाइप की ये वैल्यू हो सकती हैं:

  • Cash
  • Card
  • UPI
  • Paytm

PaymentType

PaymentType टाइप की ये वैल्यू हो सकती हैं:

  • PAYMENT_CARD: GoogleProvidedPaymentOptions के लिए.
  • ON_FULFILLMENT: ActionProvidedPaymentOptions के लिए.

SupportedCardNetworks

GoogleProvidedPaymentOptions से जुड़े टाइप तय करता है.

SupportedCardNetworks टाइप की ये वैल्यू हो सकती हैं:

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

TokenizationParameters

GoogleProvidedPaymentOptions से जुड़े टाइप तय करता है.

नीचे दी गई टेबल में, TokenizationParameters टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
tokenizationType Enum [ "UNSPECIFIED_TOKENIZATION_TYPE", "PAYMENT_GATEWAY" ]

ज़रूरी है.

इसके बजाय, facilitationSpecification का इस्तेमाल करें. स्वीकार किए जाने वाले टोकन टाइप.

parameters Parameters

इसके बजाय, facilitationSpecification का इस्तेमाल करें.

TokenizationSpecification

इस ऑब्जेक्ट की मदद से, किसी खाते को कॉन्फ़िगर करके, शुल्क वाले पेमेंट की जानकारी ली जा सकती है.

नीचे दी गई टेबल में, TokenizationSpecification टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
type Const

ज़रूरी है.

parameters Parameters

ज़रूरी है.

इस उदाहरण में TokenizationSpecification एलिमेंट दिखाया गया है:

उदाहरण 1

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

उदाहरण 2

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

TransactionInfo

इस ऑब्जेक्ट में उस लेन-देन के बारे में बताया गया है जिससे यह तय होता है कि पैसे चुकाने वाला व्यक्ति पैसे चुका सकता है या नहीं. इसका इस्तेमाल, पेमेंट की अनुमति देने वाला डायलॉग बॉक्स दिखाने के लिए किया जाता है.

नीचे दी गई टेबल में, TransactionInfo टाइप की प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी टाइप ब्यौरा
currencyCode String

ज़रूरी है.

ISO 4217 वर्णमाला से बना मुद्रा कोड.

transactionId String

यूनीक आईडी, जो लेन-देन की कोशिश की पहचान करता है. कारोबारी, Google Pay से लेन-देन करने के लिए किसी मौजूदा आईडी का इस्तेमाल कर सकते हैं या कोई नया आईडी जनरेट कर सकते हैं. Google Transaction Events API को कॉलबैक भेजते समय, इस फ़ील्ड को भरना ज़रूरी है.

totalPriceStatus Const

ज़रूरी है.

डिफ़ॉल्ट तौर पर, "अनुमानित" का इस्तेमाल करें. जवाब में दी गई जानकारी के आधार पर, कुल कीमत में बदलाव हो सकता है. जैसे, बिलिंग पते के आधार पर लिया जाने वाला सेल्स टैक्स.

मान: ESTIMATED

totalPrice String

ज़रूरी है.

लेन-देन की कुल रकम, जिसमें दशमलव के बाद दो अंक हो सकते हैं. इस फ़ील्ड की वैल्यू, cart.totalPrice की वैल्यू से मेल खानी चाहिए.

इस उदाहरण में TransactionInfo एलिमेंट दिखाया गया है:

उदाहरण

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