विन्यास योग्य उत्पाद और विशेषता सेट


18

टी एल; DR : क्या कोई कारण है कि एक विन्यास योग्य उत्पाद से जुड़े सरल उत्पादों को एक ही गुण विन्यास उत्पाद के रूप में सेट किया जाना है? मेरा मतलब है, क्या कोई तकनीकी कारण है? मैं "सामान्य ज्ञान" कारण जानता हूं। यदि आप एक जोड़ी जूते बेचते हैं तो रंग और आकार के आधार पर सभी संस्करणों में जूते भी होने चाहिए ।
लंबा संस्करण : मेरे पास कुछ विन्यास योग्य उत्पादों को "मर्ज" करने का एक कार्य था। मेरा मतलब केवल एक बनाने के लिए 2 या अधिक से है। मैं उन्हें उत्पादों की मात्रा के कारण मैन्युअल रूप से नहीं करना चाहता था और मैं नहीं करना चाहता था$product->load(..)->set...()->save()स्क्रिप्ट को चलाने में समय लगने की वजह से। इसलिए मैंने इस प्रक्रिया को छोटा कर दिया क्योंकि मुझे यकीन था कि कोई भी साधारण उत्पाद ओवरलैप नहीं होगा। आकार और रंग का एक अनूठा संयोजन था। इसे मैने किया है:

Mage::getResourceSingleton('catalog/product_type_configurable')
    ->saveProducts($mainConfigrableProduct, $simpleProductIds);

जहां $simpleProductIdsसभी सरल उत्पाद आईडी की एक सरणी है जो सभी कॉन्फ़िगर करने योग्य उत्पादों से जुड़ी है जिन्हें विलय करने की आवश्यकता है।
यह अधिकांश उत्पादों के लिए पूरी तरह से काम करता है, लेकिन कुछ ऐसे भी थे जिनके मुद्दे हैं।
अगर मैंने फोन किया

$productIds = $product->getTypeInstance()->getUsedProductIds() 

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

  • 20 संबद्ध उत्पाद आईडी - 5 आकार, 4 रंग
  • बैकएंड में 10 संबद्ध उत्पाद - 5 आकार, 2 रंग - अन्य 2 रंग (10 उत्पाद) एक अलग विशेषता सेट में थे
  • दृश्यपटल में 15 संयोजन - 5 आकार 3 रंग (???)

मैं प्रकट नहीं हुए उत्पादों के लिए विशेषता सेट को बदलकर समस्या को हल करने में सक्षम था, लेकिन मैं अभी भी हैरान हूं।

नोट : घर पर यह कोशिश मत करो। या आप इसे घर पर आज़मा सकते हैं लेकिन लाइव सर्वर पर नहीं।

जवाबों:


13

यह पूछने के बाद कि मेरे पास क्या कारण हैं। आशा है कि आप के लिए इसकी संतुष्टि, भले ही इसकी शायद आपको उम्मीद थी।

  1. यह पूरी तरह से पेंच के लिए व्यापारियों के लिए कठिन बनाने के इरादे से adminhtml इंटरफ़ेस बनाया गया था।

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

  1. एक अन्य कारण विशेषता सेट के उद्देश्य के बारे में सोच रहा है। उनके मौजूद होने का एक कारण उन विशेषताओं और विकल्पों की संख्या को कम करना है जिन्हें अनुरोध के दौरान लोड और संसाधित किया जाना है। इस सोच को विन्यास के लिए लागू करना समझ में आता है, क्योंकि यह एक अपेक्षाकृत संसाधन महंगा उत्पाद प्रकार है।

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

संभवतः अलग-अलग विशेषता सेटों से सिम के साथ विन्यास कार्य करना आसान होगा। यह सिर्फ इस तरह से इरादा नहीं था।

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


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

2
Tsk tsk, @ मार्सी - db को टच न करें;)
16

4
@philwinkle। मुझे पता है, मुझे पता है, अगर ऐसा होगा तो ब्रह्मांड फट जाएगा। मैं क्या कह सकता हूँ? मुझे खतरनाक तरीके से रहना पसंद है। अपने बचाव में, मैंने कहा "लाइव सर्वर पर यह कोशिश न करें"।
मेरियस

1
फिर भी मेरा मन उड़ने का इंतजार कर रहा है, ... :)
विनय

2

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

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

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


1
प्रतिक्रिया के लिए धन्यवाद (और विस्तार की सिफारिश) लेकिन यह मेरे सवाल का जवाब नहीं देता है। मैंने कहा कि मैं डेटाबेस को सीधे बदलकर अपने मुद्दे को हल करने में कामयाब रहा हूं। मुझे पता है कि मुझे ऐसा नहीं करना चाहिए, लेकिन मुझे इस बात का अच्छा ज्ञान था कि मैं क्या कर रहा था - और एक डेटाबेस बैकअप :)। मैं बस उत्सुक था कि यह प्रतिबंध क्यों मौजूद है। जहाँ तक "वैरिन देवों की ज़रूरत नहीं दिखी" मुझे लगता है कि आप गलत हैं। यदि आप एक प्रतिबंध लागू करते हैं तो यह इसका एक कारण होना चाहिए।
मेरियस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.