在Magento中动态计算属性

Ant*_*ith 5 php geolocation magento

如果有办法将基于位置的过滤集成到Magento目录和搜索页面,我正在努力解决这个问题.

为了将上述内容放在上下文中,我的用例如下:产品具有纬度和经度属性,因为它们位于全国各地.我希望客户能够做的是按位置相对于他们自己的位置过滤产品.

我已成功实现了自定义搜索页面以实现位置搜索,但它缺少Magento中的所有其他过滤器/搜索功能.理想情况是该位置是一个动态计算的变量,但我不确定如何去做,或者它在Magento中是否可行.

在此先感谢您的任何建议!

bog*_*jov 2

对于初学者,你可以尝试这样的事情:

  1. 创建产品属性distance_from_customer,默认值0,可在分层导航中过滤
  2. 为事件创建一个观察者catalog_product_collection_load_after,它将在每次加载产品集合时根据客户的位置更改加载集合中distance_from_customer每个产品的属性(例如在类别视图中)
  3. distance_from_customer扩展分层导航以根据是否只有一个默认值 ( 0 )禁用排序/过滤

在此解决方案中,distance_from_customer数据库中的值始终为 0,仅在显示在前端之前在产品集合对象中进行更改,并且如果应用程序无法获取客户位置数据,则排序/过滤选项将被隐藏。