Den Shop erweitern
Dieser Teil ist für Entwickler, die den Shop etwas tun lassen müssen, was er ab Werk nicht tut. Der Exponential-Shop
ist um austauschbare Handler herum gebaut: Eine Einstellung benennt einen Handler, der Kernel findet dessen Datei
über eine Namenskonvention und ruft ihn anstelle seines eigenen auf. Alles auf diesen Seiten gehört in eine eigene
Erweiterung, nie nach kernel/.
Inhalt
Alle Erweiterungspunkte
| Erweiterungspunkt | Ausgewählt durch | Datei in Ihrer Erweiterung | Seite |
|---|---|---|---|
| Versand-Handler | shop.ini [ShippingSettings] Handler, ExtensionDirectories[] | shippinghandlers/<name>shippinghandler.php | Eigener Versand-Handler |
| USt-Handler | shop.ini [VATSettings] Handler, ExtensionDirectories[] | vathandlers/<name>vathandler.php | Eigener USt-Handler |
| Zahlungs-Gateway | eine aktive Erweiterung oder paymentgateways.ini | classes/<extension>gateway.php | Entwicklung von Zahlungs-Gateways |
| Shop-Konto-Handler | shopaccount.ini [AccountSettings] Handler, [HandlerSettings] ExtensionRepositories[] | shopaccounthandlers/<name>shopaccounthandler.php | Shop-Konto-Handler |
| Handler für Warenkorbinformationen | shop.ini [BasketInfoSettings] Handler, ExtensionDirectories[] | basketinfohandlers/<name>basketinfohandler.php | Handler für Warenkorbinformationen und Bestellbestätigung |
| Handler für Bestellbestätigung | shopaccount.ini [ConfirmOrderSettings] Handler | confirmorderhandlers/<name>confirmorderhandler.php | ebenda |
| Wechselkurs-Handler | shop.ini [ExchangeRatesSettings] ExchangeRatesUpdateHandler, ExtensionDirectories[] | exchangeratehandlers/<name>/<name>handler.php | Wechselkurs-Handler |
| Preis-Datentyp | site.ini [ShopSettings] ProductDatatypeStringList[] | datatypes/<name>/<name>type.php | Eigene Preis-Datentypen |
| Workflow-Ereignis | workflow.ini [EventSettings] | workflowtypes/event/<name>/<name>type.php | Workflows an Shop-Triggern |
Das Handler-Muster
- Eine Einstellung benennt den Handler, zum Beispiel
Handler=mystore. - Der Kernel durchsucht die Repository-Verzeichnisse und die aufgeführten Erweiterungen nach
<name><suffix>.php. - Er bindet die Datei ein und instanziiert
<name><Suffix>, zum BeispielmystoreShippingHandler(Klassennamen in PHP unterscheiden nicht zwischen Groß- und Kleinschreibung, also funktioniert auchMyStoreShippingHandler). - Fehlt die Datei, wird ein Fehler in das Debug-Log geschrieben, und der Kernel fällt zurück oder tut nichts; er bricht die Anfrage nicht ab. Prüfen Sie das Log nach jeder Änderung.
Das RAD-Werkzeug Setup > RAD hat einen Handler-Assistenten (setup/handlerextension/<kind>) mit Rezepten für
Zahlungs-Gateways, USt-, Versand-, Warenkorbinformations- und Wechselkurs-Handler; er schreibt die Klasse, die
Einstellung und eine Erweiterung drumherum (Erweiterungen).
Ein vom Assistenten erzeugtes Zahlungs-Gateway wird nach extension/<name>/paymentgateways/<alias>/classes/<alias>gateway.php
geschrieben, den Pfad, den der Gateway-Loader über paymentgateways.ini [PaymentGatewaySettings] GatewaysDirectories[]
liest. Ein vor 6.0.15 erzeugtes Gateway liegt eine Ebene höher und wird nicht geladen: Verschieben Sie es, wie der
Hinweis zu den RAD-Erweiterungspunkten erklärt.
Paketierung
- Eine Erweiterung je Shop oder je Integration, zum Beispiel
mystore_shop, mit eigenensettings/*.ini.append.php(Als Erweiterung paketieren). - Erzeugen Sie die Autoloads nach dem Hinzufügen von Klassen neu (
php bin/php/ezpgenerateautoloads.php -e) und prüfen Sie, dass jede Klasse lädt (php bin/php/checkclasses.php --quiet-ok). - Halten Sie Zugangsdaten von Anbietern aus der Erweiterung heraus: Lesen Sie sie aus
settings/override/(Umgebungseinstellungen und Geheimnisse). - Wenn die Erweiterung anderen nützt, überlegen Sie, sie zurückzugeben.
Eine Erweiterung des Shops testen
- Unit-Tests für Berechnungen (Versand, Umsatzsteuer) ohne Datenbank: PHPUnit-Tests ohne Datenbank.
- Eine vollständige Testbestellung für jeden Pfad, den die Erweiterung ändert: Einen Shop testen.
- Nach dem Ausrollen „So funktioniert Ihr Shop“ im Shop-Dashboard: Es nennt die wirksamen Handler und Workflows.
Verwandte Seiten
- Pfad für Entwickler
- Aufbau einer Erweiterung
- Einstellungen und INI-Dateien
- Freie Dokumentation: diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.