प्रॉडक्ट माइग्रेट करना

Merchant API की मदद से, प्रॉडक्ट डेटा को ज़्यादा बेहतर और आसानी से मैनेज किया जा सकता है. इसमें मुख्य बदलाव यह है कि प्रॉडक्ट डेटा को दो अलग-अलग संसाधनों में बांटा गया है: ProductInput का इस्तेमाल, डेटा सबमिट करने के लिए किया जाता है और Product का इस्तेमाल, प्रोसेस किया गया फ़ाइनल वर्शन देखने के लिए किया जाता है. इसमें प्रॉडक्ट का स्टेटस और समस्याएं शामिल होती हैं. इस नए स्ट्रक्चर से, ज़्यादा अनुमान लगाया जा सकता है और पारदर्शी अनुभव मिलता है.

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

मुख्य अंतर

Merchant API में प्रॉडक्ट मैनेज करने के तरीके में, Content API for Shopping की तुलना में ये सबसे अहम बदलाव किए गए हैं:

  • इनपुट और प्रोसेस किए गए डेटा के लिए अलग-अलग संसाधन: Merchant API, प्रॉडक्ट मैनेजमेंट को दो संसाधनों में बांटता है. ProductInput संसाधन का इस्तेमाल करके, प्रॉडक्ट डेटा को जोड़ा, अपडेट, और मिटाया जा सकता है. पढ़ने के लिए सिर्फ़ उपलब्ध संसाधन का इस्तेमाल करके, फ़ाइनल प्रॉडक्ट देखा जा सकता है. इसके लिए, Google आपके इनपुट को प्रोसेस करता है, नियम लागू करता है, और पूरक सोर्स से डेटा को जोड़ता है.Product

  • प्रॉडक्ट के नामों के लिए एन्कोडिंग: आप दोनों फ़ील्ड के लिए बिना पैडिंग वाले base64url (RFC 4648 सेक्शन 5) एन्कोडिंग का इस्तेमाल कर सकते हैं: ProductInput.name और Product.name अगर प्रॉडक्ट के नामों में, Merchant API में इस्तेमाल होने वाले वर्ण या यूआरएल के लिए रिज़र्व किए गए वर्ण शामिल हैं, तो एन्कोडिंग करना ज़रूरी है. उदाहरण के लिए, अगर प्रॉडक्ट के नामों में इनमें से कोई भी वर्ण शामिल है, तो आपको उन्हें एन्कोड करना होगा:

    % . + / : ~ , ( * ! ) & ? = @ # $
    
  • इंटिग्रेट किया गया प्रॉडक्ट स्टेटस: productstatuses सेवा हटा दी गई है. प्रॉडक्ट की पुष्टि करने से जुड़ी समस्याएं और डेस्टिनेशन के स्टेटस अब सीधे तौर पर शामिल किए जाते हैं में Product संसाधन में, productStatus फ़ील्ड में. इससे डेटा को आसानी से हासिल किया जा सकता है.

  • प्रॉडक्ट के अपडेट का अनुमान लगाना: नया productInputs.patch तरीका, किसी खास प्रॉडक्ट इनपुट में सीधे तौर पर बदलाव करता है. यह Content API for Shopping की तुलना में एक अहम सुधार है. इसमें, फ़ीड अपलोड करने पर, अपडेट के अनचाहे तरीके से ओवरराइट होने की संभावना होती थी. Merchant API में, कोई अपडेट तब तक बना रहता है, जब तक उस खास प्रॉडक्ट इनपुट को फिर से अपडेट या मिटाया नहीं जाता. प्रॉडक्ट के अपडेट, प्रोसेस किए गए Product संसाधन के बजाय, ProductInput संसाधन पर लागू होते हैं.

  • डेटा को बेहतर तरीके से मैनेज करने के लिए, अपना डेटा सोर्स चुनना: सभी productInputs राइट ऑपरेशन के लिए अब dataSource क्वेरी पैरामीटर की ज़रूरत होती है. इससे यह साफ़ तौर पर पता चलता है कि आपने किस डेटा सोर्स में बदलाव किया है. यह तब खास तौर पर काम का होता है, जब आपके पास डेटा उपलब्ध कराने वाले एक से ज़्यादा सोर्स हों.

  • नए संसाधन आइडेंटिफ़ायर: प्रॉडक्ट की पहचान अब id फ़ील्ड के बजाय, RESTful संसाधन name से की जाती है. इसका फ़ॉर्मैट accounts/{account}/products/{product} है.

  • कस्टम बैच की सुविधा नहीं: custombatch तरीका अब उपलब्ध नहीं है. एक एचटीटीपी कॉल में कई अनुरोध भेजने के लिए, एसिंक्रोनस अनुरोधों या एचटीटीपी बैचिंग का इस्तेमाल किया जा सकता है.

    लेख पढ़ें
  • किसी भी फ़ीड लेबल और भाषा के लिए डेटा सोर्स: Merchant API की मदद से, फ़ीड लेबल और भाषा की जानकारी दिए बिना डेटा सोर्स बनाया जा सकता है. इसलिए, किसी भी फ़ीड लेबल और भाषा के साथ प्रॉडक्ट जोड़ा जा सकता है.
पर, आइडेंटिफ़ायर सेक्शन भी देखें.

अनुरोध

इस सेक्शन में, Content API for Shopping और Merchant API के अनुरोध फ़ॉर्मैट की तुलना की गई है.

अनुरोध का ब्यौरा Content API for Shopping Merchant API
प्रॉडक्ट पाना GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products/{product}
प्रॉडक्ट की सूची बनाना GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products
प्रॉडक्ट जोड़ना POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products POST https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs:insert
प्रॉडक्ट अपडेट करना PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} PATCH https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs/{productinput}
प्रॉडक्ट मिटाना DELETE https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} DELETE https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs/{productinput}
प्रॉडक्ट का स्टेटस पाना GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses/{productId} GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products/{product}
प्रॉडक्ट के स्टेटस की सूची बनाना GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products
कई अनुरोधों को बैच में भेजना POST https://shoppingcontent.googleapis.com/content/v2.1/products/custombatch एसिंक्रोनस अनुरोधों या एचटीटीपी बैचिंग का इस्तेमाल करना

आइडेंटिफ़ायर

Merchant API में, प्रॉडक्ट आइडेंटिफ़ायर का फ़ॉर्मैट बदलकर, स्टैंडर्ड REST संसाधन का नाम कर दिया गया है.

आइडेंटिफ़ायर का ब्यौरा Content API for Shopping Merchant API
प्रॉडक्ट आईडी यह कॉलन (:) से अलग किए गए सेगमेंट से बनी एक स्ट्रिंग है.
फ़ॉर्मैट: channel:contentLanguage:targetCountry:offerId या channel:contentLanguage:feedLabel:offerId.
उदाहरण: online:en:US:sku123
यह REST संसाधन name स्ट्रिंग है.
फ़ॉर्मैट: accounts/{account}/products/{product} जहां {product} का मतलब contentLanguage~feedLabel~offerId है.
उदाहरण: accounts/12345/products/en~US~sku123.
एन्कोडिंग: बिना पैडिंग वाले base64url एन्कोडिंग का सुझाव दिया जाता है. साथ ही, अगर प्रॉडक्ट आईडी में Merchant API में इस्तेमाल होने वाले वर्ण या यूआरएल के लिए रिज़र्व किए गए वर्ण शामिल हैं, तो यह ज़रूरी है.

तरीके

इस टेबल में, Content API for Shopping के तरीके और Merchant API में उनके बराबर के तरीकों के बारे में बताया गया है.

Content API for Shopping का तरीका Merchant API का तरीका उपलब्धता और अहम जानकारी
products.get products.get प्रोसेस किया गया फ़ाइनल प्रॉडक्ट वापस लाता है.
products.list products.list प्रोसेस किए गए फ़ाइनल प्रॉडक्ट की सूची बनाता है.
products.insert productInputs.insert प्रॉडक्ट इनपुट जोड़ता है. इसके लिए, dataSource की ज़रूरत होती है.
products.update productInputs.patch इसका व्यवहार काफ़ी अलग होता है. यह किसी खास प्रॉडक्ट इनपुट को अपडेट करता है और यह अपडेट बना रहता है.
products.delete productInputs.delete किसी खास प्रॉडक्ट इनपुट को मिटाता है. इसके लिए, dataSource की ज़रूरत होती है.
products.custombatch उपलब्ध नहीं है एसिंक्रोनस अनुरोधों या एचटीटीपी बैचिंग का इस्तेमाल करें.
productstatuses.get products.get productstatuses सेवा हटा दी गई है. स्टेटस की जानकारी अब Product संसाधन का हिस्सा है.
productstatuses.list products.list productstatuses सेवा हटा दी गई है. स्टेटस की जानकारी अब Product संसाधन का हिस्सा है.
productstatuses.custombatch उपलब्ध नहीं है एसिंक्रोनस अनुरोधों या एचटीटीपी बैचिंग का इस्तेमाल करें.

फ़ील्ड में किए गए बदलावों के बारे में ज़्यादा जानकारी

इस टेबल में, Merchant API में जोड़े, हटाए या बदले गए अहम फ़ील्ड के बारे में बताया गया है.

Content API for Shopping Merchant API ब्यौरा
id name किसी प्रॉडक्ट के लिए प्राइमरी आइडेंटिफ़ायर अब REST संसाधन name है. बिना पैडिंग वाले base64url एन्कोडिंग का सुझाव दिया जाता है. साथ ही, अगर प्रॉडक्ट के नामों में Merchant API में इस्तेमाल होने वाले वर्ण या यूआरएल के लिए रिज़र्व किए गए वर्ण शामिल हैं, तो यह ज़रूरी है.
प्रॉडक्ट डेटा स्पेसिफ़िकेशन के टॉप-लेवल एट्रिब्यूट (उदाहरण के लिए, title, price, link) productAttributes ऑब्जेक्ट title, price, और link जैसे प्रॉडक्ट एट्रिब्यूट अब टॉप-लेवल फ़ील्ड नहीं हैं. इन्हें अब productAttributes ऑब्जेक्ट में Product और ProductInput संसाधन, दोनों में ग्रुप किया गया है. इससे, संसाधन का स्ट्रक्चर ज़्यादा व्यवस्थित और साफ़-सुथरा दिखता है.
targetCountry feedLabel संसाधन के नाम में अब Merchant Center की सुविधा के मुताबिक, targetCountry के बजाय feedLabel का इस्तेमाल किया जाता है.
feedId dataSource (क्वेरी पैरामीटर) dataSource का नाम अब productInputs के सभी राइट तरीकों (insert, update, delete) के लिए ज़रूरी क्वेरी पैरामीटर है.
channel उपलब्ध नहीं है. सिर्फ़ स्थानीय प्रॉडक्ट के लिए, legacy_local का इस्तेमाल करें. Merchant API में, channel फ़ील्ड अब मौजूद नहीं है. Content API for Shopping में, LOCAL चैनल वाले प्रॉडक्ट के लिए, legacy_local फ़ील्ड को 'सही' पर सेट किया जाना चाहिए.
उपलब्ध नहीं है versionNumber ProductInput पर एक नया वैकल्पिक फ़ील्ड. इसका इस्तेमाल, प्राइमरी डेटा सोर्स में क्रम से बाहर की गई एंट्री को रोकने के लिए किया जा सकता है.
वैल्यू के तय सेट वाले string टाइप के फ़ील्ड वैल्यू के तय सेट वाले enum टाइप के फ़ील्ड प्रॉडक्ट एट्रिब्यूट में, वैल्यू के तय सेट वाले फ़ील्ड (उदाहरण के लिए, excluded_destinations, availability) अब enum टाइप के हैं.