Amazon Payment & Login Einschränken

Hallo Community, ich würde gerne das Plugin (Login & Bezahlen) von BestIT nutzen, jedoch stört mich, dass momentan das Plugin global (also auf allen Shopseiten) einen JS-Aufruf zu Ama-Servern startet. Nach meinem Messungen kostet mich dieser Aufruf auf jeder Seite rund 1 Sekunde Ladezeit. Da ich die Login-Funktion nicht nutzen möchte würde mir reichen, wenn dieser Aufruf nur auf den Seiten des Warenkorbes und des Checkouts erfolgen würde. Ich habe diesen Umstand auch bereits an BestIT herangetragen, und dort will man wohl eine entsprechende Optionswahl in zukünftigen Versionen berücksichtigen, was ich sehr löblich finde, allerdings ist momentan noch kein Release-Datum in Sicht. Ich kann aber doch im Grunde selbst im Plugin eine entsprechende Anpassung vornehmen. Die zugehörige Template-Datei habe ich auch schon, allein wie ich die IF Schleife anpasse weiß ich nicht so genau. Hier mal das Snippet: {block name="frontend\_index\_header\_javascript" append} {if $bestitAmazonPaymentsAdvanced.type \> 1 AND $bestitAmazonPaymentsAdvanced.clientId} <script type="application/javascript"> window.onAmazonLoginReady = function () { amazon.Login.setClientId('{$bestitAmazonPaymentsAdvanced.clientId}'); }; jQuery(document).ready(function () { $("a.logout").click(function () { amazon.Login.logout(); }); }) </script> {/if} <script type="text/javascript" src="%7B%24bestitAmazonPaymentsAdvanced.widgetUrl%7D?sellerId=%7B%24bestitAmazonPaymentsAdvanced.sellerId%7D"></script>{/block} Hat jemand Lust mir auf die Sprünge zu helfen, und mir zu sagen, wie man diesen Aufruf nur auf die Seiten „Warenkorb“ und alle einzelnen „Checkout“ Seiten einschränkt?

Also, ich bin schon mal so weit, dass ich wenn ich das hier als Bedingung einfüge {if $Controller=='checkout'} <script type="text/javascript" src="%7B%24bestitAmazonPaymentsAdvanced.widgetUrl%7D?sellerId=%7B%24bestitAmazonPaymentsAdvanced.sellerId%7D"></script> {/if} Dann klappt es schon mal soweit, dass der Aufruf auf den gewöhnlichen Seiten ausbleibt und bei der Warenkorbseite im Quelltext auftaucht. Aber sobald ich die nächste Seite des Checkout-Prozesses aufrufe (URL: www.meinshop.de/checkout/confirm)dann ist der String wieder weg. Einer ne Idee, wie ich die ganzen Checkout Seiten in die Bedingung einfüge? Oder kann mir wer sagen ob ich Bedingungen mit AND und OR verketten kann an der Stelle, und wo/wie ich herausfinde wie ich die einzelnen Seiten identifiziere?

So, ich hab’s wohl hinbekommen. Und die erste Ama Bestellung mit dem frisierten Plugin ist auch schon drin. :slight_smile: Also, ich schreib mal auf was ich gemacht habe, falls jemand anders ebenfalls das Ama-plugin nutzen möchte, ohne die Login-Funktion, also nur als Zahlart, und dabei nicht alle Bewegungen im Shop an Amazon melden möchte und die Ladezeiten auf den allgemeinen Seiten des Shops nicht extra für Amazon spürbar verlangsamen möchte. Ich habe an die Datei engine/Shopware/Plugins/Community/Frontend/BestitAmazonPaymentsAdvanced/Views/frontend/amazon_payments_advanced header.tpl Hand angelegt, und zwar den Aufruf <script type="text/javascript" src="%7B%24bestitAmazonPaymentsAdvanced.widgetUrl%7D?sellerId=%7B%24bestitAmazonPaymentsAdvanced.sellerId%7D"></script> mit folgendem Code eingefasst {if $Controller == 'checkout' || $Controller == 'register' || $Controller == 'account' || $Controller == 'AmazonPaymentsAdvanced'} <script type="text/javascript" src="%7B%24bestitAmazonPaymentsAdvanced.widgetUrl%7D?sellerId=%7B%24bestitAmazonPaymentsAdvanced.sellerId%7D"></script> {/if} Ich habe nicht getestet ob ich beide Controller (register & account) wirklich benötige, vielleicht reicht auch einer von beiden, könnte man noch weiter austesten, aber für mich reicht es so im Moment. Die gleiche IF Schleife auch nochmal um den css Aufruf {block name="frontend\_index\_header\_css\_screen" append} {if $Controller == 'checkout' || $Controller == 'register' || $Controller == 'account' || $Controller == 'AmazonPaymentsAdvanced'} <link type="text/css" media="all" rel="stylesheet" href="%7Blink%20file='frontend/_resources/styles/BestitAmazonPaymentsAdvanced.css'%7D"> {if $bestitAmazonPaymentsAdvanced.paypalModal} <link type="text/css" media="all" rel="stylesheet" href="%7Blink%20file='frontend/_resources/styles/BestitAmazonPaymentsAdvancedPaypal.css'%7D"> {/if} {/if} {/block} dann wird auch der Aufruf der css Dateien nur im Bestellprozess ausgeführt. Bei mir funktioniert das so! SW 4.3.2 BestIT Plugin 1.4.6 Die Originaldateien im Plugin habe ich mit einem _ gesichert. Das ganze ist so natürlich nicht updatesicher, aber wie bereits oben geschrieben, wird es vom Anbieter vielleicht irgendwann in einer neueren Version eine entsprechende Funktion als Option geben.

1 „Gefällt mir“

Hallo senana, danke für die detaillierte Anleitung! :thumbup: Ich habe es soeben auch gemacht, das ganze hatte ich mich auch genervt, denn die Login-Funktion nutze ich ebenfalls nicht. Habe das dem Support auch mitgeteilt, ist aber schon bestimmt 4-5 Monate her, da sagte man mir auch dass sie es ändern werden. Hoffen wir mal dass sie es wirklich mit dem nächsten Update umgesetzt haben… Aber man merkt jetzt einen deutlichen Performance Unterscheid, sehr geil! Gruß

Hallo trixx, freut mich wenn die Änderung Dir auch hilft. Ja, die Performance ist deutlich besser ohne die “globale” Verbindung zum Ama-Server. Google wird das sicher nicht bestrafen. :smiley: [quote]das ganze hatte ich mich auch genervt, [/quote] Das ist lustig, weil ich gestern Abend bei Dir mal das Design des Ama-Checkouts testen wollte und dann feststellen musste, dass Du das Plugin wohl abgeschaltet hattest. Bei mir (ich bin noch auf einer älteren Version [1.11] vom Responsive Template) sind im Checkout mit Amazon unterhalb dieser Ama-Boxen nämlich nur Textlinks für “weiter” bei Auswahl der Adresse und für “zurück” und “weiter” bei Auswahl der Zahlart zu sehen. Das fand ich ein bisschen unergonomisch. Also habe ich das auch mit einem Eintrag in der css append im Conexco Responsive noch in sichtbare Buttons erweitert. Dazu einfach in “Responsive Template > Expert > CSS Append” Das hier hinzufügen: /\* Buttons im Amazon Payment checkout \*/ .button-right, .button-left { color: #fff; background-color: #369; border-color: #2d5986; display: inline-block; padding: 6px 12px; margin-bottom: 0; font-size: 14px; font-weight: normal; line-height: 1.42857143; text-align: center; vertical-align: middle; cursor: pointer; border: 1px solid transparent; border-radius: 4px; white-space: nowrap; -webkit-user-select: none; } Das gilt für Responsive 1.11 und Amazon Plugin 1.4.6 - Möglicherweise ist das bei neueren Versionen nicht mehr erforderlich, und man muss natürlich die Farben evtl. anpassen.

Hi, bester Mann sach ich nur! :smiley: Geilo, habe ich soeben auch noch umgesetzt! Ich nutze von beiden Plugins die aktuellste Version. Conexco 2.2.1 und Ama 1.4.6. Auch in den aktuellen Versionen waren es nur Links, sieht doch gleich viel besser aus, danke! :thumbup: Warum Du gestern Abend allerdings bei mir im Ceckout Ama nicht finden konntest, ist merkwürdig da ich das Plugin die ganze Zeit aktiv hatte!? Aber das Thema hatten wir in der Vergangenheit ja auch schon mal… Ich habe gerade bei Dir einmal im Checkout geguckt, sehe Ama dort aber gerade ebenfalls nicht!? Oder Du hast es gearde wirklich nicht aktiv!? Jap Google wird das alles andere als bestrafen! Wenn ich mir jetzt mal Pagespeed angucke so ist, nur durch diese Änderung, der Wert für die Desktop Version von vorher ca. 61 Punkte auf 71 hochgegangen! Und wie gesagt der Shop rennt jetzt wieder, das Ama-Plugin hat den so dermaßen ausgebremst…

[quote] das Ama-Plugin hat den so dermaßen ausgebremst… [/quote] Yep. Hatte mich auch genervt, und ich hatte es gar nicht in Betrieb, bis gestern. Aktuell ist es bei mir so eingestellt, dass ich bei den prominenten Buttons nur “Paypal Express” und “Zur Kasse gehen” habe. Den Ama-Button zusätzlich fand ich dann einfach zuviel. Bei mir gibt es den Ama-Checkout nur bei Aufruf des Warenkorbes, dann unter 2.Zahlungsart “Bezahlen über Amazon” auswählen, und dann auf “Zur Kasse gehen” klicken. Auf der folgenden Seite (shop.com/checkout/confirm) ist dann der Ama-Button zu sehen. Wobei der übrigens auf dieser Seite wohl immer zu sehen ist, egal ob man vorher unter Zahlungsart “Amazon” ausgewählt hat. Ich weiß zwar nicht ob das so gedacht ist, bei mir (und meiner Plugin Konfiguration) war das auch schon so, bevor ich das Ama-Plugin frisiert habe. Warum ich bei Dir den AMa-Checkout gestern nicht gesehen habe (jetzt ist er jedenfalls da!) weiß ich auch nicht. Vielleicht war ich ja auch nur zu müde… :slight_smile:

Wir nutzen das Plugin von Best it bezahlen über Amazon. Wo liegt denn da die header.tpl ? Find die irgendwie nicht.

[quote=“kessyfashion”]Wir nutzen das Plugin von Best it bezahlen über Amazon. Wo liegt denn da die header.tpl ? Find die irgendwie nicht.[/quote] Hi, steht doch oben in der Anleitung von senana. engine/Shopware/Plugins/Community/Frontend/BestitAmazonPaymentsAdvanced/Views/frontend/amazon_payments_advanced/header.tpl Gruß

[quote=„trixx“][quote=„kessyfashion“]Wir nutzen das Plugin von Best it bezahlen über Amazon. Wo liegt denn da die header.tpl ? Find die irgendwie nicht.[/quote] Hi, steht doch oben in der Anleitung von senana. engine/Shopware/Plugins/Community/Frontend/BestitAmazonPaymentsAdvanced/Views/frontend/amazon_payments_advanced/header.tpl Gruß[/quote] Wir nutzen das alte plugin. Das heisst bezahlen über amazon.

[quote=“kessyfashion”][quote=“trixx”][quote=“kessyfashion”]Wir nutzen das Plugin von Best it bezahlen über Amazon. Wo liegt denn da die header.tpl ? Find die irgendwie nicht.[/quote] Hi, steht doch oben in der Anleitung von senana. engine/Shopware/Plugins/Community/Frontend/BestitAmazonPaymentsAdvanced/Views/frontend/amazon_payments_advanced/header.tpl Gruß[/quote] Wir nutzen das alte plugin. Das heisst bezahlen über amazon.[/quote] Ach so, das weiß ich auch nicht. Hier ging es ja um das neue Plugin von Best It “Login und bezahlen mit Amazon”. Hier war ja aufgrund der Login Funktion das Plugin immer auf allen seiten aktiv, was den Shop erheblich ausgebremst hatte. Wie oder ob das beim alten Plugin auch der Fall ist, keine Ahnung.

Hallo kessyfashion, das sieht bei Dir aber (zumindest auf die schnelle geschaut) nicht so aus, als würde das andere Plugin (Bezahlen über Amazon) die selbe Problematik mit sich bringen. Sprich: zumindest auf Deiner Startseite erfolgt ja kein Aufruf von Scripts auf den Ama-Servern. Und im Bestellprozess wohl auch bis zur Seite …/checkout/index/success/payment auch nicht. Da es sich ja dem Namen nach auch nur um ein reines Zahlarten-Plugin handelt, und keine Login-Funktion integriert zu sein scheint, wäre alles andere auch überraschend. Also dem zufolge musst Du da auch gar nichts ändern, denke ich.

[quote=„senana“]Hallo kessyfashion, das sieht bei Dir aber (zumindest auf die schnelle geschaut) nicht so aus, als würde das andere Plugin (Bezahlen über Amazon) die selbe Problematik mit sich bringen. Sprich: zumindest auf Deiner Startseite erfolgt ja kein Aufruf von Scripts auf den Ama-Servern. Und im Bestellprozess wohl auch bis zur Seite …/checkout/index/success/payment auch nicht. Da es sich ja dem Namen nach auch nur um ein reines Zahlarten-Plugin handelt, und keine Login-Funktion integriert zu sein scheint, wäre alles andere auch überraschend. Also dem zufolge musst Du da auch gar nichts ändern, denke ich.[/quote] Doch das Problem ist genau das gleiche. Plugin war auch für kurze Zeit ausgeschaltet. Ich finde da eben die header datei nicht. Vielleicht versteckst sich die css und JS woanders. :oops:

Ok, ich habe mir das Plugin male eben runtergeladen und blicke nicht so recht durch, wie die Ordnerstruktur dann im Shop ist, aber hier BestitAmazonCBA\Frontend\BestitAmazonCBA\Views\frontend\plugins\BestitAmazonCBA\checkout\ in der Datei confirm.tpl findest Du auf jeden Fall was Du suchst {extends file="frontend/index/index.tpl"} {\* Javascript \*} {block name="frontend\_index\_header\_javascript" append}<script type="text/javascript" src="%7B%24amazonCBAWidgetUrl%7D"></script><script type="text/javascript" src="%7Blink%20file='frontend/_resources/javascript/jquery.swag_buttonsolution.js'%7D"></script><script type="text/javascript"> //<![CDATA[ if(top!=self){ top.location=self.location; } //]]> </script>{/block} und darunter auch den css Aufruf. Du kannst ja mal ganz vorsichtig versuchen die beiden Blöcke entsprechend mit der IF-Bedingung einzupacken. Aber denk dran, vorher die Original-Datei sichern.

1 „Gefällt mir“

Super, danke dir. test ich mal :thumbup:

Die confirm.tpl ist es nicht. die JS und CSS werden nur beim amazon checkout geladen. Ich suche: BestitAmazonCBAInline.css und https://static-eu.payments-amazon.com/c … Widgets.js BUTTON.TPL wars