Vorgangsanzeige Vertretererweiterung (Büro+) 1.1.15 Help

Entwickler

Diese Seite beschreibt den Aufbau des Plugins LeopardenBusinessSalesRepresentative und seine Abhängigkeit zu LeopardenBusinessTransactions. Die Details stehen unter Backend (Server-Seite) und Frontend (Templates und JavaScript).

Aufbau

Pfad

Aufgabe

src/LeopardenBusinessSalesRepresentative.php

Plugin-Klasse: legt in postInstall() das Zusatzfeldset an, räumt in uninstall() auf

src/Subscriber/TransactionCriteriaSubscriber.php

Erweitert die Suchkriterien beider Routen des Basis-Plugins

src/Resources/config/services.xml

Registriert den Subscriber mit dem Tag kernel.event_subscriber

src/Resources/views/storefront/element/cms-element-transactions.html.twig

Erweitert die Vorgangsliste

src/Resources/views/storefront/element/cms-element-articles-on-order.html.twig

Erweitert die Positionsliste

src/Resources/app/storefront/src/main.ts

Ergänzt die Listen-Anfrage um die Assoziation customer

src/Resources/snippet/de_DE, src/Resources/snippet/en_GB

Ein Storefront-Snippet

Das Plugin enthält keine Migrationen, keine Entitäten, keine Routen, keine Konfiguration und kein Administrations-Bundle. Konstanten der Plugin-Klasse:

Konstante

Wert

Verwendung

TECHNICAL_NAME

leoparden_business_sales_representative

Name des Feldsets

REPRESENTATIVE_FIELD_NAME

leoparden_business_sales_representative_field

Name des Zusatzfelds; Schlüssel in customFields

ENTITY_NAME

leoparden_business_sales_representative_order_extra

Im Plugin-Code nicht verwendet

Abhängigkeit von business-transactions

Die composer.json verlangt leoparden/business-transactions in ~6.7.0. Das Plugin greift an folgenden Stellen in das Basis-Plugin ein:

Stelle im Basis-Plugin

Wie dieses Plugin sie nutzt

Leoparden\BusinessTransactions\Content\Route\Transactions\TransactionCriteriaEvent

Wird von TransactionsRoute::load() ausgelöst, nachdem der Kundenfilter gesetzt wurde. Der Subscriber ersetzt den Filter

Leoparden\BusinessTransactions\Content\Route\TransactionItems\TransactionItemsCriteriaEvent

Dasselbe für TransactionItemsRoute::load()

Leoparden\BusinessTransactions\Content\Transaction\TransactionDefinition

Die Entität leoparden_business_transactions_transaction (ENTITY_NAME) erhält das Zusatzfeldset; sie hat die Felder customerId und customFields und die Assoziation customer

Twig-Templates storefront/element/cms-element-transactions.html.twig und cms-element-articles-on-order.html.twig

Werden mit sw_extends erweitert; überschrieben werden die Blöcke transaction_number, header_shipping_date und body_shipping_date

Attribut data-transactions am Listen-Element

main.ts hängt sich an das Ereignis onBeforeFetch dieses Elements

Beide Events tragen Criteria und SalesChannelContext und erlauben, die Kriterien mit setCriteria() zu ersetzen. Die Routen setzen vor dem Ereignis EqualsFilter('customerId', …) beziehungsweise EqualsFilter('transaction.customerId', …) auf den angemeldeten Kunden; genau diese Filter sucht der Subscriber.

Tests

Das Plugin bringt in src/Test/ unter anderem BusinessSalesRepresentativeTest (beide Routen mit und ohne Zuweisung), UninstallTest (Deinstallation, Behalten der Nutzerdaten, erneute Installation) und DocsStructureTest (Struktur dieser Dokumentation). Aufruf über composer test im Plugin-Verzeichnis.

Last modified: 08 November 2026