ऑनलाइन स्टोर में डेटा आयात करना: एक एल्गोरिथ्म जो आपके जीवन को आसान बनाता है

पिछले लेख में habrahabr.ru/post/209040 ऑनलाइन स्टोर में डेटा आयात करने के सामान्य मुद्दों पर चर्चा की गई थी, इससे जुड़े तरीकों की विशेषताओं, फायदे और नुकसान। हम यह निष्कर्ष निकाल सकते हैं कि लंबी अवधि में एकमात्र प्रभावी तरीका प्रत्येक ऑनलाइन स्टोर में डेटा आयात करने के लिए अपने स्वयं के मॉड्यूल को विकसित करना है (मतलब एक विशिष्ट सीएमएस डेटाबेस में प्रत्यक्ष आयात)। क्यों? सबसे पहले, आयात मॉड्यूल का कोड पूरी तरह से नियंत्रित है, आप हमेशा शीघ्र परिवर्तन कर सकते हैं। दूसरा, जो भी बहुत महत्वपूर्ण है, सॉफ्टवेयर लाइन में मॉड्यूल का एकीकरण है। आयात मॉड्यूल के बारे में क्या खास है? यह बड़ी संख्या में पैरामीटर है जो डेटा आयात प्रक्रिया को प्रभावित करते हैं। कैटालॉग्लाडर मॉड्यूल में डेटा आयात एल्गोरिथ्म का एक सरल आरेख है।



ऑनलाइन स्टोर में डेटा आयात करने के लिए एल्गोरिदम







कार्यान्वयन



निम्न छवि कैटलॉगऑल्डर से ओपनकार्ट तक मानक अनलोड संवाद को दिखाती है:





OpenCart के लिए मानक विकल्प:

- माल अक्षम करें ("गायब" माल को निष्क्रिय करने की क्षमता निर्धारित करता है)।

- उन लेखों का उपसर्ग, जिन्हें अद्यतन करने की आवश्यकता नहीं है।

- डेटाबेस उपसर्ग।

- कैटलॉग लोडर_हैंडलर.php फ़ाइल का पथ।

- फ़ाइल को डिलीट करने का पथ_चेचे.फपी (ओपनकार्ट के लिए विशिष्ट)।

यह ध्यान देने योग्य है कि उपयोगकर्ताओं को प्रदान किए जाने वाले मानक आयात मॉड्यूल में एल्गोरिदम में उपलब्ध मापदंडों का पूरा सेट नहीं है। यह जानबूझकर इंटरफ़ेस को अव्यवस्थित नहीं करने के लिए किया जाता है और ताकि उपयोगकर्ताओं के पास अतिरिक्त प्रश्न न हों। ये पैरामीटर विशाल बहुमत वाली परियोजनाओं के लिए पर्याप्त हैं। और केवल भागों को विशेष मापदंडों की आवश्यकता होती है जो एक विशेष मोड में उपलब्ध हैं।



निम्न छवि 1C-Exchange प्रोटोकॉल के माध्यम से मानक Bitrix अपलोड संवाद दिखाती है:



विशेषताएं:

- 1 सी-एक्सचेंज प्रोटोकॉल के लिए समर्थन।

- डिबगिंग मोड के लिए समर्थन। अक्सर यह मोड बिट्रिक्स में एकमात्र आयात विकल्प है।



एल्गोरिथ्म सिद्धांत



एल्गोरिथ्म का सिद्धांत निम्नलिखित विचार पर आधारित है। एल्गोरिथ्म के लिए इनपुट ऑनलाइन स्टोर की नई स्थिति के साथ एक स्थानीय डेटाबेस है (हम इसे केएलपी डेटाबेस कहते हैं)। यानी आयात प्रक्रिया पूरी होने के बाद, केएलपी डेटाबेस आवश्यक सीएमएस डेटाबेस में "प्रवाह" करेगा। पूरी तरह से या नहीं, कुछ सुविधाओं के साथ या नहीं - यह पहले से ही डेटा आयात प्रक्रिया की सेटिंग्स पर निर्भर करता है, जिसे उपयोगकर्ता परिभाषित करता है।



निम्नलिखित तकनीकी जानकारी है जो इंटीग्रेटर्स और डेवलपर्स के लिए रुचि होगी - पैरामीटर जो डेटा आयात करने की प्रक्रिया को प्रभावित करते हैं।



CmsEngine स्ट्रिंग चर [डिफ़ॉल्ट ("")]

एक ऑनलाइन स्टोर के सीएमएस को परिभाषित करता है। संभावित मूल्य: बिट्रिक्स, कॉमर्सलएम, मैगेंटो, इंसलेश, प्रैशोप, वैंशोप, ओपेनकार्ट, होस्टेम्स, शॉपक्लूम्स, शॉप्सस्क्रिप्ट, पुण्यमार्ट, जोमशॉपिंग, सिम्पा, इत्यादि।



ModeIsDisable बूलियन [डिफ़ॉल्ट मान (गलत)]

इसमें एक मोड शामिल है जो उन वस्तुओं को निष्क्रिय कर देगा जो हमारे KLP डेटाबेस में नहीं हैं।



DbPrefix स्ट्रिंग चर [डिफ़ॉल्ट मान ("")]

एक ऑनलाइन स्टोर डेटाबेस उपसर्ग को परिभाषित करता है।



HttpTunnelLink स्ट्रिंग चर [डिफ़ॉल्ट ("")]

एक लिंक को परिभाषित करता है जो कैटलॉगलैडर और ऑनलाइन स्टोर के बीच डेटा ट्रांसफर इंटरफेस के रूप में कार्य करता है।

संभावित विकल्प: कैटालॉग्लाडर_हेनलर.फपी स्क्रिप्ट का लिंक, कॉमर्सल प्रोटोकॉल के माध्यम से ट्रांसमिशन के लिए 1c_exchange.php स्क्रिप्ट का लिंक।



HttpTunnelDelay संख्यात्मक चर [डिफ़ॉल्ट मान (0)]

HttpTunnelLink में परिभाषित इंटरफ़ेस पर जाने वाले अनुरोधों के बीच देरी को परिभाषित करता है। यह आवश्यक है अगर साइट एक कमजोर होस्टिंग पर स्थित है और कैटलॉगलैडर (लगातार कॉल) द्वारा सक्रिय क्रियाएं साइट (सीपीयू सीमा, उदाहरण के लिए) को रोकती हैं।



HttpImageWebDownloaderLink स्ट्रिंग चर [डिफ़ॉल्ट मान ("")]

एक ऑनलाइन स्टोर होस्टिंग के लिए एक छवि अपलोड स्क्रिप्ट के लिंक को परिभाषित करता है।

बिट्स जैसे बिट्रिक्स के लिए, इंसाल की आवश्यकता नहीं होती है।



HttpImageWebDownloaderLinkSaveToFile बूलियन [डिफ़ॉल्ट मान (गलत)]

यह HttpImageWebDownloaderLink में परिभाषित इंटरफ़ेस का उपयोग करके छवियों को लोड करने पर प्रतिबंध लगाता है, और कैटलॉगलैडर प्रोग्राम के साथ निर्देशिका में इस इंटरफ़ेस को फ़ाइल में कॉल करने के लिए सभी मापदंडों को बचाता है। यह तब आवश्यक है जब भविष्य के लिए छवि लोडिंग को स्थगित करने की आवश्यकता हो।



SqlConnectionString स्ट्रिंग चर [डिफ़ॉल्ट ("")]

ऑनलाइन स्टोर डेटाबेस के कनेक्शन स्ट्रिंग चर को परिभाषित करता है। यह डेटा डाउनलोड करने की गति को महत्वपूर्ण रूप से बढ़ा सकता है।

स्ट्रिंग चर ShopUser [डिफ़ॉल्ट मान ("")]

लक्ष्य ऑनलाइन स्टोर में एक विशिष्ट उपयोगकर्ता लॉगिन (आमतौर पर व्यवस्थापक)।

के लिए उपलब्ध: 1 सी-एक्सचेंज मोड में बिट्रिक्स, इंसाल।



ShopPassword स्ट्रिंग चर [डिफ़ॉल्ट ("")]

लक्ष्य ऑनलाइन स्टोर में एक विशिष्ट उपयोगकर्ता पासवर्ड (आमतौर पर एक व्यवस्थापक)।

के लिए उपलब्ध: 1 सी-एक्सचेंज मोड में बिट्रिक्स, इंसाल।



CategoryNameForImportAll स्ट्रिंग चर [डिफ़ॉल्ट ("")]

श्रेणी को परिभाषित करता है जिसमें ऑनलाइन स्टोर के लिए सभी "नए" उत्पादों को परिभाषित किया जाएगा। कभी-कभी सभी नए उत्पादों को "नए उत्पाद" श्रेणी में आयात करना आवश्यक होता है, और पुराने उत्पाद बस अद्यतन करते हैं।

नोट: बिट्रिक्स, कॉमर्सलएम के लिए काम नहीं करता है।



PriceUpdate बूलियन [डिफ़ॉल्ट मान (सत्य)]

उत्पाद अद्यतन फ़ंक्शन के व्यवहार को परिभाषित करता है, जिसमें कैटलॉगलैडर द्वारा उत्पाद की कीमत नहीं बदली जाती है। यह तब आवश्यक होता है जब साइट व्यवस्थापक स्वतंत्र रूप से माल की कीमतें निर्धारित करता है।



MissedProductIsDisabled बूलियन [डिफ़ॉल्ट मान (सत्य)]

उत्पाद निष्क्रियता मोड को परिभाषित करता है। यदि मान "सत्य" है, तो उत्पाद को निष्क्रिय करने का अर्थ है वास्तविक निष्क्रियता (उत्पाद डेटाबेस में रहता है और निष्क्रिय के रूप में चिह्नित होता है), अन्यथा उत्पाद कैटलॉगलैडर सॉफ़्टवेयर स्टोर से हटा दिया जाएगा। (डोनट UNDERSTAND)



MissedProductProcess बूलियन [डिफ़ॉल्ट (सत्य)]

उत्पाद के निष्क्रियकरण समारोह के व्यवहार को परिभाषित करता है। यदि मान "सत्य" है, तो ऑनलाइन स्टोर के डेटाबेस में मौजूद सामान और KLP फ़ाइल में नहीं हैं, उन्हें निष्क्रिय कर दिया जाएगा, अन्यथा, माल को निष्क्रिय करने का कार्य किसी भी सामान पर लागू नहीं होगा जो अनुपस्थित हैं।

बूलियन चर MissedCombinationIsDisabled [डिफ़ॉल्ट मान (सत्य)]

उत्पाद संयोजनों को निष्क्रिय करने के कार्य के व्यवहार को परिभाषित करता है। यदि मान "सत्य" है, तो उन उत्पादों के संयोजन जो ऑनलाइन स्टोर के डेटाबेस में मौजूद हैं और केएलपी फ़ाइल में नहीं हैं, उन्हें निष्क्रिय कर दिया जाएगा, अन्यथा डेटाबेस से हटाने का पालन करना चाहिए।



CustomParameters स्ट्रिंग चर [डिफ़ॉल्ट ("")]

एक विशेष सीएमएस के लिए विशिष्ट पैरामीटर निर्धारित किए जाते हैं। उदाहरण के लिए, prestashop के लिए, इस पैरामीटर का मान id_lang = 7 हो सकता है, जिसका अर्थ है कि आपको सातवें नंबर पर ऑनलाइन स्टोर की भाषा में माल के पाठ डेटा को आयात करने की आवश्यकता है।



CallUrlOnStart स्ट्रिंग चर [डिफ़ॉल्ट मान ("")]

आयात प्रक्रिया शुरू करने से पहले एक HTTP लिंक को परिभाषित करता है जिसे कैटलॉगलैडर सॉफ्टवेयर (अनुरोध प्राप्त करें) से बुलाया जाएगा। आमतौर पर एक डेटाबेस का बैकअप लेने के लिए उपयोग किया जाता है।



CallUrlOnFinish स्ट्रिंग चर [डिफ़ॉल्ट मान ("")]

आयात प्रक्रिया पूरी होने के बाद HTTP लिंक को कैटलॉगलैडर सॉफ्टवेयर (अनुरोध प्राप्त करें) से बुलाया जाएगा। आमतौर पर इसका उपयोग कैश को साफ़ करने या डेटाबेस की बैकअप प्रतिलिपि बनाने के लिए किया जाता है।



ProductsUpdateSkip बूलियन [डिफ़ॉल्ट मान (गलत)]

उत्पाद अद्यतन फ़ंक्शन के व्यवहार को परिभाषित करता है। यदि गलत पर सेट किया जाता है, तो अपडेट फ़ंक्शन उत्पाद पर लागू होता है, अन्यथा, यह नहीं है।



CustomerProductSkuTemplate स्ट्रिंग चर [डिफ़ॉल्ट मान ("")]

एक टेम्पलेट (नियमित अभिव्यक्ति) को परिभाषित करता है, जिसके साथ आप उस उत्पाद को निर्धारित कर सकते हैं जो मैन्युअल रूप से ऑनलाइन स्टोर में दर्ज किया गया था, और कैटलॉगलैडर सॉफ्टवेयर के माध्यम से नहीं। यदि कोई टेम्प्लेट परिभाषित किया गया है, तो माल जिसका लेख संख्या टेम्पलेट फिट बैठता है, उसे उन सामानों के चयन से बाहर रखा जाता है, जिन्हें "निष्क्रियकरण" फ़ंक्शन लागू किया जाना चाहिए।

उदाहरण के लिए, CustomerProductSkuTemplate = CUS_



ImagesUpdate बूलियन [डिफ़ॉल्ट (झूठी)]

छवि अद्यतन फ़ंक्शन के व्यवहार को परिभाषित करता है। यदि मान "गलत" है, तो छवियां अपडेट नहीं की जाती हैं, अन्यथा वे पूरी तरह से अपडेट हैं, जबकि संसाधित उत्पाद की सभी छवियां स्वचालित रूप से पहले हटा दी जाती हैं। आमतौर पर इस पैरामीटर को एक बार "सही" पर सेट करने की आवश्यकता होती है जब फोटो पिछले अपडेट पुनरावृत्तियों में उच्च गुणवत्ता के नहीं होते हैं।



ImagesUpdateMissed बूलियन [डिफ़ॉल्ट मान (गलत)]

छवि अद्यतन फ़ंक्शन के व्यवहार को परिभाषित करता है। यदि मान "गलत" है, तो छवियां अपडेट नहीं की जाती हैं, अन्यथा वे ऐड मोड में अपडेट किए जाते हैं। सबसे पहले, प्रोग्राम उन छवियों को निर्धारित करता है जो उत्पाद पहले से ही है और उसके बाद ही उत्पाद में आवश्यक "नए" चित्र जोड़ता है। आमतौर पर, इस पैरामीटर को पिछले अपडेट पुनरावृत्तियों में खराब-गुणवत्ता वाले फोटो अपलोड के साथ एक बार "सही" सेट करने की आवश्यकता होती है।

के लिए उपलब्ध: prestashop।



MiminumProductsCountInSet सांख्यिक चर [डिफ़ॉल्ट मान (0)]

माल की न्यूनतम मात्रा को परिभाषित करता है। यदि पैरामीटर मान शून्य से अधिक है, तो कैटालॉग्लाडर सॉफ़्टवेयर माल आयात करने की प्रक्रिया शुरू नहीं करेगा, यदि पैरामीटर द्वारा निर्धारित की तुलना में संसाधित केएलपी फ़ाइल में कम माल हैं।



बेशक, हर जगह कई बारीकियां हैं, यह हमेशा नहीं है और प्रत्येक सीएमएस के लिए नहीं है जो एल्गोरिथम के सभी मापदंडों का समर्थन करता है। यह एक्सचेंज प्रोटोकॉल, डेटाबेस की वास्तुकला या सीएमएस कार्यान्वयन की सुविधाओं के कारण हो सकता है। प्रस्तुत दृष्टिकोण आपको काफी लचीले ढंग से ऑनलाइन स्टोर में डेटा आयात करने की प्रक्रियाओं को अनुकूलित करने और सैकड़ों-हजारों पदों तक डेटा के बड़े संस्करणों के साथ कॉपी करता है।



यह दृष्टिकोण निम्नलिखित सीएमएस में डेटा आयात करने के लिए लागू किया गया था:





निकोले केकिश,

कैटलॉगलैडर के निदेशक



All Articles