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 版本中作为“动态访问”功能提供。