ड्रॉपडाउन 2.12 में कॉन्फ़िगर करने योग्य उत्पाद विशेषता क्रम


9

ड्रॉपडाउन का क्रम विशेषता के क्रम के अनुरूप नहीं है। विशेषता आकार के भीतर मैंने इसे नवजात 0-3 मो का आदेश दिया है

और ड्रॉपडाउन में यह 0-3 नवजात शिशु के रूप में दिखाई देता है

आकार नवजात शिशु को अन्य आकारों के कुछ दिनों बाद जोड़ा गया था और 0-3 मो के बाद नवजात सरल उत्पादों को आयात किया गया था। विशेषता के भीतर सूची के आदेश का पालन करने के लिए ड्रॉप डाउन का आदेश कैसे प्राप्त करें? मैंने कैशे क्लियर किया है और रीइन्डेक्स किया है। मैंने पढ़ा कि @Khoa TruongDinh में एक ही मुद्दा था, लेकिन इस समस्या का कोई समाधान नहीं दिखाई दे रहा था, इसलिए मैं इसे दोहरा रहा हूं।


इसके अलावा, आकार 0-3 वाले विशेषता उत्पाद पहले से ही मौजूद हैं और मैं सभी विशेषता उत्पादों को आकार के साथ जोड़ रहा हूँ।
बेबीविट

जवाबों:


14

मुझे फ्रंट-एंड पर समान विशेषता विकल्पों की समस्या का सामना करना पड़ा, जैसा कि मैंने इस मुद्दे की जाँच की और पाया कि विशेषता विकल्पों को लाने के दौरान, Magento 2.1.2 में डिफ़ॉल्ट रूप से क्वेरी में कोई छँटाई फ़िल्टर नहीं जोड़ा गया है, इसलिए इस समस्या को ठीक करने की आवश्यकता है नीचे दिए गए कोड को जोड़ने के लिए ORDER को फ़ंक्शन में शामिल करें getAttributeOptions पर लाइन नंबर 282 में फ़ाइल: विक्रेता / magento / मॉड्यूल-कॉन्फ़िगर करने योग्य-उत्पाद / मॉडल / ResourceModel / उत्पाद / प्रकार / configurable.php अब, यह मेरे लिए ठीक काम कर रहा है।

->joinInner(
        ['attribute_opt' => $this->getTable('eav_attribute_option')],
        'attribute_opt.option_id = entity_value.value',
        []
    )->order(
        'attribute_opt.sort_order ASC'
    );

यदि कोड को संपादित करने में असमर्थ हैं तो कृपया इस getAttributeOptions फ़ंक्शन को नीचे दिए गए कोड से बदलें:

public function getAttributeOptions($superAttribute, $productId)
{
    $scope  = $this->getScopeResolver()->getScope();
    $select = $this->getConnection()->select()->from(
        ['super_attribute' => $this->getTable('catalog_product_super_attribute')],
        [
            'sku' => 'entity.sku',
            'product_id' => 'product_entity.entity_id',
            'attribute_code' => 'attribute.attribute_code',
            'value_index' => 'entity_value.value',
            'option_title' => $this->getConnection()->getIfNullSql(
                'option_value.value',
                'default_option_value.value'
            ),
            'default_title' => 'default_option_value.value',
        ]
    )->joinInner(
        ['product_entity' => $this->getTable('catalog_product_entity')],
        "product_entity.{$this->getProductEntityLinkField()} = super_attribute.product_id",
        []
    )->joinInner(
        ['product_link' => $this->getTable('catalog_product_super_link')],
        'product_link.parent_id = super_attribute.product_id',
        []
    )->joinInner(
        ['attribute' => $this->getTable('eav_attribute')],
        'attribute.attribute_id = super_attribute.attribute_id',
        []
    )->joinInner(
        ['entity' => $this->getTable('catalog_product_entity')],
        'entity.entity_id = product_link.product_id',
        []
    )->joinInner(
        ['entity_value' => $superAttribute->getBackendTable()],
        implode(
            ' AND ',
            [
                'entity_value.attribute_id = super_attribute.attribute_id',
                'entity_value.store_id = 0',
                "entity_value.{$this->getProductEntityLinkField()} = "
                . "entity.{$this->getProductEntityLinkField()}",
            ]
        ),
        []
    )->joinLeft(
        ['option_value' => $this->getTable('eav_attribute_option_value')],
        implode(
            ' AND ',
            [
                'option_value.option_id = entity_value.value',
                'option_value.store_id = ' . $scope->getId(),
            ]
        ),
        []
    )->joinLeft(
        ['default_option_value' => $this->getTable('eav_attribute_option_value')],
        implode(
            ' AND ',
            [
                'default_option_value.option_id = entity_value.value',
                'default_option_value.store_id = ' . \Magento\Store\Model\Store::DEFAULT_STORE_ID,
            ]
        ),
        []
    )->where(
        'super_attribute.product_id = ?',
        $productId
    )->where(
        'attribute.attribute_id = ?',
        $superAttribute->getAttributeId()
    )->joinInner(
        ['attribute_opt' => $this->getTable('eav_attribute_option')],
        'attribute_opt.option_id = entity_value.value',
        []
    )->order(
        'attribute_opt.sort_order ASC'
    );

    return $this->getConnection()->fetchAll($select);
}

इसके लिए बहुत-बहुत धन्यवाद लेकिन मैं php से अच्छी तरह वाकिफ नहीं हूं। मुझे यकीन नहीं है कि आपके फिक्स में कहां जोड़ना है। यह वही है जो मेरे पास 280-282 से है और इसे पहले जोड़ने की कोशिश की गई है; 282 पर, लेकिन यह काम नहीं किया। 280 'एट्रीब्यूट_ट्रेड_ड =?', 281 $ सुपरआर्ट श्रद्धांजलि-> getAttributeId () 282);
बेबीविट

यदि आप कोड को संपादित करने में असमर्थ हैं तो कृपया इसे बदल दें
जगदीश राम

क्या किसी ने एक एक्सटेंशन लिखा है जो इस पैच को लागू करता है?
TheNorustri_Light

इसके अलावा, यह 2.1.9 में काम नहीं करता है।
द न्यूऑरनेटरी_लाइट

2.1.14 में कार्यक्षमता में स्थानांतरित हो गया है Magento\ConfigurableProduct\Model\AttributeOptionProvider। पहली नज़र में हल किया गया लगता है, हालांकि संभावित कीड़े के बारे में निश्चित नहीं है।
simonthesorcerer

3
  1. कॉन्फ़िगर करने योग्य उत्पाद पृष्ठ पर जाएँ -> कॉन्फ़िगरेशन संपादित करें -> अगला-अगला पर क्लिक करें - अगला और कुछ भी न बदलें
  2. फिर उत्पाद को बचाएं और उन्हें क्रम में होना चाहिए।

उत्पाद को ताज़ा करें या सहेजें?
लसन्था

300+ उत्पादों के साथ कैसे करें?
मोहम्मद जोरेद

वास्तव में केवल कॉन्फ़िगर करने योग्य उत्पाद संपादन पृष्ठ को खोलना, और फिर सीधे बचत करना क्रम क्रम को ठीक करता है। तो 1- उत्पाद खोलें 2- सहेजें पर क्लिक करें। लेकिन सभी उत्पादों को मैन्युअल रूप से जाने और उन्हें बचाने के बिना यह काम कैसे करें। मैंने साइट पर सभी उत्पाद जोड़ने की कोशिश की, यह उम्मीद करते हुए कि यह एक सहेजने वाली घटना को ट्रिगर करेगा लेकिन सॉर्ट निश्चित नहीं था। MAG2.2.2 का उपयोग करते हुए
मोहम्मद जोरेद

1

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

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


हाँ बिल्कुल। "विशेषता आकार के भीतर मैंने इसे नवजात 0-3 मो का ऑर्डर दिया है" इसलिए विशेषता के अंदर ही नवजात शिशु 0-3 मो है और उत्पाद ड्रॉपडाउन में यह 0-3 मो ABOVE नवजात शिशु के साथ दिखाई देता है।
बेबीविट

तो जहाँ तक मैं बता सकता हूँ, विशेषता के भीतर ही आदेश ठीक से Magento 2.1.2 काम नहीं कर रहा
babywit

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

1

यह वर्तमान में Magento 2 में एक ज्ञात मुद्दा है। यह अभी भी संस्करण 2.1.4 के रूप में एक मुद्दा है।

यहाँ GitHub मुद्दा है: https://github.com/magento/magento2/issues/7441


सवाल 3 महीने पहले पूछा गया था। Magento 2.1.4 कल जारी किया गया था ...
7ochem

1

क्योंकि यह समस्या अभी भी नवीनतम रिलीज़ 2.1.7 में मौजूद है, आप इस समाधान का उपयोग कर सकते हैं:

कॉन्फ़िगर करने योग्य उत्पाद पृष्ठ पर जाएं-> कॉन्फ़िगरेशन-> सभी सरल उत्पादों को हटा दें

उसके बाद उन्हें वांछित क्रम में फिर से जोड़ें:

उत्पादों को मैन्युअल रूप से जोड़ें-> फ़िल्टर उत्पादों को नाम से-> वांछित क्रम में सरल उत्पाद जोड़ें


1

V2.3.x में आप विकल्प उत्पाद के गुणों के क्रम को चयन करके एक विन्यास योग्य उत्पाद ड्रॉप डाउन चयनकर्ता में क्रमबद्ध कर सकते हैं

Magento\ConfigurableProduct\Model\AttributeOptionProvider

और उपयोग कर रहा है

usort($data, function($a, $b) {
    return $a['option_title'] <=> $b['option_title'];
});

GetAttributeOptions में लौटे विकल्प डेटा सरणी $ डेटा को सॉर्ट करने के लिए ()


क्या आप इसे अधिक विस्तृत कर सकते हैं?
कोविसिग एतश्याम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.