Zum Inhalt

Tricks

Login nahtlos in SSO einbetten

function rearrangeAmazonLogin() {
    const $amazonPayLoginInDropdown = jQuery('.navbar-nav .amazon-login-button:not(.hidden)').first();
    if ($amazonPayLoginInDropdown.length !== 1) {
        return;
    }
    let $ssoContainer = $amazonPayLoginInDropdown.parent().find('.dropdown-sso');
    if ($ssoContainer.length === 1) {
        $ssoContainer.find('.row').append('<div class="col-xs-3"><a class="sso-link sso-link-amazon" title="Amazon Pay Login" href="#"><i class="ssoicon fa fa-amazon" aria-hidden="true"></i></a></div>');
        const $boxSsoContainer = jQuery('.box-sso');
        if ($boxSsoContainer.length === 1) {
            $boxSsoContainer.find('.sso-link-amazon').on('click', (e) => {
                e.preventDefault();
                $amazonPayLoginInDropdown.click();
            });
        }
    } else {
        $amazonPayLoginInDropdown.after('<div class="dropdown-sso"><div class="separator"><span>Schnelle Anmeldung mit</span></div><div class="row"><div class="col-xs-3"><a class="sso-link sso-link-amazon" title="Amazon Pay Login" href="#"><i class="ssoicon fa fa-amazon" aria-hidden="true"></i></a></div></div></div>');
        $ssoContainer = $amazonPayLoginInDropdown.parent().find('.dropdown-sso');
    }
    $amazonPayLoginInDropdown.addClass('hidden');

    $ssoContainer.find('.sso-link-amazon').on('click', (e) => {
        e.preventDefault();
        $amazonPayLoginInDropdown.click();
    });
}
rearrangeAmazonLogin();
setInterval(rearrangeAmazonLogin, 1000);

Style innerhalb des Buttons anpassen

const STYLES_AMAZON_PAY = `
.amazonpay-button-view3{display: none;} //removes the button subtext
`;
(function (){
    setInterval(function(){
        const allButtons = document.querySelectorAll('.amazon-pay-button');
        if(allButtons.length > 0){
            allButtons.forEach(function(button){
                if(button.shadowRoot) {
                    if(button.shadowRoot.querySelector('#custom-button-style')){
                        return;
                    }
                    const style = document.createElement('style');
                    style.innerHTML = STYLES_AMAZON_PAY;
                    style.id = 'custom-button-style';
                    button.shadowRoot.appendChild(style);
                }
            });
        }
    }, 200);
})();

Amazon Pay Button lokal rendern (ohne Cookies)

Um das Amazon Pay JavaScript erst dann zu laden, wenn die Kundin den Button anklickt, muss im Shopverzeichnis eine (leere) Datei mit dem Namen .amazon-pay-local-buttons angelegt werden. Der Vorteil ist, dass keine Cookies gesetzt werden, solange der Button nicht angeklickt wird.