ich wollte gerade in der neusten Shopware Version über die Plugin Bootstrap.php ein neues Artikel-Attributfeld hinzufügen.
Dieses soll Boolean sein, also die Checkbox. Dabei bekomme ich nur eine Fehlermeldung im Backend, die sagt “Unable to install PluginName, an unknown error occured.”.
Also die eigentlich garnichts aussagt. Ich habe mich dann langsam an den Fehler rangetastet und das Bool Feld als Quelle ausgemacht.
Das knallt direkt mal. Danach habe ich das ganze mal über das Backend angelegt um zu prüfen, wie es in der Datenbank hinterlegt wird. Zu meinem erstauen, garnicht.
Lediglich ein Eintrag in der s_core_engine_elements ist gesetzt wurden. Jetzt die drei ??? wo zum Teufel speichert er die Information wenn ich bei einem Artikel das Flagfeld setze.
Und wie kann ich die Checkbox über meine Bootstrap einfügen?
Ja das wird so nicht gehen ohne umfangreiche Core-Anpassungen.
Im Core von Shopware wird an vielen Stellen explizit auf den type geprüft. Und an manchen Stellen wird das dann supported und an anderen nicht. Nicht mal ein tinyint(1) o.ä. kannst du hier nehmen. Das sollte einfach ein int sein, dann geht es. Ist zwar Verschwendung aber wie gesagt ist die Überprüfung einfach nicht zentralisiert.
Hier bei den Artikeln schießt an der Stelle schon mal die Merfachauswahl dazwischen die den Type nicht unterstützt (soweit ich das noch im Kopf hab) - während weiter vorher der Type explizit in der Liste der unterstützten Feld-Typen für Artikel jedoch auftaucht.
Ich würde einfach ein int nehmen und das so hinnehmen
wird verwendet. Ich kann es auch in der Datenbank setzen.
Im Backend bleibt das Feld ungecheckt, im Frontend, also im Template bekomme ich den korrekten Wert der Datenbank, also ein true.
Cache habe ich schon geleert, hilft nicht. Komisch.