如何按自定义属性对产品进行排序?

时间:2014-01-02 14:45:35

标签: magento magento-1.7

有没有办法按任何自定义属性对产品进行排序?例如,按类别,品牌或颜色排序?

我假设我应该创建属性并将其设置为“用于产品列表中的排序”。

我想按以下属性对产品进行排序:

首先是性别,然后是品牌,类别和最后的颜色。

问题是如何使用这些属性对后端中的产品进行排序,以便它们在该前端中以该顺序显示?

1 个答案:

答案 0 :(得分:1)

您可以使用此代码

在catalog \ product \ list。

下创建一个phtml文件(sort.phtml)

包含sort.phtml是

<div class="sort-by">
            <label><?php echo $this->__('Sort By') ?></label>
            <select onchange="setLocation(this.value)">
            <?php foreach($this->getAvailableOrders() as $_key=>$_order): ?>
                <option value="<?php echo $this->getOrderUrl($_key, 'asc') ?>"<?php if($this->isOrderCurrent($_key)): ?> selected="selected"<?php endif; ?>>
                    <?php echo $this->__($_order) ?>
                </option>
            <?php endforeach; ?>
            </select>
            <?php if($this->getCurrentDirection() == 'desc'): ?>
                <a href="<?php echo $this->getOrderUrl(null, 'asc') ?>" title="<?php echo $this->__('Set Ascending Direction') ?>"><img src="<?php echo $this->getSkinUrl('images/i_desc_arrow.gif') ?>" alt="<?php echo $this->__('Set Ascending Direction') ?>" class="v-middle" /></a>
            <?php else: ?>
                <a href="<?php echo $this->getOrderUrl(null, 'desc') ?>" title="<?php echo $this->__('Set Descending Direction') ?>"><img src="<?php echo $this->getSkinUrl('images/i_asc_arrow.gif') ?>" alt="<?php echo $this->__('Set Descending Direction') ?>" class="v-middle" /></a>
            <?php endif; ?>
        </div>

之后使用以下代码在list.phtml中调用此文件 -

echo $this->getLayout()->createBlock("catalog/product_list_toolbar")->setTemplate('catalog/product/list/sort.phtml')->toHtml();

希望此代码能够正常运行