Folgen

Fehler: Plugin is not allowed for current shop {"shop":1,"activePayment":false}

Problem

Amazon Pay wird in Ihrem Shop nicht "angeboten"? Nachdem Sie einen Blick in das Logfile geworfenhaben, finden Sie eine Fehlermeldung wie diese:

Plugin is not allowed for current shop {"shop":1,"activePayment":false}

Ursache

Der Source Code wird im Frontend nur eingefügt, wenn Amazon Pay auch als Zahlungsart dort erscheinen soll. Dafür haben wir verschiedene Kriterien, die erfüllt sein müssen. Unter anderem sind dies:

  • Zugangsdaten sind im jeweiligen (Sub-)Shop vorhanden
  • Das Plugin ist entsprechend konfiguriert
  • Die Zahlungsarten geben den entsprechenden (Sub-)Shop frei bzw. blockieren diesen nicht

Um etwas verständlicher auf die Meldung einzugehen möchten wir Ihnen die Funktion der Meldung einmal zeigen:

/**
* Get payment
*
* @return null|Payment
*/
private function getPayment()
{
$payment = null;
/** @var Plugin $plugin */
/** @var Payment $payment */
if ($plugin = $this->pluginRepository->findOneBy(['name' => Bootstrap::TECHNICAL_NAME])) {
$payment = $this->paymentRepository->findOneBy(['plugin' => $plugin]);
}

return $payment;
}

Hier holen wir zunächst das Array des Payments selbst.

Anschließend wird validiert:

/**
* Vote to check if access is granted
*
* @param VoteOptions $options
* @param VoteResult $result
*
* @return void
*/
public function vote(VoteOptions $options, VoteResult $result)
{
$payment = $options->getPayment();

if (!$payment) {
$result->addViolation(self::VOTE_KEY);

$result->stopPropagation();

return;
}

if (!$payment->getActive()
|| $this->isPaymentForCurrentShopDeactivated($options->getShop(), $payment)) {
$result->addViolation(self::VOTE_KEY);
}
}

Es gibt also nun zwei Möglichkeiten, weshalb der oben genannte Fehler auftreten kann.

A) getPayment() gibt uns ein NULL Objekt zurück: Dies bedeutet, dass wir das Plugin nicht identifizieren konnten.

B) getActive() gibt uns ein FALSE zurück, weil dies so konfiguriert ist.

Lösung

Für den Fall A) müssen Sie in die Datenbank schauen.
Prüfen Sie die Plugin ID des Amazon Pay Plugins in der s_core_plugins:

select id, name, label, source, active from s_core_plugins where name LIKE "%amazon%";

Nun machen Sie die Gegenprüfung:

select name, hide, active, pluginID from s_core_paymentmeans where name like "%amazon%";

Richtig wäre hier das Ergebnis, dass die PluginID mit der ID des Plugins übereinstimmt:

Auswahl_005.jpg

Den Fall B) prüfen Sie im Backend unter den Einstellungen der Zahlungsarten:

Auswahl_006.jpg

Gegenteil:

Auswahl_007.jpg

 

War dieser Beitrag hilfreich?
0 von 0 fanden dies hilfreich
Haben Sie Fragen? Anfrage einreichen

Kommentare