Mehr als 20 Attribute pro Artikelvariante mit der REST API

Hallo,

ich versuche 40 Attribute pro Artikelvariante mit der REST API in den Shop zu importieren. Es werden jedoch nur maximal 20 Attribute importiert. In den Grundeinstellungen sind die zusätzlichen Artikel-Freitextfelder angelegt.

Meinen Test habe ich mit einem Artikel, der mehrere Varianten beinhaltet durchgeführt. Die Varianten enhalten die besagten 40 Attribute.

Kann es sein, dass die REST API nicht mehr als 20 Attribute unterstützt?

Ich benutze die Shopware Version 5.1.3.

Ausschlaggebend für REST API updates sind die Property-Namen der Attribute nicht der Name in der DB.

Ich weiß nicht wie das mit dem Anlegen von Artikel-Freitextfeldern im Backend zusammen spielt.

Einfach mal ein GET auf einen Artikel machen und kucken wie die Attribute heißen (und ob vorhanden).

Ansonsten, gibt es auch noch von Shopware ein kostenloses Mini-Plug-In welches 20 weitere Artikel Attribute hinzufügt (Glaube aber ohne Backend-Einbindung) - das kann man sich auch mal ankucken für Logik etc.

 

@baal schrieb:

ich versuche 40 Attribute pro Artikelvariante mit der REST API in den Shop zu importieren. Es werden jedoch nur maximal 20 Attribute importiert. In den Grundeinstellungen sind die zusätzlichen Artikel-Freitextfelder angelegt

Du musst diese auch via Doctrine anlegen. Hier ist z.B. ein HowTo wie das gehen sollte: http://forum.shopware.com/discussion/9769/howto-zusaetzliche-artikel-attribute-in-frontend-backend

Danke erstmal für die Hilfe.

Ich habe bemerkt, dass in der Datenbank nicht mehr als 20 Attribute zu finden waren. Daraufhin habe ich diese drei Tabellen per sql mit zusätzliche Attribute erweitern:

  • s_article_configurator_templates_attributes

    id int(11) AI PK
    template_id int(11) UN
    attr1 varchar(255)
    attr2 varchar(255)
    attr3 varchar(255)
    attr4 varchar(255)
    attr5 varchar(255)
    attr6 varchar(255)
    attr7 varchar(255)
    attr8 varchar(255)
    attr9 varchar(255)
    attr10 varchar(255)
    attr11 varchar(255)
    attr12 varchar(255)
    attr13 decimal(10,3)
    attr14 varchar(2000)
    attr15 varchar(2000)
    attr16 decimal(10,3)
    attr17 decimal(10,3)
    attr18 varchar(2000)
    attr19 decimal(10,3)
    attr20 decimal(10,3)
    attr21 varchar(255)
    attr22 varchar(255)
    attr23 varchar(255)
    attr24 varchar(255)
    attr25 varchar(255)
    attr26 varchar(255)
    attr27 varchar(255)
    attr28 varchar(255)
    attr29 decimal(10,3)
    attr30 varchar(255)
    attr31 int(11)
    attr32 varchar(255)
    attr33 decimal(10,3)
    attr34 varchar(255)
    attr35 varchar(255)
    attr36 varchar(255)
    attr37 decimal(10,3)
    attr38 varchar(255)
    attr39 int(11)
    attr40 decimal(10,3)
    attr41 decimal(10,3)
    attr42 decimal(10,3)
    attr43 decimal(10,3)
    attr44 varchar(2000)
    attr45 decimal(10,3)
    attr46 decimal(10,3)
    attr47 varchar(255)
    attr48 varchar(255)
    attr49 int(11)
    attr50 varchar(255)
    attr51 decimal(10,3)
    attr52 varchar(255)
    attr53 decimal(10,3)
    attr54 varchar(2000)

  • s_articles_attributes

    d int(11) AI PK
    articleID int(11) UN
    articledetailsID int(11) UN
    attr1 varchar(255)
    attr2 varchar(255)
    attr3 varchar(255)
    attr4 varchar(255)
    attr5 varchar(255)
    attr6 varchar(255)
    attr7 varchar(255)
    attr8 varchar(255)
    attr9 varchar(255)
    attr10 varchar(255)
    attr11 varchar(255)
    attr12 varchar(255)
    attr13 decimal(10,3)
    attr14 varchar(2000)
    attr15 varchar(2000)
    attr16 decimal(10,3)
    attr17 decimal(10,3)
    attr18 varchar(2000)
    attr19 decimal(10,3)
    attr20 decimal(10,3)
    attr21 varchar(255)
    attr22 varchar(255)
    attr23 varchar(255)
    attr24 varchar(255)
    attr25 varchar(255)
    attr26 varchar(255)
    attr27 varchar(255)
    attr28 varchar(255)
    attr29 decimal(10,3)
    attr30 varchar(255)
    attr31 int(11)
    attr32 varchar(255)
    attr33 decimal(10,3)
    attr34 varchar(255)
    attr35 varchar(255)
    attr36 varchar(255)
    attr37 decimal(10,3)
    attr38 varchar(255)
    attr39 int(11)
    attr40 decimal(10,3)
    attr41 decimal(10,3)
    attr42 decimal(10,3)
    attr43 decimal(10,3)
    attr44 varchar(2000)
    attr45 decimal(10,3)
    attr46 decimal(10,3)
    attr47 varchar(255)
    attr48 varchar(255)
    attr49 int(11)
    attr50 varchar(255)
    attr51 decimal(10,3)
    attr52 varchar(255)
    attr53 decimal(10,3)
    attr54 varchar(2000)

  • s_core_engine_elements

(Beispiel eines Eintrages)

'171', '7', 'attr[49]', NULL, 'number', NULL, 'Stueck Palette', '0', '49', 'attr49', NULL, '1', '', '0'

Jedoch werden die Werte für Attribute über 20 noch immer nicht per REST-API gespeichert. In der API spreche ich die Attribute mit attr21, attr22 usw an.

Hat jemand eine Idee, was noch das Problem sein könnte?

Nachtrag:

Ein GET gibt immer noch nur 20 Attribute zurück. Also muss die API irgenwie auf max. 20 Attribute beschränkt sein.

Hast du dir meinen link angeschaut? Dort steht nichts davon die Tabellen via SQL zu erweitern. Mach es bitte mit der Methode

 Shopware()-\>Models()-\>addAttribute() 

(Beispiel Quellcode siehe Link) und dann sollte es auch funktionieren. 

Gruß 

1 Like

Ja, ich hatte mir deinen Link angeschaut. Ich dachte jedoch, dass es auch mit einer reinen SQL-Variante ginge.

Ich werde es dann mal mit der Doctrine-Variante probieren.

 

@Thomas‍

Danke für deine Hilfe. Mit der Doctrine-Variante hat es funktioniert.

@baal schrieb:

@Thomas‍

Danke für deine Hilfe. Mit der Doctrine-Variante hat es funktioniert.

Ist ja nicht so das ich das direkt gesagt habe ;-) 

Freut mich das ich dir helfen konnte :) 

1 Like

Ich bin langsam am verzweifeln.

Gestern wurde mir ein getestetes Attribut im Artikelformular angezeigt. Ich habe es im Backend in der Form {{prefix}}Attr{{Nummer}} in die Grundeinstellungen eingetragen.

Heute habe ich nun die richtigen Zusatzattribute eingetragen und ich kriege es nicht hin, dass diese im Artikelformular erscheinen. Die Attribute sind jedoch in der DB gespeichert und ich sehe sie in der Ausgabe der API.

Ich weiß, dass die Tabelle „s_core_engine_elements“ für die Anzeige der Attribute im Artikelformular zuständig ist. Nur sind hier einige Dinge nicht wirklich klar.

Welches Muster wird für den Namen benötigt, so dass die Attribute auch in den Artikelformular korrekt auftauchen?

Seltsam ist auch, dass man alles mögliche dort eintragen kann, auch wenn die Attribute in der DB fehlen. Und dennoch werden diese Werte dann gespeichert und tauchen im Artikelformular auf. Aber in welcher Tabelle werden die Werte gespeichert?