Content API v2 से v2.1 पर माइग्रेट करना

मार्च 2019 में, हमने Content API for Shopping का 2.1 वर्शन रिलीज़ किया था. इसके बाद, अप्रैल 2021 में हमने यह एलान किया था कि v2 को 30 सितंबर, 2021 को बंद कर दिया जाएगा. v2 वर्शन अब काम नहीं करता. कृपया तुरंत v2.1 पर माइग्रेट करें.

अपना ऐप्लिकेशन माइग्रेट करना

v2 से v2.1 पर माइग्रेट करने के लिए, आपको अपने एंडपॉइंट यूआरएल अपडेट करने होंगे, ताकि नए v2.1 वर्शन को कॉल किया जा सके. साथ ही, आपको अपने ऐप्लिकेशन में बदलाव करने होंगे, ताकि v2.1 में किए गए बड़े बदलावों को ध्यान में रखा जा सके.

v2.1 एंडपॉइंट का इस्तेमाल करने के लिए, अपने एपीआई कॉल अपडेट करना

v2.1 पर कॉल करने के लिए, नए v2.1 एंडपॉइंट का इस्तेमाल करने के लिए अपने अनुरोधों को अपडेट करें.

उदाहरण के लिए, v2 के साथ products.get तरीके को कॉल करने के लिए, आपको इसका इस्तेमाल करना होगा:

GET https://shoppingcontent.googleapis.com/content/v2/merchantId/products/productId

v2.1 के लिए, यूआरएल को इस पर अपडेट करें:

GET https://shoppingcontent.googleapis.com/content/v2.1/merchantId/products/productId

v2.1 की सेवाओं और एंडपॉइंट के बारे में पूरी जानकारी के लिए, एपीआई के बारे में जानकारी देखें.

ज़रूरी बदलाव करना

एपीआई कॉल के लिए यूआरएल अपडेट करने के साथ-साथ, आपको अपने ऐप्लिकेशन को भी अपडेट करना होगा. ऐसा इसलिए, क्योंकि v2.1 में कई बड़े बदलाव किए गए हैं. यहां दिए गए सेक्शन देखें और ज़रूरत के मुताबिक, अपने आवेदन को अपडेट करें.

1. inventory सेवा के साथ इंटिग्रेशन अपडेट करना

v2 inventory सेवा को हटा दिया गया है. हालांकि, v2.1 की इन सुविधाओं के ज़रिए, इसी तरह की सेवा उपलब्ध है:

  • प्रॉडक्ट की जानकारी में कुछ बदलाव करने के लिए, नए पूरक फ़ीड या products.update का इस्तेमाल करें. बदले जा सकने वाले सभी प्रॉडक्ट फ़ील्ड को अपडेट किया जा सकता है. इनमें वे सभी फ़ील्ड भी शामिल हैं जिन्हें पहले inventory.set की मदद से अपडेट किया गया था. हालांकि, localinventory के लिए खास तौर पर उपलब्ध फ़ील्ड को अपडेट नहीं किया जा सकता. ज़्यादा जानकारी के लिए, पूरक फ़ीड पर माइग्रेट करना लेख पढ़ें.

  • स्थानीय प्रॉडक्ट के अपडेट के लिए, नई localinventory सेवा का इस्तेमाल करें.

2. accounts सेवा के लिए कॉल अपडेट करना

  • v2.1 में accounts.update तरीके को कॉल करने पर, accounts संसाधन पूरी तरह से बदल जाता है. ऐसा सिर्फ़ अनुरोध में शामिल फ़ील्ड को अपडेट करने के बजाय होता है. accounts रिसॉर्स में मौजूद फ़ील्ड को मिटाने से बचने के लिए, अपने कॉल अनुरोधों को अपडेट करें, ताकि उनमें सभी फ़ील्ड शामिल हों.

  • reviewsUrl को हटा दिया गया है.

  • adsLinks, googleMyBusinessLink, और youtubeChannelLinks के लिए, लिंक का स्टेटस inactive हटा दिया गया है.

3. products सेवा के लिए कॉल अपडेट करना

  • कस्टम एट्रिब्यूट में अब टाइप और यूनिट शामिल नहीं होती. इसके बजाय, यूनिट को वैल्यू में जोड़ा जाना चाहिए और टाइप का पता अपने-आप चलना चाहिए.

  • दोहराए गए फ़ील्ड productTypes ने productType और additionalProductTypes, दोनों की जगह ले ली है.

  • दोहराए गए फ़ील्ड destinations की जगह, दोहराए गए फ़ील्ड includedDestinations और excludedDestinations का इस्तेमाल किया गया है.

  • AdWords से जुड़े इन फ़ील्ड के नाम बदले गए हैं:

    • adwordsGrouping -> adsGrouping
    • adwordsLabels -> adsLabels
    • adwordsRedirect -> adsRedirect
  • इन फ़ील्ड को हटा दिया गया है:

    • aspects
    • destinations
    • onlineOnly
    • validatedDestinations
    • warnings
  • includeInvalidInsertedItems पैरामीटर को हटा दिया गया है. v2.1 में, डिफ़ॉल्ट रूप से सभी प्रॉडक्ट दिखाए जाते हैं.

  • अब किसी प्रॉडक्ट को जोड़ने के बाद, उसे products.get या products.list के ज़रिए वापस पाने में कुछ मिनट लगते हैं.

  • यह ज़रूरी नहीं है कि इनपुट offerId और आउटपुट offerId एक जैसे हों. v2.1, offerId में मौजूद आगे और पीछे की खाली सफ़ेद जगह को हटा देता है. साथ ही, एक से ज़्यादा खाली सफ़ेद जगह वाले वर्णों को एक में मर्ज कर देता है. इस बदलाव का असर, सुझाई गई offerId सिंटैक्स के मुताबिक offerId वैल्यू पर नहीं पड़ता.

  • अब प्रॉडक्ट डालने से पहले, कीमतों की पुष्टि की जाती है. वैल्यू स्ट्रिंग में सिर्फ़ इन वर्णों का इस्तेमाल किया जा सकता है: +, -, ., और अंक (यानी, 0-9). अब कॉमा इस्तेमाल नहीं किए जा सकते.

  • products.insert या products.update कॉल से मिले जवाबों में सिर्फ़ ये एट्रिब्यूट शामिल होते हैं:

    • channel
    • contentLanguage
    • id
    • offerId
    • feedLabel
  • v2 विकल्प includeAttributes के इस्तेमाल पर रोक लगा दी गई है. इसके बजाय, प्रॉडक्ट की पूरी जानकारी देखने के लिए, products.get के साथ ProductId का इस्तेमाल करें.

4. productstatuses सेवा के लिए कॉल अपडेट करना

  • product एट्रिब्यूट को includeAttributes पैरामीटर के साथ हटा दिया गया है. किसी स्थिति के हिसाब से प्रॉडक्ट के एट्रिब्यूट वापस पाने के लिए, products सेवा का इस्तेमाल करें और नए productId फ़ील्ड की वैल्यू पास करें.

  • includeInvalidInsertedItems पैरामीटर को हटा दिया गया है. अब हर प्रॉडक्ट का productId एट्रिब्यूट दिखाया जाता है. भले ही, प्रॉडक्ट मान्य हो या न हो.

  • destinationStatuses में मौजूद intention, approvalStatus, और approvalPending फ़ील्ड को status से बदल दिया गया है. यह एक स्ट्रिंग है, जो approved, disapproved या pending में से कोई एक हो सकती है.

  • dataQualityIssues की जगह अब itemLevelIssues ने ले ली है.

5. datafeeds सेवा के लिए कॉल अपडेट करना

  • इन टारगेट फ़ील्ड को बदल दिया गया है:

    • contentLanguage -> language
    • targetCountry -> country
    • intendedDestinations -> includedDestinations, और excludedDestinations
  • contentType = "product inventory update" वाले डेटा फ़ीड हटा दिए गए हैं.

6. orders और TestOrders सेवाओं के लिए किए गए कॉल अपडेट करना

  • v2.1 में, कॉल में टैक्स का डेटा शामिल नहीं होना चाहिए, क्योंकि टैक्स का डेटा अपने-आप कैलकुलेट हो जाता है. अगर ऑर्डर को Marketplace Fairness Act (MFA) या इससे मिलते-जुलते कानून वाले राज्य में पूरा किया जाता है, तो टैक्स का डेटा शामिल करने वाले कॉल पूरे नहीं होते. अगर ऑर्डर को बिना एमएफ़ए वाले राज्य में पूरा किया जाता है, तो टैक्स का हिसाब Merchant Center में कॉन्फ़िगर की गई सेटिंग के आधार पर लगाया जाता है. अगर इसे कॉन्फ़िगर नहीं किया जाता है, तो टैक्स की कैलकुलेट की गई वैल्यू 0 होती है.

  • InStoreRefundLineItem और ReturnRefundLineItem फ़ील्ड amountPretax और amountTax को क्रमशः priceAmount और taxAmount से बदल दिया गया है. priceAmount में टैक्स शामिल हो सकता है या नहीं भी हो सकता है. यह इस बात पर निर्भर करता है कि ऑर्डर कहां से किया गया है.

  • अनुरोध में मौजूद ShipLineItem फ़ील्ड carrier, shipmentId, और trackingId को shipmentInfos में ले जाया गया है.

  • billingAddress और predefinedBillingAddress अब orders और TestOrder में टॉप-लेवल फ़ील्ड हैं.

  • customer.explicitMarketingPreference की जगह अब customer.marketingRightsInfo का इस्तेमाल किया जाएगा.

  • netAmount फ़ील्ड को netPriceAmount और netTaxAmount में बांट दिया गया है.

  • shippingOption की जगह अब lineItems[].shippingDetails ने ले ली है.

  • अनुरोध में मौजूद CancelLineItem फ़ील्ड amount, amountPretax, और amountTax को हटा दिया गया है. रिफ़ंड की रकम अब अपने-आप कैलकुलेट हो जाती है.

  • CustomBatch को हटा दिया गया है.

  • Refund को हटा दिया गया है. इसके बजाय, refundOrder या refundItem का इस्तेमाल करें.

  • paymentMethod फ़ील्ड को हटा दिया गया है.

  • v2 के orders.returnlineitem और orders.refund तरीकों की जगह orderreturns.creatOrderReturn और orderreturns.process का इस्तेमाल किया जाता है.

  • customer.email, channelType, और lineItem.product.channel फ़ील्ड हटा दिए गए हैं.

  • promotions फ़ील्ड को TestOrder सेवा से हटा दिया गया है. साथ ही, Order में इसका फ़ॉर्मैट बदल दिया गया है.

7. orderinvoice सेवा के लिए कॉल अपडेट करना

  • amountPretax और amountTax फ़ील्ड को क्रमशः priceAmount और taxAmount से बदल दिया गया है. priceAmount फ़ील्ड में, टैक्स से पहले या टैक्स के बाद की कीमत दी जा सकती है. यह इस बात पर निर्भर करता है कि ऑर्डर कहां से किया गया है.

  • invoiceSummary और प्रमोशन के शुल्क से जुड़े फ़ील्ड में से, बैलेंस (कारोबारी, खरीदार, Google) की जानकारी हटा दी गई है.

8. ऐसी सुविधाओं को हटाना जो v2.1 में शामिल नहीं हैं

Content API के 2.1 वर्शन से कई अन्य सुविधाएं भी हटा दी गई हैं. यहां दी गई सूची देखें और ज़रूरत के मुताबिक, अपना ऐप्लिकेशन अपडेट करें:

  • अब एक्सएमएल फ़ॉर्मैट में फ़ीड अपलोड नहीं किया जा सकता. JSON पर स्विच करने के बारे में ज़्यादा जानकारी के लिए, Content API for Shopping में XML के लिए उपलब्ध सहायता बंद होना लेख पढ़ें.

  • dryRun पैरामीटर को हटा दिया गया है. यह बदलाव, सभी एपीआई कॉल पर लागू होता है.

  • सभी HTTP BATCH तरीके हटा दिए गए हैं. इसके बजाय, customBatch का इस्तेमाल करें.

  • patch तरीके को इन सेवाओं से हटा दिया गया है:

    • accounts
    • accounttax
    • datafeeds
    • liasettings
    • shippingsettings
  • orderpayments सेवा को हटा दिया गया है.

माइग्रेशन की जांच करना

v2.1 पर माइग्रेट करने के बाद, अपने ऐप्लिकेशन में किए गए बदलावों की जांच करने के बारे में ज़्यादा जानने के लिए, Content API for Shopping के इस्तेमाल की जांच करना लेख पढ़ें. अगर आपको अपडेट की जांच करते समय कोई समस्या आती है, तो हमसे संपर्क करें.

वर्शन 2.1 में हुए अन्य बदलाव

इसके अलावा, v2.1 में कई नई सुविधाएं जोड़ी गई हैं और ऐसे बदलाव किए गए हैं जिनसे मौजूदा सिस्टम पर कोई असर नहीं पड़ेगा:

  • नई सेवाएं:

    • नई localinventory सेवा की मदद से, स्थानीय प्रॉडक्ट की जानकारी अपडेट की जा सकती है. यह सेवा, v2 में मौजूद inventory सेवा की जगह काम करती है.

    • orderreturns सेवा की मदद से, Buy on Google (पहले इसे शॉपिंग ऐक्शन के नाम से जाना जाता था) को मैनेज करना आसान हो जाता है. इसकी मदद से, orders सेवा का इस्तेमाल किए बिना ही, सामान लौटाने की प्रोसेस पूरी की जा सकती है.

  • पूरक फ़ीड की मदद से, प्रॉडक्ट के कुछ हिस्सों को अपडेट किया जा सकता है.

  • products सेवा में अन्य बदलाव:

    • products.insert अनुरोधों में, अब नुकसान न पहुंचाने वाली चेतावनियां या गड़बड़ियां शामिल नहीं होतीं. इससे आपको Merchant Center में फ़ीड के नियमों के ज़रिए, प्रॉडक्ट डालने और बाद में उन्हें अपडेट करने की सुविधा मिलती है. ऐसा ठीक उसी तरीके से किया जाता है जिसका इस्तेमाल, Content API के बाहर मैनेज किए जाने वाले फ़ीड के लिए करते हैं.

    • products.update को जोड़ा गया है, ताकि आप प्रॉडक्ट फ़ील्ड के चुने गए सेट में अपडेट कर सकें. इस्तेमाल के संभावित तरीकों के बारे में ज़्यादा जानने के लिए, गाइड देखें.

    • इन एट्रिब्यूट की अमान्य वैल्यू की वजह से अब डेटा डालने से जुड़ी गड़बड़ियां नहीं होती हैं. साथ ही, इन्हें productstatus सेवा के ज़रिए itemLevelIssues एट्रिब्यूट के हिस्से के तौर पर दिखाया जाता है:

      • ageGroup
      • availability
      • condition
      • energyEfficiencyClass
      • gender
      • maxEnergyEfficiencyClass
      • minEnergyEfficiencyClass
      • sizeSystem
      • sizeType
    • कस्टम एट्रिब्यूट अब रिकर्सिव होते हैं. इसलिए, कस्टम ग्रुप की ज़रूरत नहीं होती.

    • कस्टम एट्रिब्यूट में अब ओरिजनल value फ़ील्ड के अलावा, groupValues फ़ील्ड भी मौजूद है. इनमें से किसी एक फ़ील्ड को सेट करना ज़रूरी है.