这似乎很简单,但事实证明并非如此-我只想从高到低列出所有商店中的产品
为此,我去了:
Configuration -> Catalog -> Product Listing Sort by -> (I Selected) "Price"
现在,这会将所有产品从低到高对所有产品进行排序-但似乎没有一种选择升序还是降序的方法。
我正在忽略管理区域中的某些内容,还是必须修改文件才能执行此操作?
这似乎很简单,但事实证明并非如此-我只想从高到低列出所有商店中的产品
为此,我去了:
Configuration -> Catalog -> Product Listing Sort by -> (I Selected) "Price"
现在,这会将所有产品从低到高对所有产品进行排序-但似乎没有一种选择升序还是降序的方法。
我正在忽略管理区域中的某些内容,还是必须修改文件才能执行此操作?
Answers:
您不能从configuration更改产品列表的默认订购方向。
但是,您可以从布局XML更改方向。
以下是一些您可以放入布局XML文件的示例,例如local.xml
:
<?xml version="1.0"?>
<layout version="0.1.0">
<!-- Change default direction for simple searches -->
<catalogsearch_result_index>
<reference name="search_result_list">
<action method="setDefaultDirection"><dir>desc</dir></action>
</reference>
</catalogsearch_result_index>
<!-- Change default direction for advanced searches -->
<catalogsearch_advanced_result>
<reference name="search_result_list">
<action method="setDefaultDirection"><dir>desc</dir></action>
</reference>
</catalogsearch_advanced_result>
<!-- Change default direction for a category without layered navigation -->
<catalog_category_default>
<reference name="product_list">
<action method="setDefaultDirection"><dir>desc</dir></action>
</reference>
</catalog_category_default>
<!-- Change default direction for a category with layered navigation -->
<catalog_category_layered>
<reference name="product_list">
<action method="setDefaultDirection"><dir>desc</dir></action>
</reference>
</catalog_category_layered>
<!-- Change default direction for category with ID 3 -->
<CATEGORY_3>
<reference name="product_list">
<action method="setDefaultDirection"><dir>desc</dir></action>
</reference>
</CATEGORY_3>
</layout>
此外,您可以在后台将布局XML添加为类别的自定义设计。此设置将覆盖您在XML文件中设置的内容:
问题被标记为CE 1.7.0.2,但此解决方案对1.9.1.1上的用户很有用,因此我在此处添加它。
我们遇到了一个相反的问题,当我们按价格排序时,我们需要首先展示最便宜的产品。对于OP来说,这首先不适用,因为在Magento CE 1.9中,它已经默认为降序,因此实际上是不需要的。第二个问题是选择升序还是降序的方法,可以通过XML文件或自定义布局更新来完成。在大多数情况下,后者是首选解决方案,并且大多数人会避免FTP上载XML文件以更新设置的麻烦。
在“ 目录”>“管理类别”>“ 类别” >“自定义设计”>“自定义布局更新”中是这样的:
这是代码:
<reference name="product_list_toolbar">
<action method="setDefaultDirection"><string>asc</string></action>
<action method="setDefaultOrder"><string>price</string></action>
</reference>
要选择升序还是降序,只需将asc更改为desc即可。
作为一种选择,您还可以将价格更改为所需的排序。您可以将其删除,以使其在设置为默认值的任何“产品列表排序依据”选项上默认为“ asc ”。
上面的解决方案似乎与CE 1.8并没有什么不同,因此我不得不通过重写code / local /.../ Catalog / Model / Category.php中的目录模型功能来解决此问题。
/**
* Override category products collection
* to sort by price descending
*
* @return Varien_Data_Collection_Db
*/
public function getProductCollection()
{
$collection = parent::getProductCollection()->setOrder('price', 'DESC');
return $collection;
}
希望这可以帮助。:-)
以下xml在CE 1.8中为我工作:
<layout>
<catalog_category_default>
<reference name="product_list_toolbar">
<action method="setDefaultDirection"><string>asc</string></action>
<action method="setDefaultOrder"><string>price</string></action>
</reference>
</catalog_category_default>
<catalog_category_layered>
<reference name="product_list_toolbar">
<action method="setDefaultDirection"><string>asc</string></action>
<action method="setDefaultOrder"><string>price</string></action>
</reference>
</catalog_category_layered>
<catalogsearch_result_index>
<reference name="search_result_list">
<action method="setDefaultDirection"><string>asc</string></action>
<action method="setDefaultOrder"><string>price</string></action>
</reference>
</catalogsearch_result_index>
<catalogsearch_advanced_result>
<reference name="search_result_list">
<action method="setDefaultDirection"><string>asc</string></action>
<action method="setDefaultOrder"><string>price</string></action>
</reference>
</catalogsearch_advanced_result>
</layout>
我以为我要发布,因为上述两种解决方案在Magento 1.8(社区)中均不适用于我。
'setDefaultOrder'可以接受我认为的任何属性代码,如果您只想使用admin中的默认值,则不需要。
希望对某人有用。
转到/ app / code / core / Mage / Catalog / Model /路径,然后在Product.php中添加以下代码
public function getRelatedProductCollection()
{
$collection = $this->getLinkInstance()->useRelatedLinks()
->getProductCollection()
->setIsStrongMode();
$collection->setProduct($this);
$collection->setOrder('price', 'DESC');
return $collection;
}
您也可以用它来减轻体重。只需用“重量”代替“价格”即可。对于上升,只需写上“ ASC”代替“ DESC”。
price
一次列的产品分类高到低。