# Shop-Id des ausgewählten Shops ermitteln

**URL:** <https://forum.shopware.com/t/shop-id-des-ausgewahlten-shops-ermitteln/59510>\
**Category:** Programmierung\
**Created:** [13. Mai 2019 um 14:01 UTC](https://forum.shopware.com/t/shop-id-des-ausgewahlten-shops-ermitteln/59510 "2019-05-13T14:01:32Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Heiko\_2](https://avatars.discourse-cdn.com/v4/letter/h/46a35a/32.png) [@Heiko\_2](https://forum.shopware.com/u/Heiko_2)\
**Post date:** [13. Mai 2019 um 14:01 UTC](https://forum.shopware.com/t/shop-id-des-ausgewahlten-shops-ermitteln/59510/1 "2019-05-13T14:01:32Z")

</div>

Hallo zusammen,

ähnliche Fragen zu dem Thema wurden auch schon mal gestellt, aber bei mir hat von den Vorschlägen noch nichts geklappt.

Ich habe 2 Shops. 1 Hauptshop und 1 Subshop.  
Wenn ich mein Plugin bearbeite, dann habe ich jeweils 1 Register für den jeweiligen Shop.  
Wenn ich auf „Speichern“ klicke, dann soll u.a. die aktuelle Shop-Id ausgelesen werden.

Bis jetzt habe ich das so umgesetzt:

```
$shopRepository = Shopware()->Models()->getRepository('Shopware\\Models\\Shop\\Shop');
$shop = $shopRepository->getActiveDefault();

echo $shop->getId();

```

Hier liefert er mir aber immer nur die ID 1 zurück, da er mir mit der Methode „getActiveDefault()“ immer den Standard-Shop zurück liefert. Ich benötige aber den ausgewählten Shop. Gibt es dafür noch eine bestimmte Methode oder muss ich da anders an die Sache heran gehen.

&nbsp;

Gruß Heiko

&nbsp;

---

<div class="post-metadata">

**Author:** ![scriptfarm](https://avatars.discourse-cdn.com/v4/letter/s/2acd7d/32.png) [@scriptfarm](https://forum.shopware.com/u/scriptfarm)\
**Post date:** [13. Mai 2019 um 15:03 UTC](https://forum.shopware.com/t/shop-id-des-ausgewahlten-shops-ermitteln/59510/2 "2019-05-13T15:03:54Z")

</div>

Ich weiss nicht ob ich Dich richtig verstehe, meinst Du :

```
Shopware()->Shop()->getId()

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![Heiko\_2](https://avatars.discourse-cdn.com/v4/letter/h/46a35a/32.png) [@Heiko\_2](https://forum.shopware.com/u/Heiko_2)\
**Post date:** [13. Mai 2019 um 18:35 UTC](https://forum.shopware.com/t/shop-id-des-ausgewahlten-shops-ermitteln/59510/3 "2019-05-13T18:35:57Z")

</div>

Servus zusammen,

also wenn ich&nbsp;

```
Shopware()->Shop()->getId()

```

eingebe, dann erhalte ich die folgende Fehlermeldung

```
Fatal error: Uncaught Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException: You have requested a non-existent service..

```

Bei dem Code von Werner stößt er auch auf einen Fehler. Dem fehlt da auch noch irgendetwas.

Mein Code sieht aktuell folgendermaßen aus:

```
pluginName = $pluginName;
        $this->pluginDir = $pluginDir;
        
    }

    public static function getSubscribedEvents()
    {
        return array(
            'Shopware_Controllers_Backend_Config_After_Save_Config_Element' => 'saveConfig'
            
        );
    }

    public function saveConfig(\Enlight_Event_EventArgs $args) {              

        if (!$this->lastSave) {
          $shopRepository = Shopware()->Models()->getRepository('Shopware\\Models\\Shop\\Shop');
          //Id des Standard-Shops
          $shopId = $shopRepository->getActiveDefault()->getId();
          
          //Hier soll die aktuelle Shop-ID ausgelesen werden
          echo Shopware()->Shop()->getId();
          
          
        }

    }
    
        
}

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![Heiko\_2](https://avatars.discourse-cdn.com/v4/letter/h/46a35a/32.png) [@Heiko\_2](https://forum.shopware.com/u/Heiko_2)\
**Post date:** [15. Mai 2019 um 09:35 UTC](https://forum.shopware.com/t/shop-id-des-ausgewahlten-shops-ermitteln/59510/4 "2019-05-15T09:35:34Z")

</div>

Hallo Werner,

danke für Deine Antwort.  
Bei mir haut das irgendwie noch nicht hin. Er stößt immer auf eine Fehlermeldung.

Mir fehlt in dem Bereich auch sehr viel Wissen, so dass ich im Moment gar nicht so genau weiss, was ich da eigentlich mache 😉 und wo und wie ich was machen muss.

Auslesen will ich die ID im Subscriber. Kennst Du zufällig ein Plugin, wo das auch umgesetzt wurde, so daß ich mir das mal ansehen kann, wie das funktioniert?

&nbsp;

Viele Grüße

&nbsp;

Heiko

---

<div class="post-metadata">

**Author:** ![h\_lohaus](https://avatars.discourse-cdn.com/v4/letter/h/a587f6/32.png) [@h\_lohaus](https://forum.shopware.com/u/h_lohaus)\
**Post date:** [15. Mai 2019 um 09:40 UTC](https://forum.shopware.com/t/shop-id-des-ausgewahlten-shops-ermitteln/59510/5 "2019-05-15T09:40:52Z")

</div>

versuch mal:

```
public function saveConfig(\Enlight_Event_EventArgs $args) { 

foreach ($args->get('element')->getValues() as $value) {
    var_dump(Shopware()->Models()->toArray($value));die;
}

}

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![Heiko\_2](https://avatars.discourse-cdn.com/v4/letter/h/46a35a/32.png) [@Heiko\_2](https://forum.shopware.com/u/Heiko_2)\
**Post date:** [15. Mai 2019 um 12:49 UTC](https://forum.shopware.com/t/shop-id-des-ausgewahlten-shops-ermitteln/59510/6 "2019-05-15T12:49:53Z")

</div>

Servus,

funktioniert leider auch noch nicht so ganz.  
Ich bekomme immer das gleiche Array zurück geliefert. Egal welcher Shop gerade aktiv ist.

```
array(5) {
  ["id"]=>
  int(7157)
  ["shopId"]=>
  NULL
  ["value"]=>
  NULL
  ["element"]=>
  array(1) {
    ["id"]=>
    int(1270)
  }
  ["shop"]=>
  array(1) {
    ["id"]=>
    int(1)
  }
}

```

&nbsp;

Viele Grüße

&nbsp;

Heiko

---

<div class="post-metadata">

**Author:** ![h\_lohaus](https://avatars.discourse-cdn.com/v4/letter/h/a587f6/32.png) [@h\_lohaus](https://forum.shopware.com/u/h_lohaus)\
**Post date:** [15. Mai 2019 um 13:38 UTC](https://forum.shopware.com/t/shop-id-des-ausgewahlten-shops-ermitteln/59510/7 "2019-05-15T13:38:33Z")

</div>

in&nbsp;$value-\>getShop()-\>getId() steht die aktuelle Shop id von der Config. Können ja mehrere in einem PullRequest sein. Im Backend gibt es sowas wie Shop Context nicht.&nbsp;
