मैं अपने Magento विषय के (व्यक्तिगत) उत्पाद पृष्ठ पर स्टॉक उपलब्धता के प्रदर्शन पर काम कर रहा हूं, और ऐसा कुछ है जिसे मैं पूरी तरह से समझ नहीं पा रहा हूं।isaleable() और isAvailable() के बीच क्या अंतर है?
मैं देख रहा हूँ दो विधियों है कि क्या एक उत्पाद की बिक्री के लिए उपलब्ध है की जाँच करने के टेम्पलेट्स में इस्तेमाल किया जा रहा:
Mage_Catalog_Model_Product::isAvailable()
Mage_Catalog_Model_Product::isSaleable()
मेरा अपना निष्कर्ष:
मुझे लगता है कि isSalable()
(जो बारी में isSaleable()
द्वारा कहा जाता है) isAvailable()
पर कॉल करता है लेकिन दो घटनाओं को भी प्रेषित करता है (catalog_product_is_salable_before
और catalog_product_is_salable_after
)।
सामने वाले मैंने देखा है कि Magento के बेस टेम्पलेट में isAvailable()
का उपयोग यह तय करने के लिए किया जाता है कि उत्पाद को "स्टॉक में" या "स्टॉक से बाहर" के रूप में प्रदर्शित करना है या नहीं; isSaleable()
का उपयोग कुछ "कार्ट में जोड़ें" बटन दिखाने के लिए किया जाता है।
बैकएंड पर मैंने देखा है कि जब स्टॉक मात्रा शून्य हो जाती है और बैकॉर्डर की अनुमति नहीं है, तो उत्पाद की स्टॉक उपलब्धता "स्टॉक से बाहर" हो जाती है। जब स्टॉक मात्रा शून्य हो जाती है और बैकॉर्डर की अनुमति है, तो उत्पाद की स्टॉक उपलब्धता में अपरिवर्तित रहता है।
प्रश्न:
गुण "स्टॉक उपलब्धता" और "शेयर मात्रा" स्पष्ट रूप से एक दूसरे को और उल्लेख किया पीएचपी तरीकों के साथ जुड़े हुए हैं। मैं जानना चाहूंगा:
क्या अर्थ पीएचपी तरीकों
isAvailable()
औरisSaleable()
है और क्यों मैं एक दूसरे के ऊपर का प्रयोग करेंगे के बीच का अंतर;मुझे इन गुणों और Magento के व्यवहार के साथ अपने संबंधों के बारे में अभी तक क्या पता नहीं है।
धन्यवाद।
संपादित करें:
मैं (/ बंद) एक उत्पाद के लिए, और इस शेयर मात्रा (-1,0,1), शेयर उपलब्धता (में/में से) और backorders के हर प्रासंगिक संयोजन की कोशिश की है
St.Qu BckOrd St.Av isSalable() isSaleable() isAvailable() -1 0 0 0 0 0 -1 0 1 N/A N/A N/A -1 1 0 0 0 0 -1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 N/A N/A N/A 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1बस पूर्णता के लिए के लिए
:
St.Av 0 = out of stock St.Av 1 = in stock BckOrd 0 = no backorders allowed BckOrd 1 = backorders are allowed
यह Magento में स्टॉक उपलब्धता स्विच है कि PHP तरीकों में से सब से वापसी मान को नियंत्रित करता है, लेकिन जब backorders एक परिणाम है फिर से बंद करें और स्टॉक मात्रा 1 से नीचे गिरती है, स्टॉक उपलब्धता स्वचालित रूप से 'स्टॉक से बाहर' पर रीसेट हो जाएगी (इसलिए N/A
पंक्तियां)।
मैं स्टॉक में कुछ रखने और कुछ बेचने में सक्षम होने के बीच अर्थपूर्ण अंतर को समझता हूं, लेकिन मुझे अभी भी पता नहीं है कि सैलेबल()/isSalable() और isAailable() के बीच अर्थपूर्ण अंतर क्या है। एक दूसरे का उपयोग क्यों करें, जब हर स्थिति में मैं सोच सकता हूं कि वे एक ही काम करते हैं (संपादित प्रश्न देखें)? मैं कहता हूं "कि मैं सोच सकता हूं" क्योंकि मैं जानना चाहता हूं कि ऐसी परिस्थितियां हैं जिनके बारे में मैंने नहीं सोचा है कि इन तरीकों के बीच भेद पैदा हो सकता है, क्योंकि अब मुझे लगता है कि उनमें से एक बेकार है, जो मुझे लगता है न्याय करने के लिए थोड़ा जल्दी। – pancake
आपके संपादित प्रश्न में, आपने लिखा है जब बैकऑर्डर बंद हैं और स्टॉक मात्रा 1 से नीचे गिरती है, स्टॉक उपलब्धता स्वचालित रूप से 'स्टॉक से बाहर' रीसेट हो जाएगी एक 'stock_is_changed_automatically' ध्वज भी है, जिसे मैं दिखाने के लिए उपयोग करता हूं वे आइटम जो (तकनीकी रूप से) आविष्कार नहीं किए जाते हैं, और स्पष्ट रूप से इन-स्टॉक, बैकऑर्डर ऑफ, और qty = 0 – elcash
यह उपयोगी जानकारी है, इसके लिए धन्यवाद। मैं असभ्य प्रतीत नहीं करना चाहता हूं, लेकिन मुझे अभी भी पता नहीं है कि कब उपयोग करना है और कहां उपयोग करना है उपलब्ध है, जब वे * एक ही काम करने लगते हैं। मैं वर्तमान में एक थीम बना रहा हूं, इसलिए मैं इसे सही करना चाहता हूं। – pancake