Shopware 6:为客户群隐藏产品
Shopware 6: Hide product for customer group
我最好使用什么事件来向客户隐藏产品?
我想只向一个客户群展示一些产品。普通用户应该看不到它们。
我将从订阅
开始
ProductListingCriteriaEvent
这至少应该允许您过滤掉要在产品列表中隐藏的产品。
我相信这仍然可以显示详细信息页面,因此您也应该挂钩
ProductPageLoadedEvent
并检查您的客户群。
最后但同样重要的是,您可能会 运行 陷入缓存问题,即页面将为普通用户缓存,特定客户群将获得缓存结果,其中仍然不包括“他们的”产品。
我们运行到这里:
解决这个问题的方法可能是订阅 ProductListingRouteCacheKeyEvent
$event->addPart((string)($currentCustomerGroup ? 'null'));
此外,您可能需要注意在搜索中隐藏。
这个问题似乎已经用付费插件解决了(https://store.shopware.com/en/acris84338660411/block-products-for-customer-groups.html)——但如果你自己实现它,如果你在 GitHub 上发布你的解决方案会很酷: -)
这似乎在未来的 Shopware 6 版本中作为“动态访问”功能提供。
我最好使用什么事件来向客户隐藏产品?
我想只向一个客户群展示一些产品。普通用户应该看不到它们。
我将从订阅
开始ProductListingCriteriaEvent
这至少应该允许您过滤掉要在产品列表中隐藏的产品。
我相信这仍然可以显示详细信息页面,因此您也应该挂钩
ProductPageLoadedEvent
并检查您的客户群。
最后但同样重要的是,您可能会 运行 陷入缓存问题,即页面将为普通用户缓存,特定客户群将获得缓存结果,其中仍然不包括“他们的”产品。
我们运行到这里:
解决这个问题的方法可能是订阅 ProductListingRouteCacheKeyEvent
$event->addPart((string)($currentCustomerGroup ? 'null'));
此外,您可能需要注意在搜索中隐藏。
这个问题似乎已经用付费插件解决了(https://store.shopware.com/en/acris84338660411/block-products-for-customer-groups.html)——但如果你自己实现它,如果你在 GitHub 上发布你的解决方案会很酷: -)
这似乎在未来的 Shopware 6 版本中作为“动态访问”功能提供。