【问题标题】:Secondary sorting in MagentoMagento 中的二次排序
【发布时间】:2014-04-17 03:58:56
【问题描述】:

我遇到了一个问题,我的开发人员说没有解决方案。

我有一个电子商务网站 www.lovefashion.pk 迄今为止大约有 800 种产品。它具有包含来自特定品牌的产品集合的类别以及显示多个类别的新到货和销售页面。我面临的问题是 Magento 在目录页面上显示这些产品的方式。

我们创建了一个自定义排序“按日期”并将其命名为“最新”,因此我将为收藏选择一个日期,目录页面将首先按日期显示最新排序的收藏,依此类推。现在的问题是二次排序。我有设计代码的产品,比如品牌 A 代码 1-A、品牌 A 代码 1-B、品牌 A 代码 2-A 等等。在创建这些产品时,我们按字母顺序排列,如 1-A、1-B、2-A 等。

假设一个系列有 15 种产品,我已按 4 月 15 日的日期对其所有产品进行了排序。 Magento 的日期排序没问题,但二次排序,即按产品 ID(从最旧到最新)是我们找不到实现的方法。它现在首先显示具有最新 ID 的产品,即 20-B、20-A、19-B,依此类推直到 1-A,例如 http://www.lovefashion.pk/shop-by-price/

有没有办法解决这个问题?或者 SQL 操作可以解决问题吗?将提供任何帮助

【问题讨论】:

    标签: sql magento sorting


    【解决方案1】:

    这是一个非常有趣的问题。你能告诉我们更多关于你想要做什么的事情吗?我认为您希望将每页上的产品颠倒过来,但是页面要保持它们的顺序,是吗?还是您希望页面转到“Asim Jofa Luxury Lawn Collection 2014 / 1-A”然后是“Orient Lawn Kurti Collection 2014 / 01-B”然后是“Orient Lawn Kurti Collection 2014 / 01-A”等等?

    无论如何,我认为您需要做的就是对每个页面的集合进行二次排序,这可以在list.phtml 文件中进行编码。

    伪代码:

    get the collection sorted by date and paginated
    reverse the collection
    pass the collection into the existing foreach(){echo(<li>product info</li>)}
    

    所以“反转集合”可能很棘手。严格来说,您想按 1A、1B、2A、2B 上的 sku 进行排序 - 但我相信您的开发人员可以弄清楚。

    $reversed_collection = array_reverse($current_page_collection->toArray());
    

    可能可以工作,但我认为 toArray 会丢失所有的类类型,所以它与反转对象不同。

    集合就像数组,所以end($current_page_collection)prev($current_page_collection) 可能有效,但您必须尝试一下(如果有效,请报告)。在这种情况下,一个简单的 for 循环遍历集合的每个项目。

    如果您正在制作自定义过滤器,那么实际上只需将集合中的每个项目放入具有适当键的数组中并使用ksort() 进行排序。

    所以我认为可以这样排序,但应该分两个阶段进行。

    【讨论】:

    • 感谢您的回复。我会用这个回复我的开发人员并报告他要说的话
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 2014-07-23
    • 2020-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多