我有几个可配置的产品(有许多与之相关的简单产品)。
通过分层导航浏览超级属性时,您可以过滤到所有具有(例如)size = medium,Color = Red的产品。
我已将简单产品设置为不可见并显示我的可配置产品,但是,当您选择可配置产品时,产品选项不会默认为已在分层导航中过滤的内容。
有没有办法在产品页面上预先选择相关的产品选项?
假设用户从列表页面中选择了过滤器size =“medium”color =“red”
现在,当用户在应用过滤器后从列表页面中选择可配置产品时,必须在产品详细信息页面上预先选择相应的值。
答案 0 :(得分:1)
没有现成的方法来做到这一点。当产品发出请求时,产品不知道分层导航状态。从理论上讲,您可以添加一些服务器端代码来执行此操作,但这可能会降低性能,因为您可能无法有效地使用缓存。
你可以在javascript的前端做点什么。将事件监听器添加到过滤导航中的链接,并将对象存储在本地存储中,例如,尺寸和颜色。
在产品页面上,您可以根据这些值设置可配置产品,方法是等待构建可配置产品选项,然后从本地存储加载选项对象,然后相应地更新可配置产品。然后,您需要触发事件,以便产品页面知道已选择了选项,并且可以执行相应更新价格等操作。
内部Magento使用具有数字ID的属性选项值。使用它们可能有点复杂,因此您可能需要使用一些逻辑来读取标签,例如'红色'代替例如'461'。
没有原型特定的方式使用本地存储,你不需要一些jquery层,正常的javascript应该足以存储/检索你的大小/颜色对象。
我发现以下文章是使用可配置产品下拉列表进行操作所需的先机: