按特价百分比获取 Magento 产品系列

Get a Magento product collection by special price in percentage

在我的 Magento 商店中应该有一个名为 sale 的页面,其子页面包括 10% sale、20% sale、30% sale …

所以现在我需要得到一个产品集合,其中包含至少包含特价的所有产品(最终价格包括价格规则折扣会更好,但如果太难,特价将足以过滤打折产品) .

基本上我知道如何获得产品系列,并且我知道如果有特价或特价高于特定金额时如何设置过滤器。

但在这种情况下,我需要执行类似“$_discountPercentage = round((($_actualPrice-$_convertedFinalPrice)/$_actualPrice)*100);”之类的操作首先过滤选择 < 10 或 < 20 或 < 30 等等。

所以我当然可以加载整个集合并只在 php 中的每个中显示匹配的产品,但我认为这是没有必要的,因为它会加载很多不需要的开销。如果这只是 sql,我可以在 5 分钟内完成这项工作。但我不知道如何按百分比过滤每个折扣的产品系列。

那么有什么技巧可以让我在 Magento 中获得一个产品系列,例如产品的折扣高于原价的 20%?

非常感谢

我经常比社区更快,自己解决了我的问题 :) 但如果有人正在寻找类似的解决方案......这是代码的一部分,可以完成这项工作。

$_productCollection->getSelect()
->where('ROUND(((price_index.price - price_index.final_price)/price_index.price)*100,0) >= '.$nMinimumDiscountPercentage)

当然可以取消公式。但是,这将为您提供一个产品集合,其中包含至少与指定的最小百分比一样高的折扣(特价或价格规则)的所有产品。

但是你可以帮我再问一个问题。我通过 "Custom Layout Update" 和自定义 .phtml 在 XML 上添加了这个。现在我在边栏的所有子类别上都有 (0) 个产品,这不足为奇。

是否有一种简单的方法可以更改此 phtml,使我在任何子类别中的自定义选择为父类别设置正确的目录计数?如果可能的话,我想在侧边栏中保留每个子项的计数器,因为我喜欢这个功能。

到目前为止谢谢你 ;)

->哪里('ROUND(((price_index.price - price_index.final_price)/price_index.price)*100,0) <= '.$nmaxmumDiscountPercentage) ->where( 'ROUND(((price_index.price - price_index.final_price)/price_index.price)*100,0) >= '.$nMinimumDiscountPercentage)