Merchant API की मदद से, प्रॉडक्ट डेटा को ज़्यादा बेहतर और आसानी से मैनेज किया जा सकता है. इसमें मुख्य बदलाव यह है कि प्रॉडक्ट डेटा को दो अलग-अलग
संसाधनों में बांटा गया है: ProductInput जिसकी मदद से डेटा सबमिट किया जाता है और Product जिसकी मदद से प्रोसेस किया गया
फ़ाइनल वर्शन देखा जाता है. इसमें प्रॉडक्ट का स्टेटस और समस्याएं भी शामिल होती हैं. इस नए स्ट्रक्चर से, ज़्यादा अनुमान लगाया जा सकता है और पारदर्शी अनुभव मिलता है.
इस गाइड में, मुख्य अंतरों के बारे में बताया गया है. इससे आपको Content API for Shopping से अपने इंटिग्रेशन को माइग्रेट करने में मदद मिलेगी. नई सुविधाओं का इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, अपने प्रॉडक्ट मैनेज करना लेख पढ़ें.
मुख्य अंतर
Content API for Shopping की तुलना में, Merchant API में प्रॉडक्ट मैनेज करने के तरीके में ये अहम बदलाव किए गए हैं:
इनपुट और प्रोसेस किए गए डेटा के लिए अलग-अलग संसाधन: Merchant API, प्रॉडक्ट मैनेजमेंट को दो संसाधनों में बांटता है.
ProductInputसंसाधन का इस्तेमाल करके, प्रॉडक्ट डेटा को जोड़ा, अपडेट, और मिटाया जा सकता है. Google, आपके इनपुट को प्रोसेस करने, नियम लागू करने, और पूरक सोर्स से डेटा को जोड़ने के बाद, read-onlyProductसंसाधन का इस्तेमाल करके फ़ाइनल प्रॉडक्ट देखा जा सकता है.प्रॉडक्ट के नामों के लिए एन्कोडिंग: आप unpadded 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.एन्कोडिंग: Unpadded 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 है. Unpadded 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 टाइप के हैं. |