[英]Magento search results in wrong order
我正在研究Magento 1.9.1.0項目,但搜索結果的顯示順序不正確。 我已經修改了一個功能,以按位置順序獲取結果(幾乎可行),但是它似乎首先遍歷每個類別,按位置和名稱的順序列出該類別的產品,然后繼續進行下一個類別-例如,如果我搜索“ a”:
防滑浴室防滑墊,浴室安全帶,方形淋浴墊,行走框架(由於輸入了新類別,因此在此順序中斷了)鬧鍾,放大電話。
我希望它返回:
鬧鍾,放大電話,浴室安全帶,方形淋浴墊,行走框架,防滑浴室墊
(防滑浴墊將排在最后,因為其他所有產品的位置均為0,而該產品的位置為10)。
有沒有辦法我可以修改此搜索,而只顯示所有產品而無需按類別順序訂購? 我為實現到目前為止所編寫的功能是:
public function setListOrders()
{
$category = Mage::getSingleton('catalog/layer')
->getCurrentCategory();
/* @var $category Mage_Catalog_Model_Category */
$availableOrders = $category->getAvailableSortByOptions();
unset($availableOrders['position']);
$availableOrders = array_merge(array(
'relevance' => $this->__('Relevance'),
'name' => $this->__('Name'),
'position' => $this->__('Position')
), $availableOrders);
$this->getListBlock()
->setAvailableOrders($availableOrders)
->setDefaultDirection('asc')
->setSortBy('position');
return $this;
}
和...
protected function _getProductCollection()
{
if (is_null($this->_productCollection)) {
$this->_productCollection = $this->getListBlock()->getLoadedProductCollection();
}
return $this->_productCollection->addAttributeToSort('position')->addAttributeToSort('name');
}
編輯:我想要實現的是通過一個名為“ pay_in_store”的自定義屬性對產品進行排序,但是結果似乎以正確的順序吐出了第一類結果,然后從該類中沒有了結果選項“ pay_in_store”已選中。 然后,它跳到下一個類別並執行相同的操作。 我不希望每個類別都這樣-我只需要將所有產品清空到結果中即可。
在下面的代碼中添加您的local.xml或任何您的layout.xml文件
<catalogsearch_result_index>
<reference name="search_result_list">
<action method="setDefaultDirection"><param>asc</param></action>
<action method="setSortBy"><param>attribute_you_want_to_use</param></action>
</reference>
</catalogsearch_result_index>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.