2011-02-09 8 views
10

another question से प्रेरित होकर मैं तो, मैं अगर कोई एक उद्धरण मद (Mage_Sales_Model_Quote_Item) और एक उद्धरण पता मद (Mage_Sales_Model_Quote_Address_Item) के बीच का अंतर समझा सकता है देखना चाहता था पर हाल ही में देखा था?Magento: एक उद्धरण मद और कोट पता मद के बीच वैचारिक अंतर क्या है?

मुझे लगता है कि मैं एक उद्धरण आइटम (Mage_Sales_Model_Quote_Item - sales_flat_quote_item डीबी तालिका में मैप किए गए) की अवधारणा को समझता हूं - मूल रूप से ग्राहक के कार्ट में एक पंक्ति वस्तु जिसमें उत्पाद, मात्रा और किसी भी विशेष विकल्प का नाम/स्कू शामिल है। db तालिका sales_flat_quote_address_item को मैप किया) के लिए है - क्या मुझे समझ नहीं आता क्या उद्धरण पता मद Mage_Sales_Model_Quote_Address_Item है। मैं देखता हूं कि इसमें एक पता है, लेकिन यह बिल्ली क्या है? मैं कल्पना कर सकता हूं कि इसमें बहु-पता शिपिंग (जो मैंने कभी नहीं उपयोग किया है) के साथ कुछ करने के लिए हो सकता है लेकिन यह एक जंगली अनुमान है।

एक माध्यमिक सवाल (इस प्रश्न के लिए वास्तव में पूरी कारण: /) के रूप में, किसी भी मामले हैं, जहां एक कस्टम बोली आइटम के साथ काम कर मॉड्यूल सुरक्षित रूप से उद्धरण पता मद की अनदेखी कर सकता है देखते हैं?

उत्तर

7

"से अधिक पतों पर जहाज" से संबंधित के रूप में प्रत्येक आइटम की जरूरत है इसका अलग पते

+1

यदि ऐसा है, तो क्या आपको कोई विचार है कि quote_item से अधिकांश डेटा इस तालिका में क्यों क्लोन किया गया है? लगता है कि quote_address पर एक वैकल्पिक address_id फ़ील्ड की तरह ही समस्या हल हो गई होगी। –

+1

@ जोसेफ। मैं आपसे पूरी तरह सहमत हूं। परेशान करने की तरह कि सभी डेटा डुप्लिकेट किया गया है ... और यहां तक ​​कि दुकानों के लिए जो केवल एक पेज चेकआउट का उपयोग करते हैं। इसके पीछे तर्क जानने के लिए अच्छा लगेगा, लेकिन ओह ठीक है। – shaune

11

मैंने पहले इस के साथ पेश किया है करने के लिए मैप किया।

मूल रूप से बोली आइटम के रूप में आप यह वर्णित है। यह कार्ट में एक पंक्ति वस्तु का प्रतिनिधित्व करता है जिसमें इसके सभी विवरण हैं।

उद्धरण पता आइटम के लिए, यह केवल एक ऑब्जेक्ट है जिसमें उद्धरण आइटम ऑब्जेक्ट का संदर्भ है, पता ऑब्जेक्ट का संदर्भ है और इस विशेष पते पर भेजे जाने वाले उद्धरण आइटम से सबसेट मात्रा (लेकिन फिर वे उद्धरण वस्तु से सबकुछ बेकार कर देते हैं)।

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

बेशक

, यह एक भद्दा डिजाइन है। यह बेहतर होगा अगर उन्होंने उद्धरण आइटम डेटा रखा और एक पता आईडी फ़ील्ड जोड़ा और पूरी तरह से "उद्धरण पता आइटम" अवधारणा को समाप्त कर दिया। ऐसा लगता है कि अत्यधिक सामान्यीकरण के मामले की तरह उन पर बैकफायर किया गया है।

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

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

+1

बहुत अच्छा जवाब। मैं Magento के पीछे कुछ अवधारणाओं को समझने की कोशिश कर रहा हूं और यह पढ़ने के लिए बहुत उपयोगी था। – clime

+0

@ राइफ एटफ अच्छी व्याख्या करता है –

संबंधित मुद्दे