Magento在另一个循环子类别中循环,其中包含该子类别的产品

时间:2014-08-02 14:27:33

标签: magento magento-1.8

我正在尝试在Magento(1.8社区版)中构建一个块

在这个区块中,我想分开子类别

让我们说父母是电动工具

它有3个子类别

锯 路由器 钻

所以结果将是这样的......

电动工具   锯   路由器   钻

我将父类别设置为显示一个块,而我现有的代码将显示子类别。我得到子类别输出以及它们的包装div以及指向corret子类别页面的链接,但产品列在里面......没有快乐!

到目前为止,我已将此代码用于代码......

<?php

$category = Mage::getSingleton('catalog/layer')->getCurrentCategory();
$categories = $category->getCollection()
    ->addAttributeToSelect(array('name', 'thumbnail'))
    ->addAttributeToFilter('is_active', 1)
    ->addIdFilter($category->getChildren())
?>




<div class="" style="width: 90%; float:right;margin-right: 5%;">
<?php foreach ($categories as $category): ?>

    <div class="col-xs-12" style="border: 2px dotted #3t6; font-size: 2em; margin:1em 0;">

        <a href="<?php echo $category->getUrl() ?>"><img src="<?php echo Mage::getBaseUrl('media') . 'catalog' . DS . 'category' . DS . $category->getThumbnail() ?>" alt="<?php echo $this->htmlEscape($category->getName()) ?>" /></a>


    </div>



    <div class="col-xs-12" style="height:200px; border: 1px solid #333;">


        <h1>test this</h1>
        <?php
        $parent_cat = Mage::getModel('catalog/layer')->getCurrentCategory();
        $_productCollection = $this->getLoadedProductCollection();
        $_helper = $this->helper('catalog/output');
        ?>

        <?php echo $parent_cat->getid() ; ?>//this shows the correct id

        <?php foreach ($_productCollection as $_product): ?>// start individual products for the sub category
        <?php $_productNameStripped = $this->stripTags($_product->getName(), null, true); ?>
               <h1><?php echo $_helper->productAttribute($_product, $_product->getName() , 'name'); ?></


        <?php endforeach; ?>// end product loop for the individual products

    </div>


<?php endforeach; ?>
</div>

所以我认为$ this-&gt;可能正在引用外部循环的前一个调用(不确定是否有意义)所以我尝试了这样的事情......

        <?php
        $parent_cat = Mage::getModel('catalog/layer')->getCurrentCategory();
        $_productCollection = $parent_cat->getLoadedProductCollection();
        $_helper = $this->helper('catalog/output');
        ?>

没有错误,但仍然没有快乐。

我是Magento中的新手,所以我在这里完全啰嗦,如果有人能让我直截了当地说出我做错了什么,我会很喜欢。

谢谢!

1 个答案:

答案 0 :(得分:0)

所以挖掘我发现一些对我有用的东西,仍然不确定这是否是最好的方法,但对于新手而言似乎运作良好。

对于亚当·莫斯(Adam Moss)在堆叠上的另一篇文章中给出的回答

Magento Product Listing by Category ID

我唯一做的就是使用$ category-getId();拉入适当的Cat id,以便子类别拉出适当的产品系列!真棒!

<?php

        $categoryid = $category->getId();

        $category = new Mage_Catalog_Model_Category();
        $category->load($categoryid);
        $collection = $category->getProductCollection();
        $collection->addAttributeToSelect('*');

        foreach ($collection as $_product) { ?>

<?php 
     // do stuff here, like...
      echo $_product->getShortDescription(); 
?>

<?php } ?>