在Magento中动态计算属性


Calculate attribute dynamically in Magento

我试图找出是否有一种方法将基于位置的过滤集成到Magento目录&搜索页面。

将上述内容置于上下文中,我的用例如下:产品具有纬度和经度属性,因为它们位于全国各地。我希望客户能够做的是根据相对于他们自己的位置的位置来筛选产品。

我已经成功地实现了一个自定义搜索页面来实现位置搜索,但是它缺乏Magento中发现的所有其他过滤/搜索功能。理想的情况是位置是一个动态计算的变量,但我不确定如何做到这一点,或者如果它在Magento甚至是可行的。

提前感谢您的任何建议!

对于初学者,您可以尝试这样做:

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

在此解决方案中,distance_from_customer在数据库中始终为0,只有在显示在前端之前才会在产品收集对象中更改,并且如果应用程序未能获得客户位置数据,则排序/过滤选项将被隐藏。