Neu Amazon-Pay für JTL Shop 5

marfitec

Sehr aktives Mitglied
10. März 2018
200
36
Hallo zusammen,

wir haben den JTL Shop auf die Version 5 gebracht und dementsprechend das neue Amazon-Pay plugin installiert.

Allerdings wird der Zahlungsbutton nur ohne Text angezeigt.

Beispiel

Könnte es ein Berechtigungsproblem sein?

Grüße
Marcus
 

marfitec

Sehr aktives Mitglied
10. März 2018
200
36
@McAvity

Das wird daran liegen, dass du den cookies nicht zugestimmt hast. Dann funktioniert der Button gar nicht.
In den Consent Einstellungen kannst du Amazon anhaken (wenn du magst), damit sollten die Button erscheinen.

Grüße
Marcus
 

McAvity

Sehr aktives Mitglied
7. September 2016
595
146
@marfitec

Hallo,

habe es jetzt drei Mal getestet. Cookies gelöscht, dann alle Cookies akzeptiert, nix - kein Button.
Dann im "privaten Fenster", alle Cookies akzeptiert, wieder kein Button. Einfach nur eine leere Fläche und das "?".

Das war alles mit FF84.

Dann mal versuchsweise IE11, Button ist inkl. Text da.
Im Anschluss Chrome 87, Button inkl. Text ist ebenfalls da.

MfG

McAvity
 

marfitec

Sehr aktives Mitglied
10. März 2018
200
36
@McAvity

Vielen Dank für deine Tests. Das ist schon interessant.

Meine Browser funktionieren alle nicht. Auch Chrome 87.

Selbst bei Safari (iPhone) wird der Text nicht angezeigt.

Bestellungen werden aber darüber abgewickelt, daher scheint es bei einigen zu funktionieren.

Es wäre allerdings schöner, wenn der Text immer angezeigt wird 🙂
 

McAvity

Sehr aktives Mitglied
7. September 2016
595
146
@marfitec

Ich habe mir das nochmal in Firefox angesehen.
Der Debugger meckert, dass die Variable "amazon" nicht definiert wäre bzw. nicht im "Sichtbereich" liegt (und zwar in https://www.marfitec.de/plugins/s360_amazonpay_shop5/frontend/template/js/lpa.min.js?v=1.0.0 )

Da gibt es eine Funktion "amazon.Pay.renderButton". Die scheint im Firefox abzubrechen bzw. die ODER-Abfrage scheint im Firefox zu "greifen" (amazon.Pay.renderButton ist Teil einer ODER-Abfrage). Der umschliessende Div-Block ist auch im Firefox kürzer als im Chrome.

MfG

McAvity
 

marfitec

Sehr aktives Mitglied
10. März 2018
200
36
@McAvity
Vielen Dank für deine Recherche.

Leider habe ich die Datei bisher nicht gefunden (auf meinem Server). Es sieht so aus, als würden verschiedene Browser berücksichtigt.

Die Funktion habe ich wohl gefunden, aber nicht die Datei, wo sie aufgerufen wird.

JavaScript:
    /**
     * Returns the rendered HTML for this button.
     * @param array $options
     * @return string
     */
    public function render($options = []) {
        Shop::Smarty()->assign('lpaButton', $this->createSmartyConfig($options));
        if(file_exists(__DIR__ . '/../../frontend/template/snippets/button_custom.tpl')) {
            return Shop::Smarty()->fetch(__DIR__ . '/../../frontend/template/snippets/button_custom.tpl');
        }
        return Shop::Smarty()->fetch(__DIR__ . '/../../frontend/template/snippets/button.tpl');
    }

Hab doch die Datei gefunden. Auch die Templates. Aber aktuell erkenne ich das Problem nicht.
 
Zuletzt bearbeitet:

Sebastian Meyer

Offizieller Service Partner
SPBanner
11. Juni 2014
67
11
Hallo zusammen!

Der eigentliche Button und der Inhalt des Buttons (Logo, Text, etc.) wird durch die von Amazon eingebundenen Skripte selbst gerendert. Das Plugin hat darauf keinen wirklichen Einfluss.

Zu den beiden beschriebenen Problemen:

1) Fehlender Text auf dem Button: Hier scheint ein anderes Plugin (vermutlich der Consentmanager?) dazwischen zu funken - die Bilder auf dem Amazon-Button bekommen seltsame Attribute:

data-cmp-src="https://m.media-amazon.com/images/G/02/AmazonPay/Maxo/logo._CB452516594_.svg" src="" data-cmp-fnab="1" class="null cmplazyload"

Dadurch werden die Logos auf den Buttons nicht geladen. (Das "cmp" lässt mich den Consentmanager vermuten?)
Hier würde ich darum bitten, sich mit dem Pluginhersteller in Verbindung zu setzen.


2) JS-Fehler in lpa.min.js bzgl. undefined amazon: Das gucken wir uns mal an, bzw. wir analysieren, ob wir hierfür einen Workaround bauen können. (Vermutung ist hier, dass das Laden vom Amazon-eigenen JS nicht erfolgt ist (z.B. weil noch kein Consent gegeben wurde oder aufgrund von Timings, und daher die Variable nicht zur Verfügung steht.)

Viele Grüße,
Sebastian
 

marfitec

Sehr aktives Mitglied
10. März 2018
200
36
Hallo Sebastian,

vielen Dank für deine Hilfe.

Der Hinweis mit dem Constentmanager war goldrichtig 🙂

Wir nutzen Consentmanager.de ohne plugin direkt als snippet im header.

Beim kopieren des CMP snippets habe ich nicht darauf geachtet, das es eine beta Version ist, da es vorausgewählt war.

Ich habe nun den "recommended" snippet eingefügt und siehe da, der Text ist auf dem Button 🙂

1609932010498.png

Danke euch allen für die Unterstützung!

Grüße
Marcus
 
  • Gefällt mir
Reaktionen: McAvity

Sebastian Meyer

Offizieller Service Partner
SPBanner
11. Juni 2014
67
11
Prima, danke für das Feedback!

Bzgl. JS Error im Firefox: Wir bauen zur Sicherheit in die 1.0.1 einen zusätzlichen Check ein, ob die JS-Variable "amazon" definiert ist. Das Plugin prüft zwar vorher, ob die Amazon-JS geladen wurde, aber wie man sieht, scheint ja unter gewissen Umständen das Laden der JS und die Initialisierung der Variable nicht immer ein und dasselbe zu sein.
 
  • Gefällt mir
Reaktionen: McAvity und marfitec

marfitec

Sehr aktives Mitglied
10. März 2018
200
36
Ich habe noch ein bisschen gestöbert, weshalb das automatische blockieren den Text verschwinden lässt.

Der Consentmanager blockiert teilweise das script zum anzeigen des Button, hat aber keine Möglichkeit dieses nach der Zustimmung auf eine whitelist zu setzen.

Hat jemand einen Tipp für einen anderen Consentmanager?
 

Ähnliche Themen