Tampilkan produk di beranda magento 1.9


23

Baru saja menginstal magento 1.9 dan telah jatuh pada rintangan pertama. Saya telah membuat produk dan telah menggunakan saran dari versi sebelumnya untuk menampilkan produk di beranda tetapi saya mendapatkan pesan berikut

Kesalahan fatal: Memanggil ke fungsi anggota getSortedChildren()pada objek non-di app/design/frontend/rwd/default/template/catalog/product/list.phtmljalur 180

Setiap bantuan dengan penuh terima kasih diterima.

Di bagian konten beranda saya punya ...

<div class="page-title"> 
    <h2>Our Latest Products</h2> 
</div> 
<p>{{block type="catalog/product_list" category_id="3" template="catalog/product/list.phtml"}}</p>

Bisakah Anda memperbarui jawaban Anda dengan kode yang Anda gunakan untuk menambahkan produk?
Sander Mangel

Hai, saya telah menggunakan yang sama seperti yang saya lakukan untuk versi 8. Di bagian konten beranda saya punya ... <div class = "page-title"> <h2> Produk Terbaru Kami </h2> </div> < p> {{block type = "catalog / product_list" category_id = "3" template = "catalog / product / list.phtml"}} </p>
rufus

Jawaban:


24

Masalahnya adalah desain rwd baru memiliki dua blok anak untuk daftar produk:

<block type="core/text_list" name="product_list.name.after" as="name.after" />
<block type="core/text_list" name="product_list.after" as="after" />

Dan dalam template itu sendiri tidak ada pemeriksaan untuk melihat apakah ini ada sebelum mereka dicoba untuk dimuat dan digunakan.

Perbaikan cepat adalah dengan menggunakan templat yang berbeda yang merupakan salinan templat utama tetapi dengan suntingan berikut:

<?php
$_nameAfter = $this->getChild('name.after');
// New if here
if($_nameAfter):
    $_nameAfterChildren = $_nameAfter->getSortedChildren();
    foreach($_nameAfterChildren as $_nameAfterChildName):
        $_nameAfterChild = $this->getChild('name.after')->getChild($_nameAfterChildName);
        $_nameAfterChild->setProduct($_product);
        ?>
        <?php echo $_nameAfterChild->toHtml(); ?>
    <?php endforeach; ?>
<?php endif; ?>

<?php
//set product collection on after blocks
$_afterChildren = $this->getChild('after');
if ($_afterChildren):
    $_afterChildren = $this->getChild('after')->getSortedChildren();
    foreach($_afterChildren as $_afterChildName):
        $_afterChild = $this->getChild('after')->getChild($_afterChildName);
        $_afterChild->setProductCollection($_productCollection);
    ?>
    <?php echo $_afterChild->toHtml(); ?>
<?php endforeach; ?>
<?php endif; ?>

The name.afterterjadi dua kali dalam template tapi aftermuncul hanya satu. Satu hal terakhir yang perlu diperhatikan adalah bahwa rwd css default menyembunyikan bagian tindakan dari daftar produk pada halaman cms.


Bisakah Anda menunjukkan di file mana kode ini harus ditambahkan dalam tema rwd?
Bhargav Mehta

Menambahkan file apa yang akan membantu, serta baris. Kode di atas tidak cocok dengan kode di list.phtml
Philip Deatherage

Hai philip bisa jadi bahwa versi terbaru dari Magento telah memperbaiki masalah ini.
David Manners

templat utama mana yang perlu disalin? list.phtml?
Pixelomo
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.