# \[gelöst\] im backend s\_order\_details\_attributes anzeigen?

**URL:** <https://forum.shopware.com/t/gelost-im-backend-s-order-details-attributes-anzeigen/9003>\
**Category:** Shopware 3.5\
**Tags:** programming\
**Created:** [2. Oktober 2012 um 14:08 UTC](https://forum.shopware.com/t/gelost-im-backend-s-order-details-attributes-anzeigen/9003 "2012-10-02T14:08:39Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![bui\_ak](https://avatars.discourse-cdn.com/v4/letter/b/c37758/32.png) [@bui\_ak](https://forum.shopware.com/u/bui_ak)\
**Post date:** [2. Oktober 2012 um 14:08 UTC](https://forum.shopware.com/t/gelost-im-backend-s-order-details-attributes-anzeigen/9003/1 "2012-10-02T14:08:39Z")

</div>

hallo, ich befülle bei jeder position einer bestellung z.b s\_order\_details\_attributes.attribute5 mit daten. nun möchte ich im backend das dieses attribut auch bei den einzel-positionen einer bestllung angezeigt wird. im default template befindet sich eine model/position\_attribute.js. wie bzw. wo wird die aufgerufen? oder muss ich hier zur anzeige vorgehen wie in dem (nicht mehr existenten) schuhgrößen-backend-plugin-demo ?

---

<div class="post-metadata">

**Author:** ![hbee](https://avatars.discourse-cdn.com/v4/letter/h/f08c70/32.png) [@hbee](https://forum.shopware.com/u/hbee)\
**Post date:** [3. Oktober 2012 um 14:22 UTC](https://forum.shopware.com/t/gelost-im-backend-s-order-details-attributes-anzeigen/9003/2 "2012-10-03T14:22:28Z")

</div>

hi, ich habe leider keine Lösung für dein Problem. Ich würde aber gern wissen, wie du das Feld in der Datenbank füllst. Ich würde gern bei jeder Bestellung Daten aus dem Checkout-Formular in s\_order\_attributes speichern. Die Felder aus dieser Tabelle werden ja im Backend in der Bestellung als Freitextfelder ausgegeben. Ich habe es aber bis jetzt noch nicht geschafft, Die Daten aus dem Formular in die Tabelle zu schreiben. Hast du hier einen Tipp für mich? vielen grüße, H.

---

<div class="post-metadata">

**Author:** ![bui\_ak](https://avatars.discourse-cdn.com/v4/letter/b/c37758/32.png) [@bui\_ak](https://forum.shopware.com/u/bui_ak)\
**Post date:** [4. Oktober 2012 um 10:29 UTC](https://forum.shopware.com/t/gelost-im-backend-s-order-details-attributes-anzeigen/9003/3 "2012-10-04T10:29:17Z")

</div>

klink dich doch per hook an Shopware\_Controllers\_Frontend\_Checkout::saveOrder::after an. da hast du alles was du brauchst um s\_order\_attributes zu schreiben.

---

<div class="post-metadata">

**Author:** ![bui\_ak](https://avatars.discourse-cdn.com/v4/letter/b/c37758/32.png) [@bui\_ak](https://forum.shopware.com/u/bui_ak)\
**Post date:** [4. Oktober 2012 um 13:49 UTC](https://forum.shopware.com/t/gelost-im-backend-s-order-details-attributes-anzeigen/9003/4 "2012-10-04T13:49:20Z")

</div>

nochmal zu meinem problem: ich habe in backend/order/view/detail/position.js die funktion getColumns() um eine neue spalte erweitert. die wird auch angezeigt, aber ohne inhalt obwohl die getListAction für jede position in attribute2 etwas liefert: `attribute":{"id":9,"attribute1":"","attribute2":"BLABLA","attribute3":"","attribute4":"","attribute5":"","attribute6":"","orderDetailId":212}}` welchen dataIndex muss ich für die spalte angeben? ich habe folgendes ohne erfolg probiert: ` dataIndex: "getAttributes.attribute2", dataIndex: "getAttributes().attribute2", dataIndex: "attribute.attribute2", dataIndex: "attributes.attribute2", dataIndex: "attribute2", `

---

<div class="post-metadata">

**Author:** ![akeon](https://avatars.discourse-cdn.com/v4/letter/a/d9b06d/32.png) [@akeon](https://forum.shopware.com/u/akeon)\
**Post date:** [4. Oktober 2012 um 13:59 UTC](https://forum.shopware.com/t/gelost-im-backend-s-order-details-attributes-anzeigen/9003/5 "2012-10-04T13:59:27Z")

</div>

Hast du auch schon `dataIndex: "attribute[attribute2]"` getestet? So ähnlich funktioniert es bei den Artikeldetails (article/view/details/settings.js).

---

<div class="post-metadata">

**Author:** ![bui\_ak](https://avatars.discourse-cdn.com/v4/letter/b/c37758/32.png) [@bui\_ak](https://forum.shopware.com/u/bui_ak)\
**Post date:** [4. Oktober 2012 um 14:26 UTC](https://forum.shopware.com/t/gelost-im-backend-s-order-details-attributes-anzeigen/9003/6 "2012-10-04T14:26:23Z")

</div>

danke für den hinweis. ich habe nun auch ` dataIndex: "attribute[attribute2]", dataIndex: "attributes[attribute2]", dataIndex: "getAttributes[attribute2]" ` erfolglos probiert. auch versuche ich über einen renderer an die daten zu kommen: ` renderer: function(value, metaData, rowRecord) { // console.log (value, metaData, rowRecord); console.log (rowRecord.getAttributes()); console.log (rowRecord.getAttributes().attribute2); console.log (rowRecord.getAttributes()['attribute2']); console.log (rowRecord.getAttributes().load()); }` auch ohne erfolg. der letzte log schmeisst auch einen js fehler … },

---

<div class="post-metadata">

**Author:** ![akeon](https://avatars.discourse-cdn.com/v4/letter/a/d9b06d/32.png) [@akeon](https://forum.shopware.com/u/akeon)\
**Post date:** [10. Oktober 2012 um 12:20 UTC](https://forum.shopware.com/t/gelost-im-backend-s-order-details-attributes-anzeigen/9003/7 "2012-10-10T12:20:21Z")

</div>

Bist du mittlerweile schon weiter gekommen? Ich vermute das hier irgendwo ein tiefer liegender Fehler ist, da ich jetzt an mehreren Stellen (z.B. [hier](http://forum.shopware.de/programmierung-f56/artikel-zusatzliches-feld-im-backend-wird-nicht-gespeichert-t9079.html#p44791)) gelesen habe. dass `attribute[attrName]`die richtige Syntax ist.

---

<div class="post-metadata">

**Author:** ![bui\_ak](https://avatars.discourse-cdn.com/v4/letter/b/c37758/32.png) [@bui\_ak](https://forum.shopware.com/u/bui_ak)\
**Post date:** [14. Oktober 2012 um 01:01 UTC](https://forum.shopware.com/t/gelost-im-backend-s-order-details-attributes-anzeigen/9003/8 "2012-10-14T01:01:46Z")

</div>

naja, ich habe mich in den entsprechenden backendcontroller eingeklinkt und liefer s\_order\_details\_attributes.attribute2 unter anderem namen direkt als attribut einer order. das lässt sich dann auch ansprechen 😛

---

<div class="post-metadata">

**Author:** ![Oliver\_Skroblin](https://avatars.discourse-cdn.com/v4/letter/o/6bbea6/32.png) [@Oliver\_Skroblin](https://forum.shopware.com/u/Oliver_Skroblin)\
**Post date:** [15. Oktober 2012 um 09:05 UTC](https://forum.shopware.com/t/gelost-im-backend-s-order-details-attributes-anzeigen/9003/9 "2012-10-15T09:05:00Z")

</div>

Hallo zusammen, hier eine Lösung für euer Problem: ` { header: 'Attribute 5', dataIndex: 'detailAttribute.attribute5', flex: 1, renderer: function(value, metaData, record) { if (record && record.getAttributes() instanceof Ext.data.Store && record.getAttributes().getCount() \> 0) { var attr = record.getAttributes().first(); return attr.get('attribute5'); } else { return ''; } } }, ` Kurze Erklärung: ExtJs Grids können standardmäßig nicht mit verschachtelten Daten arbeiten. Daher wird hier mit einem ColumnRenderer gearbeitet. In der Renderer Funktion wird dann einfach auf den Attribute Store zugegriffen und der attribtue5 Wert des ersten Models zurück gegeben. Hoffe das hilft euch weiter Mit freundlichen Grüßen Oliver Denter

---

<div class="post-metadata">

**Author:** ![bui\_ak](https://avatars.discourse-cdn.com/v4/letter/b/c37758/32.png) [@bui\_ak](https://forum.shopware.com/u/bui_ak)\
**Post date:** [16. Oktober 2012 um 21:37 UTC](https://forum.shopware.com/t/gelost-im-backend-s-order-details-attributes-anzeigen/9003/10 "2012-10-16T21:37:07Z")

</div>

wow, vielen dank! da wäre ich im leben nicht drauf gekommen das so zu coden 🙂 probiere ich morgen gleich mal aus.

---

<div class="post-metadata">

**Author:** ![kapeha](https://avatars.discourse-cdn.com/v4/letter/k/ce7236/32.png) [@kapeha](https://forum.shopware.com/u/kapeha)\
**Post date:** [31. Januar 2013 um 11:50 UTC](https://forum.shopware.com/t/gelost-im-backend-s-order-details-attributes-anzeigen/9003/11 "2013-01-31T11:50:54Z")

</div>

[quote=„Oliver Denter“] ExtJs Grids können standardmäßig nicht mit verschachtelten Daten arbeiten. Daher wird hier mit einem ColumnRenderer gearbeitet. In der Renderer Funktion wird dann einfach auf den Attribute Store zugegriffen und der attribtue5 Wert des ersten Models zurück gegeben. [/quote] Hallo, ich hänge hier an einem ähnlichen Problem. Ich habe die s\_order\_details\_attributes um ein eigenes Attribut erweitert und möchte es im Grid bei den Bestellpositionen anzeigen. Das funktioniert auch mit obigen Tip mit dem Renderer, allerdings lässt sich der Wert dann nicht im Grid bearbeiten. Gibt es hier auch noch die Möglichkeit einen getter/setter zu schreiben, so dass der RowEditor das eigene Attribut übernimmt? Ich habe auch schon versucht, das Model in Order/Position mit einem Mapping zu erweitern: ` //{block name="backend/order/model/position/fields" append} { name: 'myAttrib', type: 'float', mapping: 'attribute.myAttrib' }, //{/block} ` Jetzt wird zwar der Wert richtig in der Spalte und im Editor angezeigt, er wird aber trotzdem nicht gespeichert. Hat jemand einen Tip? Grüße kapeha

---

<div class="post-metadata">

**Author:** ![aikanet](https://avatars.discourse-cdn.com/v4/letter/a/3da27b/32.png) [@aikanet](https://forum.shopware.com/u/aikanet)\
**Post date:** [9. Februar 2013 um 00:16 UTC](https://forum.shopware.com/t/gelost-im-backend-s-order-details-attributes-anzeigen/9003/12 "2013-02-09T00:16:29Z")

</div>

[quote=“Oliver Denter”]Hallo zusammen, hier eine Lösung für euer Problem: ` { header: 'Attribute 5', dataIndex: 'detailAttribute.attribute5', flex: 1, renderer: function(value, metaData, record) { if (record && record.getAttributes() instanceof Ext.data.Store && record.getAttributes().getCount() \> 0) { var attr = record.getAttributes().first(); return attr.get('attribute5'); } else { return ''; } } }, ` Kurze Erklärung: ExtJs Grids können standardmäßig nicht mit verschachtelten Daten arbeiten. Daher wird hier mit einem ColumnRenderer gearbeitet. In der Renderer Funktion wird dann einfach auf den Attribute Store zugegriffen und der attribtue5 Wert des ersten Models zurück gegeben. Hoffe das hilft euch weiter Mit freundlichen Grüßen Oliver Denter[/quote] Also bei mir funktioniert dies leider nicht. Ich habe eine Bestellung wo in der Tabelle s\_order\_details\_attributes das Feld attribute5 befüllt ist. Wenn ich in die Datei /backend/order/view/detail/position.js die Spalte nach dieser Vorgabe einbinde, bleibt das Feld der Bestellung leer. Sind noch in anderen JS-Dateien Anpassungen notwendig? Das Vorgehen mit record.getAttributes().first() ist für mich auch nicht wirklich schlüssig - die Attribut-Relation ist ja eigentlich ein 1:1-Relation also pro Order-Detail gibt es einen Eintrag in der Order-Detail-Attributes. Danke für Eure Hilfe, Rafael Kutscha

---

<div class="post-metadata">

**Author:** ![aikanet](https://avatars.discourse-cdn.com/v4/letter/a/3da27b/32.png) [@aikanet](https://forum.shopware.com/u/aikanet)\
**Post date:** [15. Februar 2013 um 21:08 UTC](https://forum.shopware.com/t/gelost-im-backend-s-order-details-attributes-anzeigen/9003/13 "2013-02-15T21:08:54Z")

</div>

\*PUSH\*

---

<div class="post-metadata">

**Author:** ![aikanet](https://avatars.discourse-cdn.com/v4/letter/a/3da27b/32.png) [@aikanet](https://forum.shopware.com/u/aikanet)\
**Post date:** [20. Februar 2013 um 11:34 UTC](https://forum.shopware.com/t/gelost-im-backend-s-order-details-attributes-anzeigen/9003/14 "2013-02-20T11:34:07Z")

</div>

Hat denn niemand eine Lösung oder einen anderen Ansatz? Es muss doch irgendwie möglich sein, die Attribute der Bestellpositionne in Shopware auszulesen?

---

<div class="post-metadata">

**Author:** ![aikanet](https://avatars.discourse-cdn.com/v4/letter/a/3da27b/32.png) [@aikanet](https://forum.shopware.com/u/aikanet)\
**Post date:** [22. Februar 2013 um 14:34 UTC](https://forum.shopware.com/t/gelost-im-backend-s-order-details-attributes-anzeigen/9003/15 "2013-02-22T14:34:13Z")

</div>

\*PUSH\*

---

<div class="post-metadata">

**Author:** ![aikanet](https://avatars.discourse-cdn.com/v4/letter/a/3da27b/32.png) [@aikanet](https://forum.shopware.com/u/aikanet)\
**Post date:** [26. Februar 2013 um 20:05 UTC](https://forum.shopware.com/t/gelost-im-backend-s-order-details-attributes-anzeigen/9003/16 "2013-02-26T20:05:19Z")

</div>

Hallo zusammen, ich kann mir beim besten Willen nicht vorstellen, dass es vorher bei jemanden funktioniert hat - nach sehr langer Suche habe ich auf GIT herausgefunden, dass es ein Fehler in Shopware war, der erst vor wenigen Tagen behoben worden ist und somit noch nicht in einer offiziellen Version enthalten sein kann. Details: SW-5110 fix order position attribute association Ich hoffe diese Information hilft noch jemandem, der auch an der besagten Stelle hängt. Falls jemand Fragen zu dem Thema hat so kann er sich gerne per PM an mich wenden - nach der Tortur bin ich nun Experte was Order-Detail-Attributes angeht. Grüße, Rafael Kutscha

---

<div class="post-metadata">

**Author:** ![prowler](https://avatars.discourse-cdn.com/v4/letter/p/4af34b/32.png) [@prowler](https://forum.shopware.com/u/prowler)\
**Post date:** [12. Februar 2015 um 11:51 UTC](https://forum.shopware.com/t/gelost-im-backend-s-order-details-attributes-anzeigen/9003/17 "2015-02-12T11:51:49Z")

</div>

[quote]Das funktioniert auch mit obigen Tip mit dem Renderer, allerdings lässt sich der Wert dann nicht im Grid bearbeiten.[/quote] Das selbe Problem habe ich auch gerade. Mein eigenes Attribut wird angezeigt, aber es wird nicht gespeichert. Kann jemand bitte aufzählen was denn überhaupt dafür notwendig ist um die eigenen Attribute zu editieren?

---

<div class="post-metadata">

**Author:** ![radox1](https://avatars.discourse-cdn.com/v4/letter/r/e19b73/32.png) [@radox1](https://forum.shopware.com/u/radox1)\
**Post date:** [2. Dezember 2015 um 15:45 UTC](https://forum.shopware.com/t/gelost-im-backend-s-order-details-attributes-anzeigen/9003/18 "2015-12-02T15:45:54Z")

</div>

Hat jemand hierfür schon eine Lösung gefunden. Danke vorab.
