Skip to content

Commit 36f9ab8

Browse files
committed
MC-33524: Couldn't set up Installment button for locale Mexico and Brazil
1 parent 0913cd2 commit 36f9ab8

File tree

6 files changed

+45
-12
lines changed

6 files changed

+45
-12
lines changed

app/code/Magento/Paypal/Model/Config.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1515,6 +1515,7 @@ protected function _mapExpressFieldset($fieldName)
15151515
case 'client_id':
15161516
case 'sandbox_client_id':
15171517
case 'supported_locales':
1518+
case 'smart_buttons_supported_locales':
15181519
return "payment/{$this->_methodCode}/{$fieldName}";
15191520
default:
15201521
return $this->_mapMethodFieldset($fieldName);

app/code/Magento/Paypal/Model/Express/LocaleResolver.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,9 @@ public function setLocale($locale = null)
8989
public function getLocale(): string
9090
{
9191
$locale = $this->localeMap[$this->resolver->getLocale()] ?? $this->resolver->getLocale();
92-
$allowedLocales = $this->config->getValue('supported_locales');
92+
$allowedLocales =(bool)(int) $this->config->getValue('in_context')
93+
? $this->config->getValue('smart_buttons_supported_locales')
94+
: $this->config->getValue('supported_locales');
9395

9496
return strpos($allowedLocales, $locale) !== false ? $locale : 'en_US';
9597
}

app/code/Magento/Paypal/Model/SmartButtonConfig.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ private function updateStyles(array $styles, string $page): array
222222
// Installment label is only available for specific locales
223223
if ($styles['label'] === 'installment') {
224224
if (array_key_exists($locale, $installmentPeriodLocale)) {
225-
$styles['installmentperiod'] = (int)$this->config->getValue(
225+
$styles['period'] = (int)$this->config->getValue(
226226
$page .'_page_button_' . $installmentPeriodLocale[$locale] . '_installment_period'
227227
);
228228
} else {

app/code/Magento/Paypal/Test/Unit/Model/Express/LocaleResolverTest.php

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
use Magento\Paypal\Model\Express\LocaleResolver as ExpressLocaleResolver;
1414

1515
/**
16-
* Class LocaleResolverTest
16+
* Test for PayPal express checkout resolver
1717
*/
1818
class LocaleResolverTest extends \PHPUnit\Framework\TestCase
1919
{
@@ -27,18 +27,20 @@ class LocaleResolverTest extends \PHPUnit\Framework\TestCase
2727
*/
2828
private $model;
2929

30+
/**
31+
* @var Config
32+
*/
33+
private $config;
34+
3035
protected function setUp()
3136
{
3237
$this->resolver = $this->createMock(ResolverInterface::class);
3338
/** @var Config $config */
34-
$config = $this->createMock(Config::class);
35-
$config->method('getValue')
36-
->with('supported_locales')
37-
->willReturn('zh_CN,zh_HK,zh_TW,fr_FR');
39+
$this->config = $this->createMock(Config::class);
3840

3941
/** @var ConfigFactory $configFactory */
4042
$configFactory = $this->createPartialMock(ConfigFactory::class, ['create']);
41-
$configFactory->method('create')->willReturn($config);
43+
$configFactory->method('create')->willReturn($this->config);
4244

4345
$this->model = new ExpressLocaleResolver($this->resolver, $configFactory);
4446
}
@@ -54,7 +56,14 @@ public function testGetLocale(string $locale, string $expectedLocale)
5456
{
5557
$this->resolver->method('getLocale')
5658
->willReturn($locale);
57-
59+
$this->config->method('getValue')->will(
60+
$this->returnValueMap(
61+
[
62+
['in_context', null, false],
63+
['supported_locales', null, 'zh_CN,zh_HK,zh_TW,fr_FR'],
64+
]
65+
)
66+
);
5867
$this->assertEquals($expectedLocale, $this->model->getLocale());
5968
}
6069

@@ -71,4 +80,23 @@ public function getLocaleDataProvider(): array
7180
['locale' => 'unknown', 'expectedLocale' => 'en_US'],
7281
];
7382
}
83+
84+
/**
85+
* Tests retrieving locales for PayPal Express Smart Buttons.
86+
*
87+
*/
88+
public function testGetLocaleForSmartButtons()
89+
{
90+
$this->resolver->method('getLocale')
91+
->willReturn('zh_Hans_CN');
92+
$this->config->method('getValue')->will(
93+
$this->returnValueMap(
94+
[
95+
['in_context', null, true],
96+
['smart_buttons_supported_locales', null, 'zh_CN,zh_HK,zh_TW,fr_FR'],
97+
]
98+
)
99+
);
100+
$this->assertEquals('zh_CN', $this->model->getLocale());
101+
}
74102
}

app/code/Magento/Paypal/Test/Unit/Model/_files/expected_config.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
'color' => 'blue',
2727
'shape' => 'pillow',
2828
'label' => 'installment',
29-
'installmentperiod' => 0
29+
'period' => 0
3030
],
3131
'isVisibleOnProductPage' => false,
3232
'isGuestCheckoutAllowed' => true,
@@ -54,7 +54,7 @@
5454
'color' => 'blue',
5555
'shape' => 'pillow',
5656
'label' => 'installment',
57-
'installmentperiod' => 0
57+
'period' => 0
5858
],
5959
'isVisibleOnProductPage' => false,
6060
'isGuestCheckoutAllowed' => true,
@@ -134,7 +134,7 @@
134134
'color' => 'blue',
135135
'shape' => 'pillow',
136136
'label' => 'installment',
137-
'installmentperiod' => 0
137+
'period' => 0
138138
],
139139
'isVisibleOnProductPage' => false,
140140
'isGuestCheckoutAllowed' => true,

app/code/Magento/Paypal/etc/config.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@
6969
<verify_peer>1</verify_peer>
7070
<skip_order_review_step>1</skip_order_review_step>
7171
<supported_locales>ar_EG,cs_CZ,da_DK,de_DE,el_GR,en_AU,en_GB,en_IN,en_US,es_ES,es_XC,fi_FI,fr_CA,fr_FR,fr_XC,he_IL,hu_HU,id_ID,it_IT,ja_JP,ko_KR,nl_NL,no_NO,pl_PL,pt_BR,pt_PT,ru_RU,sk_SK,sv_SE,th_TH,zh_CN,zh_HK,zh_TW,zh_XC</supported_locales>
72+
<!--For more information seehttps://developer.paypal.com/docs/checkout/reference/customize-sdk/#locale -->
73+
<smart_buttons_supported_locales>en_AD,fr_AD,es_AD,zh_AD,en_AE,fr_AE,es_AE,zh_AE,ar_AE,en_AG,fr_AG,es_AG,zh_AG,en_AI,fr_AI,es_AI,zh_AI,en_AL,en_AM,fr_AM,es_AM,zh_AM,en_AN,fr_AN,es_AN,zh_AN,en_AO,fr_AO,es_AO,zh_AO,es_AR,en_AR, de_AT,en_AT,en_AU,en_AW,fr_AW,es_AW,zh_AW,en_AZ,fr_AZ,es_AZ,zh_AZ,en_BA,en_BB,fr_BB,es_BB,zh_BB,en_BE,nl_BE,fr_BE,fr_BF,en_BF,es_BF,zh_BF,en_BG,ar_BH,en_BH,fr_BH,es_BH,zh_BH,fr_BI,en_BI,es_BI,zh_BI,fr_BJ,en_BJ,es_BJ,zh_BJ,en_BM,fr_BM,es_BM,zh_BM,en_BN,es_BO,en_BO,fr_BO,zh_BO,pt_BR,en_BR,en_BS,fr_BS,es_BS,zh_BS,en_BT,en_BW,fr_BW,es_BW,zh_BW,en_BY,en_BZ,es_BZ,fr_BZ,zh_BZ,en_CA,fr_CA,fr_CD,en_CD,es_CD,zh_CD,en_CG,fr_CG,es_CG,zh_CG,de_CH,fr_CH,en_CH,fr_CI,en_CI,en_CK,fr_CK,es_CK,zh_CK,es_CL,en_CL,fr_CL,zh_CL,fr_CM,en_CM,zh_CN,es_CO,en_CO,fr_CO,zh_CO,es_CR,en_CR,fr_CR,zh_CR,en_CV,fr_CV,es_CV,zh_CV,en_CY,cs_CZ,en_CZ,fr_CZ,es_CZ,zh_CZ,de_DE,en_DE,fr_DJ,en_DJ,es_DJ,zh_DJ,da_DK,en_DK,en_DM,fr_DM,es_DM,zh_DM,es_DO,en_DO,fr_DO,zh_DO,ar_DZ,en_DZ,fr_DZ,es_DZ,zh_DZ,es_EC,en_EC,fr_EC,zh_EC,en_EE,ru_EE,fr_EE,es_EE,zh_EE,ar_EG,en_EG,fr_EG,es_EG,zh_EG,en_ER,fr_ER,es_ER,zh_ER,es_ES,en_ES,en_ET,fr_ET,es_ET,zh_ET,fi_FI,en_FI,fr_FI,es_FI,zh_FI,en_FJ,fr_FJ,es_FJ,zh_FJ,en_FK,fr_FK,es_FK,zh_FK,en_FM,da_FO,en_FO,fr_FO,es_FO,zh_FO,fr_FR,en_FR,fr_GA,en_GA,es_GA,zh_GA,en_GB,en_GD,fr_GD,es_GD,zh_GD,en_GE,fr_GE,es_GE,zh_GE,en_GF,fr_GF,es_GF,zh_GF,en_GI,fr_GI,es_GI,zh_GI,da_GL,en_GL,fr_GL,es_GL,zh_GL,en_GM,fr_GM,es_GM,zh_GM,fr_GN,en_GN,es_GN,zh_GN,en_GP,fr_GP,es_GP,zh_GP,el_GR,en_GR,fr_GR,es_GR,zh_GR,es_GT,en_GT,fr_GT,zh_GT,en_GW,fr_GW,es_GW,zh_GW,en_GY,fr_GY,es_GY,zh_GY,en_HK,zh_HK,es_HN,en_HN,fr_HN,zh_HN,en_HR,hu_HU,en_HU,fr_HU,es_HU,zh_HU,id_ID,en_ID,en_IE,fr_IE,es_IE,zh_IE,he_IL,en_IL,en_IN,en_IS,it_IT,en_IT,en_JM,es_JM,fr_JM,zh_JM,ar_JO,en_JO,fr_JO,es_JO,zh_JO,ja_JP,en_JP,en_KE,fr_KE,es_KE,zh_KE,en_KG,fr_KG,es_KG,zh_KG,en_KH,en_KI,fr_KI,es_KI,zh_KI,fr_KM,en_KM,es_KM,zh_KM,en_KN,fr_KN,es_KN,zh_KN,ko_KR,en_KR,ar_KW,en_KW,fr_KW,es_KW,zh_KW,en_KY,fr_KY,es_KY,zh_KY,en_KZ,fr_KZ,es_KZ,zh_KZ,en_LA,en_LC,fr_LC,es_LC,zh_LC,en_LI,fr_LI,es_LI,zh_LI,en_LK,en_LS,fr_LS,es_LS,zh_LS,en_LT,ru_LT,fr_LT,es_LT,zh_LT,en_LU,de_LU,fr_LU,es_LU,zh_LU,en_LV,ru_LV,fr_LV,es_LV,zh_LV,ar_MA,en_MA,fr_MA,es_MA,zh_MA,fr_MC,en_MC,en_MD,en_ME,en_MG,fr_MG,es_MG,zh_MG,en_MH,fr_MH,es_MH,zh_MH,en_MK,fr_ML,en_ML,es_ML,zh_ML,en_MN,en_MQ,fr_MQ,es_MQ,zh_MQ,en_MR,fr_MR,es_MR,zh_MR,en_MS,fr_MS,es_MS,zh_MS,en_MT,en_MU,fr_MU,es_MU,zh_MU,en_MV,en_MW,fr_MW,es_MW,zh_MW,es_MX,en_MX,en_MY,en_MZ,fr_MZ,es_MZ,zh_MZ,en_NA,fr_NA,es_NA,zh_NA,en_NC,fr_NC,es_NC,zh_NC,fr_NE,en_NE,es_NE,zh_NE,en_NF,fr_NF,es_NF,zh_NF,en_NG,es_NI,en_NI,fr_NI,zh_NI,nl_NL,en_NL,no_NO,en_NO,en_NP,en_NR,fr_NR,es_NR,zh_NR,en_NU,fr_NU,es_NU,zh_NU,en_NZ,fr_NZ,es_NZ,zh_NZ,ar_OM,en_OM,fr_OM,es_OM,zh_OM,es_PA,en_PA,fr_PA,zh_PA,es_PE,en_PE,fr_PE,zh_PE,en_PF,fr_PF,es_PF,zh_PF,en_PG,fr_PG,es_PG,zh_PG,en_PH,pl_PL,en_PL,en_PM,fr_PM,es_PM,zh_PM,en_PN,fr_PN,es_PN,zh_PN,pt_PT,en_PT,en_PW,fr_PW,es_PW,zh_PW,es_PY,en_PY,en_QA,fr_QA,es_QA,zh_QA,ar_QA,en_RE,fr_RE,es_RE,zh_RE,en_RO,fr_RO,es_RO,zh_RO,en_RS,fr_RS,es_RS,zh_RS,ru_RU,en_RU,fr_RW,en_RW,es_RW,zh_RW,ar_SA,en_SA,fr_SA,es_SA,zh_SA,en_SB,fr_SB,es_SB,zh_SB,fr_SC,en_SC,es_SC,zh_SC,sv_SE,en_SE,en_SG,en_SH,fr_SH,es_SH,zh_SH,en_SI,fr_SI,es_SI,zh_SI,en_SJ,fr_SJ,es_SJ,zh_SJ,sk_SK,en_SK,fr_SK,es_SK,zh_SK,en_SL,fr_SL,es_SL,zh_SL,en_SM,fr_SM,es_SM,zh_SM,fr_SN,en_SN,es_SN,zh_SN,en_SO,fr_SO,es_SO,zh_SO,en_SR,fr_SR,es_SR,zh_SR,en_ST,fr_ST,es_ST,zh_ST,es_SV,en_SV,fr_SV,zh_SV,en_SZ,fr_SZ,es_SZ,zh_SZ,en_TC,fr_TC,es_TC,zh_TC,fr_TD,en_TD,es_TD,zh_TD,fr_TG,en_TG,es_TG,zh_TG,th_TH,en_TH,en_TJ,fr_TJ,es_TJ,zh_TJ,en_TM,fr_TM,es_TM,zh_TM,ar_TN,en_TN,fr_TN,es_TN,zh_TN,en_TO,tr_TR,en_TR,en_TT,fr_TT,es_TT,zh_TT,en_TV,fr_TV,es_TV,zh_TV,zh_TW,en_TW,en_TZ,fr_TZ,es_TZ,zh_TZ,en_UA,ru_UA,fr_UA,es_UA,zh_UA,en_UG,fr_UG,es_UG,zh_UG,en_US,fr_US,es_US,zh_US,es_UY,en_UY,fr_UY,zh_UY,en_VA,fr_VA,es_VA,zh_VA,en_VC,fr_VC,es_VC,zh_VC,es_VE,en_VE,fr_VE,zh_VE,en_VG,fr_VG,es_VG,zh_VG,en_VN,en_VU,fr_VU,es_VU,zh_VU,en_WF,fr_WF,es_WF,zh_WF,en_WS,ar_YE,en_YE,fr_YE,es_YE,zh_YE,en_YT,fr_YT,es_YT,zh_YT,en_ZA,fr_ZA,es_ZA,zh_ZA,en_ZM,fr_ZM,es_ZM,zh_ZM,en_ZW</smart_buttons_supported_locales>
7274
<client_id>ATDZ9_ECFh-fudesZo4kz3fGTSO1pzuWCS4IjZMq4JKdRK7hQR3Rxyafx39H2fP363WtmlQNYXjUiAae</client_id>
7375
<sandbox_client_id>sb</sandbox_client_id>
7476
</paypal_express>

0 commit comments

Comments
 (0)