Hallo zusammen,
ich habe eine Frage zum Thema „Testen von API-Zugangsdaten“ in Subshops. Hier gibt es ein Bsp.:
https://developers.shopware.com/developers-guide/plugin-guidelines/#testing-communication-with-external-apis
Das funktioniert gut für einen Shop. Aktuell habe ich den Fall, dass ein Subshop mit anderen Zugangsdaten ebenfalls die API nutzen möchte.
Das führt zu zwei Problemen:
<handler>
<![CDATA[
function() {
Ext.Ajax.request({
url: 'SwagExampleTest/test',
success: function (response) {
Shopware.Msg.createGrowlMessage(response.statusText, response.responseText)
},
failure: function (response) {
if (response.status === 404) {
Shopware.Msg.createGrowlMessage('Plugin Manager', 'Please activate plugin before testing api.');
} else {
Shopware.Msg.createGrowlMessage(response.statusText, response.responseText)
}
}
});
}
]]>
</handler>
Wie kann ich den „Tab“ mit der shopId auslesen? Ansonsten wird immer der Test nur mit dem Hauptshop getestet.
Und wie kann am geschicktesten die Plugineinstellungen vor dem API-Aufruf auslesen?
$shop = false;
if ($this->container->initialized('shop')) {
$shop = $this->container->get('shop');
}
if (!$shop) {
$shop = $this->container->get('models')->getRepository(\Shopware\Models\Shop\Shop::class)->getActiveDefault();
}
$config = $this->container->get('shopware.plugin.cached_config_reader')->getByPluginName('PluginName', $shop);
if (!(bool) $config['show']) {
return;
}
Zur Not würde ich die Daten in ein Array einlesen und verwenden. Evtl. geht es aber auch einfacher.
Für eine Anregung bzw. Idee wäre ich dankbar.
Grüße
Mathias