我们有一个在线轮胎商店,以轮胎为产品,以车型为类别。由于轮胎可以适合多辆汽车,因此每个轮胎都会映射到适合的所有车型。

然而,每种车型都有一定的原装轮胎(那些从工厂安装在全新汽车上的轮胎)。我们想在车型列表页面上用丝带式图标突出显示此类轮胎。重要的一点是,虽然轮胎可以适合多种车型,但它可能并不适合所有车型(实际上,它只能适合其中的少数车型)。

我们想到的策略是在列表页面的开头显示所有原装轮胎,并为其指定小于 100 的显示位置。所有其他轮胎(也适合该车型但不是原装轮胎)都分配了大于 100 的显示位置。因此,只需在列表页面上的管理员中获取配置的产品排名就足以通过检查排名是否小于 100 来显示图标。

我一直无法弄清楚如何获得产品在列表页面上的位置。重要的是,即使用户按位置以外的其他内容(例如名称、价格等)排序,我也应该能够读取位置。

有帮助吗?

解决方案

在我安装 Magento CE 1.8.1 时找到了解决方案。

  1. 在类别中,将可被 10 整除的显示位置分配给适合该类别的 OE 产品。
  2. 在文件中 app/design/{theme}/{sub-theme}/template/catalog/product/list.phtml 获取产品在类别中的位置: $_product->getCatIndexPosition().
  3. 检查检索到的值是否留下余数 0 当除以 10. 。如果是这样,请将水印图像应用到产品上,以指示原装轮胎。

关键部分是 $_product->getCatIndexPosition() 提供对产品在特定类别中的显示位置的访问的调用。

我通过更改排序设置(按名称、价格、可用性、位置等排序)和排序方向(升序和降序)对此进行了测试,并且该方法在所有情况下都运行良好。

许可以下: CC-BY-SA归因
scroll top