Produkte nur anzeigen, wenn sich ein Kunde in einer bestimmten Kundengruppe befindet

Hallo, ist es möglich, dass bestimmte Produkte nur dann angezeigt werden, wenn sich ein Kunde in einer spezifischen Kundengruppe befindet, ohne ein Plugin zu nutzen? Eine Regel kann ich erstellen, allerdings vermisse ich die Zuweisung dieser Regel an ein ein bestimmtes Produkt. Nur im Reiter Advanced Pricing kann ich diese Regel zuweisen, dass ist aber nicht das, was ich will.

Nein, das ist ohne Plugin nicht möglich.

Viele Grüße

Habe ich mir schon gedacht. So müsste es prinzipiell klappen. Ein CustomField für die Kundengruppen in Form einer Multi Drop Down Box vorausgesetzt. Das lässt sich über das Backend schnell anlegen…

<?php declare(strict_types=1);
namespace YourPlugin\Storefront\Subscriber;

use Shopware\Core\Content\Product\Events\ProductListingCriteriaEvent;
use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\EqualsAnyFilter;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class ProductListingSubscriber implements EventSubscriberInterface
{
    public static function getSubscribedEvents(): array
    {
        return [
            ProductListingCriteriaEvent::class => 'handleListing'
        ];
    }

    public function handleListing(ProductListingCriteriaEvent $event): void
    {
        $context = $event->getContext();

        // Überprüfung, ob ein Kunde eingeloggt ist
        if (!$context->getCustomer()) {
            return;
        }

        // Zugreifen auf das benutzerdefinierte Feld 'customGroupProductAssigning' der Kundengruppe
        $customerGroup = $context->getCurrentCustomerGroup();
		if(!is_null($customerGroup)){
			$productIds = $customerGroup->getCustomFields()['customGroupProductAssigning'];
			if ($productIds && count($prductIds) > 0) {
				$event->getCriteria()->addFilter(new EqualsAnyFilter('product.id', $productIds));
			}
		}
    }
}

Produkte für Kundengruppen sperren | Shopware Store oder Produkte nur für definierte Kundengruppen freigeben | Shopware Store