Best Practice: Anlegen neuer Entities (konkret: document_type) in install oder in activate?

Hallo zusammen,

wir implementieren aktuell unseren Onlineshop mit Shopware 6. Dabei müssen wir ein paar Anpassungen vornehmen, u. a. müssen wir einen eigenen Dokumenttyp hinzufügen.

Ich bin dem How-To zum Hinzufügen eigener Mail-Templates via Plugin gefolgt (siehe: Shopware 6: Add a mail template in a plugin), um analog dazu einen neuen document_type bei der Plugin-Installation hinzuzufügen.

Das scheint soweit alles zu funktionieren. Mir ist aber beim Testen doch die Frage gekommen, was der konzeptionelle Unterschied zwischen Plugin-Installation und Plugin-Activation ist. Wenn ich meinen document_type bei der Installation hinzufüge, so wie es das Mail-Template-Plugin mit seinen Templates tut, müsste mein Dokumenttyp ja auch dann im Admin-Bereich auswählbar sein, wenn das Plugin noch gar nicht aktiviert ist. Das wäre ja für einen Anweder nachher überraschend, wenn das Plugin funktioniert, obwohl es eigentlich noch deaktiviert ist. Vor allem: werden die Services registriert, wenn das Plugin noch deaktiviert ist? (in diesem speziellen Fall also der zugehörige DocumentGenerator). Wenn nicht, könnte man zwar den Dokumenttypen auswählen, weil er ja bei der Installation hinzugefügt wurde, aber man würde beim Erstellen eines solchen Dokuments einen Fehler bekommen.

Was ist also die Best Practice in diesem Fall? Sollte ich meinen documen_type besser erst in der activate-Methode zur Datenbank hinzufügen? Das würde dann wiederum alle Installationsschritte hinfällig machen.

Vielen Dank für eure Hinweise!

Florian

Ich bin dafür Entities erst bei Activation anzulegen. Man würde sich doch wundern, wenn ein Plugin nicht aktiviert ist und man trotzdem entsprechende Tabellen findet oder?