Skip to content

Commit

Permalink
Merge pull request #124 from alma/feature/ecom-1933-sfcc-warn-user-th…
Browse files Browse the repository at this point in the history
…at-module-is-in-test-mode

Add test warning on Frontstore
  • Loading branch information
FranceBe authored Aug 16, 2024
2 parents c0e76bd + a13946c commit e5e2f91
Show file tree
Hide file tree
Showing 15 changed files with 74 additions and 42 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ metadata/
*.p12
**/dw.js
**/dw.json
**/dw.json.*
.env

# avoid publishing translation config
Expand Down
65 changes: 24 additions & 41 deletions cartridges/int_alma/cartridge/scripts/helpers/almaCheckoutHelper.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ var isOnShipmentPaymentEnabled = require('*/cartridge/scripts/helpers/almaOnShip
var PaymentMgr = require('dw/order/PaymentMgr');
var almaConfigHelper = require('*/cartridge/scripts/helpers/almaConfigHelper');
var almaPaymentHelper = require('*/cartridge/scripts/helpers/almaPaymentHelper');
var almaHelpers = require('*/cartridge/scripts/helpers/almaHelpers');

var ALMA_PNX_ID = 'ALMA_PNX';
var ALMA_CREDIT_ID = 'ALMA_CREDIT';
Expand Down Expand Up @@ -212,6 +213,22 @@ function getPlanPaymentMethodID(plan) {
return paymentMethodId;
}

/**
* Format Alma mode data to fit in Checkout view data
* @returns {Object} Alma mode data
* - isTest: boolean true if Alma mode is TEST
* - labels: object with title and description for translations
*/
function getFormattedAlmaModeData() {
return {
isTest: almaHelpers.getMode() === 'TEST',
labels: {
title: Resource.msg('alma.test.mode.warn.title', 'alma', null),
description: Resource.msg('alma.test.mode.warn.description', 'alma', null)
}
};
}

/**
* Format plan data to fit in Checkout view data
* @param {Object} plan any alma plan
Expand All @@ -220,46 +237,11 @@ function getPlanPaymentMethodID(plan) {
*/
function formatPlanForCheckout(plan, currencyCode) {
var formatPlan = {};
if (plan.installments_count < 5 && planIsActivated(PaymentMgr.getPaymentMethod(ALMA_PNX_ID), plan)) {
formatPlan = {
in_page: isAvailableForInpage(plan.installments_count) && almaConfigHelper.isInpageActivated(),
selector: getSelectorNameFromPlan(plan),
installments_count: plan.installments_count,
deferred_days: plan.deferred_days,
purchase_amount: plan.purchase_amount,
customer_fee: plan.customer_fee,
payment_plan: plan.payment_plan,
properties: getPropertiesForPlan(plan, currencyCode),
payment_method: getPlanPaymentMethodID(plan)
};
}
if (plan.installments_count >= 5 && planIsActivated(PaymentMgr.getPaymentMethod(ALMA_CREDIT_ID), plan)) {
formatPlan = {
in_page: isAvailableForInpage(plan.installments_count) && almaConfigHelper.isInpageActivated(),
selector: getSelectorNameFromPlan(plan),
installments_count: plan.installments_count,
deferred_days: plan.deferred_days,
purchase_amount: plan.purchase_amount,
customer_fee: plan.customer_fee,
payment_plan: plan.payment_plan,
properties: getPropertiesForPlan(plan, currencyCode),
payment_method: getPlanPaymentMethodID(plan)
};
}
if (plan.deferred_days > 0 && planIsActivated(PaymentMgr.getPaymentMethod(ALMA_DEFERRED_ID), plan)) {
formatPlan = {
in_page: isAvailableForInpage(plan.installments_count) && almaConfigHelper.isInpageActivated(),
selector: getSelectorNameFromPlan(plan),
installments_count: plan.installments_count,
deferred_days: plan.deferred_days,
purchase_amount: plan.purchase_amount,
customer_fee: plan.customer_fee,
payment_plan: plan.payment_plan,
properties: getPropertiesForPlan(plan, currencyCode),
payment_method: getPlanPaymentMethodID(plan)
};
}
if (plan.installments_count === 1 && plan.deferred_days === 0 && planIsActivated(PaymentMgr.getPaymentMethod(ALMA_PAY_NOW_ID), plan)) {
var ALMA_PNX = plan.installments_count < 5 && planIsActivated(PaymentMgr.getPaymentMethod(ALMA_PNX_ID), plan);
var ALMA_CREDIT = plan.installments_count >= 5 && planIsActivated(PaymentMgr.getPaymentMethod(ALMA_CREDIT_ID), plan);
var ALMA_DEFERRED = plan.deferred_days > 0 && planIsActivated(PaymentMgr.getPaymentMethod(ALMA_DEFERRED_ID), plan);
var ALMA_PAY_NOW = plan.installments_count === 1 && plan.deferred_days === 0 && planIsActivated(PaymentMgr.getPaymentMethod(ALMA_PAY_NOW_ID), plan);
if (ALMA_PNX || ALMA_CREDIT || ALMA_DEFERRED || ALMA_PAY_NOW) {
formatPlan = {
in_page: isAvailableForInpage(plan.installments_count) && almaConfigHelper.isInpageActivated(),
selector: getSelectorNameFromPlan(plan),
Expand All @@ -269,7 +251,8 @@ function formatPlanForCheckout(plan, currencyCode) {
customer_fee: plan.customer_fee,
payment_plan: plan.payment_plan,
properties: getPropertiesForPlan(plan, currencyCode),
payment_method: getPlanPaymentMethodID(plan)
payment_method: getPlanPaymentMethodID(plan),
alma_mode: getFormattedAlmaModeData()
};
}
return formatPlan;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,7 @@ function buildEligiblePlans(purchaseAmount, feePlans, locale, currentBasket, pla
plans[planEligible.payment_method][planEligible.selector].payment_plans = planEligible.payment_plan;
plans[planEligible.payment_method][planEligible.selector].properties = planEligible.properties;
plans[planEligible.payment_method][planEligible.selector].in_page = planEligible.in_page;
plans[planEligible.payment_method][planEligible.selector].alma_mode = planEligible.alma_mode;
});

return plans;
Expand Down
11 changes: 11 additions & 0 deletions cartridges/int_alma/cartridge/static/default/css/almaContent.css
Original file line number Diff line number Diff line change
Expand Up @@ -101,3 +101,14 @@
transform: rotate(360deg);
}
}

.alma-test-mode {
background-color: #FFF5CC;
padding: 24px;
border-radius: 20px;
font-size: small;
display: flex;
flex-direction: row;
gap: 16px;
align-items: flex-start;
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,16 @@
<p class="pt-30" id="${plan.key + '-fees'}">
<isprint value="${plan.properties.fees}"/>
</p>
<isif condition="${plan.alma_mode.isTest}">
<p class="alma-test-mode">
<img src="${URLUtils.staticURL('/images/warning.svg')}" alt="">
<span>
<b>${plan.alma_mode.labels.title}</b>
<br>
${plan.alma_mode.labels.description}
</span>
</p>
</isif>
</isif>
</div>
<div class="col-1 icon">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,5 @@ alma.pay.now.installments=Today
alma.pay.now=Pay now with credit card
alma.pay.now.description=Fast and secured payments

alma.test.mode.warn.title=Sandbox/Test Mode
alma.test.mode.warn.description=All transactions are simulated.
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,5 @@ alma.pay.now.installments=Heute
alma.pay.now=Jetzt mit Kreditkarte bezahlen
alma.pay.now.description=Schnelle und sichere Zahlungen

alma.test.mode.warn.title=Sandbox/Testmodus
alma.test.mode.warn.description=Alle Transaktionen werden simuliert.
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,5 @@ alma.pay.now.installments=Hoy
alma.pay.now=Pague ahora con tarjeta de crédito
alma.pay.now.description=Pagos rápidos y seguros

alma.test.mode.warn.title=Modo Sandbox/Prueba
alma.test.mode.warn.description=Todas las transacciones son simuladas.
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,5 @@ alma.pay.now.installments=Aujourd'hui
alma.pay.now=Payer maintenant par carte de crédit
alma.pay.now.description=Paiements rapides et sécurisés
alma.test.mode.warn.title=Mode Test
alma.test.mode.warn.description=Toutes les transactions sont simulées.
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,5 @@ alma.pay.now.installments=Oggi
alma.pay.now=Paga ora con la carta
alma.pay.now.description=Pagamenti rapidi e sicuri

alma.test.mode.warn.title=Modalità Sandbox/Test
alma.test.mode.warn.description=Tutte le transazioni sono simulate.
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,5 @@ alma.pay.now.installments=Vandaag
alma.pay.now=Betaal nu met creditcard
alma.pay.now.description=Snelle en veilige betalingen

alma.test.mode.warn.title=Sandbox/Testmodus
alma.test.mode.warn.description=Alle transacties worden gesimuleerd.
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,5 @@ alma.pay.now.installments=Hoje
alma.pay.now=Pagar agora com cartão de crédito
alma.pay.now.description=Pagamentos rápidos e seguros

alma.test.mode.warn.title=Modo Sandbox/Teste
alma.test.mode.warn.description=Todas as transacções são simuladas.
2 changes: 2 additions & 0 deletions test/mocks/helpers/almaCheckoutHelpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ var proxyquire = require('proxyquire')
.noCallThru()
.noPreserveCache();
var almaConfigHelpers = require('./almaConfigHelpers').almaConfigHelpers;
var almaHelpers = require('./almaHelpers');
var setCustomPreferenceValue = require('./almaConfigHelpers').setCustomPreferenceValue;

var resource = {
Expand Down Expand Up @@ -73,6 +74,7 @@ function proxyModel() {
},
'dw/system/Site': site,
'*/cartridge/scripts/helpers/almaConfigHelper': almaConfigHelpers,
'*/cartridge/scripts/helpers/almaHelpers': almaHelpers,
'dw/order/PaymentMgr': paymentMgr,
'*/cartridge/scripts/helpers/almaPaymentHelper': {
isAvailableForManualCapture: function () {
Expand Down
7 changes: 6 additions & 1 deletion test/mocks/helpers/almaHelpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,12 @@ function formatCustomerData() {
};
}

function getMode() {
return 'TEST';
}

module.exports = {
getSfccVersion: getSfccVersion,
formatCustomerData: formatCustomerData
formatCustomerData: formatCustomerData,
getMode: getMode
};

0 comments on commit e5e2f91

Please sign in to comment.