在Magento中动态计算属性

时间:2015-07-29 15:11:11

标签: php magento geolocation

如果有办法将基于位置的过滤集成到Magento目录中,我正在尝试解决。搜索页面。

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

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

提前感谢任何建议!

1 个答案:

答案 0 :(得分:2)

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

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

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