在 Magento 中动态计算属性
Posted
技术标签:
【中文标题】在 Magento 中动态计算属性【英文标题】:Calculate attribute dynamically in Magento 【发布时间】:2015-07-29 15:11:11 【问题描述】:我正在尝试确定是否可以将基于位置的过滤集成到 Magento 目录和搜索页面中。
为了将上述内容放在上下文中,我的用例如下:产品具有纬度和经度属性,因为它们位于全国各地。我希望客户能够做的是按相对于他们自己位置的位置过滤产品。
我已经成功地实现了一个自定义搜索页面来实现位置搜索,但是它缺少 Magento 中的所有其他过滤器/搜索功能。理想的情况是位置是一个动态计算的变量,但是我不确定如何去做,或者它在 Magento 中是否可行。
提前感谢您的任何建议!
【问题讨论】:
【参考方案1】:对于初学者,您可以尝试以下方法:
-
创建产品属性
distance_from_customer
,默认值为0,可在分层导航中过滤
为事件catalog_product_collection_load_after
创建一个观察者,这将在每次加载产品集合时根据客户的位置更改每个产品的distance_from_customer
属性在加载的集合中(例如在类别视图中)
如果只有一个默认值 (0),则扩展分层导航以禁用基于 distance_from_customer
的排序/过滤
在此解决方案中,distance_from_customer
在数据库中始终为 0,只会在产品集合对象中更改,然后才会显示在前端,并且如果应用程序无法获取客户位置数据,则排序/过滤选项将被隐藏。
【讨论】:
这当然会有点昂贵,因为您必须每次加载产品集合两次而不是一次 + 重新计算每个产品的所有距离并应用它们。 谢谢,对我来说似乎很可靠,我会试一试并发布我想出的任何反馈!以上是关于在 Magento 中动态计算属性的主要内容,如果未能解决你的问题,请参考以下文章