首页 > 解决方案 > Shopware 6:为客户群隐藏产品

问题描述

我最好使用什么事件来向客户隐藏产品?

我想只向一个客户群展示一些产品。普通用户应该看不到它们。

标签: shopware

解决方案


我会从订阅开始

ProductListingCriteriaEvent

这至少应该允许您过滤掉要隐藏的产品列表。

我相信这仍然可以显示详细信息页面,所以你也应该挂钩

ProductPageLoadedEvent

并检查您的客户群。

最后但并非最不重要的一点是,您可能会遇到缓存问题,即页面将为普通用户缓存,而特定客户群将获得缓存结果,但仍然不包括“他们的”产品。

我们在这里遇到了:Shopware 6:更改 URL 参数在 prod 模式下返回相同的结果

解决方案可能会订阅ProductListingRouteCacheKeyEvent

$event->addPart((string)($currentCustomerGroup ? 'null'));

此外,您可能需要注意隐藏搜索。

这个问题似乎已经通过付费插件(https://store.shopware.com/en/acris84338660411/block-products-for-customer-groups.html)解决了——但如果你自己实现它,它如果你在 GitHub 上发布你的解决方案会很酷:-)


推荐阅读