Magento 2: Katalogda özel özellik nasıl görüntülenir?


13

Aşağıdaki ayarlar evet olarak ayarlanmış yeni bir metin alanı özniteliği oluşturdum:

Visible on Catalog Pages on Storefront
Used in Product Listing

Özellik, bir özellik kümesine atanır ve ürün görünümünde istendiği gibi görünür.

Ancak katalog görünümünde görünmüyor, varsayılan Luma temasını kullanıyorum ve önbelleği temizledim ve yeniden dizine ekledim. Şablon dosyasını görüntülersem:

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

Özel öznitelikleri alan herhangi bir kod bulamıyorum, bu yüzden Luma teması varsayılan olarak bunu desteklemiyor gibi görünüyor.

List.phtml'de bir ürünün özel özellik etiketini ve değerini nasıl alabilirim ?

Yanıtlar:


22

Aşağıdaki gibi özel özellik değeri alabiliriz

Özellik Değeri

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

Etiket

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

Not: yukarıdaki satırda c_address benim özel özellik kodumdur .

Referans: Magento/Catalog/templates/product/view/attribute.phtml


özellik bir türse çalışmaz media image.
LucScu

@Bilal, benim için özel öznitelikler list.phtml'de "önemli hata getFrontend" i gösteriyor. Herhangi bir fikriniz varsa lütfen bu hatayı nasıl önleyeceğinizi söyleyebilir misiniz
Hitesh Balpande

11

Bunu yapmak için sadece 5 adım olan bir makale hazırladım :

1 - Niteliklerinizi Mağazalar> Özellikler> Ürün'te oluşturun .

2 - Özniteliği Varsayılan grupta ayarlayın, Mağazalar> Nitelikler> Nitelik Kümesi'ne gidin .

3 - Ürünlerinizde bu özelliklerin değerlerini ayarlayın.

4 - Özel temanızda aşağıdaki göreli dosyayı açın:

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

5 - foreach işlevi arasında bu kodu yapıştırın, ancak doğru özelliğinizin kodunu değiştirin:

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

if ($_getMyAttr){

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

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

Önemli

Emin olun “Ürün Görüntüle Ön uçta Sayfasında görünür” ve “Ürün Listesinde Kullanılan” vitrin Özellikleri altında seçenekler Evet değerine ayarlanır.

Referans: https://rafaelstz.github.io/magento/magento2-display-custom-attribute-catalog-list-products.html


İle media image“Ürün Listesinde Kullanılan” ve “Ön-ucunda Ürün Görüntüle Sayfasında Görünür” özelliğine ayarlanabilir değildir.
LucScu

özelliği için aynı
CompactCode

varsayılan listeyi nerede bulabilirim.phtml?
mikebertiean

merhaba, özellik etiketi benim için çalışıyor ancak özellik değeri değil
Sarvesh Tiwari

6

Bunu kullan

$attribute = $_product->getResource()->getAttribute('identifier'); 
if ($attribute) 
{ 
$attr_value = $attribute ->getFrontend()->getValue($_product); 
}

1

@mikebertiean Varsayılan listeyi bulmak için.phtml adresine gidin

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

Bir kez kopyalayıp değiştirdikten ve Rafael'in bahsettiği yola ekledikten sonra, önbelleğinizi temizlemeniz gerekir ve işe yarayacaktır.


0

Açık

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

Foreach döngüsü arasına aşağıdakileri ekleyin.

<?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;
}

?>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.