Merchant API, प्रॉडक्ट डेटा को मैनेज करने का एक बेहतर और आसान तरीका है. मुख्य बदलाव यह है कि प्रॉडक्ट डेटा को दो अलग-अलग रिसॉर्स में बांटा गया है: डेटा सबमिट करने के लिए ProductInput और प्रॉडक्ट की स्थिति और समस्याओं के साथ-साथ, प्रोसेस किए गए फ़ाइनल वर्शन को देखने के लिए Product. इस नए स्ट्रक्चर से, आपको ज़्यादा पारदर्शी और अनुमानित अनुभव मिलता है.
इस गाइड में, Content API for Shopping से Merchant Center Next API पर माइग्रेट करने के लिए, मुख्य अंतरों के बारे में बताया गया है. नई सुविधाओं को इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, अपने प्रॉडक्ट मैनेज करना लेख पढ़ें.
मुख्य अंतर
Content API for Shopping की तुलना में, Merchant API में प्रॉडक्ट मैनेज करने के तरीके में ये अहम बदलाव किए गए हैं:
इनपुट और प्रोसेस किए गए डेटा के लिए अलग-अलग रिसॉर्स: Merchant API, प्रॉडक्ट मैनेजमेंट को दो रिसॉर्स में बांटता है.
ProductInputसंसाधन का इस्तेमाल करके, प्रॉडक्ट डेटा को डाला, अपडेट किया, और मिटाया जा सकता है. रीड-ओनलीProductरिसोर्स का इस्तेमाल करके, फ़ाइनल प्रॉडक्ट देखा जा सकता है. ऐसा तब किया जा सकता है, जब Google आपके इनपुट को प्रोसेस कर ले, नियम लागू कर दे, और पूरक सोर्स से मिले डेटा को जोड़ दे.प्रॉडक्ट के नामों को कोड में बदलना:
ProductInput.nameऔरProduct.name, दोनों फ़ील्ड के लिए, अनपैडेड base64url (आरएफ़सी 4648 सेक्शन 5) को कोड में बदलने के तरीके का इस्तेमाल किया जा सकता है. अगर प्रॉडक्ट के नामों में Merchant API या यूआरएल के लिए रिज़र्व किए गए वर्णों का इस्तेमाल किया गया है, तो उन्हें कोड में बदलना ज़रूरी है. उदाहरण के लिए, अगर प्रॉडक्ट के नामों में इनमें से कोई भी वर्ण शामिल है, तो आपको उन्हें कोड में बदलना होगा:% . + / : ~ , ( * ! ) & ? = @ # $इंटिग्रेट किए गए प्रॉडक्ट का स्टेटस:
productstatusesसेवा को हटा दिया जाता है. प्रॉडक्ट की पुष्टि करने से जुड़ी समस्याएं और डेस्टिनेशन के स्टेटस, अब सीधे तौर परProductरिसॉर्स मेंproductStatusफ़ील्ड में शामिल किए जाते हैं. इससे डेटा को वापस पाना आसान हो जाता है.प्रॉडक्ट के अपडेट का अनुमान लगाना:
productInputs.patchतरीके का इस्तेमाल करके, किसी खास प्रॉडक्ट के इनपुट में सीधे तौर पर बदलाव किया जा सकता है. यह Content API for Shopping की तुलना में काफ़ी बेहतर है. Content API for Shopping में, अन्य फ़ीड अपलोड करने पर अपडेट अचानक ओवरराइट हो सकते थे. Merchant API में, अपडेट तब तक बना रहता है, जब तक कि उस खास प्रॉडक्ट इनपुट को फिर से अपडेट या मिटाया नहीं जाता. प्रॉडक्ट के अपडेट, प्रोसेस किए गएProductसंसाधन के बजायProductInputसंसाधन पर लागू किए जाते हैं.डेटा को बेहतर तरीके से मैनेज करने के लिए, अपना डेटा सोर्स चुनें: अब सभी
productInputsराइट ऑपरेशन के लिए,dataSourceक्वेरी पैरामीटर की ज़रूरत होगी. इससे यह साफ़ तौर पर पता चलेगा कि किस डेटा सोर्स में बदलाव किया जा रहा है. यह खास तौर पर तब काम आता है, जब आपके पास डेटा देने वाले कई सोर्स हों.संसाधन के नए आइडेंटिफ़ायर: अब प्रॉडक्ट की पहचान
idफ़ील्ड के बजाय, RESTful संसाधनnameसे की जाती है. इसका फ़ॉर्मैटaccounts/{account}/products/{product}है.कस्टम बैच नहीं बनाए जा सकते:
custombatchतरीका अब उपलब्ध नहीं है. एक एचटीटीपी कॉल में कई अनुरोध भेजने के लिए, एसिंक्रोनस रिक्वेस्ट या एचटीटीपी बैचिंग का इस्तेमाल किया जा सकता है.
माइग्रेशन के दौरान डेटा सोर्स से जुड़े दिशा-निर्देश
अपने डेटा सोर्स माइग्रेट करने से पहले, हमारा सुझाव है कि आप डेटा सोर्स की रणनीति चुनें.
माइग्रेशन की प्रोसेस को आसान बनाने और ऑफ़र चोरी होने जैसी समस्याओं से बचने के लिए, इन सुझावों का पालन करें:
अपने डेटाबेस को बैकफ़िल करें: हमारा सुझाव है कि हर प्रॉडक्ट ऑपरेशन से पहले
dataSources.listको कॉल करने के बजाय, अपने लोकल डेटाबेस को एक बार बैकफ़िल करें. हर प्रॉडक्ट रिकॉर्ड मेंdataSourceनाम वाला फ़ील्ड जोड़ें, ताकि आप अपने अनुरोधों में सीधे तौर पर सही आइडेंटिफ़ायर दे सकें.किसी भी लेबल और भाषा के लिए, डेटा सोर्स को इकट्ठा और इस्तेमाल करना: Merchant API की मदद से, लेबल और भाषा की जानकारी दिए बिना डेटा सोर्स बनाया जा सकता है. इससे किसी भी डेटा सोर्स के लेबल और भाषा के साथ प्रॉडक्ट जोड़े जा सकते हैं. किसी भी लेबल और भाषा के लिए, एक ही डेटा सोर्स का इस्तेमाल करें.
अपने प्रॉडक्ट सुरक्षित रखना: अगर डेटा सोर्स के नियमों का इस्तेमाल किया जाता है, तो किसी प्रॉडक्ट को अपडेट करने या मिटाने से पहले, उससे जुड़े सटीक
dataSourceको ढूंढने के लिएproducts.getको कॉल करें. इससे यह पक्का होता है कि आप सही सोर्स में बदलाव कर रहे हैं. साथ ही, इससे ऑफ़र को गलती से चुराने से रोका जा सकता है.
अनुरोध
इस सेक्शन में, Content API for Shopping और Merchant API के लिए अनुरोध के फ़ॉर्मैट की तुलना की गई है.
| अनुरोध का ब्यौरा | Shopping के लिए Content API | 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 रिसॉर्स नेम कर दिया गया है.
| आइडेंटिफ़ायर की जानकारी | Shopping के लिए Content API | 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 में बदले गए, जोड़े गए या हटाए गए अहम फ़ील्ड हाइलाइट किए गए हैं.
| Shopping के लिए Content API | Merchant API | ब्यौरा |
|---|---|---|
id |
name |
किसी प्रॉडक्ट का मुख्य आइडेंटिफ़ायर अब REST संसाधन name है. अनपैडेड base64url एन्कोडिंग का सुझाव दिया जाता है. यह उन प्रॉडक्ट के नामों के लिए ज़रूरी है जिनमें Merchant API या यूआरएल के लिए रिज़र्व किए गए वर्णों का इस्तेमाल किया जाता है. |
प्रॉडक्ट डेटा स्पेसिफ़िकेशन के टॉप-लेवल एट्रिब्यूट (जैसे, title, price, link) |
productAttributes ऑब्जेक्ट |
title, price, और link जैसे प्रॉडक्ट एट्रिब्यूट, अब टॉप-लेवल फ़ील्ड नहीं हैं. अब इन्हें Product और ProductInput, दोनों संसाधनों में productAttributes ऑब्जेक्ट के अंदर ग्रुप किया गया है. इससे, रिसॉर्स का स्ट्रक्चर ज़्यादा व्यवस्थित और साफ़-सुथरा हो जाता है. |
targetCountry |
feedLabel |
Merchant Center की सुविधाओं के साथ अलाइन करने के लिए, संसाधन का नाम अब targetCountry के बजाय feedLabel का इस्तेमाल करता है. |
feedId |
dataSource (क्वेरी पैरामीटर) |
अब productInputs के डेटा में बदलाव करने के सभी तरीकों (insert, update, delete) के लिए, dataSource का नाम एक ज़रूरी क्वेरी पैरामीटर है. |
channel |
यह सुविधा उपलब्ध नहीं है. सिर्फ़ स्थानीय प्रॉडक्ट के लिए, legacy_local का इस्तेमाल करें. |
channel फ़ील्ड, अब Merchant API में मौजूद नहीं है. Content API for Shopping में LOCAL चैनल वाले प्रॉडक्ट के लिए, legacy_local फ़ील्ड को 'सही है' पर सेट करना चाहिए. |
| उपलब्ध नहीं है | versionNumber |
ProductInput पर मौजूद एक नया वैकल्पिक फ़ील्ड. इसका इस्तेमाल, प्राइमरी डेटा सोर्स में गलत क्रम में डेटा डालने से रोकने के लिए किया जा सकता है. |
string टाइप के फ़ील्ड, जिनमें वैल्यू का सेट तय किया गया है |
enum टाइप के फ़ील्ड, जिनमें वैल्यू का सेट तय किया गया है |
प्रॉडक्ट एट्रिब्यूट के अंदर मौजूद ऐसे फ़ील्ड जिनकी वैल्यू पहले से तय होती हैं (उदाहरण के लिए, excluded_destinations, availability) अब enum टाइप के हैं. |
gtin |
productAttributes.gtins |
सिंगल स्ट्रिंग (gtin) से बदलकर रिपीटेड स्ट्रिंग (gtins) किया गया. |
sizes |
productAttributes.size |
इसे रिपीटेड स्ट्रिंग (sizes) से सिंगुलर स्ट्रिंग (size) में बदल दिया गया है. |
sizeType, additionalSizeType |
productAttributes.sizeTypes |
sizeType और additionalSizeType को बार-बार इस्तेमाल होने वाले SizeType ईनम (sizeTypes) से बदल दिया गया है. इसमें ज़्यादा से ज़्यादा दो वैल्यू डाली जा सकती हैं. उदाहरण के लिए, ["PETITE", "MATERNITY"]. |