# Wie eigene store &amp; model für Plugin config.xml laden?

**URL:** <https://forum.shopware.com/t/wie-eigene-store-amp-model-fur-plugin-config-xml-laden/55085>\
**Category:** Programmierung\
**Created:** [10. September 2018 um 13:53 UTC](https://forum.shopware.com/t/wie-eigene-store-amp-model-fur-plugin-config-xml-laden/55085 "2018-09-10T13:53:12Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![sonic](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/sonic/32/25728_2.png) [@sonic](https://forum.shopware.com/u/sonic)\
**Post date:** [10. September 2018 um 13:53 UTC](https://forum.shopware.com/t/wie-eigene-store-amp-model-fur-plugin-config-xml-laden/55085/1 "2018-09-10T13:53:12Z")

</div>

Tagchen,

ich bin ein wenig mit meinen ersten kleinen ExtJS-Versuchen am hadern.  
Ich möchte für eine Plugin-Konfiguration eine Combo für die Auswahl von Einkaufswelten verwenden, einen fertigen Store gibt es in base leider nicht.  
(Bisher Kommata getrennte IDs im Textfeld).  
Dazu habe ich mir einen kleines Model und einen kleinen Store gebastelt, was an sich auch funktioniert, ja wenn…

…ich denn wüsste, wie ich meine&nbsp;Model- und den Store-JS&nbsp;dem Backend, bwz Plugin-Manager (?)&nbsp; bekannt machen soll&nbsp; ![Wink](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/b3785da0cbf2c8566cb535dcf55b2730b5224899.png "Wink")

Versuch:&nbsp;Enlight\_Controller\_Action\_PostDispatchSecure\_Backend\_Index subscriben&nbsp;und darin im Theme eine Javascript ins Theme extenden, in der wiederum extende ich&nbsp;{block name=“backend/index/application”} mit zwei include für die JS-Dateien (im Forum über den Weg gestolpert)

Hat beim Rumtesten vor zwei Wochen noch gut funktioniert. Nun wollte ich das vom Test-Plugin ins Richtige übernehmen. Geht wieder nicht - und im Test-Plugin geht es auch nicht mehr.

Also Frage vom „Blondie”: Wie melde ich für die Verwendung in der config.xml den Store und das Model im Backend an?

---

<div class="post-metadata">

**Author:** ![Moritz\_Naczenski](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/moritz_naczenski/32/7792_2.png) [@Moritz\_Naczenski](https://forum.shopware.com/u/Moritz_Naczenski)\
**Post date:** [10. September 2018 um 14:10 UTC](https://forum.shopware.com/t/wie-eigene-store-amp-model-fur-plugin-config-xml-laden/55085/2 "2018-09-10T14:10:24Z")

</div>

Glaube das ist ein Henne/Ei Problem, wenn ich mich richtig erinnere. Wenn du das Plugin installierst, ist es noch nicht aktiv, daher wird deine Logik nicht ausgeführt und auch dein Store nicht geladen. Aber gebe das mal den Kollegen, vielleicht können die das etwas ausführlicher beschreiben.

---

<div class="post-metadata">

**Author:** ![sonic](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/sonic/32/25728_2.png) [@sonic](https://forum.shopware.com/u/sonic)\
**Post date:** [10. September 2018 um 14:14 UTC](https://forum.shopware.com/t/wie-eigene-store-amp-model-fur-plugin-config-xml-laden/55085/3 "2018-09-10T14:14:32Z")

</div>

Knallen mit einen 404 auf Autoload tuts immer beim Aktivieren, passt mit der Henne-Ei&nbsp; ![Wink](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/b3785da0cbf2c8566cb535dcf55b2730b5224899.png "Wink")  
Dennoch hat es irgendwann mal irgendwie funktioniert - und einmal war dann wohl das Ei gelegt.  
Wäre toll, wenn da einer helfen könnte, hat aber keine Eile.

Wahlweise würde es auch helfen, wenn es einen basis-store für Einkaufswelten im Core gäbe - ggf. mal über ein Ticket nachdenken.

Edit:  
Ggf. über ein zusätzliches “Service-Plugin”, welches nur die JS erweitert aber selber nicht verwendet. Damit stünde es einem später zugefügtem Plugin zur Verfügung \*Kanonen auf Spatzen schiessen\*

---

<div class="post-metadata">

**Author:** ![DennisG](https://avatars.discourse-cdn.com/v4/letter/d/9fc348/32.png) [@DennisG](https://forum.shopware.com/u/DennisG)\
**Post date:** [10. September 2018 um 14:18 UTC](https://forum.shopware.com/t/wie-eigene-store-amp-model-fur-plugin-config-xml-laden/55085/4 "2018-09-10T14:18:46Z")

</div>

kannst du mit einem kleinen Trick machen.&nbsp;

&nbsp;

```
           ...

```

&nbsp;

Du erstellst und lädst den Store on the fly… So hast du das problem nicht das der store irgendo hinterlegt werden muss

---

<div class="post-metadata">

**Author:** ![sonic](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/sonic/32/25728_2.png) [@sonic](https://forum.shopware.com/u/sonic)\
**Post date:** [10. September 2018 um 14:20 UTC](https://forum.shopware.com/t/wie-eigene-store-amp-model-fur-plugin-config-xml-laden/55085/5 "2018-09-10T14:20:14Z")

</div>

Werde ich morgen gleich mal ausprobieren. Danke erst mal.

---

<div class="post-metadata">

**Author:** ![sonic](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/sonic/32/25728_2.png) [@sonic](https://forum.shopware.com/u/sonic)\
**Post date:** [10. September 2018 um 14:31 UTC](https://forum.shopware.com/t/wie-eigene-store-amp-model-fur-plugin-config-xml-laden/55085/6 "2018-09-10T14:31:24Z")

</div>

Mich hauts weg. Es funktioniert&nbsp; ![Wink](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/b3785da0cbf2c8566cb535dcf55b2730b5224899.png "Wink")  
Als Controller/Action nehme ich übrigens den SW backend/emotion/list  
Ist zwar erstmal mehrfach redundant, da ich gleich mehrere Combo-Felder benötige, aber darüber mache ich mir später Gedanken.  
Auf CDATA und Inline wäre ich echt nie gekommen.

DANKE&nbsp; ![Wink](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/b3785da0cbf2c8566cb535dcf55b2730b5224899.png "Wink")

Edit: Im ersten Combo wie oben definieren und in den weiteren Combos einfach den Store aus CDATA namentlich einbinden, SCHEINT auch zu funktionieren.

&nbsp;

---

<div class="post-metadata">

**Author:** ![sonic](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/sonic/32/25728_2.png) [@sonic](https://forum.shopware.com/u/sonic)\
**Post date:** [11. September 2018 um 11:17 UTC](https://forum.shopware.com/t/wie-eigene-store-amp-model-fur-plugin-config-xml-laden/55085/7 "2018-09-11T11:17:09Z")

</div>

So, jetzt muss ich das doch noch einmal ausgraben.

Baue ich es wie oben ein, wird nicht die ID, sondern der Name der Auswahl in der Config abgelegt.  
Verwende ich den einmal definierten Store ein weiteres Mal in der Config, werden für diese Combo dann die IDs und nicht die Namen abgelegt, so wie es sein soll.  
Ich bräuchte aber generell die ID&nbsp; ![Wink](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/b3785da0cbf2c8566cb535dcf55b2730b5224899.png "Wink")  
Definiere ich aber auch im zweiten Element den Store (neuer Name) inline neu, habe ich auch hier den Namen und nicht die ID  
\*Konfus das Ganze\*

Edit: Selbst wenn ich in der Datenbank den Wert vom zweiten Element 1:1 in das erste Element übertrage, liefert der ConfigReader für Element 1 (CDATA) die Namen der Auswahl.  
Offensichtlich scheitert der Configreader später, weil er kein Store zum CDATA-Element hat ?!?

---

<div class="post-metadata">

**Author:** ![DennisG](https://avatars.discourse-cdn.com/v4/letter/d/9fc348/32.png) [@DennisG](https://forum.shopware.com/u/DennisG)\
**Post date:** [12. September 2018 um 06:08 UTC](https://forum.shopware.com/t/wie-eigene-store-amp-model-fur-plugin-config-xml-laden/55085/8 "2018-09-12T06:08:48Z")

</div>

hmm… Ich habe den hack bisher nur für Kundengruppen benötigt… Da is “EK” name und key, also das gleiche… Werde ich jetzt mal gegentesten und berichten

&nbsp;

Edit:

So… ich habe mal ein Ticket angelegt: SW-22520 und einen PR erstellt. Ich hoffe das kommt noch ins nächste Release. Es ist tatsächlich so das das " **_valueField_**" hart auf das " **_displayField_**" gesetzt wird wenn der store so erstellt wird… Ich habe nun ein flag eingebaut " **_isCustomStore_**" um das zu umgehen. Das hilft dir also leider nicht sofort… Du könntest den fix ggf. schon bei dir einbauen

in der Datei: _/themes/Backend/ExtJs/backend/base/component/element/select.js_ nach dem **if&nbsp;**

```
if (typeof(me.store) == 'string' && me.store.indexOf('new ') !== -1) {

```

suchen.

in diesem **if** wird das valueField überschrieben… Das könntest du schon durch folgendes ersetzen:

```
if(!me.isCustomStore) {
    me.valueField = me.displayField;
}

```

Das ganze kann dann wie folgt in der config.xml genutzt werden.

So sollte es dann zukünftig gehen

```
        id
        name
        true

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![sonic](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/sonic/32/25728_2.png) [@sonic](https://forum.shopware.com/u/sonic)\
**Post date:** [12. September 2018 um 06:39 UTC](https://forum.shopware.com/t/wie-eigene-store-amp-model-fur-plugin-config-xml-laden/55085/9 "2018-09-12T06:39:49Z")

</div>

Danke,

ich bin jetzt aber erstmal zurück auf Textfeld mit “IDs durch Kommatas getrennt und explode im event” … weil:  
Der Optionssatz wird nur aus der DB geladen, wenn die xml gelesen wird, als Install oder Reinstall.  
Die Plugin-Config ist dafür einfach nicht geeignet.  
Das Problem bei Einkaufswelten sind halt die “IDs” - die bekommt man ja leider nicht (mehr) angezeigt, muss man sich also adhoc&nbsp;mit der Console im Browser bei den Requests erfschnüffeln&nbsp; ![Wink](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/b3785da0cbf2c8566cb535dcf55b2730b5224899.png "Wink")
