Artikel Freitextfelder (Attribute) in plugin anlegen

Hallo zusammen,

in meinem plugin, das ich gerade erstelle, brauche ich zusätzlich mehrere Artikelattributfelder, um dort wichtige zusätzliche Daten zu jedem Artikel vom Shopbetreiber speichern lassen zu können.
Grundsätzlich kann ich die ja über mysql-requests in der Tabelle ‚s_attribute_configuration‘ anlegen. In meiner Testumgebung existieren sie ja bereits, aber ich habe sie natürlich im Backend erstellen lassen. Könnte ich nun einfach die drei Einträge zu jedem Attribut bei meinem plugin in die Datenbank eintragen? Oder muss ich da noch mehr berücksichtigen?

Beste Grüße
Olli

@HolleWolle schrieb:

Hallo zusammen,

in meinem plugin, das ich gerade erstelle, brauche ich zusätzlich mehrere Artikelattributfelder, um dort wichtige zusätzliche Daten zu jedem Artikel vom Shopbetreiber speichern lassen zu können.
Grundsätzlich kann ich die ja über mysql-requests in der Tabelle ‘s_attribute_configuration’ anlegen. In meiner Testumgebung existieren sie ja bereits, aber ich habe sie natürlich im Backend erstellen lassen. Könnte ich nun einfach die drei Einträge zu jedem Attribut bei meinem plugin in die Datenbank eintragen? Oder muss ich da noch mehr berücksichtigen?

Beste Grüße
Olli

Hallo,

das steht alles ausführlich in den Shopware - Dokumentationen: Attribute system als auch im Entwickler-Handbuch (das du ja bereits erworben hast :wink: ) beschrieben - über SQL ist es auf jeden Fall der “falscheste” Weg, den man machen kann.

Beste Grüße

Sebastian

2 Likes

@sschreier schrieb:

Hallo,

das steht alles ausführlich in den Shopware - Dokumentationen: https://developers.shopware.com/developers-guide/attribute-system/#schema-operations-and-configuration als auch im Entwickler-Handbuch (das du ja bereits erworben hast ;) ) beschrieben - über SQL ist es auf jeden Fall der „falscheste“ Weg, den man machen kann.

Beste Grüße

Sebastian

Vielen Dank für die Antwort! Damit bin ich super weitergekommen, weil auch tatsächlich mal was aus den Dokus direkt auf mein Problem anwendbar und dazu auch noch verständlich war. Sehr gut, Schluss mit der Wurschtelei. Sogar die Deinstallation klappt und ich habe dadurch nun auch festgestellt, dass ich core-Bezeichnungen für die Attributfelder benutzt hatte und habe das auch gleich geändert. 

Beste Grüße
Olli

Blöde Frage: In der Doku steht zwar wie ich eine bestehendes Attribut ändern kann, aber da wird ja nur der Name und der Typ übergeben. Wie befülle ich das Attribut denn mit Inhalt? Dafür gibt es nur ein Beispiel mit einem Input Feld im Template… was aber wenn man im PluginCode direkt den Inhalte ändern möchte? Geht das nur über die DB?

Viele Grüße

>Wie befülle ich das Attribut denn mit Inhalt?

Das geht mit dem Shopware\Bundle\AttributeBundle\Service\DataPersister:

Persists the attribute data for a provided table and foreign key

Das data - Attribut muss ein Array aus Spaltenname => Wert sein.