प्रमोशन की मदद से, आप और Google, ग्राहकों को खाना ऑर्डर करने की सेवा को आज़माने के लिए, छूट की सुविधा दे सकते हैं. Google, ऑर्डर करने की पूरी प्रोसेस से जुड़ी कार्रवाइयों को प्रमोशन मैनेजमेंट सिस्टम के साथ इंटिग्रेट करने की सुविधा देता है.
यहां दिए गए टाइप की छूट दी जा सकती है:
- Google के प्रायोजित प्रोमो कोड: ऐसे प्रोमो कोड जो Google की तरफ़ से अपने-आप भर जाते हैं या उपयोगकर्ताओं की तरफ़ से डाले जाते हैं.
- तीसरे पक्ष के प्रायोजित प्रोमो कोड: उपयोगकर्ताओं के लिए प्रोमो कोड, जो आपकी फ़ूड ऑर्डर करने की सेवा से मिलते हैं.
- तीसरे पक्ष की ओर से प्रायोजित अपने-आप लागू होने वाली छूट: ये ऐसी छूट होती हैं जो आपकी फ़ूड ऑर्डर करने की सेवा, प्रमोशन कोड के बिना अपने-आप लागू करती है.
छूट का टाइप चाहे जो भी हो, Google खाना ऑर्डर करने की सुविधा देने वाली कंपनी को चेकआउट कॉल करता है. इससे, छूट की पुष्टि की जाती है और उसे लागू किया जाता है.
खाने की ऑर्डर करने की सेवा के डेवलपर के तौर पर, आपको अपने लागू किए गए तरीके में कुछ बदलाव करने होंगे. इससे, मान्य प्रमोशन कोड के लिए छूट का हिसाब लगाया जा सकेगा या अमान्य प्रमोशन कोड के लिए गड़बड़ियां भेजी जा सकेंगी. साथ ही, प्रमोशन कोड रिडीम करने से जुड़ी पाबंदियों को मैनेज किया जा सकेगा और रिइंबर्समेंट के लिए खाता डेटा ट्रैक किया जा सकेगा.
प्रमोशन प्रोसेस करने का तरीका
प्रमोशन के साथ काम करने वाला फ़ुलफ़िलमेंट लागू करने के लिए, यह तरीका अपनाएं:
- प्रमोशन इंटिग्रेशन सेट अप करना. (अगर Google के प्रायोजित प्रोमो कोड का इस्तेमाल नहीं किया जा रहा है, तो यह चरण छोड़ दें.)
- प्रमोशन के साथ चेकआउट की सुविधा लागू करना.
- प्रमोशन के साथ ऑर्डर सबमिट करने की सुविधा लागू करना.
प्रमोशन इंटिग्रेशन सेट अप करना
अगर आपको Google के प्रायोजित प्रोमो कोड इस्तेमाल करने हैं, तो इस सेक्शन में प्रोमोशन इंटिग्रेशन सेट अप करने का तरीका बताया गया है. अगर आपको सिर्फ़ उन प्रमोशन कोड या छूट का इस्तेमाल करना है जिनका प्रायोजन किसी तीसरे पक्ष ने किया है, तो अपना सेटअप तय करें और इस सेक्शन को छोड़ दें.
Google, प्रायोजित किए जाने वाले प्रमोशन के टाइप के बारे में बताता है. साथ ही, इंटिग्रेशन सेट अप करने के लिए आपसे संपर्क करता है. हम यह जानकारी देते हैं:
- छूट की रकम.
- कार्ट में मौजूद प्रॉडक्ट की कम से कम वैल्यू.
- प्रमोशन कोड इस्तेमाल करने की शुरुआत और खत्म होने की तारीख.
- प्रमोशन कैंपेन के लिए तय किया गया ज़्यादा से ज़्यादा बजट.
- प्रमोशन कोड का इस्तेमाल कितनी बार किया जा सकता है.
प्रोमो कोड के उदाहरण:
FopaNewUser
: 10% (तय प्रतिशत), ज़्यादा से ज़्यादा 5,000 रुपये की छूट.FopaMoreThan50
: 1,000 रुपये (तय रकम की छूट).
अगर Google को कोड लागू करने की प्रक्रिया रोकनी पड़ती है, तो हम आपसे संपर्क करेंगे.
पेमेंट सेट अप करना
पेमेंट की प्रोसेस सेट अप करने के लिए, अपने Google EAP कंसल्टेंट से संपर्क करें. Google, Google के प्रायोजित प्रमोशन कोड से किए गए लेन-देन का रिफ़ंड सिर्फ़ तब देता है, जब ऑर्डर का स्टेटस इनमें से कोई एक हो:
CONFIRMED
IN_TRANSIT
READY_FOR_PICKUP
IN_PREPARATION
FULFILLED
प्रमोशन के साथ चेकआउट की सुविधा लागू करना
इस सेक्शन में, प्रमोशन कोड (Google या तीसरे पक्ष के प्रायोजित) के साथ चेकआउट की प्रोसेस लागू करने के बारे में बताया गया है. तीसरे पक्ष की ओर से अपने-आप मिलने वाली छूट के लिए, आपको सिर्फ़ CheckoutResponseMessage
में छूट वाली लाइन आइटम की वैल्यू दिखानी होगी. इसके लिए, प्रोमो कोड की जांच करने की ज़रूरत नहीं है.
खाने के ऑर्डर को पूरा करने के दौरान, Google आपके फ़ुलफ़िलमेंट पार्टनर को एक प्रमोशन कोड भेजता है. यह कोड, CheckoutRequestMessage
में होता है. बार-बार चेकआउट के अनुरोध करने पर, उपयोगकर्ता अपना कार्ट या प्रोमो कोड बदल सकते हैं.
यह पता लगाने के लिए कि उपयोगकर्ता ने पहली बार प्रोमो कोड डाला है या नहीं, यह तरीका अपनाएं:
- Google के प्रायोजित प्रोमो कोड: Google यह जांच करता है कि वापस आने वाला उपयोगकर्ता, एक ही प्रोमो कोड का फिर से इस्तेमाल करने की कोशिश कर रहा है या नहीं. इसके लिए, आपको कुछ करने की ज़रूरत नहीं है.
- तीसरे पक्ष के प्रायोजित प्रोमो कोड या अपने-आप लागू होने वाली छूट: अगर आपने खाता लिंक करने और उपयोगकर्ता के ऑप्ट-इन की सुविधा लागू नहीं की है, तो चेकआउट के अनुरोध को प्रोसेस करने के दौरान, उपयोगकर्ता की जानकारी नहीं देखी जा सकेगी. इसके बजाय,
SubmitOrderRequestMessage
प्रोसेसिंग के दौरान,FoodCartExtension
ऑब्जेक्ट कीContact
जानकारी (जैसे, उपयोगकर्ता का ईमेल पता) का इस्तेमाल करके, इसकी जांच करें.
नए चेकआउट अनुरोध के आधार पर, गड़बड़ियों की पहचान करें या ऑर्डर पूरा करने पर मिलने वाली छूट का हिसाब लगाएं. ऐसा करते समय, पक्का करें कि आपका सिस्टम पुरानी जानकारी को सेव न रखे.
प्रोमो कोड की समयसीमा देखना
आपके प्रॉडक्ट की पुष्टि करने वाले व्यक्ति को, तय की गई शर्तों के हिसाब से किसी प्रोमो कोड की पुष्टि करनी चाहिए. जैसे, खत्म होने की तारीख, ज़्यादा से ज़्यादा इस्तेमाल, और ज़्यादा से ज़्यादा छूट. इसके बाद, CheckoutResponseMessage
में, कैलकुलेट की गई छूट के साथ सही जवाब दें. अगर प्रोमो कोड लागू नहीं किया जा सकता, तो foodOrderErrors
के साथ जवाब दें. अगर आपको प्रोमो कोड में गड़बड़ियां मिलती हैं, तो प्रमोशन से जुड़ी गड़बड़ियों को ठीक करना में बताई गई प्रोसेस अपनाएं.
नीचे दिया गया स्निपेट, प्रमोशन कोड के लिए foodOrderErrors
का उदाहरण दिखाता है.
पक्का करें कि correctedProposedOrder
में प्रमोशन वाले नोड शामिल न हों.
"foodOrderErrors": [
{
"error": "PROMO_NOT_APPLICABLE",
// Copy promotions.coupon string from CheckoutRequest as the ID
"id": "GoogleNewUser",
"description": "Promotion could not be applied"
}
],
"correctedProposedOrder": {// required ...},
"paymentOptions": {// required ...}
छूट का हिसाब लगाना
अगर प्रोमो कोड मान्य है, तो आपके फ़ुलफ़िलमेंट को छूट की डॉलर वैल्यू का हिसाब लगाना चाहिए. साथ ही, otherItems
कलेक्शन में, छूट की हिसाब लगाई गई वैल्यू के साथ CheckoutResponseMessage
भेजना चाहिए. ऑर्डर की कुल कीमत, नेगेटिव नहीं होनी चाहिए. अगर छूट की रकम, कार्ट में मौजूद आइटम की कुल कीमत से ज़्यादा है, तो ऑर्डर की कुल कीमत को 0 डॉलर पर सेट करने के लिए, ज़्यादा से ज़्यादा डॉलर की रकम भेजें.
नीचे दिए गए स्निपेट में, प्रमोशनल छूट के लिए CheckoutResponseMessage
सेक्शन का उदाहरण दिया गया है:
"proposedOrder": {
"otherItems": [
. . .
{
"name": "Discount",
// copy promotions.coupon field from CheckoutRequest as the id
"id": "GoogleNewUser",
"price": {
"type": "ESTIMATE",
"amount": {
"currencyCode": "USD",
"units": "-3",
"nanos": -500000000
}
},
"type": "DISCOUNT",
}
]
}
इस्तेमाल नहीं किए गए प्रमोशन रिलीज़ करना
हर चेकआउट अनुरोध, ऑर्डर सबमिट करने का अनुरोध नहीं बनता. अगर आपका फ़ुलफ़िलमेंट पार्टनर, चेकआउट कॉल के समय किसी प्रमोशन पर रोक लगाता है, तो पक्का करें कि आपके पास ऐसा तरीका हो जिससे किसी तय समय के बाद, ऑर्डर सबमिट करने के ज़रिए प्रमोशन पर दावा न करने पर, रोक को हटाया जा सके. इससे यह पक्का होता है कि आपकी फ़ूड ऑर्डर करने की सेवा, कैंपेन के लिए तय कोटा को बनाए रखती है.
प्रमोशन से जुड़ी गड़बड़ियां ठीक करना
अगर आपके फ़ुलफ़िलमेंट पार्टनर को पता चलता है कि किसी CheckoutRequestMessage
का प्रमोशन कोड मान्य नहीं है (उदाहरण के लिए, उसकी समयसीमा खत्म हो गई है, वह अमान्य है या उसे पहचाना नहीं जा सका), तो CheckoutResponseMessage
के साथ foodOrderError
भेजें. इसमें गड़बड़ी का कोड और वजह का टेक्स्ट शामिल होना चाहिए. साथ ही, correctedProposedOrder
और paymentOptions
ऑब्जेक्ट भी होने चाहिए.
अगर आपके फ़ुलफ़िलमेंट को एक ही अनुरोध से प्रमोशन कोड से जुड़ी कई गड़बड़ियां मिलती हैं, तो ठीक की जा सकने वाली गड़बड़ियों को भेजने से पहले, ठीक नहीं की जा सकने वाली गड़बड़ियों को भेजें. जांच की प्राथमिकता इस तरह से तय करें (ज़्यादा से कम प्राथमिकता के हिसाब से):
PROMO_NOT_RECOGNIZED
PROMO_EXPIRED
PROMO_USER_INELIGIBLE
PROMO_ORDER_INELIGIBLE
PROMO_NOT_APPLICABLE
उदाहरण
यहां प्रोमो कोड के साथ चेकआउट के अनुरोध का उदाहरण दिया गया है:
{ "accessToken": "test_access_token", "lastSeen": "2018-06-22T19:25:39Z" }, "conversation": { "conversationId": "XYZ" }, "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": "Falafel Bite" }, "lineItems": [ { "name": "Falafel Tray", "type": "REGULAR", "id": "sample_item_offer_id_1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 950000000 } }, "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "promotions": [ { "coupon": "FOPAACTIVECODE" } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } } } } } } ] } ], "directActionOnly": true, "isInSandbox": true }
अगर प्रोमो कोड मान्य है, तो प्रॉडक्ट डिलीवर करने की प्रोसेस के दौरान चेकआउट से जुड़ा जवाब यहां दिया गया है:
{ "expectUserResponse": false, "finalResponse": { "richResponse": { "items": [ { "structuredResponse": { "checkoutResponse": { "proposedOrder": { "otherItems": [ { "name": "Delivery Fees", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } }, "type": "DELIVERY" }, { "name": "Tax", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 370000000 } }, "type": "TAX" }, { "name": "Promotion", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "-5", "nanos": 0 } }, "id": "FOPAACTIVECODE", "type": "DISCOUNT" } ], "cart": { "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Falafel Tray", "type": "REGULAR", "id": "2529103", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 950000000 } }, "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "promotions": [ { "coupon": "FOPAACTIVECODE" } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } } } } }, "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 820000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } }, "expiresAt": "2018-06-22T19:30:52.596Z" } ] } }, "orderOptions": {}, "paymentOptions": { "googleProvidedOptions": { "tokenizationParameters": { "tokenizationType": "PAYMENT_GATEWAY", "parameters": { "gateway": "stripe", "stripe:publishableKey": "example_stripe_client_key", "stripe:version": "2017-04-06" } }, "supportedCardNetworks": [ "AMEX", "DISCOVER", "MASTERCARD", "VISA", "JCB" ], "prepaidCardDisallowed": true } } } } } ], "suggestions": [] } } }
अगर प्रमोशन कोड अमान्य है, तो चेकआउट रिस्पॉन्स का एक उदाहरण यहां दिया गया है:
{ "expectUserResponse": false, "finalResponse": { "richResponse": { "items": [ { "structuredResponse": { "error": { "foodOrderErrors": [ { "error": "PROMO_NOT_RECOGNIZED", "id": "SOMEPROMO", "description": "Coupon not found" } ], "correctedProposedOrder": { "cart": { "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "id": "sample_item_offer_id_4", "name": "Prawns Biryani", "type": "REGULAR", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "18", "nanos": 750000000 } }, "offerId": "https://www.exampleprovider.com/menu/item/offer/id4", "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "extension": { "fulfillmentPreference": { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } } }, "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension" }, "promotions": [] }, "otherItems": [ { "name": "Tax", "type": "TAX", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 650000000 } } } ], "termsOfServiceUrl": "https://exampleprovider.com/terms", "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "20", "nanos": 400000000 } }, "extension": { "availableFulfillmentOptions": [ { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "PT0M" } } } ], "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension" } }, "paymentOptions": { "googleProvidedOptions": { "prepaidCardDisallowed": false, "billingAddressRequired": true, "tokenizationParameters": { "tokenizationType": "PAYMENT_GATEWAY", "parameters": { "gateway": "braintree", "braintree:apiVersion": "v1", "braintree:sdkVersion": "1.4.0", "braintree:merchantId": "example_braintree_merchant_ID", "braintree:clientKey": "example_braintree_client_key", "braintree:authorizationFingerprint": "example_braintree_fingerprint" } } } }, "@type": "type.googleapis.com/google.actions.v2.orders.FoodErrorExtension" } } } ] } } }
प्रमोशन के साथ ऑर्डर सबमिट करने की सुविधा लागू करना
ऑर्डर पूरा करने के लिए सबमिट करने की प्रोसेस में, देखें कि उपयोगकर्ता पहली बार प्रोमो कोड डाल रहा है या नहीं. SubmitOrderRequestMessage
प्रोसेसिंग के दौरान, FoodCartExtension
ऑब्जेक्ट की Contact
जानकारी (जैसे, उपयोगकर्ता का ईमेल पता) का इस्तेमाल करके, इसकी जांच की जा सकती है.
आपको यह भी देखना चाहिए कि प्रोमो कोड लागू है या नहीं:
- अगर कोड लागू होता है, तो: ऑर्डर की पुष्टि करें और कूपन को 'रिडीम किया गया' के तौर पर मार्क करें.
- अगर कोड अब लागू नहीं है, तो:
PROMO_NOT_APPLICABLE
गड़बड़ी की जानकारी के साथ ऑर्डर अस्वीकार करें.FoodOrderUpdateExtension
के लिए इस्तेमाल किए गए तरीके का इस्तेमाल करके, अस्वीकार करने की वजह बताई जा सकती है.
उदाहरण
यहां प्रमोशन के साथ ऑर्डर सबमिट करने का अनुरोध करने का उदाहरण दिया गया है:
{ "conversation": { "conversationId": "example_conversation_ID" }, "inputs": [ { "intent": "actions.intent.TRANSACTION_DECISION", "arguments": [ { "transactionDecisionValue": { "order": { "finalOrder": { "cart": { "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Falafel Tray", "type": "REGULAR", "id": "sample_item_offer_id_1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 950000000 } }, "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "promotions": [ { "coupon": "FOPAACTIVECODE" } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } } }, "contact": { "displayName": "Food Ordering", "email": "example.provider@gmail.com", "phoneNumber": "+19993334444", "firstName": "Food", "lastName": "Ordering" } } }, "otherItems": [ { "name": "Delivery Fees", "type": "DELIVERY", "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": "Promotion", "type": "DISCOUNT", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "-5" } }, "id": "FOPAACTIVECODE" }, { "name": "Subtotal", "type": "SUBTOTAL", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 950000000 } } }, { "name": "Tip", "type": "GRATUITY", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD" } } } ], "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 820000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension" } }, "googleOrderId": "example_google_order_ID", "orderDate": "2018-06-22T19:30:59.502Z", "paymentInfo": { "displayName": "example_display_name", "googleProvidedPaymentInstrument": { "instrumentToken": "example_instrument_token" }, "paymentType": "PAYMENT_CARD" }, "locale": "en" } } } ] } ], "directActionOnly": true, "isInSandbox": true }
अगर प्रमोशन कोड मान्य है, तो ऑर्डर सबमिट करने के लिए, प्रॉडक्ट डिलीवर करने वाली कंपनी से मिलने वाले जवाब का उदाहरण यहां दिया गया है:
{ "expectUserResponse": false, "finalResponse": { "richResponse": { "items": [ { "structuredResponse": { "orderUpdate": { "actionOrderId": "example_action_order_ID", "orderState": { "state": "CREATED", "label": "Order is created with partner." }, "updateTime": "2018-06-22T19:31:01.556Z", "orderManagementActions": [ { "type": "CALL_RESTAURANT", "button": { "title": "Call Us", "openUrlAction": { "url": "tel:+1-111-111-1111" } } }, { "type": "EMAIL", "button": { "title": "Email Us", "openUrlAction": { "url": "mailto:example.provider@gmail.com" } } }, { "type": "CUSTOMER_SERVICE", "button": { "title": "Customer Service", "openUrlAction": { "url": "http://www.google.com" } } } ] } } } ], "suggestions": [] } } }
अगर प्रोमो कोड अमान्य है, तो ऑर्डर सबमिट करने के जवाब का उदाहरण यहां दिया गया है:
"orderUpdate": { "actionOrderId": "sample_action_order_id", "orderState": { "state": "REJECTED", "label": "Order rejected." }, "updateTime": "2017-05-10T02:30:00.000Z", "rejectionInfo": { "type": "PROMO_NOT_APPLICABLE", "reason": "Sorry, there's something wrong. Try another code?" }, "orderManagementActions": [ { "type": "CUSTOMER_SERVICE", "button": { "title": "Contact customer service", "openUrlAction": { "url": "mailto:support@example.com" } } }, { "type": "EMAIL", "button": { "title": "Email restaurant", "openUrlAction": { "url": "mailto:example.provider@example.com" } } }, { "type": "CALL_RESTAURANT", "button": { "title": "Call restaurant", "openUrlAction": { "url": "tel:+19993334444" } } } ], "infoExtension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension", "foodOrderErrors": [ { "error": "PROMO_USER_INELIGIBLE", "description": "Sorry, you can only use this promotion once." } ] } }