Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1478 commits
Select commit Hold shift + click to select a range
c0aef09
Merge pull request #3353 from SalesforceCommerceCloud/3.13.0-preview.5
shethj Sep 24, 2025
9407da4
Just have it scheduled
jeremy-jung1 Sep 24, 2025
b5e3775
Merge branch 'add-slack-notification-for-extra-features-e2e' of githu…
jeremy-jung1 Sep 24, 2025
8a753ae
@W-19454052 feat: fix behavior where sometimes shipping options don't…
sf-henry-semaganda Sep 24, 2025
154d80b
Merge branch 'develop' into add-slack-notification-for-extra-features…
jeremy-jung1 Sep 24, 2025
03b8ab4
Bump version for 3.13.0 release
shethj Sep 25, 2025
f9ba7d0
Merge pull request #3354 from SalesforceCommerceCloud/add-slack-notif…
jeremy-jung1 Sep 25, 2025
49a48fa
@W-19743729 remove shipment dropdown from cart, put orphan bonus prod…
sf-shikhar-prasoon Sep 25, 2025
d78cd8d
Update release date for 3.13.0 in changelogs
shethj Sep 25, 2025
aec9941
Merge pull request #3356 from SalesforceCommerceCloud/3.13.0
shethj Sep 25, 2025
a95b0c5
Merge branch 'develop' into sync-develop-with-3.13.x
shethj Sep 26, 2025
5a4c620
Merge pull request #3361 from SalesforceCommerceCloud/sync-develop-wi…
shethj Sep 26, 2025
c5578f8
Bump dev versions to 3.14.0-dev
shethj Sep 26, 2025
2780600
Merge pull request #3362 from SalesforceCommerceCloud/feature/bump-ve…
shethj Sep 26, 2025
0def699
fix: localize url for checkout button (#3355)
mmccullom-sf Sep 29, 2025
bd29a86
enhance telemetry
wei-liu-sf Oct 1, 2025
be695ed
add tool name to event name
wei-liu-sf Oct 1, 2025
a429fc6
@W-19689304 - Merge pull request #3369 from SalesforceCommerceCloud/W…
wei-liu-sf Oct 1, 2025
516a1e6
Replace aws-serverless-express with @h4ad/serverless-adapter (#3372)
kieran-sf Oct 1, 2025
0d4718f
@W-19758448 Create PWA-Kit MCP Rules to guide the agent into optimal …
patricksullivansf Oct 3, 2025
2128c11
@W-19624822 feat: eliminate the extra parameters exposed through crea…
sf-henry-semaganda Oct 6, 2025
acffa77
Update the Readme document for MCP
snilakandan13 Oct 7, 2025
558af7b
skip changelog
snilakandan13 Oct 7, 2025
6d49691
Bug Fix for paths
aditek-sf Oct 7, 2025
e1017db
Merge pull request #3378 from SalesforceCommerceCloud/t/commerce/W-19…
snilakandan13 Oct 7, 2025
afcd52d
Updated changelog.md
aditek-sf Oct 7, 2025
47ef3d7
Initial Commit
bendvc Oct 7, 2025
7f44fa7
Merge branch 'develop' into bendvc/W-19811971_encode-address-name
bendvc Oct 7, 2025
e39b3cd
PR Feedback
bendvc Oct 7, 2025
83c0bb7
Merge pull request #3380 from SalesforceCommerceCloud/bendvc/W-198119…
bendvc Oct 8, 2025
3fbe03f
Merge branch 'develop' into t/commerce/spark/W-19840602/fixnodemodule…
aditek-sf Oct 8, 2025
3b622c4
Merge pull request #3379 from SalesforceCommerceCloud/t/commerce/spar…
snilakandan13 Oct 8, 2025
52cccb4
@W-19689163 MCP tool create page/component route responses through th…
patricksullivansf Oct 8, 2025
a62981e
API explorer Tool
snilakandan13 Oct 9, 2025
1d2a9bc
Updated change log
snilakandan13 Oct 9, 2025
c6a4968
Committing readme
snilakandan13 Oct 9, 2025
a4f135e
Linter errors
snilakandan13 Oct 9, 2025
a2a76e1
Merge branch 'develop' into t/commerce/W-19450028/apiExplorerTool
snilakandan13 Oct 9, 2025
73a0226
fix: update package-lock.json to sync with package.json
snilakandan13 Oct 9, 2025
9d6ff42
Committing for linter changes
snilakandan13 Oct 9, 2025
5c05e07
Review comments
snilakandan13 Oct 9, 2025
9e78531
Review comments
snilakandan13 Oct 9, 2025
308beec
Review comments
snilakandan13 Oct 9, 2025
79169aa
Updating test
snilakandan13 Oct 9, 2025
051adf1
Review comments
snilakandan13 Oct 9, 2025
4eed801
Review comments
snilakandan13 Oct 9, 2025
5e29322
Review comments
snilakandan13 Oct 9, 2025
02852fd
Merge pull request #3385 from SalesforceCommerceCloud/t/commerce/W-19…
snilakandan13 Oct 9, 2025
21794bd
@W-19798251 MCP Hooks Recommendation Tool (#3388)
patricksullivansf Oct 10, 2025
16fd6ee
W-19884516 - Update telemetry to production instance
wei-liu-sf Oct 13, 2025
bebe746
Merge pull request #3394 from SalesforceCommerceCloud/W-19884516/wei-…
wei-liu-sf Oct 13, 2025
82a1c25
remove node 18 from e2e matrix
kevinxh Oct 14, 2025
0c9accf
use larger runner for e2e tests
kevinxh Oct 14, 2025
b211df3
undo large ubuntu runner
kevinxh Oct 14, 2025
faa913a
@W-19450160 - Custom API MCP Tool (#3387)
shauryemahajanSF Oct 14, 2025
34adcfb
Merge branch 'develop' into improve-e2e-stability
kevinxh Oct 14, 2025
41a5a1d
Fix footer heading semantic consistency and alignment
sf-cboscenco Oct 14, 2025
17a0ddb
Fix accessibility compliance by adding proper h1 headings to checkout…
sf-cboscenco Oct 15, 2025
780f824
Added changelog entry.
sf-cboscenco Oct 15, 2025
014cef1
Fix more a11y issues on various pages
sf-cboscenco Oct 15, 2025
0337719
Update compiled translations with new accessibility h1 heading keys
sf-cboscenco Oct 15, 2025
fd4d325
Complete translation build for accessibility h1 keys
sf-cboscenco Oct 15, 2025
4d314a5
Merge pull request #3397 from SalesforceCommerceCloud/improve-e2e-sta…
kevinxh Oct 15, 2025
46f2419
Merge branch 'develop' into t/cc-sharks/W-19721000
sf-cboscenco Oct 15, 2025
2069f3d
fix: resolve e2e test failures for DNT, PLP and checkout a11y tests
sf-cboscenco Oct 15, 2025
ce23444
fix: update DNT test selector and checkout step-1 a11y snapshots
sf-cboscenco Oct 15, 2025
3955d93
fix: update remaining checkout a11y snapshots (step-2, step-3, step-4)
sf-cboscenco Oct 15, 2025
fa57bb7
fix: update login test selectors to use getByRole for button
sf-cboscenco Oct 15, 2025
c287be4
fix: update test expectations for account page headings
sf-cboscenco Oct 15, 2025
c064f29
Merge pull request #3398 from SalesforceCommerceCloud/t/cc-sharks/W-1…
sf-cboscenco Oct 15, 2025
eaaa094
Fix: prevent `generateCustomEndpointOptions` from overriding headers …
joeluong-sfcc Oct 16, 2025
1adfe9f
@W-19347602 - Fix In Store Inventory Stock Level Checks (#3401)
shauryemahajanSF Oct 16, 2025
c79409c
skip this flaky tests that randomly fails everyday
kevinxh Oct 17, 2025
41e2490
Merge pull request #3407 from SalesforceCommerceCloud/skip-flaky-e2e-…
kevinxh Oct 20, 2025
510f540
add support for slas proxy req/res callbacks; update jsdocs
clavery Oct 20, 2025
668b6ac
callback name clarity
clavery Oct 20, 2025
9e0afed
update changelog for private proxy ext
clavery Oct 20, 2025
f732b21
slas private proxy test coverage
clavery Oct 20, 2025
fb4de91
lint
clavery Oct 20, 2025
4c6cfd4
lint warnings
clavery Oct 20, 2025
25ea212
@W-19450863 feat: Site ID regex and prompt updated for correctness & …
sf-henry-semaganda Oct 21, 2025
1688036
@W-19995399 - Add Rules for Custom API in Dev Guidelines (#3413)
shauryemahajanSF Oct 21, 2025
baa0359
@W-20002879 Register guest save addresses is multi-ship aware (#3412)
patricksullivansf Oct 21, 2025
1bf252c
Merge branch 'develop' into feature/slas-proxy-extensibility
clavery Oct 22, 2025
2b5d086
Merge pull request #3411 from SalesforceCommerceCloud/feature/slas-pr…
clavery Oct 22, 2025
4159106
Switch a11y tests to private storefront and single set of snapshots
shethj Oct 22, 2025
29e9e33
Update guest user snapshots
shethj Oct 22, 2025
a2e9964
Merge pull request #3416 from SalesforceCommerceCloud/e2e/nightly-a11…
shethj Oct 22, 2025
e7f146c
@W-19688128 Order Details supports multiship and BOPIS (#3414)
patricksullivansf Oct 23, 2025
9765651
@W-19869537 Added Hybrid Proxy support for local and ODS hybrid devel…
yhsieh1 Oct 23, 2025
0b003ba
@W-20026654 Merge einstein suggested phrases in search feature into d…
sf-madhuri-uppu Oct 23, 2025
8d09b13
@W-20027133 - Add Parent Dir Check for dw.json (#3423)
shauryemahajanSF Oct 23, 2025
9c1df04
@W-19838058 Post pwa-kit-mcp release update (#3429)
yhsieh1 Oct 24, 2025
49d0a17
@W-19687986 Store Locator responsive fix (#3420)
patricksullivansf Oct 24, 2025
9ecf901
Fix publish script for a specific package (#3430)
vmarta Oct 24, 2025
ec39daf
Bump versions for 3.14.0-preview.0
shethj Oct 25, 2025
31d17a2
Add support for Rule Based Promotions for Choice of Bonus Products (#…
sf-shikhar-prasoon Oct 25, 2025
adc0deb
@W-19785986 MCP remove create component tool (#3437)
patricksullivansf Oct 29, 2025
f5b2b6d
Remove transfer-encoding if chunked (#3439)
kieran-sf Oct 29, 2025
f88dea1
Fix chunked encoding option name (#3440)
kieran-sf Oct 29, 2025
4ba60df
@W-20073841: Fixed intermittent issues with bonus product modal selec…
ddiazccrz Oct 30, 2025
9360fa5
@W-20038640 Fix: 400 Error (#3443)
sf-shikhar-prasoon Oct 30, 2025
c8c0432
Update changelogs
shethj Oct 31, 2025
b9074eb
@W-20073841: Fixed intermittent issues with bonus product modal selec…
ddiazccrz Oct 30, 2025
0e9fa1b
@W-20038640 Fix: 400 Error (#3443)
sf-shikhar-prasoon Oct 30, 2025
6a64b1b
Add support for Rule Based Promotions for Choice of Bonus Products (#…
sf-shikhar-prasoon Oct 25, 2025
ff640d4
Merge pull request #3434 from SalesforceCommerceCloud/prepare-release…
shethj Oct 31, 2025
90feedf
Update commerce-sdk-isomorphic to latest release
shethj Nov 4, 2025
66cad33
Bump versions for 3.14.0-preview.1 release
shethj Nov 4, 2025
582d9c2
Update changelogs
shethj Nov 4, 2025
220825f
Backport commerce-sdk-isomorphic to v4.0.1
shethj Nov 4, 2025
e18e0bc
Merge pull request #3449 from SalesforceCommerceCloud/prepare-release…
shethj Nov 4, 2025
4504ab6
Bump versions for final 3.14.0 release
shethj Nov 5, 2025
990cdd2
Merge pull request #3451 from SalesforceCommerceCloud/prepare-release…
shethj Nov 5, 2025
1b68dca
Merge branch 'develop' into release-3.14.x
shethj Nov 5, 2025
7957630
Merge pull request #3452 from SalesforceCommerceCloud/release-3.14.x
shethj Nov 5, 2025
7cbfd57
Bump dev versions
shethj Nov 5, 2025
1f06707
Merge pull request #3453 from SalesforceCommerceCloud/post-3.14-bump-…
shethj Nov 5, 2025
8c91b6e
Added the fallback path for the Custom API Tool
snilakandan13 Nov 7, 2025
bfc20d1
Modified the env variable to SFCC_CARTRIDGE_PATH
snilakandan13 Nov 7, 2025
9f7a477
Merge branch 'develop' of https://github.com/SalesforceCommerceCloud/…
snilakandan13 Nov 7, 2025
40e751c
Modified the env variable to SFCC_CARTRIDGE_PATH
snilakandan13 Nov 7, 2025
c23c137
Modified the env variable to SFCC_CARTRIDGE_PATH
snilakandan13 Nov 7, 2025
346d35c
Test failures
snilakandan13 Nov 7, 2025
b220e3d
Test failures
snilakandan13 Nov 7, 2025
6bf6512
Review comments
snilakandan13 Nov 7, 2025
598e83e
Merge pull request #3458 from SalesforceCommerceCloud/t/commerce/W-19…
snilakandan13 Nov 7, 2025
63d1359
W-20398991
giridhari-gupta Dec 4, 2025
3495a3c
W-20276592
giridhari-gupta Dec 5, 2025
4de195b
Merge pull request #3493 from SalesforceCommerceCloud/W-20276592.giri…
giridhari-gupta Dec 5, 2025
7880214
fix(a11y): Improve color swatch text contrast for WCAG 2 AA complianc…
kevinxh Dec 11, 2025
da5245b
@W-20276592: Address autocompletion feature (#3484)
dannyphan2000 Dec 12, 2025
1f4fb85
Add endpoint to test presence of file in ssr_shared
shivaniverma-sf Dec 12, 2025
74afcd7
Fix setting multiple cookies (#3508)
kieran-sf Dec 12, 2025
eb50b97
Merge branch 'develop' into W19001395_shivaniverma-sf_ssr-file-endpoint
shivaniverma-sf Dec 15, 2025
2aa7f32
Merge pull request #3511 from SalesforceCommerceCloud/W19001395_shiva…
shivaniverma-sf Dec 15, 2025
754b4ae
Initial Commit
bendvc Dec 17, 2025
da711f9
Add new endpoint which is a no-op for non-streaming.
lizcross Dec 17, 2025
0aafe63
Add tests remove console logs
bendvc Dec 17, 2025
c68cb26
Add change log, lint, remove unused file
bendvc Dec 17, 2025
03f50be
Fix lint error
lizcross Dec 18, 2025
1f46c4f
Merge 3.15.0 back to develop (#3532)
vcua-mobify Dec 18, 2025
00df94f
@W-20593254 MCP zod 4 dependency update (#3537)
patricksullivansf Dec 18, 2025
fbcb028
Add server header
lizcross Dec 18, 2025
c1e3b1a
Merge branch 'develop' of github.com:SalesforceCommerceCloud/pwa-kit …
lizcross Dec 18, 2025
6b34fdb
@W-19758028 Consolidated duplicated bonus products in checkout and or…
sf-madhuri-uppu Dec 19, 2025
a47947d
Merge branch 'develop' into add-non-streaming-endpoint
lizcross Dec 19, 2025
972437e
Merge pull request #3529 from SalesforceCommerceCloud/add-non-streami…
lizcross Dec 19, 2025
585f7b0
Merge branch 'develop' into bendvc/W-20607771_add-fuzzy-path-matching
bendvc Dec 23, 2025
4a7178b
Remove debugging console logs
bendvc Dec 23, 2025
d70df91
Revert unrelated debugging change
bendvc Dec 23, 2025
112d1d4
Update CHANGELOG.md
bendvc Dec 23, 2025
a800235
Merge pull request #3530 from SalesforceCommerceCloud/bendvc/W-206077…
bendvc Dec 23, 2025
09703bb
@W-20452321: migrate aws-sdk from v2 to v3
o-olaosebikan Jan 6, 2026
3d80301
Update ssr-server.test.js
o-olaosebikan Jan 6, 2026
3601043
lint fix
o-olaosebikan Jan 7, 2026
f7f6874
Empty-Commit
o-olaosebikan Jan 7, 2026
8544f63
Empty-Commit
o-olaosebikan Jan 7, 2026
92fb225
fix nexus
o-olaosebikan Jan 8, 2026
3cf0d91
Update express.lambda.test.js
o-olaosebikan Jan 8, 2026
7faf699
Fix reset password (#3567)
alexvuong Jan 8, 2026
a75f34f
remove callback reference
o-olaosebikan Jan 8, 2026
c8c94cf
Merge branch 'develop' into o.olaosebikan/aws-sdk
o-olaosebikan Jan 8, 2026
dafc10e
Update metrics-sender.js
o-olaosebikan Jan 8, 2026
476ee4d
Merge branch 'o.olaosebikan/aws-sdk' of https://github.com/Salesforce…
o-olaosebikan Jan 8, 2026
1c39b41
@W-20450671 [Bug Fix] Passwordless Login landingPath, Reset Password …
hajinsuha1 Jan 9, 2026
758c27e
Merge branch 'develop' into o.olaosebikan/aws-sdk
o-olaosebikan Jan 9, 2026
e268e67
Merge pull request #3566 from SalesforceCommerceCloud/o.olaosebikan/a…
o-olaosebikan Jan 9, 2026
96e16a9
Tests for bonus product grouping on order summary bug (#3569)
sf-madhuri-uppu Jan 12, 2026
5406271
Added descriptions for composite actions.
shethj Jan 15, 2026
1798f99
@W-20874529 - Integrate PWA Order Details with SOM/OMS (#3573)
sf-deepali-bharmal Jan 15, 2026
30a241d
Add NPM token expiry verification script
shethj Jan 16, 2026
5664a40
Add emoji to slack notification
shethj Jan 16, 2026
3c81e58
Merge branch 'develop' into feature/update-publish-to-npm-auth
shethj Jan 16, 2026
a3a923b
Integrate Order History with OMS (#3581)
sf-deepali-bharmal Jan 16, 2026
c63d78f
Merge branch 'develop' into feature/update-publish-to-npm-auth
shethj Jan 16, 2026
1936bff
Add a link to PWA Kit release doc
shethj Jan 16, 2026
2ae46a9
Remove redundant env set
shethj Jan 17, 2026
e193a2c
Merge pull request #3582 from SalesforceCommerceCloud/feature/update-…
shethj Jan 17, 2026
e261f59
Commerce react sdk strengthen some types (#3589)
alexvuong Jan 21, 2026
b81884c
Add shipping support for OMS (#3588)
sf-deepali-bharmal Jan 23, 2026
3748b56
Add tests (#3610)
sf-deepali-bharmal Jan 27, 2026
5c30741
Feature: Passwordless Login and Password Reset supports use of `email…
hajinsuha1 Jan 28, 2026
d82757a
@W-20931847 - OMS multiple shipment support with pickups (#3613)
sf-deepali-bharmal Jan 29, 2026
bff4b48
@W-20975885 New launch agent location in header component (#3606)
sf-tejas-nadkarni Jan 30, 2026
6f13edb
Public client hybrid preset to bjmk_prd
shethj Jan 30, 2026
c3bb176
trigger PR CI
shethj Jan 30, 2026
9b4f68b
Trigger PR CI
shethj Jan 30, 2026
b8bc171
Merge pull request #3621 from SalesforceCommerceCloud/fix/update-hybr…
shethj Jan 30, 2026
3533930
@W-20540715 MERGE 1CC TO DEVELOP (#3552)
syadupathi-sf Feb 2, 2026
57a665f
@W-21043644 Translation for Ask Shopper Agent for launch location (#3…
sf-tejas-nadkarni Feb 3, 2026
5f9738e
Passwordless Login - Util function for passwordless callback URI (#3630)
vcua-mobify Feb 3, 2026
9a3ec60
[Cleanup] Remove unused absoluteUrl util from retail react app (#3633)
vcua-mobify Feb 4, 2026
9b5050f
@W-20448811 Shopper can manually enter OTP in login flows (#3554)
hajinsuha1 Feb 4, 2026
32ff733
@W-21094171: Fix Resend Code for OTP modal (#3624)
dannyphan2000 Feb 5, 2026
2c809bb
@W-21188588 Default to ECOM Shipping when OMS does not return shippin…
sf-deepali-bharmal Feb 5, 2026
1a3a015
port in basepath changes from https://github.com/SalesforceCommerceCl…
noahadams Feb 6, 2026
5f6b9ae
W-21190081 Add spinner during OTP verification (#3643)
syadupathi-sf Feb 6, 2026
5d47b78
Update changelogs for 3.16.0 release preparation
kevinxh Feb 6, 2026
f14c1e9
Bump versions for 3.16.0-preview.0
kevinxh Feb 6, 2026
24dcf3d
feedback, check for path segment and not just prefix matching in midd…
noahadams Feb 7, 2026
0e107a7
@W-21111863 @W-21109829 @W-21005976 @W-21109850 1CC Bug Fixes (#3638)
syadupathi-sf Feb 9, 2026
1582aaa
Merge develop for preview.1
kevinxh Feb 9, 2026
9fa94f7
correct parentheses, comment test-cases
noahadams Feb 9, 2026
5a3d81e
Bump versions for 3.16.0-preview.1
kevinxh Feb 9, 2026
4401444
Merge pull request #3649 from SalesforceCommerceCloud/prep-3.16.0-pre…
kevinxh Feb 9, 2026
50bfe72
Merge remote-tracking branch 'origin/develop' into W-20726574-update-…
noahadams Feb 9, 2026
3057903
logging to debug level
noahadams Feb 9, 2026
06c022d
Merge pull request #3644 from SalesforceCommerceCloud/W-20726574-upda…
noahadams Feb 10, 2026
17d98be
Update button alignment in OtpAuth component to be centered (#3650)
hajinsuha1 Feb 10, 2026
414cb66
Shopper Agent: Control floating button visibility and fix programmati…
sf-tejas-nadkarni Feb 10, 2026
6d80118
@W-21109829: updated file ownership for 1cc (#3645)
kumaravinashcommercecloud Feb 11, 2026
9ee3f5d
[Node 24][V3] Migrate Deprecated Node URL APIs to WHATWG Standard (@W…
adamraya Feb 11, 2026
fb333b9
1CC UX fixes (W-21240479)
kevinxh Feb 12, 2026
61b3f28
Trigger CI
kevinxh Feb 12, 2026
85a9dfc
Merge pull request #3660 from SalesforceCommerceCloud/prep-3.16.0-bugfix
kevinxh Feb 12, 2026
5e9958a
[Node 24][V3]Update `ssrFunctionNodeVersion` (@W-20777230@) (#3656)
adamraya Feb 12, 2026
82fcae0
Bump versions for 3.16.0-preview.2
kevinxh Feb 12, 2026
37cee6d
Trigger CI
kevinxh Feb 12, 2026
f86c2c1
@W-21252790: 1cc in Developer Preview mode (#3662)
kumaravinashcommercecloud Feb 12, 2026
70ef0ff
Merge pull request #3661 from SalesforceCommerceCloud/prep-3.16.0-pre…
kevinxh Feb 12, 2026
167ede5
Bump versions for 3.16.0 stable release
kevinxh Feb 12, 2026
9667b10
Clean up changelogs for stable release
kevinxh Feb 12, 2026
c6730fc
Update 1CC config comment with Developer Preview note and release link
kevinxh Feb 12, 2026
6c5fadd
Merge pull request #3664 from SalesforceCommerceCloud/prep-3.16.0-stable
kevinxh Feb 13, 2026
a0b508b
Merge release-3.16.x back to develop
kevinxh Feb 13, 2026
bffe5c9
Bump dev versions to 3.17.0-dev for next release cycle
kevinxh Feb 13, 2026
10c07ad
Regenerate package-lock files from develop baseline
kevinxh Feb 13, 2026
004ba7f
Fix package versions and changelog headers after failed bump
kevinxh Feb 13, 2026
6e2b841
Merge pull request #3665 from SalesforceCommerceCloud/merge-release-3…
kevinxh Feb 13, 2026
8151418
@W-20726537 Data access layer middleware (#3648)
raiyaj Feb 13, 2026
f7847c5
@W-20615533 Search popup – Ask Shopping Agent banner and Embedded Mes…
sf-tejas-nadkarni Feb 18, 2026
add85e3
@W-19143871 Marketing Consent Footer Email Capture component with Sho…
mitesh-patel-crm Feb 24, 2026
2c5d8ab
@W-21362507: Fix for custom billing address as registered shoppers (#…
dannyphan2000 Feb 26, 2026
c53cce9
[Node 24][V3] Update Dependencies (@W-21177051@) (#3663)
adamraya Feb 27, 2026
fb3bf57
@W-20615600 feat: Search popup Ask Shopping Agent banner and mobile l…
sf-tejas-nadkarni Feb 27, 2026
927689e
@W-21294742: No error toast for non-applicable shipping method (#3673)
dannyphan2000 Mar 2, 2026
1c27be3
@W-21416242 translations fro 1CC (#3703)
syadupathi-sf Mar 4, 2026
4e372ae
W-21432256: Salesforce Payments on PWA Feature (#3725)
amittapalli Mar 5, 2026
4ff3c4f
@W-21451244 Mobile launch location support and header icon fixes (#3724)
sf-tejas-nadkarni Mar 5, 2026
17f0e18
Merge pull request #3727 from SalesforceCommerceCloud/feat/pd-support
mjuraschik Mar 6, 2026
a9c2d49
resolve merge conflicts
kumaravinashcommercecloud Mar 6, 2026
5cf95c6
updated changelog based upon feedback
kumaravinashcommercecloud Mar 4, 2026
64b0c1b
W-21432256: Few follow up fixes to address Basket V2-V1 gaps and cont…
amittapalli Mar 6, 2026
f32493d
updated create template
kumaravinashcommercecloud Mar 6, 2026
1f0fa40
updated create template
kumaravinashcommercecloud Mar 6, 2026
477d57b
updated changelog based upon feedback
kumaravinashcommercecloud Mar 6, 2026
535f783
Merge branch 'develop' into avinash.W-21430145
kumaravinashcommercecloud Mar 6, 2026
7221d94
Merge pull request #3708 from SalesforceCommerceCloud/avinash.W-21430145
kumaravinashcommercecloud Mar 6, 2026
2855102
[release] Avoid accidentally releasing the mcp package (#3729)
vmarta Mar 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
---
description: QA Tests for Template Retail React App Test Generation Rules
globs: ["packages/template-retail-react-app/app/components/**/*-underTest.test.{js,jsx}"]
alwaysApply: false
---
# QA Tests for Template Retail React App Test Patterns

## Purpose
This file contains test cases to verify that the `unit-tests-template-retail-react-app.mdc` rule effectively guides the creation of consistent and robust React component tests.

## Test Cases

### Test 1: DrawerMenu Component Test Generation
**Workflow:** Generate → Analyze → Cleanup (NO test execution)

**Steps:**
1. **Generate:** Create new test file `drawer-menu-underTest.test.js` (colocated with existing drawer-menu component at `packages/template-retail-react-app/app/components/drawer-menu/`)
2. **Apply Rules:** Use `@/testing` (located at `.cursor/rules/testing/unit-tests-generic.mdc` and `.cursor/rules/testing/unit-tests-template-retail-react-app.mdc`)
3. **Prompt:** "Write unit test for drawer-menu component"
4. **Analyze:** Perform static code analysis against verification patterns (see below)
5. **Cleanup:** Delete the generated test file after validation

**Important:** DO NOT run the test after creation - skip test execution entirely

**Verify that the newly generated test file follows these patterns:**
1. Test Setup
- Uses `renderWithProviders` from `@salesforce/retail-react-app/app/utils/test-utils`
- Gets user events from return value: `const {user} = renderWithProviders(...)`
- Includes `beforeEach(() => jest.clearAllMocks())`

2. Import Structure
- Does NOT import `userEvent` directly
- Uses existing mock data from `@salesforce/retail-react-app/app/mocks/`
- Imports `screen` from `@testing-library/react`

3. Test Organization
- Uses `describe` block with component name
- Individual `test` or `it` blocks for different scenarios
- Async/await patterns for user interactions

4. API Mocking
- Uses `prependHandlersToServer` or `msw` for API mocking when needed

**Failure Indicators:**
- Direct import of `userEvent` from `@testing-library/user-event`
- Using custom render function instead of `renderWithProviders`
- Creating new mock data instead of using existing mocks
- Missing Commerce SDK context providers
- Not using async/await for user interactions

**Expected Output:**
Provide a clear, structured report based on **static code analysis only** (no test execution):
- ✅ **PASS** or ❌ **FAIL** for each verification point
- Specific line numbers and code snippets for any failures
- Summary: `X/Y patterns followed correctly`
- Overall result: **RULES EFFECTIVE** or **RULES NEED IMPROVEMENT**

**Cleanup:**
- Delete the generated test file `drawer-menu-underTest.test.js` after QA validation is complete
66 changes: 66 additions & 0 deletions .cursor/rules/cursor-rule.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
description: How to add or edit Cursor rules in our project
globs:
alwaysApply: false
---
# Cursor Rules Location

How to add new cursor rules to the project

1. Always place rule files in PROJECT_ROOT/.cursor/rules/:
```
.cursor/rules/
├── your-rule-name.mdc
├── another-rule.mdc
└── ...
```

2. Follow the naming convention:
- Use kebab-case for filenames
- Always use .mdc extension
- Make names descriptive of the rule's purpose

3. Directory structure:
```
PROJECT_ROOT/
├── .cursor/
│ └── rules/
│ ├── your-rule-name.mdc
│ └── ...
└── ...
```

4. Never place rule files:
- In the project root
- In subdirectories outside .cursor/rules
- In any other location

5. Cursor rules have the following structure:

````
---
description: Short description of the rule's purpose
globs: optional/path/pattern/**/*
alwaysApply: false
---
# Rule Title

Main content explaining the rule with markdown formatting.

1. Step-by-step instructions
2. Code examples
3. Guidelines

Example:
```typescript
// Good example
function goodExample() {
// Implementation following guidelines
}

// Bad example
function badExample() {
// Implementation not following guidelines
}
```
````
57 changes: 57 additions & 0 deletions .cursor/rules/testing/unit-tests-generic.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
---
description: USE WHEN writing unit tests for components in template packages
globs: ["packages/template-*/*/components/**/*.test.{js,jsx,ts,tsx}"]
alwaysApply: false
---
USE WHEN writing unit tests for components in template packages

# 🧪 Generic Component Test Rules

## Structure & Best Practices
- Use `describe` blocks to group tests, `test` for individual cases
- Use `beforeEach` for setup, clear mocks after each test
- **Arrange** → **Act** → **Assert** pattern
- One behavior per test, clear descriptive names

## Queries & Assertions
- Prefer `getByRole`, `getByLabelText`, `getByTestId`
- Use `expect().toBeInTheDocument()`, `.toHaveBeenCalledTimes()`, etc.
- For async: `await waitFor(() => { ... })`

## Mocking
- `jest.fn()` for handlers, `jest.mock()` for modules
- Clear mocks/storage after each test

```js
describe('MyComponent', () => {
beforeEach(() => jest.clearAllMocks())

test('renders and handles interaction', async () => {
const mockHandler = jest.fn()
render(<MyComponent onClick={mockHandler} />)

await userEvent.click(screen.getByRole('button'))
expect(mockHandler).toHaveBeenCalledTimes(1)
})
})
```

## Running Tests
After creating unit tests, **ALWAYS run the tests** to verify they pass and provide feedback on test results.

### Command Format:
```bash
cd packages/<package-name> && npm run test -- '<relative-path-to-test-file> --coverage=false'
```

### Examples:
```bash
# Run specific test file from packages directory
cd packages/template-retail-react-app && npm run test -- 'app/components/drawer-menu/drawer-menu.test.js --coverage=false'
```

### After Running Tests:
- Report if tests **pass** or **fail**
- If tests fail, provide the error messages and fix any issues
- Confirm test coverage is appropriate for the component's core functionality
- Suggest any additional tests if critical functionality is missing
35 changes: 35 additions & 0 deletions .cursor/rules/testing/unit-tests-template-retail-react-app.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
description: USE WHEN writing unit tests in template-retail-react-app components
globs: ["packages/template-retail-react-app/app/components/**/*.test.{js,jsx,ts,tsx}"]
alwaysApply: false
---
# 🛍️ Retail React App Test Rules

## Package-Specific Requirements
- **File naming**: `index.test.js` (colocated with component)
- **Always use `renderWithProviders`** (provides Commerce SDK context)
- **Get user events from return value**: `const {user} = renderWithProviders(...)`
- **Do NOT import `userEvent` directly**

## API Mocking
- Use `prependHandlersToServer` or `msw` for API mocking

## Mock Data Usage

- **Mandatory**: Always use existing mock data from `@salesforce/retail-react-app/app/mocks/` if it is available. This ensures consistency across tests and reduces redundancy. Creating new mock data should only be considered if the required data is not already present in the mocks directory.

```js
import {screen} from '@testing-library/react'
import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
import MyComponent from '.'

describe('MyComponent', () => {
beforeEach(() => jest.clearAllMocks())

test('handles user interaction', async () => {
const {user} = renderWithProviders(<MyComponent />)
await user.click(screen.getByText('Click Me'))
expect(screen.getByText('Expected')).toBeInTheDocument()
})
})
```
74 changes: 69 additions & 5 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,9 +1,73 @@
# https://help.github.com/en/enterprise/2.17/user/articles/about-code-owners

# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence,
# @global-owner1 and @global-owner2 will be requested for
# review when someone opens a pull request.
# Global directories
.cursor/ @SalesforceCommerceCloud/mobifyers
.github/ @SalesforceCommerceCloud/mobifyers
e2e/ @SalesforceCommerceCloud/mobifyers
scripts/ @SalesforceCommerceCloud/mobifyers

# Package-specific ownership
packages/commerce-sdk-react/ @SalesforceCommerceCloud/mobifyers
packages/internal-lib-build/ @SalesforceCommerceCloud/mobifyers
packages/pwa-kit-create-app/ @SalesforceCommerceCloud/mobifyers
packages/pwa-kit-dev/ @SalesforceCommerceCloud/mobifyers
packages/pwa-kit-mcp/ @SalesforceCommerceCloud/mobifyers
packages/pwa-kit-react-sdk/ @SalesforceCommerceCloud/mobifyers
packages/pwa-kit-runtime/ @SalesforceCommerceCloud/mobifyers
packages/template-express-minimal/ @SalesforceCommerceCloud/mobifyers
packages/template-mrt-reference-app/ @SalesforceCommerceCloud/mobifyers
packages/template-retail-react-app/ @SalesforceCommerceCloud/mobifyers
packages/template-typescript-minimal/ @SalesforceCommerceCloud/mobifyers
packages/test-commerce-sdk-react/ @SalesforceCommerceCloud/mobifyers

# Root configuration and documentation files
/README.md @SalesforceCommerceCloud/mobifyers
/CODE_OF_CONDUCT.md @SalesforceCommerceCloud/mobifyers
/CONTRIBUTING.md @SalesforceCommerceCloud/mobifyers
/SECURITY.md @SalesforceCommerceCloud/mobifyers
/STATEMENTS.md @SalesforceCommerceCloud/mobifyers
/TERMS_OF_USE.md @SalesforceCommerceCloud/mobifyers
/LICENSE @SalesforceCommerceCloud/mobifyers
/.eslintrc.js @SalesforceCommerceCloud/mobifyers
/.gitattributes @SalesforceCommerceCloud/mobifyers
/.gitignore @SalesforceCommerceCloud/mobifyers
/.prettierignore @SalesforceCommerceCloud/mobifyers
/.prettierrc.yaml @SalesforceCommerceCloud/mobifyers
/lerna.json @SalesforceCommerceCloud/mobifyers
/package.json @SalesforceCommerceCloud/mobifyers
/package-lock.json @SalesforceCommerceCloud/mobifyers
/playwright.config.js @SalesforceCommerceCloud/mobifyers
/.git2gus/ @SalesforceCommerceCloud/mobifyers

# Specific feature file ownership (overrides package-level rules above)

# BOPIS (Buy Online Pick up In Store) feature files - PR #2646
packages/template-retail-react-app/app/components/store-display/ @SalesforceCommerceCloud/cc-spark
packages/template-retail-react-app/app/hooks/use-selected-store.js @SalesforceCommerceCloud/cc-spark
packages/template-retail-react-app/app/hooks/use-pickup-shipment.js @SalesforceCommerceCloud/cc-spark
packages/template-retail-react-app/app/hooks/use-pickup-shipment.test.js @SalesforceCommerceCloud/cc-spark
e2e/tests/desktop/bopis.spec.js @SalesforceCommerceCloud/cc-spark

# Bonus Products feature files - PR #2704
packages/template-retail-react-app/app/components/product-item/bonus-product-quantity.jsx @SalesforceCommerceCloud/cc-sharks
packages/template-retail-react-app/app/components/product-item/bonus-product-quantity.test.jsx @SalesforceCommerceCloud/cc-sharks
packages/template-retail-react-app/app/components/product-item/product-quantity-picker.jsx @SalesforceCommerceCloud/cc-sharks
packages/template-retail-react-app/app/components/product-item/product-quantity-picker.test.jsx @SalesforceCommerceCloud/cc-sharks
packages/template-retail-react-app/app/pages/cart/partials/bonus-products-title.jsx @SalesforceCommerceCloud/cc-sharks
packages/template-retail-react-app/app/pages/cart/partials/bonus-products-title.test.js @SalesforceCommerceCloud/cc-sharks

# Standard Products feature files - PR #2697
packages/template-retail-react-app/app/mocks/standard-product.js @SalesforceCommerceCloud/cc-sharks
packages/template-retail-react-app/app/utils/add-to-cart-utils.js @SalesforceCommerceCloud/cc-sharks

# One-Click Checkout feature files
packages/template-retail-react-app/app/pages/checkout-one-click/ @SalesforceCommerceCloud/stretch-armstrong
packages/template-retail-react-app/app/components/otp-auth/ @SalesforceCommerceCloud/stretch-armstrong
packages/template-retail-react-app/app/hooks/use-checkout-auto-select.js @SalesforceCommerceCloud/stretch-armstrong
packages/template-retail-react-app/app/hooks/use-checkout-auto-select.test.js @SalesforceCommerceCloud/stretch-armstrong
packages/template-retail-react-app/app/hooks/use-countdown.js @SalesforceCommerceCloud/stretch-armstrong
packages/template-retail-react-app/app/hooks/use-countdown.test.js @SalesforceCommerceCloud/stretch-armstrong
packages/template-retail-react-app/app/hooks/use-otp-inputs.js @SalesforceCommerceCloud/stretch-armstrong
packages/template-retail-react-app/app/hooks/use-otp-inputs.test.js @SalesforceCommerceCloud/stretch-armstrong

* @SalesforceCommerceCloud/mobifyers
#ECCN:Open Source
1 change: 1 addition & 0 deletions .github/actions/bundle_size_test/action.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: bundlesize
description: Check bundle size against maximum file size limits
runs:
using: composite
steps:
Expand Down
1 change: 1 addition & 0 deletions .github/actions/check_clean/action.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: check_clean
description: Check if repository has uncommitted changes
runs:
using: composite
steps:
Expand Down
1 change: 1 addition & 0 deletions .github/actions/check_if_latest_release/action.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: check_if_latest_release
description: Check if the current release is the latest release
inputs:
token:
description: "Github API token"
Expand Down
7 changes: 6 additions & 1 deletion .github/actions/count_deps/action.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
name: count_deps
description: Count and validate project dependencies
inputs:
project_dir:
description: 'Path to the project directory'
required: true
runs:
using: composite
steps:
- name: Count Generated Project Dependencies
# TODO: Can TOTAL_PACKAGES be exported in a cleaner way?
run: |-
MAX_PACKAGES="2260"
total=$(./scripts/count-dependencies.js generated-${{ matrix.template }})
total=$(./scripts/count-dependencies.js "${{ inputs.project_dir }}")
echo "TOTAL_PACKAGES=${total}" >> $GITHUB_ENV

if [ "$total" -gt "$MAX_PACKAGES" ]; then
Expand Down
1 change: 1 addition & 0 deletions .github/actions/create_mrt/action.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: create_mrt
description: Create MRT credentials file
inputs:
mobify_user:
description: "Mobify user email"
Expand Down
1 change: 1 addition & 0 deletions .github/actions/datadog/action.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: datadog
description: Send metrics to Datadog
inputs:
datadog_api_key:
description: "Datadog API key"
Expand Down
36 changes: 36 additions & 0 deletions .github/actions/e2e_acquire_mrt_target/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: e2e_acquire_mrt_target
description: Acquire MRT Target from pool of available targets in the MRT staging org.
inputs:
BRANCH:
description: 'GitHub branch name from workflow invoking this action'
required: false
RUN_ID:
description: 'GitHub workflow run ID from workflow invoking this action'
required: true
PR_NUMBER:
description: 'GitHub PR number from workflow invoking this action'
required: false
MAX_RETRIES:
description: 'Maximum retry attempts to acquire MRT target'
required: false
default: '3'
RETRY_DELAY:
description: 'Delay between retries in milliseconds'
required: false
default: '10000'

runs:
using: composite
steps:
- name: Acquire MRT Target
id: acquire_mrt_target
shell: bash
run: |-
set -e
cmd="node e2e/scripts/mrt-target-manager.js acquire --run-id ${{inputs.RUN_ID}} --max-retries ${{inputs.MAX_RETRIES}} --retry-delay ${{inputs.RETRY_DELAY}}"
if [ -n "${{inputs.PR_NUMBER}}" ]; then
cmd="$cmd --pr-number ${{inputs.PR_NUMBER}}"
elif [ -n "${{inputs.BRANCH}}" ]; then
cmd="$cmd --branch ${{inputs.BRANCH}}"
fi
eval $cmd
Loading
Loading