टी एल; 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 रंग (???)
मैं प्रकट नहीं हुए उत्पादों के लिए विशेषता सेट को बदलकर समस्या को हल करने में सक्षम था, लेकिन मैं अभी भी हैरान हूं।
नोट : घर पर यह कोशिश मत करो। या आप इसे घर पर आज़मा सकते हैं लेकिन लाइव सर्वर पर नहीं।