Grid ekranda yeni ürün niteliğini alınamıyor

1 Cevap php

Benim ürünler için yeni bir nitelik (mantıksal bir "evet / hayır" alanı) eklenmiştir. Bu ürün detay sayfasında görüntülenmesini fiyatı etkinleştirmek / devre dışı değişken ve ızgara görünümüdür.

Ben Ürün bilgisi sayfasında çalışmak başardı. Ama ürün ızgara sayfada ben bu değişken erişmek gibi olamaz. Özellikle, i ile çalışıyorum şablon katalog / ürün / price.phtml olduğunu. I söyleyebilirim Gönderen, fiyat ürün detay sayfasında, ve ızgara sayfa hem eğer-tabloların aynı grup tarafından görüntülenen ediliyor. I iç içe sadece bir demet halinde tablolar, birden fazla ürün işlemek için bu şablonu üzerinde herhangi bir kod bulamıyor çünkü bu beni karıştı sahiptir.

this is how im attempting to access this new variable using $_displayPrice. on line 36 of catalog/product/price.html

<?php $_product = $this->getProduct();  ?>

<?php $_id = $_product->getId() ?>
<?php $_displayPrice = $_product->getDisplayPrice() ? "Yes" : "No";

echo $_displayPrice;?>

Ne bana daha karışık olduğunda ekran $ _product-> getData (), benim yeni değişken olduğu veriler arasında herhangi bir yerde olmasıdır.

şimdiden teşekkürler

1 Cevap

Tamam, ilk nedeni nitelikleri yük olmaz. Magento katalog verileri depolamak için bir EAV modelini kullanır. (Çoğunlukla) getData dizide veri her parçası bir tablo geliyor katılmak anlamına gelir. Yani Magento veritabanından veri istekleri konusunda cimri olduğu anlamına gelir. Sizin alanına ihtiyacınız yoksa, onu dahil rahatsız olmaz (ve bazı sorgu zaman kazandıracak.)

Bir katalog kategori sayfasını yüklerken Yani, Magento Mage_Catalog_CategoryController ve görünümü eylemini kullanır. Magento büyü sayesinde, bu sonradan tüm gerekli özellikleri yükler ki, Mage_Catalog_Model_Layer::getProductCollection çağırır. Nasıl dahil bağlıyor tercih mi, diyorsunuz? Bu Mage_Catalog_Model_Config::getProductCollectionAttributes tabii konfigürasyonda onları alır! Biz yeni bir nitelik eklemek istiyorsanız eğer öyleyse, biz yapılandırmasını değiştirmek gerekir.

Config dosyasına baktığımızda, yüklü olan sütunların kolları yol frontend/product/collection/attributes, yani bir uzantı'nın config.xml dosyasına aşağıdaki eklemeniz gerekir:

<frontend>
    <product>
        <collection>
            <attributes>
               <display_price /> 
            </attributes>
        </collection>
    </product>
</frontend>

Bu varsayılan ürün toplama içine yüklemek için öznitelikler listesine display_price niteliğini katacak, ve artık $_product->getDisplayPrice() aramak ve aradığınız veri almak gerekir .

Eğer herhangi bir değişiklik görmek için beklemek önce önbelleği temizlemek için emin olun!

Umut olur.

Thanks, Joe