Shopware 6中如何获取产品详情页变体的SEO URL?
Shopware 6变体SEO URL获取问题解答
是的,通过Subscriber添加数据确实是必要的,原因如下:
- Shopware 6里,产品变体的SEO URL没办法直接靠变体ID生成,因为
seoUrl函数依赖的上下文数据中,默认不会自动包含所有变体的完整路由信息。 - 产品详情页默认只会加载当前主产品的SEO路由数据,变体的相关路由元数据不会自动注入到Twig模板的可用变量池里。
具体可以这么做:
- 新建一个Subscriber,监听
ProductDetailPageLoadedEvent事件 - 在事件处理方法里,获取当前产品的所有变体
- 为每个变体生成对应的SEO URL,把这些URL存入事件的
page数据对象中 - 在
configurator.html.twig里直接调用存入的变体SEO URL数据,而不是硬传变体ID给seoUrl函数
另外要注意:你之前把选项ID当作productId传入seoUrl函数的做法本身就不对——选项ID和变体的productId是两个不同的东西,变体有自己独立的productId,得先通过选项ID关联到对应的变体productId,再配合正确的路由上下文才能生成有效URL。
内容的提问来源于stack exchange,提问作者Gitte Wange Olrik
相关产品推荐
相关产品推荐

