Moin Moin, Situation: Ich setze ein neues Attribute in s_order_attributes, es wird auch alles angelegt und auch im Backend beim Aufruf der Bestellungen durch den queryBuilder geladen Problem: Ich kann das Attribut aber nicht im Grid anzeigen lassen. Laut programmierung-f56/im-backend-s-order-details-attributes-anzeigen-t9044-10.html Sollte es durch rendern funktionieren, tut es leider aber nicht. Ich habe mir mal den Response dazu angeschaut, und mal mit der console.log im Renderer geguckt ob das Objekt überhaupt da ist. Es ist da, aber mein Attribut ist lediglich im Raw vorhanden und nicht im data Wie kann ich das fixen? Hat jmd. eine Idee oder evtl. schonmal das gleiche gehabt? Hier mal die Zeile Code und der Ausschnit aus dem Response sowie der Konsole: columns.splice(1, 0, { header: 'Besonderheit', dataIndex: 'attribute[id]',//'attribute[idwGingerbreadOrdersSpecifics]', renderer: function(value, metaData, record) { console.log(record.getAttributes()); console.log(record.getAttributes().first().get('attribute1')); console.log(record.getAttributes().first().get('attribute2')); console.log(record.getAttributes().first().get('attribute6')); console.log(record.getAttributes().first().get('idwGingerbreadOrdersSpecifics')); if (record && record.getAttributes() instanceof Ext.data.Store && record.getAttributes().getCount() \> 0) { var attr = record.getAttributes().first(); return attr.get('id'); } else { return 'test'; } },
}, "attribute": { "id": 2, "orderId": 57, "attribute1": "", "attribute2": "", "attribute3": "", "attribute4": "", "attribute5": "", "attribute6": "", "idwGingerbreadSpecifics": "2" }, "documents": [], "paymentInstances": [{
data: Object attribute1: "" attribute2: "" attribute3: "" attribute4: "" attribute5: "" attribute6: "" id: 2 orderId: 57 shopware.apps.order.model.order\_id: 57 \_\_proto\_\_: Object dirty: false events: Object hasListeners: e id: "Shopware.apps.Order.model.Attribute-2" internalId: 2 modified: Object phantom: false raw: Object attribute1: "" attribute2: "" attribute3: "" attribute4: "" attribute5: "" attribute6: "" id: 2 idwGingerbreadSpecifics: "2" orderId: 57
Vielen Dank schonmal!
Hi, hast du das entsprechende ExtJS Attribut-Model (vermutlich: attribute.js) auch um dein Attribut erweitert? Sonst kennt ExtJS dein Attribut nicht. Die Attribute haben ja auch alle Smarty-Blöcke, damit kannst du die erweitern. lG dsn
VIelen Dank für die Antwort. Ja, erweitert ist es auch //{block name="backend/order/model/order/fields"}{/block} { name : 'idwGingerbreadOrdersSpecifics', type: 'string' }, //{/block}
Habe es nun hinbekommen, nicht so schön aber funktional renderer: function(value, metaData, record) { if (record && record.getAttributes() instanceof Ext.data.Store && record.getAttributes().getCount() \> 0) { var attr = record.getAttributes().first(); if(typeof attr.get('idwGingerbreadSpecifics') !== 'undefined') { return attr.get('idwGingerbreadSpecifics'); } return record.raw.attribute.idwGingerbreadSpecifics; } else { return value; } }
Ah, nein, attribute.js, natürlich werde es probieren, das wird denk ich auch der Fehler sein Vielen Dank!
hat sich leider nichts geändert
Ach sorry, ich habe es falsch gelesen und dachte es geht um Artikel Attribute. Ich lasse das meine ursprüngliche Antwort mal stehen, vielleicht braucht die jemand bei Artikeln. Geh einfach ins Backend -> Grundeinstellungen -> Artikel -> Artikel Freitextfelder und trage da dein Attribut ein. In der Standard Installation müssten da attr1 -attr3 drin sein. Ein Feld zum Editieren deines neu angelegten Feldes gibt es dann im Artikel Detail unter Zusatzfelder