diff --git a/view/frontend/web/js/action/express-pay/get-required-order-data-action.js b/view/frontend/web/js/action/express-pay/get-required-order-data-action.js index d9028b1..20f11d9 100644 --- a/view/frontend/web/js/action/express-pay/get-required-order-data-action.js +++ b/view/frontend/web/js/action/express-pay/get-required-order-data-action.js @@ -20,7 +20,7 @@ define( */ return function (requirements) { const payload = {}; - if (window.checkoutConfig.bold.payment_type_clicked == 'apple') { + if (window.checkoutConfig.quoteData.entity_id === '' && window.checkoutConfig.bold.payment_type_clicked == 'apple') { payload.totals = { order_total: 0, order_balance: 1000, diff --git a/view/frontend/web/js/model/spi.js b/view/frontend/web/js/model/spi.js index d61f620..a1ddf4a 100644 --- a/view/frontend/web/js/model/spi.js +++ b/view/frontend/web/js/model/spi.js @@ -47,6 +47,7 @@ define([ localStorage.setItem(AGREEMENT_DATE_KEY, currentTime.toString()); return true; }; + let onClickPromise = null; /** * Fastlane init model. @@ -114,6 +115,7 @@ define([ } try { + await onClickPromise; return await onUpdatePaymentOrderCallback(paymentType, paymentPayload); } catch (e) { console.error(e); @@ -155,9 +157,8 @@ define([ 'onClickPaymentOrder': async (paymentType, paymentPayload) => { const pageSource = paymentPayload.containerId.replace('express-pay-buttons-', ''); window.checkoutConfig.bold.payment_type_clicked = paymentPayload?.payment_data?.payment_type; - - try { - onClickPaymentOrderCallback(pageSource); + try { + onClickPromise = onClickPaymentOrderCallback(pageSource); } catch (e) { console.error(e); fullScreenLoader.stopLoader(); diff --git a/view/frontend/web/js/model/spi/callbacks/on-click-payment-order-callback.js b/view/frontend/web/js/model/spi/callbacks/on-click-payment-order-callback.js index 14344ff..ac9e3fd 100644 --- a/view/frontend/web/js/model/spi/callbacks/on-click-payment-order-callback.js +++ b/view/frontend/web/js/model/spi/callbacks/on-click-payment-order-callback.js @@ -24,6 +24,7 @@ define([ response = JSON.parse(response); window.checkoutConfig.quoteData.entity_id = response.quoteId; window.checkoutConfig.quoteItemData = response.quoteItemData; + return; } catch (err) { console.error(err); }