From 590c3c8a55189a78a4668a24786801dbdb7ea8d3 Mon Sep 17 00:00:00 2001 From: suweinberg Date: Tue, 5 Aug 2025 12:29:56 -0700 Subject: [PATCH 01/43] support it lt msgs --- content/messages/IT/long_term_nq.json | 28 +++ content/messages/IT/long_term_q.json | 24 +++ src/server/locale/IT/mutations/index.js | 8 + .../locale/IT/mutations/long_term_nq.js | 160 ++++++++++++++++ src/server/locale/IT/mutations/long_term_q.js | 175 ++++++++++++++++++ src/utils/miscellaneous.js | 2 + utils/devServerProxy/config/IT/index.js | 111 +++++++++++ 7 files changed, 508 insertions(+) create mode 100644 content/messages/IT/long_term_nq.json create mode 100644 content/messages/IT/long_term_q.json create mode 100644 src/server/locale/IT/mutations/long_term_nq.js create mode 100644 src/server/locale/IT/mutations/long_term_q.js diff --git a/content/messages/IT/long_term_nq.json b/content/messages/IT/long_term_nq.json new file mode 100644 index 0000000000..8156489da5 --- /dev/null +++ b/content/messages/IT/long_term_nq.json @@ -0,0 +1,28 @@ +{ + "meta": { + "offerCountry": "IT", + "offerType": "PAY_LATER_LONG_TERM", + "offerTerm": "{total_payments}", + "lander": "https://www.paypal.com/credit-presentment/lander/modal", + "variables": { + "offer_id": "${CREDIT_OFFERS_DS.offer_id}", + "vendor_financing_id": "${CREDIT_OFFERS_DS.vendor_financing_id}", + "financing_code": "${CREDIT_OFFERS_DS.financing_code}", + "formattedPeriodicPayment": "${CREDIT_OFFERS_DS.formattedPeriodicPayment}", + "formattedMinAmount": "${CREDIT_OFFERS_DS.formattedMinAmount}", + "formattedMaxAmount": "${CREDIT_OFFERS_DS.formattedMaxAmount}" + } + }, + "headline": [ + ["Acquista ora, paga dopo.", ["default", "xsmall"]], + ["Acquista ora e paga dopo.", ["xsmall.2"]], + [ + "Paga gli acquisti tra {formattedMinAmount} e {formattedMaxAmount} a rate mensili.", + ["small", "medium", "large", "xlarge"] + ] + ], + "subHeadline": [], + "disclaimer": [ + ["Scopri di più", ["default"]] + ] +} diff --git a/content/messages/IT/long_term_q.json b/content/messages/IT/long_term_q.json new file mode 100644 index 0000000000..d100e87ad9 --- /dev/null +++ b/content/messages/IT/long_term_q.json @@ -0,0 +1,24 @@ +{ + "meta": { + "offerCountry": "IT", + "offerType": "PAY_LATER_LONG_TERM", + "messageType": "LONG_TERM:Q", + "offerTerm": "{total_payments}", + "lander": "https://www.paypal.com/credit-presentment/lander/modal", + "variables": { + "offer_id": "${CREDIT_OFFERS_DS.offer_id}", + "vendor_financing_id": "${CREDIT_OFFERS_DS.vendor_financing_id}", + "financing_code": "${CREDIT_OFFERS_DS.financing_code}", + "formattedPeriodicPayment": "${CREDIT_OFFERS_DS.formattedPeriodicPayment}", + "formattedMinAmount": "${CREDIT_OFFERS_DS.formattedMinAmount}", + "formattedMaxAmount": "${CREDIT_OFFERS_DS.formattedMaxAmount}" + } + }, + "headline": [ + ["Acquista ora, paga dopo.", ["default", "xsmall"]], + ["Acquista ora e paga dopo.", ["xsmall.2"]], + [["Paga fino a 24 rate mensili."], ["small", "medium", "large", "xlarge"]] + ], + "subHeadline": [], + "disclaimer": [["Scopri di più", ["default"]]] +} diff --git a/src/server/locale/IT/mutations/index.js b/src/server/locale/IT/mutations/index.js index f369371961..3e0b20b5cb 100644 --- a/src/server/locale/IT/mutations/index.js +++ b/src/server/locale/IT/mutations/index.js @@ -1,10 +1,18 @@ // mutations import here. +import longTermQ from './long_term_q'; +import longTermNq from './long_term_nq'; import shortTermQ from './short_term_q'; import shortTermNq from './short_term_nq'; import shortTermNoAmount from './short_term_no_amount'; export default function getMutations(id, type) { switch (id) { + case 'LONG_TERM:Q': + case 'PLLT_SQ': + return longTermQ[type]; + case 'LONG_TERM:NQ': + case 'PLLT_NQ': + return longTermNq[type]; case 'SHORT_TERM:Q': case 'PLST_SQ': return shortTermQ[type]; diff --git a/src/server/locale/IT/mutations/long_term_nq.js b/src/server/locale/IT/mutations/long_term_nq.js new file mode 100644 index 0000000000..1b7282cbc7 --- /dev/null +++ b/src/server/locale/IT/mutations/long_term_nq.js @@ -0,0 +1,160 @@ +import { flexLogoMutations, textLogoMutations } from '../../../message/logoMutations'; +import Logo from '../../../message/logos'; +import { + altNoWrap, + logo20x1, + messageLogoWidth, + setLogoTop, + textWrap, + xSmallFallback +} from '../../../message/mediaQueries'; + +const headlineBreaks = [ + { + sizes: ['xsmall'] + }, + { + sizes: ['medium'], + breaks: ['rate'] + } +].reduce((acc, item) => { + const { sizes, breaks } = item; + sizes.forEach(size => { + acc.push({ + tag: size, + br: breaks + }); + }); + return acc; +}, []); + +export default { + 'layout:flex': [ + [ + 'default', + { + logo: Logo.PP_PAYPAL.WHITE, + headline: [ + { + tag: 'xsmall' + }, + { + tag: 'medium' + } + ], + disclaimer: ['default'], + styles: [] + } + ], + [ + 'ratio:20x1', + { + headline: [...headlineBreaks], + styles: [logo20x1()] + } + ], + [ + 'ratio:8x1', + { + headline: [...headlineBreaks] + } + ], + ...flexLogoMutations + ], + 'layout:text': [ + [ + 'default', + ({ textSize }) => ({ + styles: [ + textWrap(textSize * 48.5, textSize, 'IT'), + xSmallFallback(textSize * 23), + messageLogoWidth(false, textSize * 4, textSize * 1.25), + setLogoTop(textSize * 20) + ], + logo: Logo.PP_PAYPAL.COLOR, + headline: [ + { + tag: 'medium', + br: ['in', 'rate'] + }, + { tag: 'xsmall' } + ], + disclaimer: ['default'] + }) + ], + [ + 'logo.type:primary && logo.position:right', + ({ textSize }) => ({ + styles: [ + xSmallFallback(textSize * 17.4), + setLogoTop(textSize * 49), + messageLogoWidth(textSize * 6, textSize * 4, textSize * 1.25) + ] + }) + ], + [ + 'logo.type:primary && logo.position:top', + ({ textSize }) => ({ + styles: [xSmallFallback(textSize * 21), messageLogoWidth(textSize * 6, textSize * 4, textSize * 1.25)] + }) + ], + [ + 'logo.type:alternative', + ({ textSize }) => ({ + styles: [ + `@media screen and (max-width: ${textSize * 14}px) { .message__content { white-space: nowrap; }}`, + textWrap(textSize * 44, textSize, 'IT'), + xSmallFallback(textSize * 19), + altNoWrap(textSize * 14), + messageLogoWidth(textSize * 1.75, textSize * 4, textSize * 1.25) + ], + logo: Logo.PP_PAYPAL.COLOR[0] + }) + ], + [ + 'logo.type:none', + ({ textSize }) => ({ + styles: [xSmallFallback(textSize * 24)], + logo: false, + headline: [ + { + tag: 'medium.2', + br: ['rate', 'in\b'], + replace: [ + ['interessi.', 'interessi'], + ['dopo.', 'dopo'] + ] + }, + { + tag: 'xsmall.2', + br: ['dopo.'], + replace: [['dopo.', 'dopo']] + } + ] + }) + ], + [ + 'logo.type:inline', + ({ textSize }) => ({ + styles: [xSmallFallback(textSize * 24), `.message__logo { width: ${textSize * 4}px }`], + logo: Logo.NO_PP_MONOGRAM.COLOR, + headline: [ + { + tag: 'medium.2', + br: ['rate', 'in\b'], + replace: [ + ['interessi.', 'interessi'], + ['dopo.', 'dopo'] + ] + }, + { + tag: 'xsmall.2', + br: ['dopo.'], + replace: [['dopo.', 'dopo']] + } + ] + }) + ], + ...textLogoMutations + ] +}; diff --git a/src/server/locale/IT/mutations/long_term_q.js b/src/server/locale/IT/mutations/long_term_q.js new file mode 100644 index 0000000000..6f9b2447f9 --- /dev/null +++ b/src/server/locale/IT/mutations/long_term_q.js @@ -0,0 +1,175 @@ +import { flexLogoMutations, textLogoMutations } from '../../../message/logoMutations'; +import Logo from '../../../message/logos'; +import { + addPeriod, + altNoWrap, + logo20x1, + messageLogoWidth, + setLogoTop, + textWrap, + xSmallFallback +} from '../../../message/mediaQueries'; + +const headlineBreaks = [ + { + sizes: ['xsmall'] + }, + { + sizes: ['medium'], + breaks: ['rate'] + } +].reduce((acc, item) => { + const { sizes, breaks } = item; + sizes.forEach(size => { + acc.push({ + tag: size, + br: breaks + }); + }); + return acc; +}, []); + +export default { + 'layout:flex': [ + [ + 'default', + { + logo: Logo.PP_PAYPAL.WHITE, + headline: [ + { + tag: 'xsmall' + }, + { + tag: 'medium' + } + ], + disclaimer: ['default'], + styles: [] + } + ], + [ + 'ratio:20x1', + { + headline: [...headlineBreaks], + styles: [logo20x1()] + } + ], + [ + 'ratio:8x1', + { + headline: [...headlineBreaks] + } + ], + ...flexLogoMutations + ], + 'layout:text': [ + [ + 'default', + ({ textSize }) => ({ + styles: [ + textWrap(textSize * 37, textSize, 'IT'), + xSmallFallback(textSize * 18), + messageLogoWidth(false, textSize * 4, textSize * 1.25), + setLogoTop(textSize * 16), + addPeriod() + ], + logo: Logo.PP_PAYPAL.COLOR, + headline: [ + { + tag: 'medium', + br: ['rate'], + replace: [['mensili.', 'mensili']] + }, + { tag: 'xsmall' } + ], + disclaimer: ['default'] + }) + ], + [ + 'logo.type:primary && logo.position:right', + ({ textSize }) => ({ + styles: [ + `@media screen and (max-width: ${ + textSize * 18.5 + }px) { .message__headline > .tag--medium > span > span:first-child { white-space: normal; } }`, + xSmallFallback(textSize * 16), + setLogoTop(textSize * 37), + messageLogoWidth(textSize * 6, textSize * 4, textSize * 1.25), + addPeriod() + ] + }) + ], + [ + 'logo.type:primary && logo.position:top', + ({ textSize }) => ({ + styles: [ + `@media screen and (max-width: ${ + textSize * 18.5 + }px) { .message__headline > .tag--medium > span > span:first-child { white-space: normal; } }`, + xSmallFallback(textSize * 16), + messageLogoWidth(textSize * 6, textSize * 4, textSize * 1.25), + addPeriod() + ] + }) + ], + [ + 'logo.type:alternative', + ({ textSize }) => ({ + styles: [ + `@media screen and (max-width: ${textSize * 14}px) { .message__content { white-space: nowrap; }}`, + textWrap(textSize * 33.5, textSize, 'IT'), + xSmallFallback(textSize * 14), + altNoWrap(textSize * 14), + messageLogoWidth(textSize * 1.75, textSize * 4, textSize * 1.25), + addPeriod() + ], + logo: Logo.PP_PAYPAL.COLOR[0], + headline: [ + { + tag: 'medium', + br: ['rate'], + replace: [['mensili.', 'mensili']] + }, + { tag: 'xsmall' } + ] + }) + ], + [ + 'logo.type:none', + ({ textSize }) => ({ + styles: [xSmallFallback(textSize * 19)], + logo: false, + headline: [ + { + tag: 'medium', + br: ['rate'], + replace: [['interessi.', 'interessi']] + }, + { + tag: 'xsmall.2', + replace: [['dopo.', 'dopo']] + } + ] + }) + ], + [ + 'logo.type:inline', + ({ textSize }) => ({ + styles: [xSmallFallback(textSize * 19), `.message__logo { width: ${textSize * 4}px }`], + logo: Logo.NO_PP_MONOGRAM.COLOR, + headline: [ + { + tag: 'medium', + br: ['rate'], + replace: [['mensili.', 'mensili']] + }, + { + tag: 'xsmall.2', + replace: [['dopo.', 'dopo']] + } + ] + }) + ], + ...textLogoMutations + ] +}; diff --git a/src/utils/miscellaneous.js b/src/utils/miscellaneous.js index 5112e0c4a9..aee0a4a92f 100644 --- a/src/utils/miscellaneous.js +++ b/src/utils/miscellaneous.js @@ -215,6 +215,8 @@ export function getStandardProductOffer(offer) { case 'LT_SQEZ': case 'LT_SQEZ_RB': case 'LT_SQGZ': + case 'LONG_TERM:Q': + case 'LONG_TERM:NQ': case 'GPL:EQZ': case 'GPL:GTZ': case 'GPLQ:EQZ': diff --git a/utils/devServerProxy/config/IT/index.js b/utils/devServerProxy/config/IT/index.js index cc4244cb16..7a096b54f6 100644 --- a/utils/devServerProxy/config/IT/index.js +++ b/utils/devServerProxy/config/IT/index.js @@ -1,6 +1,85 @@ // Note that these values are solely mock structures for development purposes // that are not guaranteed to be reflective of what is in production export default { + DEV_IT_MULTI: { + country: 'IT', + // modalViews: [ + // { + // template: 'v2_product_list.json', + // product: 'PRODUCT_LIST' + // }, + // { + // template: 'short_term.json', + // product: 'PAY_LATER_SHORT_TERM' + // }, + // { + // template: 'long_term.json', + // offersTemplate: 'long_term.json', + // product: 'PAY_LATER_LONG_TERM' + // } + // ], + messageThresholds: [ + { + amount: 0, + template: 'short_term_no_amount.json', + product: 'PAY_LATER_SHORT_TERM' + }, + { + amount: 0.01, + template: 'short_term_nq.json', + product: 'PAY_LATER_SHORT_TERM' + }, + { + amount: 30, + template: 'short_term_q.json', + product: 'PAY_LATER_SHORT_TERM' + }, + { + amount: 500, + template: 'long_term_q.json', + product: 'PAY_LATER_LONG_TERM' + }, + { + amount: 5000.01, + template: 'long_term_nq.json', + product: 'PAY_LATER_LONG_TERM' + } + ], + offers: { + PAY_LATER_SHORT_TERM: [ + { + totalPayments: 3, + apr: 0, + nominalRate: 0, + minAmount: 30, + maxAmount: 2000 + } + ], + PAY_LATER_LONG_TERM: [ + { + totalPayments: 6, + apr: 14.99, + nominalRate: 0, + minAmount: 60, + maxAmount: 5000 + }, + { + totalPayments: 12, + apr: 14.99, + nominalRate: 0, + minAmount: 120, + maxAmount: 5000 + }, + { + totalPayments: 24, + apr: 14.99, + nominalRate: 0, + minAmount: 240, + maxAmount: 5000 + } + ] + } + }, DEV_IT_SHORT_TERM: { country: 'IT', modalViews: [ @@ -37,5 +116,37 @@ export default { } ] } + }, + DEV_IT_LONG_TERM: { + country: 'IT', + modalViews: [ + { + template: 'short_term.json', + product: 'PAY_LATER_SHORT_TERM' + } + ], + messageThresholds: [ + { + amount: 60, + template: 'long_term_q.json', + product: 'PAY_LATER_LONG_TERM' + }, + { + amount: 5000.01, + template: 'long_term_nq.json', + product: 'PAY_LATER_LONG_TERM' + } + ], + offers: { + PAY_LATER_LONG_TERM: [ + { + totalPayments: 24, + apr: 14.99, + nominalRate: 14.0491, + minAmount: 240, + maxAmount: 5000 + } + ] + } } }; From a66b28ca9dd4c720a5bdc703c5a900bb226cc1e9 Mon Sep 17 00:00:00 2001 From: opercy Date: Wed, 13 Aug 2025 17:03:35 -0500 Subject: [PATCH 02/43] Added ITES long term modals --- content/modals/ES/long_term.json | 45 +++++++++++++++++++++ content/modals/ES/long_term_en.json | 45 +++++++++++++++++++++ content/modals/ES/product_list.json | 29 +++++++++++++ content/modals/IT/long_term.json | 45 +++++++++++++++++++++ content/modals/IT/long_term_en.json | 45 +++++++++++++++++++++ content/modals/IT/product_list.json | 29 +++++++++++++ content/offers/ES/long_term.json | 48 ++++++++++++++++++++++ content/offers/ES/long_term_en.json | 48 ++++++++++++++++++++++ content/offers/IT/long_term.json | 48 ++++++++++++++++++++++ content/offers/IT/long_term_en.json | 48 ++++++++++++++++++++++ utils/devServerProxy/config/ES/index.js | 52 ++++++++++++++++++++++++ utils/devServerProxy/config/IT/index.js | 54 ++++++++++++++++--------- 12 files changed, 516 insertions(+), 20 deletions(-) create mode 100644 content/modals/ES/long_term.json create mode 100644 content/modals/ES/long_term_en.json create mode 100644 content/modals/ES/product_list.json create mode 100644 content/modals/IT/long_term.json create mode 100644 content/modals/IT/long_term_en.json create mode 100644 content/modals/IT/product_list.json create mode 100644 content/offers/ES/long_term.json create mode 100644 content/offers/ES/long_term_en.json create mode 100644 content/offers/IT/long_term.json create mode 100644 content/offers/IT/long_term_en.json diff --git a/content/modals/ES/long_term.json b/content/modals/ES/long_term.json new file mode 100644 index 0000000000..6160bed426 --- /dev/null +++ b/content/modals/ES/long_term.json @@ -0,0 +1,45 @@ +{ + "meta": { + "product": "PAY_LATER_LONG_TERM", + "offerCountry": "ES", + "language": "en-ES", + "useV5Design": "true", + "v5.1": "true", + "variables": { + "transaction_amount": "${eval(transaction_amount ? transaction_amount : '-')}", + "qualifying_offer": "${eval(CREDIT_OFFERS_DS.qualifying_offer ? CREDIT_OFFERS_DS.qualifying_offer : 'false')}", + "financing_code": "${CREDIT_OFFERS_DS.financing_code}", + "formattedPeriodicPayment": "${CREDIT_OFFERS_DS.formattedPeriodicPayment}", + "total_payments": "${CREDIT_OFFERS_DS.total_payments}", + "formattedMinAmount": "${CREDIT_OFFERS_DS.formattedMinAmount}", + "formattedMaxAmount": "${CREDIT_OFFERS_DS.formattedMaxAmount}", + "formattedTotalCost": "${CREDIT_OFFERS_DS.formattedTotalCost}", + "minAmount": "${CREDIT_OFFERS_DS.minAmount}", + "maxAmount": "${CREDIT_OFFERS_DS.maxAmount}", + "apr": "${CREDIT_OFFERS_DS.apr}", + "nominal_rate": "${CREDIT_OFFERS_DS.nominal_rate}", + "formattedNominalRatePrecision2": "${CREDIT_OFFERS_DS.formattedNominalRatePrecision2}" + } + }, + "content": { + "headline": "Pay later in monthly installments", + "subheadline": "Buy today, with no down payment.", + "calculator": { + "title": "How much is your purchase?", + "inputLabel": "Value of goods", + "inputPlaceholder": "{formattedMinAmount} - {formattedMaxAmount}", + "inputCurrencySymbol": "€", + "genericError": "Something went wrong. Please try later." + }, + "genericDisclaimer": "Terms vary based on purchase amount and your credit.", + "instructions": [ + "Choose PayPal at checkout to pay later with Pay in installments.", + "Get a decision in seconds and complete your purchase.", + "Use autopay for repayments. It's easy!" + ], + "disclosure": [ + "Subject to credit check. Lender: PayPal (Europe) S.à r.l. et Cie, S.C.A., 22-24 Boulevard Royal, L-2449 Luxemburg." + ], + "linkToProductList": "See other ways to pay later" + } +} diff --git a/content/modals/ES/long_term_en.json b/content/modals/ES/long_term_en.json new file mode 100644 index 0000000000..6160bed426 --- /dev/null +++ b/content/modals/ES/long_term_en.json @@ -0,0 +1,45 @@ +{ + "meta": { + "product": "PAY_LATER_LONG_TERM", + "offerCountry": "ES", + "language": "en-ES", + "useV5Design": "true", + "v5.1": "true", + "variables": { + "transaction_amount": "${eval(transaction_amount ? transaction_amount : '-')}", + "qualifying_offer": "${eval(CREDIT_OFFERS_DS.qualifying_offer ? CREDIT_OFFERS_DS.qualifying_offer : 'false')}", + "financing_code": "${CREDIT_OFFERS_DS.financing_code}", + "formattedPeriodicPayment": "${CREDIT_OFFERS_DS.formattedPeriodicPayment}", + "total_payments": "${CREDIT_OFFERS_DS.total_payments}", + "formattedMinAmount": "${CREDIT_OFFERS_DS.formattedMinAmount}", + "formattedMaxAmount": "${CREDIT_OFFERS_DS.formattedMaxAmount}", + "formattedTotalCost": "${CREDIT_OFFERS_DS.formattedTotalCost}", + "minAmount": "${CREDIT_OFFERS_DS.minAmount}", + "maxAmount": "${CREDIT_OFFERS_DS.maxAmount}", + "apr": "${CREDIT_OFFERS_DS.apr}", + "nominal_rate": "${CREDIT_OFFERS_DS.nominal_rate}", + "formattedNominalRatePrecision2": "${CREDIT_OFFERS_DS.formattedNominalRatePrecision2}" + } + }, + "content": { + "headline": "Pay later in monthly installments", + "subheadline": "Buy today, with no down payment.", + "calculator": { + "title": "How much is your purchase?", + "inputLabel": "Value of goods", + "inputPlaceholder": "{formattedMinAmount} - {formattedMaxAmount}", + "inputCurrencySymbol": "€", + "genericError": "Something went wrong. Please try later." + }, + "genericDisclaimer": "Terms vary based on purchase amount and your credit.", + "instructions": [ + "Choose PayPal at checkout to pay later with Pay in installments.", + "Get a decision in seconds and complete your purchase.", + "Use autopay for repayments. It's easy!" + ], + "disclosure": [ + "Subject to credit check. Lender: PayPal (Europe) S.à r.l. et Cie, S.C.A., 22-24 Boulevard Royal, L-2449 Luxemburg." + ], + "linkToProductList": "See other ways to pay later" + } +} diff --git a/content/modals/ES/product_list.json b/content/modals/ES/product_list.json new file mode 100644 index 0000000000..545ca5c9c8 --- /dev/null +++ b/content/modals/ES/product_list.json @@ -0,0 +1,29 @@ +{ + "meta": { + "product": "PRODUCT_LIST", + "useV5Design": "true", + "v5.1": "true", + "offerCountry": "ES" + }, + "content": { + "headline": "Buy now, pay later", + "disclosure": "Es gelten die Nutzungsbedingungen. Vorbehaltlich Kreditwürdigkeitsprüfung. Für weitere Informationen zur Bezahlung nach 30 Tagen oder PayPal Ratenzahlung wählen Sie eine der obigen Optionen.", + "instructions": { + "payLater": "Select a payment option for more info." + }, + "productTiles": { + "payLater": [ + { + "header": "Pay in 3 installments", + "body": "Interest-free monthly payments, starting today.", + "viewName": "PAY_LATER_SHORT_TERM" + }, + { + "header": "Pay in 6, 12 or 24 installments", + "body": "Monthly installments for larger purchases, with no down payment.", + "viewName": "PAY_LATER_LONG_TERM" + } + ] + } + } +} diff --git a/content/modals/IT/long_term.json b/content/modals/IT/long_term.json new file mode 100644 index 0000000000..bf7764db0b --- /dev/null +++ b/content/modals/IT/long_term.json @@ -0,0 +1,45 @@ +{ + "meta": { + "product": "PAY_LATER_LONG_TERM", + "offerCountry": "IT", + "language": "en-IT", + "useV5Design": "true", + "v5.1": "true", + "variables": { + "transaction_amount": "${eval(transaction_amount ? transaction_amount : '-')}", + "qualifying_offer": "${eval(CREDIT_OFFERS_DS.qualifying_offer ? CREDIT_OFFERS_DS.qualifying_offer : 'false')}", + "financing_code": "${CREDIT_OFFERS_DS.financing_code}", + "formattedPeriodicPayment": "${CREDIT_OFFERS_DS.formattedPeriodicPayment}", + "total_payments": "${CREDIT_OFFERS_DS.total_payments}", + "formattedMinAmount": "${CREDIT_OFFERS_DS.formattedMinAmount}", + "formattedMaxAmount": "${CREDIT_OFFERS_DS.formattedMaxAmount}", + "formattedTotalCost": "${CREDIT_OFFERS_DS.formattedTotalCost}", + "minAmount": "${CREDIT_OFFERS_DS.minAmount}", + "maxAmount": "${CREDIT_OFFERS_DS.maxAmount}", + "apr": "${CREDIT_OFFERS_DS.apr}", + "nominal_rate": "${CREDIT_OFFERS_DS.nominal_rate}", + "formattedNominalRatePrecision2": "${CREDIT_OFFERS_DS.formattedNominalRatePrecision2}" + } + }, + "content": { + "headline": "Pay later in monthly installments", + "subheadline": "Buy today, with no down payment.", + "calculator": { + "title": "How much is your purchase?", + "inputLabel": "Value of goods", + "inputPlaceholder": "{formattedMinAmount} - {formattedMaxAmount}", + "inputCurrencySymbol": "€", + "genericError": "Something went wrong. Please try later." + }, + "genericDisclaimer": "Terms vary based on purchase amount and your credit.", + "instructions": [ + "Choose PayPal at checkout to pay later with Pay in installments.", + "Get a decision in seconds and complete your purchase.", + "Use autopay for repayments. It's easy!" + ], + "disclosure": [ + "Subject to credit check. Lender: PayPal (Europe) S.à r.l. et Cie, S.C.A., 22-24 Boulevard Royal, L-2449 Luxemburg." + ], + "linkToProductList": "See other ways to pay later" + } +} diff --git a/content/modals/IT/long_term_en.json b/content/modals/IT/long_term_en.json new file mode 100644 index 0000000000..bf7764db0b --- /dev/null +++ b/content/modals/IT/long_term_en.json @@ -0,0 +1,45 @@ +{ + "meta": { + "product": "PAY_LATER_LONG_TERM", + "offerCountry": "IT", + "language": "en-IT", + "useV5Design": "true", + "v5.1": "true", + "variables": { + "transaction_amount": "${eval(transaction_amount ? transaction_amount : '-')}", + "qualifying_offer": "${eval(CREDIT_OFFERS_DS.qualifying_offer ? CREDIT_OFFERS_DS.qualifying_offer : 'false')}", + "financing_code": "${CREDIT_OFFERS_DS.financing_code}", + "formattedPeriodicPayment": "${CREDIT_OFFERS_DS.formattedPeriodicPayment}", + "total_payments": "${CREDIT_OFFERS_DS.total_payments}", + "formattedMinAmount": "${CREDIT_OFFERS_DS.formattedMinAmount}", + "formattedMaxAmount": "${CREDIT_OFFERS_DS.formattedMaxAmount}", + "formattedTotalCost": "${CREDIT_OFFERS_DS.formattedTotalCost}", + "minAmount": "${CREDIT_OFFERS_DS.minAmount}", + "maxAmount": "${CREDIT_OFFERS_DS.maxAmount}", + "apr": "${CREDIT_OFFERS_DS.apr}", + "nominal_rate": "${CREDIT_OFFERS_DS.nominal_rate}", + "formattedNominalRatePrecision2": "${CREDIT_OFFERS_DS.formattedNominalRatePrecision2}" + } + }, + "content": { + "headline": "Pay later in monthly installments", + "subheadline": "Buy today, with no down payment.", + "calculator": { + "title": "How much is your purchase?", + "inputLabel": "Value of goods", + "inputPlaceholder": "{formattedMinAmount} - {formattedMaxAmount}", + "inputCurrencySymbol": "€", + "genericError": "Something went wrong. Please try later." + }, + "genericDisclaimer": "Terms vary based on purchase amount and your credit.", + "instructions": [ + "Choose PayPal at checkout to pay later with Pay in installments.", + "Get a decision in seconds and complete your purchase.", + "Use autopay for repayments. It's easy!" + ], + "disclosure": [ + "Subject to credit check. Lender: PayPal (Europe) S.à r.l. et Cie, S.C.A., 22-24 Boulevard Royal, L-2449 Luxemburg." + ], + "linkToProductList": "See other ways to pay later" + } +} diff --git a/content/modals/IT/product_list.json b/content/modals/IT/product_list.json new file mode 100644 index 0000000000..10753c072a --- /dev/null +++ b/content/modals/IT/product_list.json @@ -0,0 +1,29 @@ +{ + "meta": { + "product": "PRODUCT_LIST", + "useV5Design": "true", + "v5.1": "true", + "offerCountry": "IT" + }, + "content": { + "headline": "Buy now, pay later", + "disclosure": "Es gelten die Nutzungsbedingungen. Vorbehaltlich Kreditwürdigkeitsprüfung. Für weitere Informationen zur Bezahlung nach 30 Tagen oder PayPal Ratenzahlung wählen Sie eine der obigen Optionen.", + "instructions": { + "payLater": "Select a payment option for more info." + }, + "productTiles": { + "payLater": [ + { + "header": "Pay in 3 installments", + "body": "Interest-free monthly payments, starting today.", + "viewName": "PAY_LATER_SHORT_TERM" + }, + { + "header": "Pay in 6, 12 or 24 installments", + "body": "Monthly installments for larger purchases, with no down payment.", + "viewName": "PAY_LATER_LONG_TERM" + } + ] + } + } +} diff --git a/content/offers/ES/long_term.json b/content/offers/ES/long_term.json new file mode 100644 index 0000000000..919754dfa7 --- /dev/null +++ b/content/offers/ES/long_term.json @@ -0,0 +1,48 @@ +{ + "meta": { + "product": "PAY_LATER_LONG_TERM", + "offerCountry": "ES", + "periodicPayment": "{formattedPeriodicPayment}", + "minAmount": "{minAmount}", + "maxAmount": "{maxAmount}", + "qualifying": "{qualifying_offer}", + "amount": "{transaction_amount}", + "formattedMinAmount": "{formattedMinAmount}", + "formattedMaxAmount": "{formattedMaxAmount}", + "apr": "{apr}", + "total_payments": "{total_payments}", + "formattedTotalCost": "{formattedTotalCost}", + "formattedTotalInterest": "{formattedTotalInterest}", + "variables": { + "transaction_amount": "${eval(transaction_amount ? transaction_amount : '-')}", + "qualifying_offer": "${eval(CREDIT_OFFERS_DS.qualifying_offer ? CREDIT_OFFERS_DS.qualifying_offer : 'false')}", + "financing_code": "${CREDIT_OFFERS_DS.financing_code}", + "formattedPeriodicPayment": "${CREDIT_OFFERS_DS.formattedPeriodicPayment}", + "total_payments": "${CREDIT_OFFERS_DS.total_payments}", + "formattedMinAmount": "${CREDIT_OFFERS_DS.formattedMinAmount}", + "formattedMaxAmount": "${CREDIT_OFFERS_DS.formattedMaxAmount}", + "formattedTotalCost": "${CREDIT_OFFERS_DS.formattedTotalCost}", + "minAmount": "${CREDIT_OFFERS_DS.minAmount}", + "maxAmount": "${CREDIT_OFFERS_DS.maxAmount}", + "apr": "${CREDIT_OFFERS_DS.apr}", + "nominal_rate": "${CREDIT_OFFERS_DS.nominal_rate}" + } + }, + "content": { + "calculator": { + "belowThreshold": "Enter an amount of {formattedMinAmount} or more.", + "aboveThreshold": "Enter an amount no larger than {formattedMaxAmount}." + }, + "disclaimer": { + "zeroAPR": "Terms vary based on purchase amount and your credit.", + "nonZeroAPR": "*Fixed APR is 9.99% to 35.99%. Terms and rates vary based on purchase amount and your credit." + }, + "termsLabel": { + "offerHeader": "{formattedPeriodicPayment}per month for {total_payments} months", + "zeroApr": "APR", + "nonZeroApr": "Estimated APR, see star for more details below.", + "totalInterest": "Interest", + "total": "Total" + } + } +} diff --git a/content/offers/ES/long_term_en.json b/content/offers/ES/long_term_en.json new file mode 100644 index 0000000000..919754dfa7 --- /dev/null +++ b/content/offers/ES/long_term_en.json @@ -0,0 +1,48 @@ +{ + "meta": { + "product": "PAY_LATER_LONG_TERM", + "offerCountry": "ES", + "periodicPayment": "{formattedPeriodicPayment}", + "minAmount": "{minAmount}", + "maxAmount": "{maxAmount}", + "qualifying": "{qualifying_offer}", + "amount": "{transaction_amount}", + "formattedMinAmount": "{formattedMinAmount}", + "formattedMaxAmount": "{formattedMaxAmount}", + "apr": "{apr}", + "total_payments": "{total_payments}", + "formattedTotalCost": "{formattedTotalCost}", + "formattedTotalInterest": "{formattedTotalInterest}", + "variables": { + "transaction_amount": "${eval(transaction_amount ? transaction_amount : '-')}", + "qualifying_offer": "${eval(CREDIT_OFFERS_DS.qualifying_offer ? CREDIT_OFFERS_DS.qualifying_offer : 'false')}", + "financing_code": "${CREDIT_OFFERS_DS.financing_code}", + "formattedPeriodicPayment": "${CREDIT_OFFERS_DS.formattedPeriodicPayment}", + "total_payments": "${CREDIT_OFFERS_DS.total_payments}", + "formattedMinAmount": "${CREDIT_OFFERS_DS.formattedMinAmount}", + "formattedMaxAmount": "${CREDIT_OFFERS_DS.formattedMaxAmount}", + "formattedTotalCost": "${CREDIT_OFFERS_DS.formattedTotalCost}", + "minAmount": "${CREDIT_OFFERS_DS.minAmount}", + "maxAmount": "${CREDIT_OFFERS_DS.maxAmount}", + "apr": "${CREDIT_OFFERS_DS.apr}", + "nominal_rate": "${CREDIT_OFFERS_DS.nominal_rate}" + } + }, + "content": { + "calculator": { + "belowThreshold": "Enter an amount of {formattedMinAmount} or more.", + "aboveThreshold": "Enter an amount no larger than {formattedMaxAmount}." + }, + "disclaimer": { + "zeroAPR": "Terms vary based on purchase amount and your credit.", + "nonZeroAPR": "*Fixed APR is 9.99% to 35.99%. Terms and rates vary based on purchase amount and your credit." + }, + "termsLabel": { + "offerHeader": "{formattedPeriodicPayment}per month for {total_payments} months", + "zeroApr": "APR", + "nonZeroApr": "Estimated APR, see star for more details below.", + "totalInterest": "Interest", + "total": "Total" + } + } +} diff --git a/content/offers/IT/long_term.json b/content/offers/IT/long_term.json new file mode 100644 index 0000000000..fa057086dc --- /dev/null +++ b/content/offers/IT/long_term.json @@ -0,0 +1,48 @@ +{ + "meta": { + "product": "PAY_LATER_LONG_TERM", + "offerCountry": "IT", + "periodicPayment": "{formattedPeriodicPayment}", + "minAmount": "{minAmount}", + "maxAmount": "{maxAmount}", + "qualifying": "{qualifying_offer}", + "amount": "{transaction_amount}", + "formattedMinAmount": "{formattedMinAmount}", + "formattedMaxAmount": "{formattedMaxAmount}", + "apr": "{apr}", + "total_payments": "{total_payments}", + "formattedTotalCost": "{formattedTotalCost}", + "formattedTotalInterest": "{formattedTotalInterest}", + "variables": { + "transaction_amount": "${eval(transaction_amount ? transaction_amount : '-')}", + "qualifying_offer": "${eval(CREDIT_OFFERS_DS.qualifying_offer ? CREDIT_OFFERS_DS.qualifying_offer : 'false')}", + "financing_code": "${CREDIT_OFFERS_DS.financing_code}", + "formattedPeriodicPayment": "${CREDIT_OFFERS_DS.formattedPeriodicPayment}", + "total_payments": "${CREDIT_OFFERS_DS.total_payments}", + "formattedMinAmount": "${CREDIT_OFFERS_DS.formattedMinAmount}", + "formattedMaxAmount": "${CREDIT_OFFERS_DS.formattedMaxAmount}", + "formattedTotalCost": "${CREDIT_OFFERS_DS.formattedTotalCost}", + "minAmount": "${CREDIT_OFFERS_DS.minAmount}", + "maxAmount": "${CREDIT_OFFERS_DS.maxAmount}", + "apr": "${CREDIT_OFFERS_DS.apr}", + "nominal_rate": "${CREDIT_OFFERS_DS.nominal_rate}" + } + }, + "content": { + "calculator": { + "belowThreshold": "Enter an amount of {formattedMinAmount} or more.", + "aboveThreshold": "Enter an amount no larger than {formattedMaxAmount}." + }, + "disclaimer": { + "zeroAPR": "Terms vary based on purchase amount and your credit.", + "nonZeroAPR": "*Fixed APR is 9.99% to 35.99%. Terms and rates vary based on purchase amount and your credit." + }, + "termsLabel": { + "offerHeader": "{formattedPeriodicPayment}per month for {total_payments} months", + "zeroApr": "APR", + "nonZeroApr": "Estimated APR, see star for more details below.", + "totalInterest": "Interest", + "total": "Total" + } + } +} diff --git a/content/offers/IT/long_term_en.json b/content/offers/IT/long_term_en.json new file mode 100644 index 0000000000..fa057086dc --- /dev/null +++ b/content/offers/IT/long_term_en.json @@ -0,0 +1,48 @@ +{ + "meta": { + "product": "PAY_LATER_LONG_TERM", + "offerCountry": "IT", + "periodicPayment": "{formattedPeriodicPayment}", + "minAmount": "{minAmount}", + "maxAmount": "{maxAmount}", + "qualifying": "{qualifying_offer}", + "amount": "{transaction_amount}", + "formattedMinAmount": "{formattedMinAmount}", + "formattedMaxAmount": "{formattedMaxAmount}", + "apr": "{apr}", + "total_payments": "{total_payments}", + "formattedTotalCost": "{formattedTotalCost}", + "formattedTotalInterest": "{formattedTotalInterest}", + "variables": { + "transaction_amount": "${eval(transaction_amount ? transaction_amount : '-')}", + "qualifying_offer": "${eval(CREDIT_OFFERS_DS.qualifying_offer ? CREDIT_OFFERS_DS.qualifying_offer : 'false')}", + "financing_code": "${CREDIT_OFFERS_DS.financing_code}", + "formattedPeriodicPayment": "${CREDIT_OFFERS_DS.formattedPeriodicPayment}", + "total_payments": "${CREDIT_OFFERS_DS.total_payments}", + "formattedMinAmount": "${CREDIT_OFFERS_DS.formattedMinAmount}", + "formattedMaxAmount": "${CREDIT_OFFERS_DS.formattedMaxAmount}", + "formattedTotalCost": "${CREDIT_OFFERS_DS.formattedTotalCost}", + "minAmount": "${CREDIT_OFFERS_DS.minAmount}", + "maxAmount": "${CREDIT_OFFERS_DS.maxAmount}", + "apr": "${CREDIT_OFFERS_DS.apr}", + "nominal_rate": "${CREDIT_OFFERS_DS.nominal_rate}" + } + }, + "content": { + "calculator": { + "belowThreshold": "Enter an amount of {formattedMinAmount} or more.", + "aboveThreshold": "Enter an amount no larger than {formattedMaxAmount}." + }, + "disclaimer": { + "zeroAPR": "Terms vary based on purchase amount and your credit.", + "nonZeroAPR": "*Fixed APR is 9.99% to 35.99%. Terms and rates vary based on purchase amount and your credit." + }, + "termsLabel": { + "offerHeader": "{formattedPeriodicPayment}per month for {total_payments} months", + "zeroApr": "APR", + "nonZeroApr": "Estimated APR, see star for more details below.", + "totalInterest": "Interest", + "total": "Total" + } + } +} diff --git a/utils/devServerProxy/config/ES/index.js b/utils/devServerProxy/config/ES/index.js index 63a5b5cb74..24775e6701 100644 --- a/utils/devServerProxy/config/ES/index.js +++ b/utils/devServerProxy/config/ES/index.js @@ -37,5 +37,57 @@ export default { } ] } + }, + DEV_ES_LONG_TERM: { + country: 'ES', + modalViews: [ + { + template: 'long_term.json', + offersTemplate: 'long_term.json', + product: 'PAY_LATER_LONG_TERM' + } + ], + messageThresholds: [ + { + amount: 0, + template: 'short_term_no_amount.json', + product: 'PAY_LATER_SHORT_TERM' + }, + { + amount: 30, + template: 'short_term_q.json', + product: 'PAY_LATER_SHORT_TERM' + }, + { + amount: 2000.01, + template: 'short_term_nq.json', + product: 'PAY_LATER_SHORT_TERM' + } + ], + offers: { + PAY_LATER_LONG_TERM: [ + { + totalPayments: 6, + apr: 0, + nominalRate: 0, + minAmount: 50, + maxAmount: 5000 + }, + { + totalPayments: 12, + apr: 0, + nominalRate: 0, + minAmount: 50, + maxAmount: 5000 + }, + { + totalPayments: 24, + apr: 0, + nominalRate: 0, + minAmount: 50, + maxAmount: 5000 + } + ] + } } }; diff --git a/utils/devServerProxy/config/IT/index.js b/utils/devServerProxy/config/IT/index.js index 7a096b54f6..9fd353acf9 100644 --- a/utils/devServerProxy/config/IT/index.js +++ b/utils/devServerProxy/config/IT/index.js @@ -3,21 +3,21 @@ export default { DEV_IT_MULTI: { country: 'IT', - // modalViews: [ - // { - // template: 'v2_product_list.json', - // product: 'PRODUCT_LIST' - // }, - // { - // template: 'short_term.json', - // product: 'PAY_LATER_SHORT_TERM' - // }, - // { - // template: 'long_term.json', - // offersTemplate: 'long_term.json', - // product: 'PAY_LATER_LONG_TERM' - // } - // ], + modalViews: [ + { + template: 'product_list.json', + product: 'PRODUCT_LIST' + }, + { + template: 'short_term.json', + product: 'PAY_LATER_SHORT_TERM' + }, + { + template: 'long_term.json', + offersTemplate: 'long_term.json', + product: 'PAY_LATER_LONG_TERM' + } + ], messageThresholds: [ { amount: 0, @@ -121,8 +121,8 @@ export default { country: 'IT', modalViews: [ { - template: 'short_term.json', - product: 'PAY_LATER_SHORT_TERM' + template: 'long_term.json', + product: 'PAY_LATER_LONG_TERM' } ], messageThresholds: [ @@ -139,11 +139,25 @@ export default { ], offers: { PAY_LATER_LONG_TERM: [ + { + totalPayments: 6, + apr: 0, + nominalRate: 0, + minAmount: 50, + maxAmount: 5000 + }, + { + totalPayments: 12, + apr: 0, + nominalRate: 0, + minAmount: 50, + maxAmount: 5000 + }, { totalPayments: 24, - apr: 14.99, - nominalRate: 14.0491, - minAmount: 240, + apr: 0, + nominalRate: 0, + minAmount: 50, maxAmount: 5000 } ] From eca8fcba5a0ad3468b8fb104445df7c9e721902a Mon Sep 17 00:00:00 2001 From: opercy Date: Wed, 13 Aug 2025 17:12:46 -0500 Subject: [PATCH 03/43] update the headers to match current figma --- content/modals/ES/long_term.json | 10 +++++----- content/modals/ES/long_term_en.json | 10 +++++----- content/modals/IT/long_term.json | 10 +++++----- content/modals/IT/long_term_en.json | 10 +++++----- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/content/modals/ES/long_term.json b/content/modals/ES/long_term.json index 6160bed426..5f3992ea24 100644 --- a/content/modals/ES/long_term.json +++ b/content/modals/ES/long_term.json @@ -22,14 +22,14 @@ } }, "content": { - "headline": "Pay later in monthly installments", + "headline": "Pay in 6, 12 or 24 installments", "subheadline": "Buy today, with no down payment.", "calculator": { "title": "How much is your purchase?", - "inputLabel": "Value of goods", - "inputPlaceholder": "{formattedMinAmount} - {formattedMaxAmount}", - "inputCurrencySymbol": "€", - "genericError": "Something went wrong. Please try later." + "genericTitle": "How much is your purchase?", + "inputLabel": "Purchase amount", + "inputPlaceholder": "€00,€", + "genericError": "Something went wrong. Please try again later." }, "genericDisclaimer": "Terms vary based on purchase amount and your credit.", "instructions": [ diff --git a/content/modals/ES/long_term_en.json b/content/modals/ES/long_term_en.json index 6160bed426..5f3992ea24 100644 --- a/content/modals/ES/long_term_en.json +++ b/content/modals/ES/long_term_en.json @@ -22,14 +22,14 @@ } }, "content": { - "headline": "Pay later in monthly installments", + "headline": "Pay in 6, 12 or 24 installments", "subheadline": "Buy today, with no down payment.", "calculator": { "title": "How much is your purchase?", - "inputLabel": "Value of goods", - "inputPlaceholder": "{formattedMinAmount} - {formattedMaxAmount}", - "inputCurrencySymbol": "€", - "genericError": "Something went wrong. Please try later." + "genericTitle": "How much is your purchase?", + "inputLabel": "Purchase amount", + "inputPlaceholder": "€00,€", + "genericError": "Something went wrong. Please try again later." }, "genericDisclaimer": "Terms vary based on purchase amount and your credit.", "instructions": [ diff --git a/content/modals/IT/long_term.json b/content/modals/IT/long_term.json index bf7764db0b..feb03d9772 100644 --- a/content/modals/IT/long_term.json +++ b/content/modals/IT/long_term.json @@ -22,14 +22,14 @@ } }, "content": { - "headline": "Pay later in monthly installments", + "headline": "Pay in 6, 12 or 24 installments", "subheadline": "Buy today, with no down payment.", "calculator": { "title": "How much is your purchase?", - "inputLabel": "Value of goods", - "inputPlaceholder": "{formattedMinAmount} - {formattedMaxAmount}", - "inputCurrencySymbol": "€", - "genericError": "Something went wrong. Please try later." + "genericTitle": "How much is your purchase?", + "inputLabel": "Purchase amount", + "inputPlaceholder": "€00,€", + "genericError": "Something went wrong. Please try again later." }, "genericDisclaimer": "Terms vary based on purchase amount and your credit.", "instructions": [ diff --git a/content/modals/IT/long_term_en.json b/content/modals/IT/long_term_en.json index bf7764db0b..feb03d9772 100644 --- a/content/modals/IT/long_term_en.json +++ b/content/modals/IT/long_term_en.json @@ -22,14 +22,14 @@ } }, "content": { - "headline": "Pay later in monthly installments", + "headline": "Pay in 6, 12 or 24 installments", "subheadline": "Buy today, with no down payment.", "calculator": { "title": "How much is your purchase?", - "inputLabel": "Value of goods", - "inputPlaceholder": "{formattedMinAmount} - {formattedMaxAmount}", - "inputCurrencySymbol": "€", - "genericError": "Something went wrong. Please try later." + "genericTitle": "How much is your purchase?", + "inputLabel": "Purchase amount", + "inputPlaceholder": "€00,€", + "genericError": "Something went wrong. Please try again later." }, "genericDisclaimer": "Terms vary based on purchase amount and your credit.", "instructions": [ From 9b49d36ba4ee1b892c1e73e942845eb5bc0abacb Mon Sep 17 00:00:00 2001 From: opercy Date: Fri, 15 Aug 2025 11:19:47 -0500 Subject: [PATCH 04/43] update TermsTable --- content/modals/ES/long_term.json | 18 ++++++++---- content/modals/ES/long_term_en.json | 18 ++++++++---- content/modals/ES/product_list.json | 2 +- content/modals/IT/long_term.json | 18 ++++++++---- content/modals/IT/long_term_en.json | 18 ++++++++---- content/modals/IT/product_list.json | 2 +- src/components/modal/v2/parts/TermsTable.jsx | 29 ++++++++++---------- 7 files changed, 65 insertions(+), 40 deletions(-) diff --git a/content/modals/ES/long_term.json b/content/modals/ES/long_term.json index 5f3992ea24..c43c4cd231 100644 --- a/content/modals/ES/long_term.json +++ b/content/modals/ES/long_term.json @@ -28,18 +28,24 @@ "title": "How much is your purchase?", "genericTitle": "How much is your purchase?", "inputLabel": "Purchase amount", - "inputPlaceholder": "€00,€", + "inputPlaceholder": "0 €", "genericError": "Something went wrong. Please try again later." }, - "genericDisclaimer": "Terms vary based on purchase amount and your credit.", + "genericDisclaimer": "All examples are representative. Terms and rates vary based on purchase amount and the customer profile.", "instructions": [ - "Choose PayPal at checkout to pay later with Pay in installments.", + "Choose PayPal at checkout to pay later with Pay in 6, 12 or 24 installments.", "Get a decision in seconds and complete your purchase.", - "Use autopay for repayments. It's easy!" + "Use autopay for your payments. It's easy!" ], "disclosure": [ - "Subject to credit check. Lender: PayPal (Europe) S.à r.l. et Cie, S.C.A., 22-24 Boulevard Royal, L-2449 Luxemburg." + "Pay in 6, 12 or 24 installments is subject to approval by PayPal and customer eligibility. For purchases of {formattedMinAmount} to {formattedMaxAmount}. You must be 18 years or older, a Spanish resident and have a PayPal account in order to apply. Check the template of a ", + [ + "credit agreement", + "https://www.paypal.com/it/webapps/mpp/ua/creditagreement", + "credit agreement, opens new tab" + ], + " for more information. The creditor is PayPal (Europe) S.à r.l et Cie, SCA, 22-24 Boulevard Royal, L-2449 Luxembourg. Financing is a binding commitment that must be repaid. Make sure you are able to repay before committing. This information is provided by PayPal." ], - "linkToProductList": "See other ways to pay later" + "linkToProductList": "See other ways to pay in installments" } } diff --git a/content/modals/ES/long_term_en.json b/content/modals/ES/long_term_en.json index 5f3992ea24..c43c4cd231 100644 --- a/content/modals/ES/long_term_en.json +++ b/content/modals/ES/long_term_en.json @@ -28,18 +28,24 @@ "title": "How much is your purchase?", "genericTitle": "How much is your purchase?", "inputLabel": "Purchase amount", - "inputPlaceholder": "€00,€", + "inputPlaceholder": "0 €", "genericError": "Something went wrong. Please try again later." }, - "genericDisclaimer": "Terms vary based on purchase amount and your credit.", + "genericDisclaimer": "All examples are representative. Terms and rates vary based on purchase amount and the customer profile.", "instructions": [ - "Choose PayPal at checkout to pay later with Pay in installments.", + "Choose PayPal at checkout to pay later with Pay in 6, 12 or 24 installments.", "Get a decision in seconds and complete your purchase.", - "Use autopay for repayments. It's easy!" + "Use autopay for your payments. It's easy!" ], "disclosure": [ - "Subject to credit check. Lender: PayPal (Europe) S.à r.l. et Cie, S.C.A., 22-24 Boulevard Royal, L-2449 Luxemburg." + "Pay in 6, 12 or 24 installments is subject to approval by PayPal and customer eligibility. For purchases of {formattedMinAmount} to {formattedMaxAmount}. You must be 18 years or older, a Spanish resident and have a PayPal account in order to apply. Check the template of a ", + [ + "credit agreement", + "https://www.paypal.com/it/webapps/mpp/ua/creditagreement", + "credit agreement, opens new tab" + ], + " for more information. The creditor is PayPal (Europe) S.à r.l et Cie, SCA, 22-24 Boulevard Royal, L-2449 Luxembourg. Financing is a binding commitment that must be repaid. Make sure you are able to repay before committing. This information is provided by PayPal." ], - "linkToProductList": "See other ways to pay later" + "linkToProductList": "See other ways to pay in installments" } } diff --git a/content/modals/ES/product_list.json b/content/modals/ES/product_list.json index 545ca5c9c8..21d5d4d3fd 100644 --- a/content/modals/ES/product_list.json +++ b/content/modals/ES/product_list.json @@ -7,7 +7,7 @@ }, "content": { "headline": "Buy now, pay later", - "disclosure": "Es gelten die Nutzungsbedingungen. Vorbehaltlich Kreditwürdigkeitsprüfung. Für weitere Informationen zur Bezahlung nach 30 Tagen oder PayPal Ratenzahlung wählen Sie eine der obigen Optionen.", + "disclosure": "Terms apply. Subject to approval by PayPal. For more information about PayPal installments, select one of the options above.", "instructions": { "payLater": "Select a payment option for more info." }, diff --git a/content/modals/IT/long_term.json b/content/modals/IT/long_term.json index feb03d9772..b42620dee3 100644 --- a/content/modals/IT/long_term.json +++ b/content/modals/IT/long_term.json @@ -28,18 +28,24 @@ "title": "How much is your purchase?", "genericTitle": "How much is your purchase?", "inputLabel": "Purchase amount", - "inputPlaceholder": "€00,€", + "inputPlaceholder": "0 €", "genericError": "Something went wrong. Please try again later." }, - "genericDisclaimer": "Terms vary based on purchase amount and your credit.", + "genericDisclaimer": "All examples are representative. Terms and rates vary based on purchase amount and the customer profile.", "instructions": [ - "Choose PayPal at checkout to pay later with Pay in installments.", + "Choose PayPal at checkout to pay later with Pay in 6, 12 or 24 installments.", "Get a decision in seconds and complete your purchase.", - "Use autopay for repayments. It's easy!" + "Use autopay for your payments. It's easy!" ], "disclosure": [ - "Subject to credit check. Lender: PayPal (Europe) S.à r.l. et Cie, S.C.A., 22-24 Boulevard Royal, L-2449 Luxemburg." + "Pay in 6, 12 or 24 installments is subject to approval by PayPal and customer eligibility. For purchases of {formattedMinAmount} to {formattedMaxAmount}. You must be 18 years or older, an Italian resident and have a PayPal account in order to apply. Check the template of a ", + [ + "credit agreement", + "https://www.paypal.com/it/webapps/mpp/ua/creditagreement", + "credit agreement, opens new tab" + ], + " for more information. The creditor is PayPal (Europe) S.à r.l et Cie, SCA, 22-24 Boulevard Royal, L-2449 Luxembourg. Financing is a binding commitment that must be repaid. Make sure you are able to repay before committing. This information is provided by PayPal." ], - "linkToProductList": "See other ways to pay later" + "linkToProductList": "See other ways to pay in installments" } } diff --git a/content/modals/IT/long_term_en.json b/content/modals/IT/long_term_en.json index feb03d9772..b42620dee3 100644 --- a/content/modals/IT/long_term_en.json +++ b/content/modals/IT/long_term_en.json @@ -28,18 +28,24 @@ "title": "How much is your purchase?", "genericTitle": "How much is your purchase?", "inputLabel": "Purchase amount", - "inputPlaceholder": "€00,€", + "inputPlaceholder": "0 €", "genericError": "Something went wrong. Please try again later." }, - "genericDisclaimer": "Terms vary based on purchase amount and your credit.", + "genericDisclaimer": "All examples are representative. Terms and rates vary based on purchase amount and the customer profile.", "instructions": [ - "Choose PayPal at checkout to pay later with Pay in installments.", + "Choose PayPal at checkout to pay later with Pay in 6, 12 or 24 installments.", "Get a decision in seconds and complete your purchase.", - "Use autopay for repayments. It's easy!" + "Use autopay for your payments. It's easy!" ], "disclosure": [ - "Subject to credit check. Lender: PayPal (Europe) S.à r.l. et Cie, S.C.A., 22-24 Boulevard Royal, L-2449 Luxemburg." + "Pay in 6, 12 or 24 installments is subject to approval by PayPal and customer eligibility. For purchases of {formattedMinAmount} to {formattedMaxAmount}. You must be 18 years or older, an Italian resident and have a PayPal account in order to apply. Check the template of a ", + [ + "credit agreement", + "https://www.paypal.com/it/webapps/mpp/ua/creditagreement", + "credit agreement, opens new tab" + ], + " for more information. The creditor is PayPal (Europe) S.à r.l et Cie, SCA, 22-24 Boulevard Royal, L-2449 Luxembourg. Financing is a binding commitment that must be repaid. Make sure you are able to repay before committing. This information is provided by PayPal." ], - "linkToProductList": "See other ways to pay later" + "linkToProductList": "See other ways to pay in installments" } } diff --git a/content/modals/IT/product_list.json b/content/modals/IT/product_list.json index 10753c072a..f8b50d2020 100644 --- a/content/modals/IT/product_list.json +++ b/content/modals/IT/product_list.json @@ -7,7 +7,7 @@ }, "content": { "headline": "Buy now, pay later", - "disclosure": "Es gelten die Nutzungsbedingungen. Vorbehaltlich Kreditwürdigkeitsprüfung. Für weitere Informationen zur Bezahlung nach 30 Tagen oder PayPal Ratenzahlung wählen Sie eine der obigen Optionen.", + "disclosure": "Terms apply. Subject to approval by PayPal. For more information about PayPal installments, select one of the options above.", "instructions": { "payLater": "Select a payment option for more info." }, diff --git a/src/components/modal/v2/parts/TermsTable.jsx b/src/components/modal/v2/parts/TermsTable.jsx index 994b546c02..e9f931f881 100644 --- a/src/components/modal/v2/parts/TermsTable.jsx +++ b/src/components/modal/v2/parts/TermsTable.jsx @@ -26,7 +26,7 @@ const TermsTable = ({ return (
@@ -37,32 +37,33 @@ const TermsTable = ({ const qualifyingOffers = offers .filter(offer => offer.meta.qualifying === 'true') .map((offer, idx) => { - // Only DE uses the accordion style for presentation of offers in the modal. - if (offerCountry !== 'DE') { + // DE, ES, and IT use the accordion style for presentation of offers in the modal. + if (['DE', 'ES', 'IT'].includes(offerCountry)) { + const disclaimer = + aprDisclaimer.length < offers.length + ? aprDisclaimer[aprDisclaimer.length - 1].aprDisclaimer + : aprDisclaimer[idx].aprDisclaimer; return ( - ); } - const disclaimer = - aprDisclaimer.length < offers.length - ? aprDisclaimer[aprDisclaimer.length - 1].aprDisclaimer - : aprDisclaimer[idx].aprDisclaimer; + // All other countries use the card style return ( - ); }); From da045a4fd66cb4df68cdf0b4c50b77e928806ca5 Mon Sep 17 00:00:00 2001 From: opercy Date: Mon, 18 Aug 2025 11:34:32 -0500 Subject: [PATCH 05/43] latest changes to match figma --- content/modals/ES/long_term.json | 1 + content/modals/ES/long_term_en.json | 1 + content/modals/ES/short_term.json | 3 ++- content/modals/ES/short_term_en.json | 3 ++- content/modals/IT/long_term.json | 1 + content/modals/IT/long_term_en.json | 1 + content/modals/IT/short_term.json | 3 ++- content/modals/IT/short_term_en.json | 3 ++- content/offers/ES/long_term.json | 18 ++++++++++-------- content/offers/ES/long_term_en.json | 18 ++++++++++-------- content/offers/IT/long_term.json | 18 ++++++++++-------- content/offers/IT/long_term_en.json | 18 ++++++++++-------- .../modal/v2/parts/OfferAccordion.jsx | 5 +++-- src/components/modal/v2/parts/TermsTable.jsx | 6 ++++-- .../styles/components/_offer-accordion.scss | 19 +++++++++++++------ 15 files changed, 72 insertions(+), 46 deletions(-) diff --git a/content/modals/ES/long_term.json b/content/modals/ES/long_term.json index c43c4cd231..2d06417e2d 100644 --- a/content/modals/ES/long_term.json +++ b/content/modals/ES/long_term.json @@ -29,6 +29,7 @@ "genericTitle": "How much is your purchase?", "inputLabel": "Purchase amount", "inputPlaceholder": "0 €", + "inputCurrencySymbol": "€", "genericError": "Something went wrong. Please try again later." }, "genericDisclaimer": "All examples are representative. Terms and rates vary based on purchase amount and the customer profile.", diff --git a/content/modals/ES/long_term_en.json b/content/modals/ES/long_term_en.json index c43c4cd231..2d06417e2d 100644 --- a/content/modals/ES/long_term_en.json +++ b/content/modals/ES/long_term_en.json @@ -29,6 +29,7 @@ "genericTitle": "How much is your purchase?", "inputLabel": "Purchase amount", "inputPlaceholder": "0 €", + "inputCurrencySymbol": "€", "genericError": "Something went wrong. Please try again later." }, "genericDisclaimer": "All examples are representative. Terms and rates vary based on purchase amount and the customer profile.", diff --git a/content/modals/ES/short_term.json b/content/modals/ES/short_term.json index 9ed85e3ded..ebd8dd107e 100644 --- a/content/modals/ES/short_term.json +++ b/content/modals/ES/short_term.json @@ -50,6 +50,7 @@ " y ", ["los términos y condiciones", "https://www.paypal.com/es/webapps/mpp/ua/pay-in-3-full?locale.x=es_ES"], "para más información. Disponible solo para clientes mayores de 18 años. Tienes un plazo de 14 días para desistir de tu crédito. El prestamista es PayPal (Europe) S.à rl et Cie, SCA, 22-24 Boulevard Royal, L-2449 Luxemburgo. Un crédito es un compromiso vinculante que debe ser reembolsado y puede afectar a tu historial crediticio. Asegúrate de verificar tu capacidad de reembolso antes de comprometerte. Esta información es proporcionada por PayPal." - ] + ], + "linkToProductList": "See other ways to pay in installments" } } diff --git a/content/modals/ES/short_term_en.json b/content/modals/ES/short_term_en.json index 0a505e33bc..1c97d25933 100644 --- a/content/modals/ES/short_term_en.json +++ b/content/modals/ES/short_term_en.json @@ -50,6 +50,7 @@ " and ", ["terms and conditions", "https://www.paypal.com/es/webapps/mpp/ua/pay-in-3-full?locale.x=es_ES"], " for more information. Only available to customers over the age of 18. You have 14 days to cancel your loan. The lender is PayPal (Europe) S.à rl et Cie, SCA, 22-24 Boulevard Royal, L-2449 Luxemburgo. A loan is a binding commitment that needs to be refunded and may impact your credit history. Be sure to check your repayment capacity before committing yourself. This information is provided by PayPal." - ] + ], + "linkToProductList": "See other ways to pay in installments" } } diff --git a/content/modals/IT/long_term.json b/content/modals/IT/long_term.json index b42620dee3..48e946959c 100644 --- a/content/modals/IT/long_term.json +++ b/content/modals/IT/long_term.json @@ -29,6 +29,7 @@ "genericTitle": "How much is your purchase?", "inputLabel": "Purchase amount", "inputPlaceholder": "0 €", + "inputCurrencySymbol": "€", "genericError": "Something went wrong. Please try again later." }, "genericDisclaimer": "All examples are representative. Terms and rates vary based on purchase amount and the customer profile.", diff --git a/content/modals/IT/long_term_en.json b/content/modals/IT/long_term_en.json index b42620dee3..48e946959c 100644 --- a/content/modals/IT/long_term_en.json +++ b/content/modals/IT/long_term_en.json @@ -29,6 +29,7 @@ "genericTitle": "How much is your purchase?", "inputLabel": "Purchase amount", "inputPlaceholder": "0 €", + "inputCurrencySymbol": "€", "genericError": "Something went wrong. Please try again later." }, "genericDisclaimer": "All examples are representative. Terms and rates vary based on purchase amount and the customer profile.", diff --git a/content/modals/IT/short_term.json b/content/modals/IT/short_term.json index 3c2bc92cb0..79446f4565 100644 --- a/content/modals/IT/short_term.json +++ b/content/modals/IT/short_term.json @@ -55,6 +55,7 @@ [ "per maggiori informazioni. Disponibile solo per clienti persone fisiche maggiorenni. Hai un periodo di 14 giorni per recedere dal tuo finanziamento. Il creditore è PayPal (Europe) S.à rl et Cie, SCA, 22-24 Boulevard Royal, L-2449 Lussemburgo. Un finanziamento è un impegno vincolante che deve essere rimborsato. Assicurati di essere in grado di ripagare prima di prendere un impegno. Queste informazioni sono fornite da PayPal." ] - ] + ], + "linkToProductList": "See other ways to pay in installments" } } diff --git a/content/modals/IT/short_term_en.json b/content/modals/IT/short_term_en.json index 800e8c36eb..b40a88ef2c 100644 --- a/content/modals/IT/short_term_en.json +++ b/content/modals/IT/short_term_en.json @@ -55,6 +55,7 @@ [ " for more information. Available only to individual customers who are over 18 years of age. You have a 14-day period to withdraw from the financing. The creditor is PayPal (Europe) S.à rl et Cie, SCA, 22-24 Boulevard Royal, L-2449 Luxembourg. Financing is a binding commitment that must be repaid. Ensure you are able to repay before making a commitment. This information is provided by PayPal." ] - ] + ], + "linkToProductList": "See other ways to pay in installments" } } diff --git a/content/offers/ES/long_term.json b/content/offers/ES/long_term.json index 919754dfa7..52b3b300b8 100644 --- a/content/offers/ES/long_term.json +++ b/content/offers/ES/long_term.json @@ -13,6 +13,7 @@ "total_payments": "{total_payments}", "formattedTotalCost": "{formattedTotalCost}", "formattedTotalInterest": "{formattedTotalInterest}", + "formattedTransactionAmount": "{formattedTransactionAmount}", "variables": { "transaction_amount": "${eval(transaction_amount ? transaction_amount : '-')}", "qualifying_offer": "${eval(CREDIT_OFFERS_DS.qualifying_offer ? CREDIT_OFFERS_DS.qualifying_offer : 'false')}", @@ -22,6 +23,7 @@ "formattedMinAmount": "${CREDIT_OFFERS_DS.formattedMinAmount}", "formattedMaxAmount": "${CREDIT_OFFERS_DS.formattedMaxAmount}", "formattedTotalCost": "${CREDIT_OFFERS_DS.formattedTotalCost}", + "formattedTransactionAmount": "${CREDIT_OFFERS_DS.formattedTransactionAmount}", "minAmount": "${CREDIT_OFFERS_DS.minAmount}", "maxAmount": "${CREDIT_OFFERS_DS.maxAmount}", "apr": "${CREDIT_OFFERS_DS.apr}", @@ -31,18 +33,18 @@ "content": { "calculator": { "belowThreshold": "Enter an amount of {formattedMinAmount} or more.", - "aboveThreshold": "Enter an amount no larger than {formattedMaxAmount}." + "aboveThreshold": "Enter an amount of less than {formattedMaxAmount}." }, "disclaimer": { - "zeroAPR": "Terms vary based on purchase amount and your credit.", - "nonZeroAPR": "*Fixed APR is 9.99% to 35.99%. Terms and rates vary based on purchase amount and your credit." + "nonZeroAPR": "Nominal interest rate of {formattedNominalRatePrecision2}%
Annual percentage rate of {formattedAPR}%
", + "zeroAPR": "Nominal interest rate of 0%
Annual percentage rate of 0%
" }, "termsLabel": { - "offerHeader": "{formattedPeriodicPayment}per month for {total_payments} months", - "zeroApr": "APR", - "nonZeroApr": "Estimated APR, see star for more details below.", - "totalInterest": "Interest", - "total": "Total" + "offerPayment": "{formattedPeriodicPayment}/month", + "offerNumInstallments": "{total_payments} installments", + "eMoney": "Credit amount", + "totalInterest": "Interest amount", + "total": "Total amount owed" } } } diff --git a/content/offers/ES/long_term_en.json b/content/offers/ES/long_term_en.json index 919754dfa7..52b3b300b8 100644 --- a/content/offers/ES/long_term_en.json +++ b/content/offers/ES/long_term_en.json @@ -13,6 +13,7 @@ "total_payments": "{total_payments}", "formattedTotalCost": "{formattedTotalCost}", "formattedTotalInterest": "{formattedTotalInterest}", + "formattedTransactionAmount": "{formattedTransactionAmount}", "variables": { "transaction_amount": "${eval(transaction_amount ? transaction_amount : '-')}", "qualifying_offer": "${eval(CREDIT_OFFERS_DS.qualifying_offer ? CREDIT_OFFERS_DS.qualifying_offer : 'false')}", @@ -22,6 +23,7 @@ "formattedMinAmount": "${CREDIT_OFFERS_DS.formattedMinAmount}", "formattedMaxAmount": "${CREDIT_OFFERS_DS.formattedMaxAmount}", "formattedTotalCost": "${CREDIT_OFFERS_DS.formattedTotalCost}", + "formattedTransactionAmount": "${CREDIT_OFFERS_DS.formattedTransactionAmount}", "minAmount": "${CREDIT_OFFERS_DS.minAmount}", "maxAmount": "${CREDIT_OFFERS_DS.maxAmount}", "apr": "${CREDIT_OFFERS_DS.apr}", @@ -31,18 +33,18 @@ "content": { "calculator": { "belowThreshold": "Enter an amount of {formattedMinAmount} or more.", - "aboveThreshold": "Enter an amount no larger than {formattedMaxAmount}." + "aboveThreshold": "Enter an amount of less than {formattedMaxAmount}." }, "disclaimer": { - "zeroAPR": "Terms vary based on purchase amount and your credit.", - "nonZeroAPR": "*Fixed APR is 9.99% to 35.99%. Terms and rates vary based on purchase amount and your credit." + "nonZeroAPR": "Nominal interest rate of {formattedNominalRatePrecision2}%
Annual percentage rate of {formattedAPR}%
", + "zeroAPR": "Nominal interest rate of 0%
Annual percentage rate of 0%
" }, "termsLabel": { - "offerHeader": "{formattedPeriodicPayment}per month for {total_payments} months", - "zeroApr": "APR", - "nonZeroApr": "Estimated APR, see star for more details below.", - "totalInterest": "Interest", - "total": "Total" + "offerPayment": "{formattedPeriodicPayment}/month", + "offerNumInstallments": "{total_payments} installments", + "eMoney": "Credit amount", + "totalInterest": "Interest amount", + "total": "Total amount owed" } } } diff --git a/content/offers/IT/long_term.json b/content/offers/IT/long_term.json index fa057086dc..35df701529 100644 --- a/content/offers/IT/long_term.json +++ b/content/offers/IT/long_term.json @@ -13,6 +13,7 @@ "total_payments": "{total_payments}", "formattedTotalCost": "{formattedTotalCost}", "formattedTotalInterest": "{formattedTotalInterest}", + "formattedTransactionAmount": "{formattedTransactionAmount}", "variables": { "transaction_amount": "${eval(transaction_amount ? transaction_amount : '-')}", "qualifying_offer": "${eval(CREDIT_OFFERS_DS.qualifying_offer ? CREDIT_OFFERS_DS.qualifying_offer : 'false')}", @@ -22,6 +23,7 @@ "formattedMinAmount": "${CREDIT_OFFERS_DS.formattedMinAmount}", "formattedMaxAmount": "${CREDIT_OFFERS_DS.formattedMaxAmount}", "formattedTotalCost": "${CREDIT_OFFERS_DS.formattedTotalCost}", + "formattedTransactionAmount": "${CREDIT_OFFERS_DS.formattedTransactionAmount}", "minAmount": "${CREDIT_OFFERS_DS.minAmount}", "maxAmount": "${CREDIT_OFFERS_DS.maxAmount}", "apr": "${CREDIT_OFFERS_DS.apr}", @@ -31,18 +33,18 @@ "content": { "calculator": { "belowThreshold": "Enter an amount of {formattedMinAmount} or more.", - "aboveThreshold": "Enter an amount no larger than {formattedMaxAmount}." + "aboveThreshold": "Enter an amount of less than {formattedMaxAmount}." }, "disclaimer": { - "zeroAPR": "Terms vary based on purchase amount and your credit.", - "nonZeroAPR": "*Fixed APR is 9.99% to 35.99%. Terms and rates vary based on purchase amount and your credit." + "nonZeroAPR": "Nominal interest rate of {formattedNominalRatePrecision2}%
Annual percentage rate of {formattedAPR}%
", + "zeroAPR": "Nominal interest rate of 0%
Annual percentage rate of 0%
" }, "termsLabel": { - "offerHeader": "{formattedPeriodicPayment}per month for {total_payments} months", - "zeroApr": "APR", - "nonZeroApr": "Estimated APR, see star for more details below.", - "totalInterest": "Interest", - "total": "Total" + "offerPayment": "{formattedPeriodicPayment}/month", + "offerNumInstallments": "{total_payments} installments", + "eMoney": "Credit amount", + "totalInterest": "Interest amount", + "total": "Total amount owed" } } } diff --git a/content/offers/IT/long_term_en.json b/content/offers/IT/long_term_en.json index fa057086dc..35df701529 100644 --- a/content/offers/IT/long_term_en.json +++ b/content/offers/IT/long_term_en.json @@ -13,6 +13,7 @@ "total_payments": "{total_payments}", "formattedTotalCost": "{formattedTotalCost}", "formattedTotalInterest": "{formattedTotalInterest}", + "formattedTransactionAmount": "{formattedTransactionAmount}", "variables": { "transaction_amount": "${eval(transaction_amount ? transaction_amount : '-')}", "qualifying_offer": "${eval(CREDIT_OFFERS_DS.qualifying_offer ? CREDIT_OFFERS_DS.qualifying_offer : 'false')}", @@ -22,6 +23,7 @@ "formattedMinAmount": "${CREDIT_OFFERS_DS.formattedMinAmount}", "formattedMaxAmount": "${CREDIT_OFFERS_DS.formattedMaxAmount}", "formattedTotalCost": "${CREDIT_OFFERS_DS.formattedTotalCost}", + "formattedTransactionAmount": "${CREDIT_OFFERS_DS.formattedTransactionAmount}", "minAmount": "${CREDIT_OFFERS_DS.minAmount}", "maxAmount": "${CREDIT_OFFERS_DS.maxAmount}", "apr": "${CREDIT_OFFERS_DS.apr}", @@ -31,18 +33,18 @@ "content": { "calculator": { "belowThreshold": "Enter an amount of {formattedMinAmount} or more.", - "aboveThreshold": "Enter an amount no larger than {formattedMaxAmount}." + "aboveThreshold": "Enter an amount of less than {formattedMaxAmount}." }, "disclaimer": { - "zeroAPR": "Terms vary based on purchase amount and your credit.", - "nonZeroAPR": "*Fixed APR is 9.99% to 35.99%. Terms and rates vary based on purchase amount and your credit." + "nonZeroAPR": "Nominal interest rate of {formattedNominalRatePrecision2}%
Annual percentage rate of {formattedAPR}%
", + "zeroAPR": "Nominal interest rate of 0%
Annual percentage rate of 0%
" }, "termsLabel": { - "offerHeader": "{formattedPeriodicPayment}per month for {total_payments} months", - "zeroApr": "APR", - "nonZeroApr": "Estimated APR, see star for more details below.", - "totalInterest": "Interest", - "total": "Total" + "offerPayment": "{formattedPeriodicPayment}/month", + "offerNumInstallments": "{total_payments} installments", + "eMoney": "Credit amount", + "totalInterest": "Interest amount", + "total": "Total amount owed" } } } diff --git a/src/components/modal/v2/parts/OfferAccordion.jsx b/src/components/modal/v2/parts/OfferAccordion.jsx index 11e30c95ea..2195ef05d0 100644 --- a/src/components/modal/v2/parts/OfferAccordion.jsx +++ b/src/components/modal/v2/parts/OfferAccordion.jsx @@ -9,7 +9,8 @@ const OfferAccordion = ({ aprDisclaimer, index, activeSelection, - setActiveSelection + setActiveSelection, + offerCountry }) => { const [open, setOpen] = useState(''); const { termsLabel } = content; @@ -30,7 +31,7 @@ const OfferAccordion = ({ id={index} className={`accordion__container ${activeSelection === index ? 'active' : ''} ${open} ${ useV5Design === 'true' ? 'v5Design' : '' - } ${use5Dot1Design ? 'v5Dot1Design' : ''}`} + } ${use5Dot1Design ? 'v5Dot1Design' : ''} ${offerCountry || ''}`} >
-