R4MR4M MemberComments: 1689 Received thanks: 263 Member since: April 2014

Bin eben beim Experiementieren und wollte ein Select in der Plugin config.xml dynmaisch mit den Artikel Attributes füllen. Irgendwie klappt das noch nicht so ganz und ich sehe den Fehler nicht.

<store><![CDATA[Ext.define('YourPrefix.YourName.Form', {
 extend: 'Ext.data.Store',
 fields: [
 { name:'columnName', type: 'string' }, { name:'columnName', type: 'string' }
 ],
 autoLoad: true,
 proxy: {
 type: 'ajax',
 url: window.location.href.substr(0, window.location.href.indexOf('backend')) + 'backend/attributeData/list?table=s_articles_attributes',
 reader: {
  type: 'json',
  root: 'data',
  totalProperty: 'total'
  }
 }
}).create();//new ]]></store>

Ich sehe das die Werte per Ajax korrekt geholt werden, aber die Auswahlbox erzeugt mir nur leere Fehler. Bei YourPrefix der Name vom Plugin und bei YourName der Name vom jeweiligen Feld.

Als Grundlage habe ich diese Seite benutzt:

https://developers.shopware.com/developers-guide/plugin-configuration/#remote-combobox-with-own-store

Warum sehe ich nur leere Felder?

 

Answers

  • ShyimShyim MemberComments: 821 Received thanks: 333 Member since: May 2015

    Du hast zwei mal columnName im Store

  • R4MR4M MemberComments: 1689 Received thanks: 263 Member since: April 2014

    Ja ich weiß, soll auch so sein. Einmal als Value und als angezeigter Wert. Hatte vorher dort ID stehen, aber deswegen ging die Anzeige auch nicht.

  • codiversecodiverse MemberComments: 100 Received thanks: 5 Member since: February 2013

    Falls hier noch eine Antwort gesucht wird bzw. für die Nachwelt:

    Mit diesen Threads konnte ich es lösen:

    https://forum.shopware.com/discussion/56060/wie-eigene-store-model-fuer-plugin-config-xml-laden
    https://forum.shopware.com/discussion/58338/config-xml-element-store-speichert-displayfield-als-valuefield

    So sieht meine Lösung aus:

    <element scope="shop" type="select">
                <name>name_feld</name>
                <label lang="de">Label DE</label>
                <label lang="en">Label EN</label>
                <store><![CDATA[Ext.define('YourPrefix.YourName.Form', {
        extend: 'Ext.data.Store',
        fields: [
            { name:'id', type: 'int' },
            { name:'name', type: 'string' }
        ],
        autoLoad: true,
        pageSize: 25,
        proxy: {
            type: 'ajax',
            url: window.location.href.substr(0, window.location.href.indexOf('backend')) + 'backend/controller/action',
            reader: {
                type: 'json',
                root: 'data',
                totalProperty: 'total'
            }
        }
        }).create();//new ]]>
                </store>
                <options>
                    <valueField>id</valueField>
                    <displayField>lastname</displayField>
                    <isCustomStore>true</isCustomStore>
                </options>
            </element>

    Vor allem der Bereich

    <options>
                    <valueField>id</valueField>
                    <displayField>lastname</displayField>
                    <isCustomStore>true</isCustomStore>
                </options>

    Fehlt meiner Ansicht nach in der Doku (https://developers.shopware.com/developers-guide/plugin-configuration/#remote-combobox-with-own-store) und kann gerne dort ergänzt werden :)

  • ShyimShyim MemberComments: 821 Received thanks: 333 Member since: May 2015

    Hey @codiverse‍,

    es wäre schön wenn du einen Pull Request erstellst. Oben rechts auf der Seite findest du einen Edit Link, ganz einfach über die UI :)

  • codiversecodiverse MemberComments: 100 Received thanks: 5 Member since: February 2013

    Hey @Shyim‍,

    klar, danke für die Info. Habe ich gemacht!

Sign In or Register to comment.