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:

Paketauswahl

Shop

Ausgabe

Ziel

OXID eShop 7 ab 7.1

Twig

vendor/ecs/mailcontact

OXID eShop 6 ab 6.1

Smarty

source/modules/ecs/MailContact

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.

  • Ein vollständiges Datenbankbackup und ein Wiederherstellungsweg wurden geprüft.

  • Der Webserver-PHP-Prozess benötigt Schreibrechte auf das Compile-Verzeichnis.

  • Der Versand nutzt die normale E-Mail-Konfiguration des Shops; prüfen Sie, dass der Shop zuverlässig E-Mails versendet.

  • Die Vorlagen unterscheiden sich je Hauptversion: OXID 7 verwendet Twig-Platzhalter ({{ order.… }}), OXID 6 Smarty-Platzhalter ([{ $order->… }]). Vorlagen sind nicht zwischen den Versionen übertragbar.

OXID 7 installieren

1. Moduldateien kopieren

Kopieren Sie das vollständige Twig-Paket nach:

vendor/ecs/mailcontact

Prüfen Sie danach insbesondere metadata.php, composer.json, services.yaml, menu.xml, assets, src, views und out 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\\MailContact\\": "vendor/ecs/mailcontact/src/"

Vollständiges Beispiel mit einem vorhandenen Namespace:

{
    "autoload": {
        "psr-4": {
            "Vorhandener\\Namespace\\": "vendor/vorhandener/anbieter/modul/src/",
            "Ecs\\MailContact\\": "vendor/ecs/mailcontact/src/"
        }
    }
}

Der Eintrag gehört in die Projekt-composer.json, nicht in die Datei des Moduls. Vorhandene Namespaces bleiben erhalten. Ein zusätzlicher Eintrag unter require für das Modul selbst ist bei dieser manuellen Installation nicht notwendig.

3. Autoloader und Modul installieren

Führen Sie im Shop-Hauptverzeichnis aus:

composer dump-autoload
vendor/bin/oe-console oe:module:install vendor/ecs/mailcontact
vendor/bin/oe-console oe:module:activate ecs_mailcontact
vendor/bin/oe-console oe:cache:clear

Alternativ kann die Aktivierung nach oe:module:install im Admin unter Erweiterungen ‣ Module erfolgen.

4. OXID-7-Installation kontrollieren

Prüfen Sie mindestens:

  • Das Modul ist im Admin sichtbar und aktiv; die Moduleinstellungen zeigen die Gruppe „Grundeinstellungen“.

  • In einer Bestellung erscheint der Tab „Email“ mit Editor, Vorlagenauswahl und den vier Standardvorlagen.

  • Der Shopcache wurde geleert.

OXID 6 installieren

1. Moduldateien kopieren

Kopieren Sie das vollständige Smarty-Paket nach:

source/modules/ecs/MailContact

Prüfen Sie mindestens metadata.php, composer.json, menu.xml, Controller, Core, views und out. Die Klassen des Smarty-Pakets liegen direkt im Modulordner, nicht in einem src-Unterverzeichnis.

2. Namespace in der Projekt-composer.json registrieren

Ergänzen Sie in der composer.json des Shop-Hauptverzeichnisses unter autoload / psr-4:

"Ecs\\MailContact\\": "./source/modules/ecs/MailContact/"

Vollständiges Beispiel:

{
    "autoload": {
        "psr-4": {
            "Vorhandener\\Namespace\\": "./source/modules/vorhandenes/modul/",
            "Ecs\\MailContact\\": "./source/modules/ecs/MailContact/"
        }
    }
}

Alle vorhandenen Namespaces bleiben erhalten. Ein zusätzlicher Eintrag unter require ist für die manuelle Installation nicht notwendig.

3. 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/MailContact
vendor/bin/oe-console oe:module:activate ecs_mailcontact

Leeren Sie anschließend die temporären Shopdateien beziehungsweise den OXID-Cache mit dem in der jeweiligen OXID-6-Umgebung vorgesehenen Verfahren.

4. OXID-6-Installation kontrollieren

Prüfen Sie mindestens:

  • Modul und Moduleinstellungen sind im Admin sichtbar.

  • Der „Email“-Tab erscheint in der Bestellung und die Vorlagen werden geladen.

  • Die OXID-Views wurden aktualisiert und die temporären Shopdateien geleert.

Datenbankänderung und Aktivierungsereignisse

Bei der Aktivierung legt das Modul die Tabelle ecs_mailcontact an und befüllt sie mit vier Standardvorlagen (Statusupdate, Erinnerung Vorkasse, Erinnerung Rechnung, Zahlungsbestätigung). Ältere Modulstände ohne Absenderspalte werden über ein Update-Skript um das Feld FROM ergänzt:

CREATE TABLE IF NOT EXISTS `ecs_mailcontact` (
  `OXID` varchar(32) NOT NULL,
  `TITLE` varchar(32) NOT NULL,
  `FROM` varchar(255) NOT NULL,
  `SUBJECT` varchar(255) NOT NULL,
  `TEXT` text NOT NULL,
  `TIMESTAMP` datetime NOT NULL,
  PRIMARY KEY (`OXID`)
) ENGINE=InnoDB;

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:

DELETE FROM oxtplblocks WHERE OXMODULE = 'ecs_mailcontact';

Ist die Moduleinstellung „letzte Änderungen bei Deaktivierung löschen“ aktiv, entfernt die Deaktivierung zusätzlich die zuletzt gespeicherte Vorlage und setzt die Option automatisch zurück – eine Notfall-Funktion, falls ein fehlerhaftes Template den Email-Tab blockiert.

Modul aktualisieren

OXID 7 aktualisieren

Deaktivieren Sie das Modul für den Dateiaustausch. Ersetzen Sie den vollständigen Ordner vendor/ecs/mailcontact durch das aktuelle OXID-7-/Twig-Paket. Führen Sie danach aus:

composer dump-autoload
vendor/bin/oe-console oe:module:install vendor/ecs/mailcontact
vendor/bin/oe-console oe:module:activate ecs_mailcontact
vendor/bin/oe-console oe:cache:clear

OXID 6 aktualisieren

Deaktivieren Sie das Modul und ersetzen Sie source/modules/ecs/MailContact 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/MailContact
vendor/bin/oe-console oe:module:activate ecs_mailcontact

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.

  • Öffnen Sie den Email-Tab an einer Testbestellung, laden Sie eine Vorlage und senden Sie eine Test-E-Mail an eine eigene Adresse.

Datenaufbewahrung bei Deaktivierung

Eine normale Deaktivierung entfernt den Email-Tab aus der Bestellung. Die Tabelle ecs_mailcontact mit allen gespeicherten Vorlagen bleibt erhalten und steht nach einer erneuten Aktivierung wieder zur Verfügung. Bereits versendete E-Mails und ihre Vermerke in der Benutzerhistorie bleiben selbstverständlich bestehen. Es gibt keine automatische Bereinigung – die Tabelle kann bei einer endgültigen Entfernung manuell gelöscht werden.