Magento 2: कैटलॉग में कस्टम विशेषता कैसे प्रदर्शित करें?


13

मैंने एक नई टेक्स्टफ़ील्ड विशेषता बनाई है, जो निम्न सेटिंग्स के साथ हाँ में सेट है:

Visible on Catalog Pages on Storefront
Used in Product Listing

विशेषता को एक विशेषता सेट को सौंपा गया है और यह उत्पाद दृश्य में जैसा कि दिखाता है।

हालाँकि यह कैटलॉग दृश्य में दिखाई नहीं दे रहा है, मैं डिफ़ॉल्ट लूमा थीम का उपयोग कर रहा हूं और मैंने कैश और री-इंडेक्स किया है। अगर मुझे टेम्पलेट फ़ाइल दिखाई देती है:

magento-catalog/view/frontend/templates/product/list.phtml

मुझे कस्टम गुण प्राप्त करने वाला कोई भी कोड नहीं मिल रहा है, इसलिए Luma विषय डिफ़ॉल्ट रूप से इसका समर्थन नहीं करता है।

मैं एक उत्पाद कस्टम विशेषता लेबल और list.phtml में मूल्य कैसे प्राप्त कर सकता हूं ?

जवाबों:


22

हम नीचे की तरह कस्टम विशेषता मान प्राप्त कर सकते हैं

मान बताइए

<?php /* @escapeNotVerified */ echo $_product->getResource()->getAttribute('c_address')->getFrontend()->getValue($_product); ?>

लेबल

$address =$_product->getResource()->getAttribute('c_address')->getStoreLabel();

नोट: उपरोक्त पंक्ति में c_address मेरा कस्टम विशेषता कोड है।

संदर्भ: Magento/Catalog/templates/product/view/attribute.phtml


यह काम नहीं करता है यदि विशेषता एक media imageप्रकार है।
लुकस्कु

@ बिलाल, मेरे लिए कस्टम विशेषताएँ list.phtml में "घातक त्रुटि getFrontend" दिखा रही हैं। क्या आप बता सकते हैं कि कृपया इस त्रुटि से कैसे बचें यदि आपके पास कोई विचार है
हितेश बालपांडे

11

मैंने इस बारे में एक लेख बनाया, जिसमें इसे करने के लिए केवल 5 चरण हैं:

1 - स्टोर> गुण> उत्पाद में अपनी विशेषता बनाएं ।

2 - डिफ़ॉल्ट समूह में विशेषता सेट करें, स्टोर पर जाएं> विशेषताएँ> विशेषता सेट करें

3 - अपने उत्पादों में इस गुण का मान सेट करें।

4 - नीचे अपने कस्टम विषय में सापेक्ष फ़ाइल खोलें:

app/design/frontend/CUSTOM/THEME/Magento_Catalog/templates/product/list.phtml

5 - फ़ॉरेच फ़ंक्शन के बीच इस कोड को नीचे पेस्ट करें, लेकिन अपनी सही विशेषता के कोड को बदलते हुए:

$_getMyAttr = $_product->getResource()->getAttribute('my_attribute');

if ($_getMyAttr){

    // Get Value
    $attrTestValue = $_getMyAttr->getFrontend()->getValue($_product);

    // Get Label
    $attrTestLabel = $_getMyAttr->getStoreLabel();
}

महत्वपूर्ण

सुनिश्चित करें कि "फ्रंट-एंड पर उत्पाद दृश्य पृष्ठ पर दृश्यमान" और "उत्पाद सूची में प्रयुक्त" स्टोरफ्रंट गुणों के तहत विकल्प हां पर सेट हैं।

संदर्भ: https://rafaelstz.github.io/magento/magento2-display-custom-attribute-catalog-list-products.html


media imageविशेषता के साथ "फ्रंट-एंड पर उत्पाद दृश्य पृष्ठ पर दृश्यमान" और "उत्पाद सूची में प्रयुक्त" व्यवस्थित नहीं हैं।
लुकस्कू

मूल्य विशेषता के लिए भी यही है
कॉम्पैक्टकोड

मुझे डिफ़ॉल्ट सूची कहां मिल सकती है। phtml?
मायकेबर्तनियन

हैलो, मेरे लिए विशेषता लेबल काम कर रहा है, लेकिन विशेषता मूल्य नहीं
सर्वेश तिवारी


1

@mikebertiean डिफ़ॉल्ट सूची खोजने के लिए

<Magento base>/vendor/magento/module-catalog/view/frontend/templates/product

एक बार जब आप इसे कॉपी कर लेते हैं और इसे बदल देते हैं और इसे उस पथ में जोड़ देते हैं जिसका उल्लेख राफेल ने किया है, तो आपको बस अपना कैश फ्लश करने की आवश्यकता है और यह काम करेगा।


0

खुला हुआ

app/design/frontend/CUSTOM/THEME/Magento_Catalog/templates/product/list.phtml

फ़ॉरच लूप के बीच निम्नलिखित जोड़ें।

<?php

$brand_attribute = $_product->getResource()->getAttribute('brand');

if ($brand_attribute){

    // Get Value
    $brand_value = $brand_attribute->getFrontend()->getValue($_product);

    // Get Label
    $brand_lable = $brand_attribute->getStoreLabel();
    echo $brand_lable." : ".$brand_value;
}

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