# Einkaufswelt-Erweiterung sauber deinstallieren?

**URL:** <https://forum.shopware.com/t/einkaufswelt-erweiterung-sauber-deinstallieren/49105>\
**Category:** Programmierung\
**Created:** [26. Oktober 2017 um 13:13 UTC](https://forum.shopware.com/t/einkaufswelt-erweiterung-sauber-deinstallieren/49105 "2017-10-26T13:13:12Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![FloC3](https://avatars.discourse-cdn.com/v4/letter/f/838e76/32.png) [@FloC3](https://forum.shopware.com/u/FloC3)\
**Post date:** [26. Oktober 2017 um 13:13 UTC](https://forum.shopware.com/t/einkaufswelt-erweiterung-sauber-deinstallieren/49105/1 "2017-10-26T13:13:12Z")

</div>

Hallo,&nbsp;

ich habe ein eigenes Element für die Einkaufswelt geschrieben.

Allerdings gibt es Probleme beim etwaigen Deinstallieren des Plugins.

Wie im Handbuch erwähnt, entferne ich das Element in der Methode uninstall() folgendermaßen:

&nbsp;

```
 $modelManager = $this-\>container-\>get('models'); $component = $modelManager-\>getRepository(Component::class)-\>findOneBy(['name' =\> 'unsplash', 'pluginId' =\> $context-\>getPlugin()-\>getId()]); if (!$component) return; $modelManager-\>remove($component); $modelManager-\>flush();

```

&nbsp;

Das funktioniert auch, das Element ist danach weg.

Allerdings sind Einkaufswelten, die ein solches Element einmal beinhaltet haben, anschließend kaputt.

Problem ist ein Javascriptfehler bei&nbsp;

xType = component.get(‘xType’);

&nbsp;

scheint, als könne der Typ der nicht mehr existenten Komponente nicht ermittelt werden, weil sie offenbar immer noch irgendwie in der Einkaufswelt hängt.

&nbsp;

Wie mach ichs richtig?

&nbsp;

viele Grüße und Danke

---

<div class="post-metadata">

**Author:** ![arnebecker](https://avatars.discourse-cdn.com/v4/letter/a/3bc359/32.png) [@arnebecker](https://forum.shopware.com/u/arnebecker)\
**Post date:** [26. Oktober 2017 um 14:39 UTC](https://forum.shopware.com/t/einkaufswelt-erweiterung-sauber-deinstallieren/49105/2 "2017-10-26T14:39:43Z")

</div>

Eigtl musst du das nicht gesondert löschen. Shopware löscht die automatisch. Er merkt sich von welchem Plugin dein EKW Element hinzugefügt wurde und löscht dies beim Entfernen des Plugins und entfernt das Element auch aus allen Einkaufswelten.

---

<div class="post-metadata">

**Author:** ![FloC3](https://avatars.discourse-cdn.com/v4/letter/f/838e76/32.png) [@FloC3](https://forum.shopware.com/u/FloC3)\
**Post date:** [26. Oktober 2017 um 14:44 UTC](https://forum.shopware.com/t/einkaufswelt-erweiterung-sauber-deinstallieren/49105/3 "2017-10-26T14:44:25Z")

</div>

@arnebecker‍

&nbsp;

Die Elemente werden auch entfernt, sie sind in der Einkaufswelt nicht mehr sichtbar (weder zum Hinzufügen noch im Grid).

Allerdings ist die Einkaufswelt dann komplett tot, es lässt sich kein Element (auch keins der Standardelemente) mehr hinzufügen oder ändern.

Es erscheint eben der Javascriptfehler von oben…

---

<div class="post-metadata">

**Author:** ![simkli](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/simkli/32/13124_2.png) [@simkli](https://forum.shopware.com/u/simkli)\
**Post date:** [26. Oktober 2017 um 15:47 UTC](https://forum.shopware.com/t/einkaufswelt-erweiterung-sauber-deinstallieren/49105/4 "2017-10-26T15:47:25Z")

</div>

Ja, wie arnebecker schon geschrieben hat: Du darfst nicht in den Prozess eingreifen, Shopware macht das automatisch. Wenn du es so machst, kann die&nbsp;Aufräum-Routine von Shopware dein Element nicht mehr finden und es bleiben Reste übrig. Entferne deine eigene Logik, das ist Bad Practice.

&nbsp;

Viele Grüße

---

<div class="post-metadata">

**Author:** ![FloC3](https://avatars.discourse-cdn.com/v4/letter/f/838e76/32.png) [@FloC3](https://forum.shopware.com/u/FloC3)\
**Post date:** [26. Oktober 2017 um 15:51 UTC](https://forum.shopware.com/t/einkaufswelt-erweiterung-sauber-deinstallieren/49105/5 "2017-10-26T15:51:42Z")

</div>

@simkli‍

Das war aber das Beispiel aus dem Shopware Handbuch …&nbsp;

---

<div class="post-metadata">

**Author:** ![arnebecker](https://avatars.discourse-cdn.com/v4/letter/a/3bc359/32.png) [@arnebecker](https://forum.shopware.com/u/arnebecker)\
**Post date:** [27. Oktober 2017 um 09:09 UTC](https://forum.shopware.com/t/einkaufswelt-erweiterung-sauber-deinstallieren/49105/6 "2017-10-27T09:09:18Z")

</div>

Wunder mich etwas. Ich halte viel von Daniel. Aber dann ist das leider schlicht falsch! In der Dev Doku steht auch nicht, das man es selber löschen muss. Allerdings steht dort auch nicht explizit, dass es automatisch gelöscht wird.

[https://developers.shopware.com/developers-guide/custom-shopping-world-elements/](https://developers.shopware.com/developers-guide/custom-shopping-world-elements/)

Naja auf jeden Fall tut er es. Hier fürs alte Plugin System:

> <https://github.com/shopware/shopware/blob/5.3/engine/Shopware/Components/Plugin/Namespace.php#L403>

Und hier fürs neue:

> <https://github.com/shopware/shopware/blob/5.3/engine/Shopware/Bundle/PluginInstallerBundle/Service/PluginInstaller.php#L456>

---

<div class="post-metadata">

**Author:** ![FloC3](https://avatars.discourse-cdn.com/v4/letter/f/838e76/32.png) [@FloC3](https://forum.shopware.com/u/FloC3)\
**Post date:** [27. Oktober 2017 um 09:14 UTC](https://forum.shopware.com/t/einkaufswelt-erweiterung-sauber-deinstallieren/49105/7 "2017-10-27T09:14:53Z")

</div>

Danke, wenn ich die Methode uninstall() einfach leer lass, dann funktioniert es.

&nbsp;

&nbsp;
