@salesforce/retail-react-app 9.0.0-preview.1 → 9.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -7
- package/app/components/otp-auth/index.test.js +0 -1
- package/app/components/passwordless-login/index.jsx +1 -1
- package/app/pages/checkout-one-click/index.test.js +1 -10
- package/app/pages/checkout-one-click/partials/one-click-contact-info.jsx +21 -14
- package/app/pages/checkout-one-click/partials/one-click-payment.jsx +4 -7
- package/app/pages/checkout-one-click/partials/one-click-payment.test.js +1 -1
- package/app/pages/checkout-one-click/partials/one-click-shipping-options.jsx +2 -2
- package/app/static/translations/compiled/en-GB.json +14 -2
- package/app/static/translations/compiled/en-US.json +14 -2
- package/app/static/translations/compiled/en-XA.json +30 -2
- package/config/default.js +3 -0
- package/package.json +6 -6
- package/translations/en-GB.json +8 -2
- package/translations/en-US.json +8 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
## v9.0.0
|
|
2
|
-
- [
|
|
3
|
-
|
|
4
|
-
## v9.0.0-preview.0 (Feb 06, 2026)
|
|
5
|
-
- [Feature] One Click Checkout [#3552](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/3552)
|
|
1
|
+
## v9.0.0 (Feb 12, 2026)
|
|
2
|
+
- [Feature] One Click Checkout (in Developer Preview) [#3552](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/3552)
|
|
6
3
|
- [Feature] Add `fuzzyPathMatching` to reduce computational overhead of route generation at time of application load [#3530](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/3530)
|
|
7
4
|
- [Bugfix] Fix Passwordless Login landingPath, Reset Password landingPath, and Social Login redirectUri value in config not being used [#3560](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/3560)
|
|
8
5
|
- [Feature] PWA Integration with OMS
|
|
9
6
|
- Integrate Order Details page to display orders data from OMS [#3573](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/3573)
|
|
10
7
|
- Integrate Order History page to display data from OMS [#3581](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/3581)
|
|
11
8
|
- Add shipping display support for OMS [#3588](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/3588)
|
|
12
|
-
- BOPIS multishipment with OMS [#3613]
|
|
13
|
-
- Default to ECOM shipments in case OMS has no shipments [#3639]
|
|
9
|
+
- BOPIS multishipment with OMS [#3613](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/3613)
|
|
10
|
+
- Default to ECOM shipments in case OMS has no shipments [#3639](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/3639)
|
|
14
11
|
- [Feature] Update passwordless login and password reset to use email mode by default. The mode can now be configured across the login page, auth modal, and checkout page [#3525](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/3525)
|
|
15
12
|
- Update "Continue Securely" button text to "Continue" for passwordless login [#3556](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/3556)
|
|
16
13
|
- Util function for passwordless callback URI [#3630](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/3630)
|
|
@@ -751,11 +751,6 @@ describe('Checkout One Click', () => {
|
|
|
751
751
|
})
|
|
752
752
|
).toBeInTheDocument()
|
|
753
753
|
|
|
754
|
-
// Billing address should default to the shipping address
|
|
755
|
-
|
|
756
|
-
// Should display billing address that matches shipping address
|
|
757
|
-
expect(step3Content.getByText('123 Main St')).toBeInTheDocument()
|
|
758
|
-
|
|
759
754
|
// Edit billing address
|
|
760
755
|
// Toggle to edit billing address (not via same-as-shipping label in this flow)
|
|
761
756
|
// Click the checkbox by role if present; otherwise skip
|
|
@@ -1208,10 +1203,6 @@ describe('Checkout One Click', () => {
|
|
|
1208
1203
|
})
|
|
1209
1204
|
).toBeInTheDocument()
|
|
1210
1205
|
|
|
1211
|
-
// Verify billing address is displayed (it shows John Smith from the mock)
|
|
1212
|
-
expect(step3Content.getByText('John Smith')).toBeInTheDocument()
|
|
1213
|
-
expect(step3Content.getByText('123 Main St')).toBeInTheDocument()
|
|
1214
|
-
|
|
1215
1206
|
// Verify UserRegistration component is hidden for registered customers
|
|
1216
1207
|
expect(screen.queryByTestId('sf-user-registration-content')).not.toBeInTheDocument()
|
|
1217
1208
|
|
|
@@ -2650,7 +2641,7 @@ describe('Checkout One Click', () => {
|
|
|
2650
2641
|
|
|
2651
2642
|
// Click "Edit Payment Info" button
|
|
2652
2643
|
const editPaymentButton = screen.getByRole('button', {
|
|
2653
|
-
name: /toggle_card.action.
|
|
2644
|
+
name: /toggle_card.action.changePaymentInfo|Change/i
|
|
2654
2645
|
})
|
|
2655
2646
|
await user.click(editPaymentButton)
|
|
2656
2647
|
|
|
@@ -245,11 +245,19 @@ const ContactInfo = ({isSocialEnabled = false, idps = [], onRegisteredUserChoseG
|
|
|
245
245
|
lastEmailSentRef.current = normalizedEmail
|
|
246
246
|
return {isRegistered: true}
|
|
247
247
|
} catch (error) {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
248
|
+
// 404 = email not registered (guest); treat as guest and continue
|
|
249
|
+
const isGuestNotFound = String(error?.message || '').includes('404')
|
|
250
|
+
if (isGuestNotFound && isValidEmail(email)) {
|
|
251
|
+
setError('')
|
|
252
252
|
setShowContinueButton(true)
|
|
253
|
+
} else {
|
|
254
|
+
const message = formatMessage(
|
|
255
|
+
getAuthorizePasswordlessErrorMessage(error.message)
|
|
256
|
+
)
|
|
257
|
+
setError(message)
|
|
258
|
+
if (isValidEmail(email)) {
|
|
259
|
+
setShowContinueButton(true)
|
|
260
|
+
}
|
|
253
261
|
}
|
|
254
262
|
// Update the last email sent ref even on error to prevent retrying immediately
|
|
255
263
|
lastEmailSentRef.current = normalizedEmail
|
|
@@ -512,6 +520,9 @@ const ContactInfo = ({isSocialEnabled = false, idps = [], onRegisteredUserChoseG
|
|
|
512
520
|
}
|
|
513
521
|
}
|
|
514
522
|
|
|
523
|
+
const customerEmail = customer?.email || form.getValues('email')
|
|
524
|
+
const customerPhone = customer?.phoneHome || form.getValues('phone')
|
|
525
|
+
|
|
515
526
|
return (
|
|
516
527
|
<>
|
|
517
528
|
<ToggleCard
|
|
@@ -535,8 +546,8 @@ const ContactInfo = ({isSocialEnabled = false, idps = [], onRegisteredUserChoseG
|
|
|
535
546
|
id: 'checkout_contact_info.action.sign_out'
|
|
536
547
|
})
|
|
537
548
|
: formatMessage({
|
|
538
|
-
defaultMessage: '
|
|
539
|
-
id: 'checkout_contact_info.action.
|
|
549
|
+
defaultMessage: 'Change',
|
|
550
|
+
id: 'checkout_contact_info.action.change'
|
|
540
551
|
})
|
|
541
552
|
}
|
|
542
553
|
>
|
|
@@ -666,18 +677,14 @@ const ContactInfo = ({isSocialEnabled = false, idps = [], onRegisteredUserChoseG
|
|
|
666
677
|
</Container>
|
|
667
678
|
</ToggleCardEdit>
|
|
668
679
|
|
|
669
|
-
{
|
|
680
|
+
{customerEmail ? (
|
|
670
681
|
<ToggleCardSummary>
|
|
671
682
|
<Stack spacing={1}>
|
|
672
|
-
<Text>{
|
|
673
|
-
{
|
|
674
|
-
<Text fontSize="sm" color="gray.600">
|
|
675
|
-
{customer?.phoneHome || form.getValues('phone')}
|
|
676
|
-
</Text>
|
|
677
|
-
)}
|
|
683
|
+
<Text>{customerEmail}</Text>
|
|
684
|
+
{customerPhone && <Text>{customerPhone}</Text>}
|
|
678
685
|
</Stack>
|
|
679
686
|
</ToggleCardSummary>
|
|
680
|
-
)}
|
|
687
|
+
) : null}
|
|
681
688
|
</ToggleCard>
|
|
682
689
|
|
|
683
690
|
{/* Sign Out Confirmation Dialog */}
|
|
@@ -441,8 +441,8 @@ const Payment = ({
|
|
|
441
441
|
disabled={appliedPayment == null}
|
|
442
442
|
onEdit={handleEditPayment}
|
|
443
443
|
editLabel={formatMessage({
|
|
444
|
-
defaultMessage: '
|
|
445
|
-
id: 'toggle_card.action.
|
|
444
|
+
defaultMessage: 'Change',
|
|
445
|
+
id: 'toggle_card.action.changePaymentInfo'
|
|
446
446
|
})}
|
|
447
447
|
>
|
|
448
448
|
<ToggleCardEdit>
|
|
@@ -580,8 +580,7 @@ const Payment = ({
|
|
|
580
580
|
|
|
581
581
|
<Divider borderColor="gray.100" />
|
|
582
582
|
|
|
583
|
-
{
|
|
584
|
-
(effectiveBillingSameAsShipping && selectedShippingAddress)) && (
|
|
583
|
+
{selectedBillingAddress && !effectiveBillingSameAsShipping && (
|
|
585
584
|
<Stack spacing={2}>
|
|
586
585
|
<Heading as="h3" fontSize="md">
|
|
587
586
|
<FormattedMessage
|
|
@@ -589,9 +588,7 @@ const Payment = ({
|
|
|
589
588
|
id="checkout_payment.heading.billing_address"
|
|
590
589
|
/>
|
|
591
590
|
</Heading>
|
|
592
|
-
<AddressDisplay
|
|
593
|
-
address={selectedBillingAddress || selectedShippingAddress}
|
|
594
|
-
/>
|
|
591
|
+
<AddressDisplay address={selectedBillingAddress} />
|
|
595
592
|
</Stack>
|
|
596
593
|
)}
|
|
597
594
|
|
|
@@ -1310,7 +1310,7 @@ describe('Payment Component', () => {
|
|
|
1310
1310
|
// Click Edit Payment Info to enter edit mode
|
|
1311
1311
|
const summary = screen.getAllByTestId('toggle-card-summary').pop()
|
|
1312
1312
|
const editButton = within(summary).getByRole('button', {
|
|
1313
|
-
name: /toggle_card.action.
|
|
1313
|
+
name: /toggle_card.action.changePaymentInfo|Change/i
|
|
1314
1314
|
})
|
|
1315
1315
|
await user.click(editButton)
|
|
1316
1316
|
|
|
@@ -266,8 +266,8 @@ export default function ShippingOptions() {
|
|
|
266
266
|
}
|
|
267
267
|
onEdit={() => goToStep(STEPS.SHIPPING_OPTIONS)}
|
|
268
268
|
editLabel={formatMessage({
|
|
269
|
-
defaultMessage: '
|
|
270
|
-
id: 'toggle_card.action.
|
|
269
|
+
defaultMessage: 'Change',
|
|
270
|
+
id: 'toggle_card.action.changeShippingOptions'
|
|
271
271
|
})}
|
|
272
272
|
>
|
|
273
273
|
<ToggleCardEdit>
|
|
@@ -1249,10 +1249,10 @@
|
|
|
1249
1249
|
"value": " with your confirmation number and receipt shortly."
|
|
1250
1250
|
}
|
|
1251
1251
|
],
|
|
1252
|
-
"checkout_contact_info.action.
|
|
1252
|
+
"checkout_contact_info.action.change": [
|
|
1253
1253
|
{
|
|
1254
1254
|
"type": 0,
|
|
1255
|
-
"value": "
|
|
1255
|
+
"value": "Change"
|
|
1256
1256
|
}
|
|
1257
1257
|
],
|
|
1258
1258
|
"checkout_contact_info.action.sign_out": [
|
|
@@ -4681,6 +4681,18 @@
|
|
|
4681
4681
|
"value": "Change"
|
|
4682
4682
|
}
|
|
4683
4683
|
],
|
|
4684
|
+
"toggle_card.action.changePaymentInfo": [
|
|
4685
|
+
{
|
|
4686
|
+
"type": 0,
|
|
4687
|
+
"value": "Change"
|
|
4688
|
+
}
|
|
4689
|
+
],
|
|
4690
|
+
"toggle_card.action.changeShippingOptions": [
|
|
4691
|
+
{
|
|
4692
|
+
"type": 0,
|
|
4693
|
+
"value": "Change"
|
|
4694
|
+
}
|
|
4695
|
+
],
|
|
4684
4696
|
"toggle_card.action.edit": [
|
|
4685
4697
|
{
|
|
4686
4698
|
"type": 0,
|
|
@@ -1249,10 +1249,10 @@
|
|
|
1249
1249
|
"value": " with your confirmation number and receipt shortly."
|
|
1250
1250
|
}
|
|
1251
1251
|
],
|
|
1252
|
-
"checkout_contact_info.action.
|
|
1252
|
+
"checkout_contact_info.action.change": [
|
|
1253
1253
|
{
|
|
1254
1254
|
"type": 0,
|
|
1255
|
-
"value": "
|
|
1255
|
+
"value": "Change"
|
|
1256
1256
|
}
|
|
1257
1257
|
],
|
|
1258
1258
|
"checkout_contact_info.action.sign_out": [
|
|
@@ -4681,6 +4681,18 @@
|
|
|
4681
4681
|
"value": "Change"
|
|
4682
4682
|
}
|
|
4683
4683
|
],
|
|
4684
|
+
"toggle_card.action.changePaymentInfo": [
|
|
4685
|
+
{
|
|
4686
|
+
"type": 0,
|
|
4687
|
+
"value": "Change"
|
|
4688
|
+
}
|
|
4689
|
+
],
|
|
4690
|
+
"toggle_card.action.changeShippingOptions": [
|
|
4691
|
+
{
|
|
4692
|
+
"type": 0,
|
|
4693
|
+
"value": "Change"
|
|
4694
|
+
}
|
|
4695
|
+
],
|
|
4684
4696
|
"toggle_card.action.edit": [
|
|
4685
4697
|
{
|
|
4686
4698
|
"type": 0,
|
|
@@ -2473,14 +2473,14 @@
|
|
|
2473
2473
|
"value": "]"
|
|
2474
2474
|
}
|
|
2475
2475
|
],
|
|
2476
|
-
"checkout_contact_info.action.
|
|
2476
|
+
"checkout_contact_info.action.change": [
|
|
2477
2477
|
{
|
|
2478
2478
|
"type": 0,
|
|
2479
2479
|
"value": "["
|
|
2480
2480
|
},
|
|
2481
2481
|
{
|
|
2482
2482
|
"type": 0,
|
|
2483
|
-
"value": "
|
|
2483
|
+
"value": "Ƈħȧȧƞɠḗḗ"
|
|
2484
2484
|
},
|
|
2485
2485
|
{
|
|
2486
2486
|
"type": 0,
|
|
@@ -9841,6 +9841,34 @@
|
|
|
9841
9841
|
"value": "]"
|
|
9842
9842
|
}
|
|
9843
9843
|
],
|
|
9844
|
+
"toggle_card.action.changePaymentInfo": [
|
|
9845
|
+
{
|
|
9846
|
+
"type": 0,
|
|
9847
|
+
"value": "["
|
|
9848
|
+
},
|
|
9849
|
+
{
|
|
9850
|
+
"type": 0,
|
|
9851
|
+
"value": "Ƈħȧȧƞɠḗḗ"
|
|
9852
|
+
},
|
|
9853
|
+
{
|
|
9854
|
+
"type": 0,
|
|
9855
|
+
"value": "]"
|
|
9856
|
+
}
|
|
9857
|
+
],
|
|
9858
|
+
"toggle_card.action.changeShippingOptions": [
|
|
9859
|
+
{
|
|
9860
|
+
"type": 0,
|
|
9861
|
+
"value": "["
|
|
9862
|
+
},
|
|
9863
|
+
{
|
|
9864
|
+
"type": 0,
|
|
9865
|
+
"value": "Ƈħȧȧƞɠḗḗ"
|
|
9866
|
+
},
|
|
9867
|
+
{
|
|
9868
|
+
"type": 0,
|
|
9869
|
+
"value": "]"
|
|
9870
|
+
}
|
|
9871
|
+
],
|
|
9844
9872
|
"toggle_card.action.edit": [
|
|
9845
9873
|
{
|
|
9846
9874
|
"type": 0,
|
package/config/default.js
CHANGED
|
@@ -74,6 +74,9 @@ module.exports = {
|
|
|
74
74
|
appSourceId: '7ae070a6-f4ec-4def-a383-d9cacc3f20a1',
|
|
75
75
|
tenantId: 'g82wgnrvm-ywk9dggrrw8mtggy.pc-rnd'
|
|
76
76
|
},
|
|
77
|
+
// Note: this feature is in Developer Preview at this time. To use One Click Checkout,
|
|
78
|
+
// enable the oneClickCheckout flag and configure private SLAS client. For more details, please
|
|
79
|
+
// check https://github.com/SalesforceCommerceCloud/pwa-kit/releases/tag/v3.16.0
|
|
77
80
|
oneClickCheckout: {
|
|
78
81
|
enabled: false
|
|
79
82
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/retail-react-app",
|
|
3
|
-
"version": "9.0.0
|
|
3
|
+
"version": "9.0.0",
|
|
4
4
|
"license": "See license in LICENSE",
|
|
5
5
|
"author": "cc-pwa-kit@salesforce.com",
|
|
6
6
|
"ccExtensibility": {
|
|
@@ -46,10 +46,10 @@
|
|
|
46
46
|
"@loadable/component": "^5.15.3",
|
|
47
47
|
"@peculiar/webcrypto": "^1.4.2",
|
|
48
48
|
"@salesforce/cc-datacloud-typescript": "1.1.2",
|
|
49
|
-
"@salesforce/commerce-sdk-react": "5.0.0
|
|
50
|
-
"@salesforce/pwa-kit-dev": "3.16.0
|
|
51
|
-
"@salesforce/pwa-kit-react-sdk": "3.16.0
|
|
52
|
-
"@salesforce/pwa-kit-runtime": "3.16.0
|
|
49
|
+
"@salesforce/commerce-sdk-react": "5.0.0",
|
|
50
|
+
"@salesforce/pwa-kit-dev": "3.16.0",
|
|
51
|
+
"@salesforce/pwa-kit-react-sdk": "3.16.0",
|
|
52
|
+
"@salesforce/pwa-kit-runtime": "3.16.0",
|
|
53
53
|
"@tanstack/react-query": "^4.28.0",
|
|
54
54
|
"@tanstack/react-query-devtools": "^4.29.1",
|
|
55
55
|
"@testing-library/dom": "^9.0.1",
|
|
@@ -108,5 +108,5 @@
|
|
|
108
108
|
"maxSize": "366 kB"
|
|
109
109
|
}
|
|
110
110
|
],
|
|
111
|
-
"gitHead": "
|
|
111
|
+
"gitHead": "6c5fadd745fbd4f666d0887f45d01719e86b3ead"
|
|
112
112
|
}
|
package/translations/en-GB.json
CHANGED
|
@@ -460,8 +460,8 @@
|
|
|
460
460
|
"checkout_confirmation.message.will_email_shortly": {
|
|
461
461
|
"defaultMessage": "We will send an email to <b>{email}</b> with your confirmation number and receipt shortly."
|
|
462
462
|
},
|
|
463
|
-
"checkout_contact_info.action.
|
|
464
|
-
"defaultMessage": "
|
|
463
|
+
"checkout_contact_info.action.change": {
|
|
464
|
+
"defaultMessage": "Change"
|
|
465
465
|
},
|
|
466
466
|
"checkout_contact_info.action.sign_out": {
|
|
467
467
|
"defaultMessage": "Sign Out"
|
|
@@ -1949,6 +1949,12 @@
|
|
|
1949
1949
|
"toggle_card.action.change": {
|
|
1950
1950
|
"defaultMessage": "Change"
|
|
1951
1951
|
},
|
|
1952
|
+
"toggle_card.action.changePaymentInfo": {
|
|
1953
|
+
"defaultMessage": "Change"
|
|
1954
|
+
},
|
|
1955
|
+
"toggle_card.action.changeShippingOptions": {
|
|
1956
|
+
"defaultMessage": "Change"
|
|
1957
|
+
},
|
|
1952
1958
|
"toggle_card.action.edit": {
|
|
1953
1959
|
"defaultMessage": "Edit"
|
|
1954
1960
|
},
|
package/translations/en-US.json
CHANGED
|
@@ -460,8 +460,8 @@
|
|
|
460
460
|
"checkout_confirmation.message.will_email_shortly": {
|
|
461
461
|
"defaultMessage": "We will send an email to <b>{email}</b> with your confirmation number and receipt shortly."
|
|
462
462
|
},
|
|
463
|
-
"checkout_contact_info.action.
|
|
464
|
-
"defaultMessage": "
|
|
463
|
+
"checkout_contact_info.action.change": {
|
|
464
|
+
"defaultMessage": "Change"
|
|
465
465
|
},
|
|
466
466
|
"checkout_contact_info.action.sign_out": {
|
|
467
467
|
"defaultMessage": "Sign Out"
|
|
@@ -1949,6 +1949,12 @@
|
|
|
1949
1949
|
"toggle_card.action.change": {
|
|
1950
1950
|
"defaultMessage": "Change"
|
|
1951
1951
|
},
|
|
1952
|
+
"toggle_card.action.changePaymentInfo": {
|
|
1953
|
+
"defaultMessage": "Change"
|
|
1954
|
+
},
|
|
1955
|
+
"toggle_card.action.changeShippingOptions": {
|
|
1956
|
+
"defaultMessage": "Change"
|
|
1957
|
+
},
|
|
1952
1958
|
"toggle_card.action.edit": {
|
|
1953
1959
|
"defaultMessage": "Edit"
|
|
1954
1960
|
},
|