小编Gin*_*tas的帖子

如何在 prestashop 中添加自定义产品“排序依据”字段?

我是 Prestashop 的新手,我正在尝试添加一个新的“排序依据”字段(默认情况下,您有:“相关性”,“名称,A 到 Z”,“名称,Z 到 A”,“价格,低至高”, “价格从高到低”)

如你们所知,该功能位于名为“Ps_facetedsearch”的模块中,链接此处

我试过:

  • 编辑模块文件,这可行,但如果我想保留功能,我无法再升级模块。
  • 覆盖,但似乎无法让它工作,它仍然使用相同的旧模块,而不是覆盖的模块。

所以我的问题是:

  1. 如何以最优雅/最简单的方式在产品列表(前面)中添加额外的“排序依据”字段?我很想听听解决此问题的任何其他方法。
  2. 例如,如果您购买了另一个覆盖主模块的模块(“Ps_facetedsearch”,这样两个覆盖就不会冲突),您可以在没有覆盖的情况下执行此操作吗?

任何提示表示赞赏!

PrestaShop 版本:1.7.4.2

我需要复制/粘贴 Ps_facetedsearch 模块中的行,以便添加额外的“排序依据”字段:

private function getAvailableSortOrders()
{
    return [
        (new SortOrder('product', 'position', 'asc'))->setLabel(
            $this->module->getTranslator()->trans('Relevance', array(), 'Modules.Facetedsearch.Shop')
        ),
        (new SortOrder('product', 'name', 'asc'))->setLabel(
            $this->module->getTranslator()->trans('Name, A to Z', array(), 'Shop.Theme.Catalog')
        ),
        (new SortOrder('product', 'name', 'desc'))->setLabel(
            $this->module->getTranslator()->trans('Name, Z to A', array(), 'Shop.Theme.Catalog')
        ),
        (new SortOrder('product', 'price', 'asc'))->setLabel(
            $this->module->getTranslator()->trans('Price, low to high', array(), 'Shop.Theme.Catalog')
        ),
        (new SortOrder('product', 'price', 'desc'))->setLabel(
            $this->module->getTranslator()->trans('Price, high to low', array(), …
Run Code Online (Sandbox Code Playgroud)

php model-view-controller prestashop symfony prestashop-1.7

2
推荐指数
1
解决办法
9333
查看次数