Installation für Agenturen
Diese Anleitung richtet sich ausschließlich an Agenturen und technische Shop-Administratoren mit Datei-, Composer-, Konsolen- und Datenbankzugriff. Einstellungen und tägliche Abläufe für Shop-Betreiber sind unter Bedienung für Shop-Betreiber beschrieben.
Paket passend zur OXID-Hauptversion wählen
Verwenden Sie ausschließlich das zur Shop-Hauptversion gehörende Paket:
Shop |
Ausgabe |
Ziel |
|---|---|---|
OXID eShop 7 ab 7.1 |
Twig |
|
OXID eShop 6 ab 6.1 |
Smarty |
|
Warnung
Die OXID-6- und OXID-7-Pakete sind nicht austauschbar. Sichern Sie vor
Installation und Update mindestens die Projekt-composer.json, die
Shopdatenbank, die OXID-Konfiguration und den vorhandenen Modulordner.
Voraussetzungen
Prüfen Sie vor der Installation:
Das OXID-7-Paket verlangt PHP ab Version 8.0; maßgeblich bleiben die höheren Anforderungen der eingesetzten OXID-Version.
xRechnung benötigt die horstoeko-ZUGFeRD-Bibliotheken. Deren Einbindung unterscheidet sich zwischen OXID 7 (im Shopprojekt) und OXID 6 (außerhalb des Shopprojekts) – siehe die jeweiligen Abschnitte.
Ein vollständiges Datenbankbackup und ein Wiederherstellungsweg wurden geprüft.
Der Webserver-PHP-Prozess benötigt Schreibrechte auf das Compile-Verzeichnis.
Optional: Für die Einbettung der XML-Rechnung in PDF-Rechnungen muss das Modul Documents installiert und aktiv sein.
OXID 7 installieren
1. Moduldateien kopieren
Kopieren Sie das vollständige Twig-Paket nach:
vendor/ecs/xrechnung
Prüfen Sie danach insbesondere metadata.php, composer.json,
services.yaml, assets, src und views des ausgelieferten
OXID-7-Pakets.
2. Namespace in der Projekt-composer.json registrieren
Ergänzen Sie in der composer.json des Shop-Hauptverzeichnisses unter
autoload / psr-4:
"Ecs\\xRechnung\\": "vendor/ecs/xrechnung/src/"
Vollständiges Beispiel mit einem vorhandenen Namespace:
{
"autoload": {
"psr-4": {
"Vorhandener\\Namespace\\": "vendor/vorhandener/anbieter/modul/src/",
"Ecs\\xRechnung\\": "vendor/ecs/xrechnung/src/"
}
}
}
Der Eintrag gehört in die Projekt-composer.json, nicht in die Datei des
Moduls. Vorhandene Namespaces bleiben erhalten.
3. ZUGFeRD-Bibliotheken installieren
xRechnung benötigt die horstoeko-Pakete. Installieren Sie sie im Hauptverzeichnis des Shops:
composer require horstoeko/zugferd:^1.0 horstoeko/zugferdublbridge:^1.0 horstoeko/zugferdvisualizer:^1.0
Dadurch werden automatisch auch Unterabhängigkeiten wie dompdf/dompdf,
mpdf/mpdf und psr/log mitinstalliert.
4. Autoloader und Modul installieren
Führen Sie im Shop-Hauptverzeichnis aus:
composer dump-autoload
vendor/bin/oe-console oe:module:install vendor/ecs/xrechnung
vendor/bin/oe-console oe:module:activate ecs_xrechnung
vendor/bin/oe-console oe:cache:clear
Alternativ kann die Aktivierung nach oe:module:install im Admin unter
erfolgen.
5. OXID-7-Installation kontrollieren
Prüfen Sie mindestens:
Das Modul ist im Admin sichtbar und aktiv; die Moduleinstellungen zeigen die Gruppe „Allgemein“.
In der Bestellübersicht einer Bestellung erscheint der Block „X-Rechnung“ mit den Feldern und den Schaltflächen Ansehen, Versenden und Herunterladen.
Der Shopcache wurde geleert.
OXID 6 installieren
1. Moduldateien kopieren
Kopieren Sie das vollständige Smarty-Paket nach:
source/modules/ecs/xRechnung
Prüfen Sie mindestens metadata.php, composer.json, Controller,
Model, views und translations. Die Klassen des Smarty-Pakets
liegen direkt im Modulordner, nicht in einem src-Unterverzeichnis.
2. ZUGFeRD-Bibliotheken außerhalb des Shopprojekts installieren
Achtung
Unter OXID 6 ist die Einbindung der horstoeko-Pakete im Shopprojekt nicht möglich (Versionskonflikt mit der dortigen Symfony-Version). Sie werden deshalb in einem eigenen Ordner neben dem Shopprojekt installiert.
Wechseln Sie per SSH in das Verzeichnis, in dem auch der Shopprojekt-
Ordner liegt, und erstellen Sie dort den Ordner zugferd:
www
├── zugferd
├── Shopprojekt-Ordner
│ ├── source
│ ├── vendor
mkdir zugferd
cd zugferd
composer require horstoeko/zugferd horstoeko/zugferdublbridge horstoeko/zugferdvisualizer
Das Modul lädt den ZUGFeRD-Autoloader aus diesem Schwesterordner. Er muss dauerhaft bestehen bleiben und darf nicht verschoben werden.
3. Namespace in der Projekt-composer.json registrieren
Ergänzen Sie in der composer.json des Shop-Hauptverzeichnisses unter
autoload / psr-4:
"Ecs\\xRechnung\\": "./source/modules/ecs/xRechnung/"
Vollständiges Beispiel:
{
"autoload": {
"psr-4": {
"Vorhandener\\Namespace\\": "./source/modules/vorhandenes/modul/",
"Ecs\\xRechnung\\": "./source/modules/ecs/xRechnung/"
}
}
}
Alle vorhandenen Namespaces bleiben erhalten. Ein zusätzlicher Eintrag unter
require ist für die manuelle Installation nicht notwendig.
4. Autoloader und Modulkonfiguration installieren
Führen Sie im Shop-Hauptverzeichnis aus:
composer dump-autoload
vendor/bin/oe-console oe:module:install-configuration source/modules/ecs/xRechnung
vendor/bin/oe-console oe:module:activate ecs_xrechnung
Leeren Sie anschließend die temporären Shopdateien beziehungsweise den OXID-Cache mit dem in der jeweiligen OXID-6-Umgebung vorgesehenen Verfahren.
5. OXID-6-Installation kontrollieren
Prüfen Sie mindestens:
Modul und Moduleinstellungen sind im Admin sichtbar.
Der „X-Rechnung“-Block erscheint in der Bestellübersicht und eine Testausgabe (Ansehen/Herunterladen) funktioniert ohne Fehler.
Die OXID-Views wurden aktualisiert und die temporären Shopdateien geleert.
Datenbankänderung und Aktivierungsereignisse
Bei der Aktivierung legt das Modul zusätzliche Felder an:
ALTER TABLE `oxuser` ADD `ECSBILLEMAIL` varchar(255) NOT NULL;
ALTER TABLE `oxorder` ADD `ECSBILLEMAIL` varchar(255) NOT NULL;
ALTER TABLE `oxuser` ADD `ECSLEITWEGID` varchar(255) NOT NULL;
ALTER TABLE `oxorder` ADD `ECSLEITWEGID` varchar(255) NOT NULL;
ALTER TABLE `oxorder` ADD `ECSBILLPAYTO` varchar(255) NOT NULL;
ALTER TABLE `oxorder` ADD `ECSBILLXNOTE` varchar(255) NOT NULL;
Zusätzlich leert die Aktivierung das Compile-Verzeichnis und regeneriert
die Datenbank-Views. Bei der Deaktivierung entfernt das Modul seine
Template-Block-Einträge aus oxtplblocks und leert den Cache erneut:
DELETE FROM oxtplblocks WHERE OXMODULE = 'ecs_xrechnung';
Die Felder speichern pro Kunde beziehungsweise Bestellung die Rechnungseingangs-E-Mail, die Leitweg-ID, das Fälligkeitsdatum und eine freie Rechnungsnotiz.
Modul aktualisieren
OXID 7 aktualisieren
Deaktivieren Sie das Modul für den Dateiaustausch. Ersetzen Sie den
vollständigen Ordner vendor/ecs/xrechnung durch das aktuelle
OXID-7-/Twig-Paket. Führen Sie danach aus:
composer dump-autoload
vendor/bin/oe-console oe:module:install vendor/ecs/xrechnung
vendor/bin/oe-console oe:module:activate ecs_xrechnung
vendor/bin/oe-console oe:cache:clear
OXID 6 aktualisieren
Deaktivieren Sie das Modul und ersetzen Sie
source/modules/ecs/xRechnung vollständig durch das aktuelle
OXID-6-/Smarty-Paket. Führen Sie danach aus:
composer dump-autoload
vendor/bin/oe-console oe:module:install-configuration source/modules/ecs/xRechnung
vendor/bin/oe-console oe:module:activate ecs_xrechnung
Leeren Sie anschließend die temporären Shopdateien.
Nach jedem Update
Prüfen Sie die Moduleinstellungen; neue Paketvorgaben setzen vorhandene Betreiberwerte nicht automatisch zurück.
Erzeugen Sie eine Test-X-Rechnung (Ansehen und Herunterladen) und validieren Sie die XML-Datei.
Unter OXID 6: Prüfen Sie, dass der
zugferd-Schwesterordner unverändert erreichbar ist.
Datenaufbewahrung bei Deaktivierung
Eine normale Deaktivierung entfernt den „X-Rechnung“-Block aus der Bestellübersicht. Die angelegten Datenbankfelder und ihre Inhalte (Leitweg-ID, Rechnungseingangs-E-Mail, Fälligkeit, Notiz) bleiben erhalten und werden bei einer erneuten Aktivierung weiterverwendet. Bereits vergebene Rechnungsnummern und gesendete E-Mails bleiben selbstverständlich bestehen. Es gibt keine automatische Bereinigung.