उत्पाद बैच सबमिट करें#
POST https://sdkapi.ideal.house/product-import/products
अनुरोध शरीर#
| फ़ील्ड | प्रकार | आवश्यक | प्रतिबंध | विवरण |
|---|---|---|---|---|
shopId | string | हाँ | अधिकतम 64 अक्षर | Ideal House द्वारा प्रदान किया गया Shop ID। |
products | array | हाँ | 1–500 आइटम | बनाने या अपडेट करने के लिए उत्पाद। |
processImages | boolean | नहीं | डिफ़ॉल्ट false | पूरे बैच पर लागू होता है। उत्पाद इमेज प्रोसेस करने के लिए true सेट करें। जब छोड़ा जाता है या false होता है, तो उत्पाद डेटा आयात करें और प्रोसेसिंग के बिना मूल इमेज का उपयोग करें। |
processFloorImages | boolean | नहीं | डिफ़ॉल्ट false | processImages: true आवश्यक है। फ़्लोर उत्पादों के लिए, imageUrl से व्यक्तिगत प्लांक इमेज बनाएं। जब इमेज प्रोसेसिंग अक्षम है या अन्य उत्पाद प्रकारों के लिए, तो इसे अनदेखा किया जाता है। |
processImages को एक JSON बूलियन (true या false) के रूप में भेजें, "true" या "false" जैसे स्ट्रिंग के रूप में नहीं। इमेज प्रीप्रोसेसिंग की आवश्यकता वाले मौजूदा इंटीग्रेशन को अब स्पष्ट रूप से processImages: true भेजना होगा।
उत्पाद फ़ील्ड#
| फ़ील्ड | प्रकार | आवश्यक | अधिकतम लंबाई | विवरण |
|---|---|---|---|---|
sku | string | हाँ | 120 | शॉप के भीतर एकदम उत्पाद पहचानकर्ता। वही SKU मौजूदा उत्पाद को अपडेट करता है। |
name | string | हाँ | 255 | उत्पाद का नाम। |
imageUrl | string | हाँ | 1,000 | स्रोत उत्पाद इमेज के लिए सार्वजनिक रूप से एक्सेस करने योग्य HTTP या HTTPS URL। |
productUrl | string | हाँ | 1,000 | उत्पाद विवरण पेज का HTTP या HTTPS URL। |
width | string or number | हाँ | 64 | उत्पाद की चौड़ाई। इकाई-रहित मान इंच का उपयोग करते हैं; समर्थित इकाइयों को इंच में परिवर्तित किया जाता है। |
length | string or number | नहीं | 64 | उत्पाद की लंबाई। फ़्लोर उत्पादों के लिए, इसे height के बजाय प्रदान किया जा सकता है और इसे प्लांक लंबाई के रूप में उपयोग किया जाता है। |
height | string or number | शर्तबद्ध | 64 | उत्पाद की ऊंचाई। आवश्यक है, जब तक कि कोई फ़्लोर उत्पाद length प्रदान न करे। इकाई-रहित मान इंच का उपयोग करते हैं। |
thickness | string or number | नहीं | 64 | उत्पाद की मोटाई या मोटाई सीमा, जब प्रदान किया जाता है तो इंच में परिवर्तित किया जाता है। |
dimension_display | string | नहीं | 120 | केवल प्रदर्शन के लिए आयाम टेक्स्ट, जैसे "24 in x 36 in" या "26 cm x 36 cm"। |
category | string | नहीं | 120 | आपके कैटलॉग में उत्पाद श्रेणी। |
color | string | नहीं | 120 | उत्पाद का रंग। |
brand | string | नहीं | 120 | उत्पाद ब्रांड। |
productType | string | हाँ | 120 | नीचे सूचीबद्ध समर्थित उत्पाद प्रकार नामों में से एक। |
status | string | नहीं | — | active, inactive, out_of_stock, या invalid में से एक। डिफ़ॉल्ट active है। |
groupId | string | नहीं | 120 | संबंधित उत्पादों को समूहबद्ध करने के लिए ग्राहक-परिभाषित पहचानकर्ता। |
मौजूदा उत्पादों का पुनः-आयात#
उत्पाद डेटा को अपडेट करने के लिए, POST /product-import/products के माध्यम से उत्पाद को फिर से सबमिट करें। उत्पादों को shopId और sku द्वारा मेल खाना होता है। जब वही SKU पहले से शॉप में मौजूद है, तो डुप्लिकेट बनाने के बजाय मौजूदा उत्पाद रिकॉर्ड अपडेट किया जाता है, और नवीनतम आयात द्वारा प्रदान किए गए मान संग्रहीत संबंधित मानों को ओवरराइट करते हैं, जिसमें name, उत्पाद URLs, स्थिति, और आयाम जैसे फ़ील्ड शामिल हैं।
बैच आयात एंडपॉइंट एक आंशिक-अपडेट एंडपॉइंट नहीं है। प्रत्येक सबमिट किया गया आइटम सभी आवश्यक उत्पाद-फ़ील्ड नियमों को पूरा करना चाहिए, भले ही SKU पहले से मौजूद हो।
SKU आयात पहचान है और पुनः-आयात के माध्यम से इसका नाम बदला नहीं जा सकता। एक अलग SKU सबमिट करने से एक अलग उत्पाद बनता है या अपडेट होता है। SKU को बदलने के लिए, पुराने उत्पाद को तार्किक रूप से हटाएं और नए SKU के तहत उत्पाद को आयात करें।
उत्पाद जानकारी अपडेट की जाती है भले ही इमेज बदली न हो। प्रत्येक सबमिशन पर इमेज प्रोसेसिंग वैकल्पिक है: आवश्यकता होने पर processImages: true सेट करें। एक उत्पाद जिसे पहले इमेज प्रोसेसिंग के बिना आयात किया गया था, उसे इस विकल्प सक्षम करके फिर से सबमिट किया जा सकता है।
समर्थित उत्पाद प्रकार#
API निम्नलिखित सटीक, केस-सेंसिटिव productType मानों को स्वीकार करता है। एक पंक्ति में कई नाम समान Ideal House उत्पाद प्रकार के एलियास हैं।
| Ideal House उत्पाद प्रकार | स्वीकृत productType मान |
|---|---|
| वॉलपेपर | "Wall", "Wallpaper" |
| रग | "Rugs", "Area Rugs", "Area Rug" |
| वॉल आर्ट | "Wall Art" |
| फर्नीचर | "Furniture" |
| म्यूरल | "Mural", "Wall Mural" |
| डेकल्स | "Decals" |
| फ़्लोर | "Floor" |
उदाहरण के लिए, "Rugs", "Area Rugs", और "Area Rug" सभी मान्य हैं और इन्हें समान उत्पाद प्रकार के रूप में माना जाता है। ऊपर सूचीबद्ध किसी भी अन्य मान 400 Bad Request लौटता है।
आयात स्थिति#
वैकल्पिक status फ़ील्ड निम्नलिखित सटीक मानों को स्वीकार करती है:
| मान | अर्थ |
|---|---|
active | उत्पाद और उसकी इमेज को आयात करें। यदि इमेज प्रोसेसिंग की आवश्यकता है तो processImages: true सेट करें। जब status छोड़ा जाता है तो यह डिफ़ॉल्ट होता है। |
inactive | प्रोसेसिंग छोड़ी जाती है। उत्पाद status: inactive और availability: inactive के साथ संग्रहीत किया जाता है। |
out_of_stock | प्रोसेसिंग छोड़ी जाती है। उत्पाद status: inactive और availability: out_of_stock के साथ संग्रहीत किया जाता है। |
invalid | प्रोसेसिंग छोड़ी जाती है। उत्पाद status: invalid और availability: invalid के साथ संग्रहीत किया जाता है। |
किसी भी अन्य मान, जिसमें sold_out शामिल है, 400 Bad Request लौटता है।
फर्नीचर के लिए, गैर-सक्रिय सबमिशन उत्पाद status: inactive लौटते हैं। एक सक्रिय सबमिशन unprocessed लौटा सकता है, जिसका अर्थ है कि उत्पाद प्रदर्शन के लिए अभी तैयार नहीं है। इसका अर्थ यह नहीं है कि 3D जनरेशन का अनुरोध किया गया है।
फर्नीचर 3D मॉडल जनरेशन#
फर्नीचर के 3D मॉडल बनाना समय लेता है और क्रेडिट खर्च करता है, इसलिए उत्पाद आयात के दौरान यह प्रक्रिया नहीं की जाती, भले ही processImages true हो। हम भविष्य में उपयोगकर्ता इंटरफ़ेस में मॉडल बनाने की कार्रवाई या इसके लिए अलग 3D जनरेशन API उपलब्ध कराने की योजना बना रहे हैं। यदि आपको अभी 3D मॉडल चाहिए, तो अपने Ideal House संपर्क को ईमेल करें ताकि हम अलग से मॉडल बनाने की व्यवस्था कर सकें।
SKU और अपडेट व्यवहार#
Ideal House उत्पाद को shopId और sku के संयोजन द्वारा पहचानता है:
- यदि शॉप के लिए SKU मौजूद नहीं है, तो एक नया उत्पाद बनाया जाता है।
- यदि शॉप के लिए SKU पहले से मौजूद है, तो मौजूदा उत्पाद अपडेट किया जाता है।
इससे अनिश्चित नेटवर्क परिणाम के बाद वही SKU वाले उत्पाद को फिर से सबमिट करना सुरक्षित हो जाता है। स्थिर SKU का उपयोग करें और वही उत्पाद दोबारा प्रयास करते समय नया SKU न बनाएं। एक ही बैच में वही SKU एक से अधिक बार भेजने से बचें।
इमेज आवश्यकताएँ#
- URL को कुकीज़, लॉगिन सेशन, या कस्टम रिक्वेस्ट हेडर के बिना Ideal House सर्वर द्वारा पहुँचा जा सकना चाहिए।
- एक स्थिर URL का उपयोग करें जो सीधे इमेज लौटाए।
- आयात जॉब टर्मिनल स्थिति तक पहुँचने तक स्रोत इमेज को उपलब्ध रखें।
- इमेज डाउनलोड या प्रोसेसिंग समस्याएँ आइटम-स्तर की विफलताओं के रूप में रिपोर्ट की जाती हैं।
- फ़्लोर प्लांक इमेज बनाने के लिए, दोनों
processImages: trueऔरprocessFloorImages: trueसेट करें।
वैकल्पिक इमेज प्रोसेसिंग और क्रेडिट#
इमेज प्रीप्रोसेसिंग डिफ़ॉल्ट रूप से अक्षम है:
- जब
processImages: falseहोता है या फ़ील्ड छोड़ी जाती है, तो सक्रिय उत्पाद बैकग्राउंड रिमूवल, टेक्सचर ऑप्टिमाइज़ेशन, या फ़्लोर स्प्लिटिंग के बिना अपनी मूल इमेज का उपयोग करते हैं। उत्पाद जानकारी फिर भी आयात या अपडेट की जाती है, और कोई इमेज-प्रोसेसिंग क्रेडिट नहीं लिया जाता है। गैर-सक्रिय उत्पाद ऊपर वर्णित स्थिति नियमों का पालन करते हैं। - जब
processImages: trueहोता है, तो समर्थित सक्रिय उत्पादों को नीचे वर्णित इमेज प्रोसेसिंग मिलती है। फर्नीचर 3D जनरेशन शामिल नहीं है।
मुख्य प्रोसेसिंग व्यवहार ये हैं:
| API उत्पाद प्रकार | इमेज प्रोसेसिंग |
|---|---|
Wall, Wallpaper | बाहरी सफेद बॉर्डर हटाता है और असमान प्रकाश और छाया को कम करता है ताकि बार-बार टाइलिंग में सुधार हो। बैकग्राउंड अपारदर्शी रहता है। पूर्ण रूप से सीमलेस टेक्सचर और पर्सपेक्टिव सही करने की गारंटी नहीं है। |
Rugs, Area Rugs, Area Rug | सफेद बैकग्राउंड और आसपास की छाया हटाता है, जबकि सफेद या हल्के रंग के रग पैटर्न को बनाए रखता है। किनारों को साफ़ और नरम करता है और पारदर्शी-बैकग्राउंड उत्पाद इमेज के लिए खाली मार्जिन को ट्रिम करता है। |
Wall Art (वॉल डेकोर) | फ्रेम किए गए आर्टवर्क और असामान्य दीवार सजावट से आसपास के बैकग्राउंड को हटाता है। नियमित आर्टवर्क के भीतर सफेद सामग्री को बनाए रखता है और पारदर्शी-बैकग्राउंड उत्पाद इमेज के लिए खाली मार्जिन को ट्रिम करता है। |
Mural और Wall Mural को वॉल के समान इमेज सुधार मिलते हैं। सर्वोत्तम परिणामों के लिए, पूर्ण और स्पष्ट उत्पाद इमेज प्रदान करें; रग और नियमित वॉल आर्ट के पास सफेद या लगभग सफेद बैकग्राउंड होना चाहिए, और वॉल इमेज गंभीर पर्सपेक्टिव विकृति से बचनी चाहिए।
ऊपर वर्णित इमेज प्रोसेसिंग की लागत प्रत्येक नई प्रोसेस की गई इमेज के लिए 1 क्रेडिट है, जिसमें वॉल टेक्सचर ऑप्टिमाइज़ेशन शामिल है। यदि मौजूदा प्रोसेस किया गया परिणाम उपयोग किया जा सकता है, तो कोई अतिरिक्त प्रोसेसिंग क्रेडिट नहीं लिया जाता है। इस विकल्प को सक्षम करने से पर्याप्त क्रेडिट सुनिश्चित करें। अपर्याप्त क्रेडिट के साथ, इमेज प्रोसेसिंग आगे नहीं बढ़ेगी और उत्पाद unprocessed रह सकता है। एक completed आयात बैच अपने आप में यह पुष्टि नहीं करता कि हर उत्पाद इमेज सफलतापूर्वक प्रोसेस की गई थी।
आयाम आवश्यकताएँ#
API में कोई अलग आयाम-इकाई फ़ील्ड नहीं है। width आवश्यक है। height सामान्य रूप से आवश्यक है, जबकि एक फ़्लोर उत्पाद इसके बजाय length प्रदान कर सकता है; जब दोनों मौजूद हों, तो length को फ़्लोर प्लांक लंबाई के रूप में उपयोग किया जाता है। इकाई-रहित संख्याएँ और संख्यात्मक स्ट्रिंग्स को इंच के रूप में व्याख्या की जाती है। स्ट्रिंग्स में in, ft, cm, mm, या m शामिल हो सकते हैं; मानों को सकारात्मक आयाम के रूप में सत्यापित किया जाता है और संग्रहण से पहले इंच में सामान्यीकृत किया जाता है। thickness वैकल्पिक है और इसमें "3-4 mm" जैसे सीमा भी स्वीकार की जाती है, जिसे "0.1-0.2 in" में सामान्यीकृत किया जाता है।
dimension_display एक वैकल्पिक प्रदर्शन लेबल है और इसे साइज़ सत्यापन या इकाई रूपांतरण के लिए उपयोग नहीं किया जाता है। यह ग्राहक-मुखी इकाई और प्रारूप का उपयोग कर सकता है जिसे आप प्रदर्शित करना चाहते हैं, उदाहरण के लिए "24 in x 36 in" या "26 cm x 36 cm"।
उदाहरण अनुरोध#
{
"shopId": "shop_123",
"processImages": false,
"processFloorImages": false,
"products": [
{
"sku": "SKU-10001",
"name": "Gold Wall Mirror",
"imageUrl": "https://cdn.example.com/products/SKU-10001.png",
"productUrl": "https://www.example.com/products/SKU-10001",
"width": "24.0 in",
"height": "36.0 in",
"thickness": "2.0 in",
"dimension_display": "24 in x 36 in",
"category": "Mirror",
"color": "Gold",
"brand": "Example Brand",
"productType": "Wall Art",
"status": "active",
"groupId": "mirror-series-01"
},
{
"sku": "SKU-10002",
"name": "Black Wall Mirror",
"imageUrl": "https://cdn.example.com/products/SKU-10002.png",
"productUrl": "https://www.example.com/products/SKU-10002",
"width": "2 ft",
"height": "3 ft",
"thickness": "3-4 mm",
"dimension_display": "2 ft x 3 ft",
"category": "Mirror",
"color": "Black",
"brand": "Example Brand",
"productType": "Wall Art",
"status": "out_of_stock",
"groupId": "mirror-series-01"
}
]
}
cURL उदाहरण (इमेज प्रोसेसिंग सक्षम)#
इस उदाहरण में इमेज प्रीप्रोसेसिंग स्पष्ट रूप से सक्षम की गई है। एक नया बैकग्राउंड-रिमूवल परिणाम 1 क्रेडिट खर्च करता है।
curl --request POST \
'https://sdkapi.ideal.house/product-import/products' \
--header 'Content-Type: application/json' \
--header 'X-Client-Id: <YOUR_CLIENT_ID>' \
--header 'X-Client-Secret: <YOUR_CLIENT_SECRET>' \
--data-raw '{
"shopId": "shop_123",
"processImages": true,
"products": [
{
"sku": "SKU-10001",
"name": "Gold Wall Mirror",
"imageUrl": "https://cdn.example.com/products/SKU-10001.png",
"productUrl": "https://www.example.com/products/SKU-10001",
"width": 24,
"height": 36,
"thickness": 2,
"dimension_display": "24 in x 36 in",
"category": "Mirror",
"color": "Gold",
"brand": "Example Brand",
"productType": "Wall Art",
"status": "active",
"groupId": "mirror-series-01"
}
]
}'
स्वीकृत प्रतिक्रिया#
एक मान्य अनुरोध 202 Accepted लौटता है। प्रोसेसिंग असिंक्रोनस रूप से जारी रहती है।
{
"jobId": "1930000000000000000",
"shopId": "shop_123",
"status": "pending",
"totalCount": 1,
"processedCount": 0,
"successCount": 0,
"failedCount": 0,
"failures": [],
"createdAt": "2026-07-21T06:30:00.000Z",
"startedAt": null,
"updatedAt": "2026-07-21T06:30:00.000Z",
"completedAt": null,
"error": null
}
यदि शॉप के पास पहले से ही एक pending या running जॉब है, तो API 409 Conflict लौटता है। एक नया बैच सबमिट करने से पहले वर्तमान जॉब के समाप्त होने का प्रतीक्षा करें।