/** * 2007-2022 patworx.de * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade AmazonPay to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author patworx multimedia GmbH * @copyright 2007-2022 patworx multimedia GmbH * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ function amazonPayInit() { amazon.Pay.initCheckout({ merchantId: amazonpay.merchant_id, ledgerCurrency: amazonpay.ledgerCurrency, sandbox: amazonpay.sandbox, checkoutLanguage: amazonpay.checkoutLanguage, productType: amazonpay.checkoutType, placement: 'Checkout', createCheckoutSessionConfig: { payloadJSON: amazonpay.button_payload, signature: amazonpay.button_signature, publicKeyId: amazonpay.public_key_id } }); } function amazonPayInitApb() { amazon.Pay.initCheckout({ merchantId: amazonpay.merchant_id, ledgerCurrency: amazonpay.ledgerCurrency, sandbox: amazonpay.sandbox, checkoutLanguage: amazonpay.checkoutLanguage, productType: amazonpay.checkoutType, placement: 'Checkout', createCheckoutSessionConfig: { payloadJSON: amazonpay.button_payload_apb, signature: amazonpay.button_signature_apb, publicKeyId: amazonpay.public_key_id } }); } $(document).ready(function() { if (typeof isLoginToCheckout !== 'undefined') { if (isLoginToCheckout === true) { amazonPayInitApb(); } else { amazonPayInit(); } } function renderAmazonPayButton() { if (typeof amazon === 'undefined') { return; } $(".amazonPayButton").each(function() { if ($(this).attr('data-rendered') != '1') { if ($(this).parent().hasClass('product-quantity') && !amazonpay.is_prestashop16) { $(this).insertAfter($(this).parent()); } let date = new Date(); let amazonPayButton = $(this); if ($(this).attr("id") == '' || typeof $(this).attr("id") === typeof undefined) { $(this).attr("id", "amazonPayTsBtn_" + date.getTime()); } if (amazonPayButton.hasClass('amazonLogin')) { let renderedAmazonPayButton = amazon.Pay.renderButton('#'+amazonPayButton.attr('id'), { merchantId: amazonpay.merchant_id, sandbox: amazonpay.sandbox, // dev environment ledgerCurrency: amazonpay.ledgerCurrency, // Amazon Pay account ledger currency checkoutLanguage: amazonpay.checkoutLanguage, // render language productType: 'SignIn', placement: amazonPayButton.attr('data-placement'), // button placement buttonColor: amazonPayButton.attr('data-color'), // button color signInConfig: { payloadJSON: amazonPayButton.hasClass('amazonLoginCheckout') ? amazonpay.login_to_checkout_button_payload : amazonpay.login_button_payload, signature: amazonPayButton.hasClass('amazonLoginCheckout') ? amazonpay.login_to_checkout_button_signature : amazonpay.login_button_signature, publicKeyId: amazonpay.public_key_id } }); $(this).attr('data-rendered', '1'); return; } let createCheckoutSessionParams = { url: amazonpay.amazonPayCheckoutSessionURL }; let renderedAmazonPayButton = amazon.Pay.renderButton('#'+amazonPayButton.attr('id'), { merchantId: amazonpay.merchant_id, sandbox: amazonpay.sandbox, // dev environment ledgerCurrency: amazonpay.ledgerCurrency, // Amazon Pay account ledger currency checkoutLanguage: amazonpay.checkoutLanguage, // render language productType: amazonpay.checkoutType, // 'PayAndShip', // checkout type placement: amazonPayButton.attr('data-placement'), // button placement buttonColor: amazonPayButton.attr('data-color'), // button color design: amazonPayButton.attr('data-design') != '' ? amazonPayButton.attr('data-design') : false // specific design params }); renderedAmazonPayButton.onClick(function() { let click_timeout = 1; if (amazonPayButton.hasClass('amazonPayProductButton')) { if ($("#add-to-cart-or-refresh").length > 0) { if ($("#add-to-cart-or-refresh .add-to-cart").length > 0) { $("#add-to-cart-or-refresh .add-to-cart").trigger('click'); click_timeout = 2000; } } else if ($("#buy_block").length > 0) { if ($("#buy_block button[type=submit]").length > 0) { $("#buy_block button[type=submit]").trigger('click'); click_timeout = 2000; } } } setTimeout(function() { buttonInitCheckout(renderedAmazonPayButton) }, click_timeout); }); $(this).attr('data-rendered', '1'); } }); } function buttonInitCheckout(renderedButton) { renderedButton.initCheckout({ createCheckoutSessionConfig: { payloadJSON: amazonpay.button_payload, signature: amazonpay.button_signature, publicKeyId: amazonpay.public_key_id } }); } renderAmazonPayButton(); setInterval(renderAmazonPayButton, 1000); });