Artikel Varianten Optionen erweitern

Hallo zusammen, ich bin dabei, die Varianten Optionen um ein zusätzliches Feld zu erweitern. [img=http://s13.postimg.org/ijverkkf7/Unbenannt.jpg] Unter “Optionenname” soll ein weiteres Feld entstehen. Das funktioniert auch bereits, ich habe “Shopware.apps.Article.view.variant.configurator.OptionEdit” überschrieben und in “createItems” das neue Feld definiert. Den Block “backend/article/model/configurator_option/fields” habe ich auch überschrieben. Das Feld wir damit angezeigt. Jetzt fehlt offensichtlich noch ein Schritt, um den Wert im Feld auch zu speichern. Was muss ich dazu machen? Gibt es dazu eine Dokumentation? Danke euch und viele Grüße

Einige Leute haben sich den Thread angeschaut - keine Antwort. Heißt das, niemand weiß es oder ist es so trivial, dass niemand antworten möchte? Vermutlich ist Lösung nicht auf die Varianten beschränkt sondern funktioniert überall gleich?

[quote=“cube1893”]Einige Leute haben sich den Thread angeschaut - keine Antwort. Heißt das, niemand weiß es oder ist es so trivial, dass niemand antworten möchte? Vermutlich ist Lösung nicht auf die Varianten beschränkt sondern funktioniert überall gleich?[/quote] Hallo, oft ist es für die Leute auch einfach zu helfen, wenn du auch den bisherigen Code hier veröffentlichst, um eventuelle Fehler erkennen zu können oder Funktionen zu ergänzen. Ist denn überhaupt ein Datenbankfeld für das neue Feld vorhanden? Ein gutes Beispiel ist auf jeden Fall das hier: http://community.shopware.com/Schuhgr%C … _1052.html . Beste Grüße Sebastian

Hallo Sebastian, danke für deine Antwort. Das Datenbankfeld ist vorhanden, ich habe es allerdings händisch per ALTER TABLE s\_article\_configurator\_options ADD dwVariantsLink VARCHAR(255); eingefügt. Das ist vermutlich nicht ganz richtig. Danke für dein Beispiel mit den Schuhgrößern-Erweiterungen. Das Problem ist hier, dass ich kein Attribut am Artikel einfügen muss, sondern bei den Varianten-Optionen. Wenn ich folgenden Code aufrufe: $this-\>Application()-\>Models()-\>addAttribute( 's\_article\_configurator\_options', 'dw', 'variantsLink', 'varchar(255)', true, null ); $this-\>Application()-\>Models()-\>generateAttributeModels(array( 's\_article\_configurator\_options' )); kommt die Meldung, dass die Tabelle keine Attribut-Tabelle ist. Ist das schon die Lösung? Welche Tabelle kann ich in meinem Fall verwenden?

Hat niemand eine Idee? Also offensichtlich gibt es keine passende Attribut-Tabelle für meinen Fall. Wie kann ich in diesem Fall das Model erweitern?

Die Frage anders formuliert: Wie erweitere ich eine Datenbank-Tabelle mit dazugehörigem Modell, wenn es für das zu erweiternde Model keine Attribut-Tabelle gibt? Danke euch.

[quote=„cube1893“]Hallo Sebastian, danke für deine Antwort. Das Datenbankfeld ist vorhanden, ich habe es allerdings händisch per ALTER TABLE s\_article\_configurator\_options ADD dwVariantsLink VARCHAR(255); eingefügt. Das ist vermutlich nicht ganz richtig. Danke für dein Beispiel mit den Schuhgrößern-Erweiterungen. Das Problem ist hier, dass ich kein Attribut am Artikel einfügen muss, sondern bei den Varianten-Optionen. Wenn ich folgenden Code aufrufe: $this-\>Application()-\>Models()-\>addAttribute( 's\_article\_configurator\_options', 'dw', 'variantsLink', 'varchar(255)', true, null ); $this-\>Application()-\>Models()-\>generateAttributeModels(array( 's\_article\_configurator\_options' )); kommt die Meldung, dass die Tabelle keine Attribut-Tabelle ist. Ist das schon die Lösung? Welche Tabelle kann ich in meinem Fall verwenden?[/quote] Hallo, du kannst natürlich nicht einfach ein Feld über ALTER TABLE ADD hinzufügen, da dieses dann ja nicht im dazugehörigen Model bekannt ist und somit auf diesem Wege dann auf das Feld auch nirgends zugegriffen werden kann. Natürlich müsste die Tabelle, die du mit addAttribute erweitern möchtest, auch eine attribute-Tabelle haben, sonst funktioniert dies nicht (s_article_configurator_options dürfte keine haben). Alternativ müsstest oder könntest du dir ja deinen eigenen Controller und Model erstellen. Beste Grüße Sebastian

1 „Gefällt mir“

Hallo Sebastian, danke soweit. D.h. es gibt keine Möglichkeit, das zu den Options gehörende Model zu überschreiben um dort ein zusätzliches Feld einzufügen? Ich kenne das so aus Magento, daher die Frage. Die Variante mit eigenem Model und Controller ist natürlich möglich aber ich hatte angenommen, dass es einen besseren Weg gibt. Viele Grüße

Hallo cube1893,

hast du schon eine Möglichkeit gefunden? Habe das selbe Problem und wäre hier an einer Lösung interessiert. Kannst du mir vielleicht auch einmal zeigen wie du genau das Feld im Backend eingebunden hast? Bei mir funktioniert das noch nicht so ganz.