簡體   English   中英

Magento搜索結果順序錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM