我正在尝试找出是否有一种方法可以将基于位置的过滤集成到 Magento 目录和搜索页面中。
为了将以上内容放在上下文中,我的用例如下:产品具有纬度和经度属性,因为它们位于全国各地。我希望客户能够做的是根据与其所在位置相关的位置来过滤产品。
我已经成功地实现了自定义搜索页面来实现位置搜索,但是它缺少 Magento 中的所有其他过滤器/搜索功能。理想的情况是位置是一个动态计算的变量,但我不确定如何去做,或者它在 Magento 中是否可行。
提前感谢您的任何建议!
最佳答案
对于初学者,你可以尝试这样的事情:
- 创建一个产品属性
distance_from_customer
,默认值为0,可在分层导航中过滤 - 为事件
catalog_product_collection_load_after
创建一个观察者,这将在每次加载时根据客户的位置更改distance_from_customer
属性加载的集合产品系列(例如在类别 View 中) - 如果只有一个默认值 (0),则扩展分层导航以禁用基于
distance_from_customer
的排序/过滤
在此解决方案中,distance_from_customer
在数据库中将始终为 0,只会在前端显示之前在产品集合对象中更改,如果应用程序无法获取,则隐藏排序/过滤选项客户位置数据。
关于php - 在 Magento 中动态计算属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31704407/