Merchant API क्षेत्र, एक भौगोलिक क्षेत्र को दिखाता है. इसका इस्तेमाल accounts.products.regionalInventories संसाधन से जुड़े टारगेट के तौर पर किया जा सकता है. पिन कोड के कलेक्शन के तौर पर क्षेत्रों को तय किया जा सकता है. इसके अलावा, कुछ देशों में पहले से तय किए गए जियोटारगेट का इस्तेमाल करके भी क्षेत्रों को तय किया जा सकता है. ज़्यादा जानकारी के लिए, क्षेत्र सेट अप करना लेख पढ़ें.
Merchant API, क्षेत्रों को मैनेज करने के लिए बैच एंडपॉइंट उपलब्ध कराता है. इससे एक ही एपीआई कॉल में, ज़्यादा से ज़्यादा 100 क्षेत्रों को बनाया, अपडेट किया, और मिटाया जा सकता है. यह सुविधा, उन कारोबारियों या कंपनियों के लिए सबसे सही है जो बड़े पैमाने पर क्षेत्र के हिसाब से प्रॉडक्ट की उपलब्धता और कीमत (आरएएपी) को मैनेज करती हैं. इससे उन्हें बेहतर तरीके से काम करने और इंटिग्रेशन को आसान बनाने में मदद मिलती है.
खास जानकारी
Batch API की मदद से, इन तरीकों का इस्तेमाल करके ये काम किए जा सकते हैं:
- एक ही अनुरोध में कई क्षेत्र बनाएं:
regions:batchCreate - एक साथ कई इलाके मिटाने के लिए:
regions:batchDelete - एक साथ कई क्षेत्रों को अपडेट करें:
regions:batchUpdate
ज़रूरी शर्तें
सभी बैच अनुरोधों के लिए, पुष्टि करने के लिए ADMIN उपयोगकर्ता की भूमिका ज़रूरी होती है.
एक से ज़्यादा क्षेत्र बनाना
इस उदाहरण में, BatchCreateRegions के एक ही कॉल में दो नए क्षेत्र बनाने का तरीका दिखाया गया है. इनमें से एक क्षेत्र को पिन कोड के हिसाब से और दूसरे को जियो टारगेटिंग के हिसाब से तय किया गया है.
अनुरोध
अनुरोध यूआरएल इस तरह बनाएं:
POST
https://merchantapi.googleapis.com/v1beta/accounts/{ACCOUNT_ID}/regions:batchCreate
अनुरोध के मुख्य हिस्से में requests की सूची होती है. इसमें हर ऑब्जेक्ट, regionId और region डेटा के बारे में बताता है.
{
"requests": [
{
"regionId": "seattle-area-98340",
"region": {
"displayName": "Seattle Region",
"postalCodeArea": {
"regionCode": "US",
"postalCodes": [
{
"begin": "98340"
}
]
}
}
},
{
"regionId": "co-de-states",
"region": {
"displayName": "Colorado and Delaware",
"geoTargetArea": {
"geotargetCriteriaIds": [
"21138",
"21141"
]
}
}
}
]
}
जवाब
अनुरोध पूरा होने पर, नए region ऑब्जेक्ट की सूची दिखती है.
{
"regions": [
{
"name": "accounts/{ACCOUNT_ID}/regions/seattle-area-98340",
"displayName": "Seattle Region",
"postalCodeArea": {
"regionCode": "US",
"postalCodes": [
{
"begin": "98340"
}
]
},
"regionalInventoryEligible": true,
"shippingEligible": true
},
{
"name": "accounts/{ACCOUNT_ID}/regions/co-de-states",
"displayName": "Colorado and Delaware",
"geotargetArea": {
"geotargetCriteriaIds": [
"21138",
"21141"
]
},
"regionalInventoryEligible": false,
"shippingEligible": false
}
]
}
एक से ज़्यादा क्षेत्रों के लिए अपडेट करना
इस उदाहरण में, दो मौजूदा क्षेत्रों के लिए displayName और postalCodeArea को अपडेट करने के लिए, BatchUpdateRegions का इस्तेमाल करने का तरीका बताया गया है. टारगेट किए गए इलाके की जानकारी अपडेट करने के लिए, आपको region.name एट्रिब्यूट की वैल्यू देनी होगी.
अनुरोध
अनुरोध यूआरएल इस तरह बनाएं:
POST https://merchantapi.googleapis.com/v1beta/accounts/{ACCOUNT_ID}/regions:batchUpdate
अनुरोध के मुख्य हिस्से में, requests की सूची शामिल है. हर ऑब्जेक्ट के लिए, अपडेट किए जाने वाले region डेटा की जानकारी देना ज़रूरी है. region.name फ़ील्ड में, अपडेट किए जाने वाले क्षेत्र का आईडी होना चाहिए. उदाहरण के लिए,"98005". संसाधन को accounts/{ACCOUNT_ID}/regions/name के बजाय name के तौर पर तय करें. बदले जाने वाले फ़ील्ड के बारे में बताने के लिए, updateMask को शामिल करना ज़रूरी नहीं है.
{
"requests": [
{
"region": {
"name": "98005",
"displayName": "Seattle Updated Region",
"postalCodeArea": {
"regionCode": "US",
"postalCodes": [
{
"begin": "98330"
}
]
}
},
"updateMask": "displayName,postalCodeArea"
},
{
"region": {
"name": "07086",
"displayName": "NewYork Updated Region",
"postalCodeArea": {
"regionCode": "US",
"postalCodes": [
{
"begin": "11*"
}
]
}
},
"updateMask": "displayName,postalCodeArea"
}
]
}
जवाब
अनुरोध पूरा होने पर, अपडेट किए गए region ऑब्जेक्ट की सूची मिलती है.
{
"regions": [
{
"name": "accounts/{ACCOUNT_ID}/regions/98005",
"displayName": "Seattle Updated Region",
"postalCodeArea": {
"regionCode": "US",
"postalCodes": [
{
"begin": "98330"
}
]
},
"regionalInventoryEligible": true,
"shippingEligible": true
},
{
"name": "accounts/{ACCOUNT_ID}/regions/07086",
"displayName": "NewYork Updated Region",
"postalCodeArea": {
"regionCode": "US",
"postalCodes": [
{
"begin": "11*"
}
]
},
"regionalInventoryEligible": true,
"shippingEligible": true
}
]
}
एक से ज़्यादा क्षेत्र मिटाना
एक ही कॉल में कई क्षेत्रों को मिटाया जा सकता है.
अनुरोध
इस उदाहरण में, एक ही कॉल में दो क्षेत्रों को मिटाने के लिए BatchDeleteRegions का इस्तेमाल करने का तरीका दिखाया गया है.
POST
https://merchantapi.googleapis.com/v1beta/accounts/{ACCOUNT_ID}/regions:batchDelete
अनुरोध के मुख्य भाग में requests की सूची होती है. इसमें हर ऑब्जेक्ट, मिटाने के लिए क्षेत्र का name ("accounts/{ACCOUNT_ID}/regions/" के बिना) तय करता है.
{
"requests":
[
{
"name": "98005"
},
{
"name": "07086"
}
]
}
जवाब
अनुरोध पूरा होने पर, जवाब के मुख्य हिस्से में कोई डेटा नहीं दिखता. इससे पता चलता है कि तय किए गए इलाके मिटा दिए गए हैं या वे मौजूद नहीं थे.
{}
सीमाएं
शुरू करने से पहले, इन नियमों का ध्यान रखें:
- ऐटॉमिक कार्रवाइयां: बैच अनुरोध ऐटॉमिक होते हैं. अगर बैच में मौजूद कोई एक कार्रवाई पूरी नहीं होती है (उदाहरण के लिए, कोई क्षेत्र नहीं बनाया जा सका), तो पूरा बैच पूरा नहीं होगा और कोई बदलाव नहीं किया जाएगा. एपीआई, गड़बड़ी का मैसेज दिखाएगा. इसमें गड़बड़ी की वजह के बारे में जानकारी होगी.
- बैच के लिए सीमाएं: बैच में किए गए हर अनुरोध में, ज़्यादा से ज़्यादा 100 क्षेत्र से जुड़ी कार्रवाइयां हो सकती हैं.
- कोटा: ये एंडपॉइंट, एक बार में एक ऑपरेशन करने वाले एंडपॉइंट के जैसे ही कोटा ग्रुप का इस्तेमाल करते हैं (
regions.create,regions.delete,regions.update).
आम तौर पर होने वाली गड़बड़ियां और समस्याएं
यहां कुछ सामान्य समस्याएं और उनके समाधान दिए गए हैं.
"एक साथ भेजे गए अनुरोधों की संख्या बहुत ज़्यादा है"
यह गड़बड़ी तब होती है, जब आपके अनुरोधों की ऐरे में कार्रवाइयों की संख्या 100 की सीमा से ज़्यादा हो जाती है.
"error":
{
"code": 400,
"message": "The number of requests in a batch is too large.",
"status": "INVALID_ARGUMENT"
}
इस समस्या को ठीक करने के लिए, अपने ऑपरेशनों को 100 या उससे कम के कई बैच अनुरोधों में बांटें.
आवश्यक फ़ील्ड मौजूद नहीं है
यह गड़बड़ी तब होती है, जब कोई ज़रूरी फ़ील्ड मौजूद नहीं होता. गड़बड़ी के मैसेज में, मौजूद न होने वाले पैरामीटर की जानकारी दी गई है.
गड़बड़ी के मैसेज यहां दिए गए हैं:
batchCreateके लिए:[regionId] Required parameter: regionIdbatchUpdateके लिए:[region.name] Required field not provided.batchDeleteके लिए:[name] Required parameter: name
इस समस्या को ठीक करने के लिए, पुष्टि करें कि हर ऑपरेशन में सभी ज़रूरी फ़ील्ड मौजूद हों. उदाहरण के लिए, batchUpdate अनुरोध में मौजूद हर एंट्री में region.name शामिल होना चाहिए.
यह अनुरोध पोस्ट करने पर गड़बड़ी होती है:
{
"requests":
[
{
"region":
{
"displayName": "An update without a region name"
},
"updateMask": "displayName"
}
]
}
"इस आईडी वाला क्षेत्र पहले से ही मौजूद है"
अगर आपने किसी ऐसे regionId का इस्तेमाल करके क्षेत्र बनाने की कोशिश की है जो पहले से मौजूद है, तो गड़बड़ी होगी.
गड़बड़ी का मैसेज [regionId] Region with specified id already exists. है.
इस समस्या को ठीक करने के लिए, पुष्टि करें कि बैच में मौजूद सभी regionId वैल्यू यूनीक हों. साथ ही, वे मौजूदा क्षेत्रों से मेल न खाती हों.
"क्षेत्र के नाम या क्षेत्र के आईडी फ़ील्ड के लिए डुप्लीकेट वैल्यू मिली"
एक ही बैच अनुरोध में, एक ही आईडी से कई क्षेत्र बनाने या अपडेट करने पर गड़बड़ी होती है.
गड़बड़ी का मैसेज Duplicate value found for field {fieldName} in this batch
request with value {duplicated_value}. है.
इस समस्या को ठीक करने के लिए, पुष्टि करें कि एक बैच अनुरोध में, regionId (batchCreate के लिए) या region.name (batchUpdate के लिए) की सभी वैल्यू यूनीक हों.
"आइटम नहीं मिला"
batchUpdate का इस्तेमाल करते समय, अगर अनुरोध में बताया गया कोई क्षेत्र मौजूद नहीं है, तो पूरा बैच 404 NOT_FOUND गड़बड़ी के साथ फ़ेल हो जाएगा. यह batchDelete से अलग है, जो उन क्षेत्रों के लिए भी काम करता है जहां कोई डेटा मौजूद नहीं है.
"error": {
"code": 404,
"message": "item not found",
"status": "NOT_FOUND"
}
इस समस्या को ठीक करने के लिए, पुष्टि करें कि जिन क्षेत्रों की जानकारी अपडेट करने की कोशिश की जा रही है वे मौजूद हैं. इसके बाद ही, अनुरोध भेजें.