Abweichende Artikeldaten Help

Entwicklung

Architektur in Kürze

Das Plugin bringt kein eigenes Datenmodell mit. Es hängt sich an den Artikel und prüft an vier Stellen dieselbe Frage: Darf dieser Kunde diesen Artikel haben?

CustomerAssignment::isAccessible() ▲ ┌───────────────────┼───────────────────┐ │ │ │ ProductSubscriber Collector CustomProductsRoute (Seite, Suche) (Warenkorb) (Store-API-Liste)

Die Regel selbst liegt in einer einzigen Klasse, Content\CustomProduct\CustomerAssignment. Seite und Warenkorb rufen sie beide auf — genau deshalb kann eine Variante, die die Seite ausliefert, im Warenkorb nicht plötzlich verschwinden.

Baustein

Klasse

Aufgabe

Zugriffsregel

Content\CustomProduct\CustomerAssignment

Beantwortet die Zugriffsfrage — die einzige Stelle mit der Logik

Seite & Suche

Subscriber\ProductSubscriber

Detailseite, Suche und Suggest; Umleitung auf eine zugängliche Variante

Warenkorb

Content\Cart\Collector

Entfernt fremde Positionen, korrigiert den Child-Count

Store-API

Content\Route\CustomProducts\CustomProductsRoute

Liste der eigenen Artikel

Cache

Content\Route\CustomProducts\CachedCustomProductsRoute

Dekoriert die Route, cacht pro Kunde

Artikelfelder

Content\Extension\ProductExtension

Laufzeitfelder direct_assignment und customer_assignment

Abhängigkeiten

Paket

Rolle

shopware/core, shopware/storefront, shopware/administration ^6.6

Plattform

leoparden/business-transactions: ^6.6

Basis für CMS-Element und Storefront-JS

leoparden/plugin-license-manager: ^1

Lizenzprüfung im Plugin-Lebenszyklus

@leoparden/plugin-tools-storefront

AbstractEntityListingPlugin für die Liste

@leoparden/business-transactions-storefront

Filter und Antwortverarbeitung

Die Kopplung an BusinessTransactions ist eng: Das Twig-Element erweitert @BusinessTransactions/storefront/element/transactions_base_element.html.twig, und das Storefront-Plugin importiert seoUrls sowie ProcessTransactionResponseFunction daraus.

Weiter im Detail

  • Backend — Zugriffsregel, Warenkorb, Store-API, Events, Cache

  • Frontend — CMS-Element, Storefront-Plugin, Administration

Last modified: 06 August 2026