Skip to content

W-21241548: Merge from develop - #3678

Merged
rasbhat merged 168 commits into
t/team404/sfp-on-pwafrom
rvishwanathbhat/merge-from-develop
Feb 20, 2026
Merged

rasbhat merged 168 commits into
t/team404/sfp-on-pwafrom
rvishwanathbhat/merge-from-develop

Conversation

@rasbhat

@rasbhat rasbhat commented Feb 19, 2026 •

Copy link
Copy Markdown
Contributor

Merging changes from develop.
MRT: https://sfpaymentstesting01-production.sfdc-3vx9f4-commerceecom.exp-delivery-staging.com/
List of conflicted files resolved:

packages/commerce-sdk-react/package.json
packages/commerce-sdk-react/src/hooks/types.ts
packages/commerce-sdk-react/src/hooks/helpers.ts
packages/commerce-sdk-react/src/hooks/ShopperConfigurations/cache.ts
packages/commerce-sdk-react/src/hooks/ShopperConfigurations/index.test.ts
packages/commerce-sdk-react/src/hooks/ShopperCustomers/index.test.ts
packages/commerce-sdk-react/src/hooks/ShopperExperience/index.test.ts
packages/commerce-sdk-react/src/hooks/ShopperLogin/index.test.ts
packages/template-retail-react-app/app/components/bonus-product-view-modal/index.test.js
packages/template-retail-react-app/app/hooks/use-add-to-cart-modal.test.js
packages/template-retail-react-app/app/pages/cart/index.jsx
packages/template-retail-react-app/app/pages/checkout/index.jsx
packages/template-retail-react-app/app/pages/checkout/util/checkout-context.js
packages/template-retail-react-app/app/ssr.js
packages/template-retail-react-app/config/default.js
packages/template-retail-react-app/app/static/translations/compiled/en-US.json
packages/template-retail-react-app/app/static/translations/compiled/en-GB.json
packages/template-retail-react-app/app/static/translations/compiled/en-XA.json
packages/template-retail-react-app/translations/en-US.json
packages/template-retail-react-app/translations/en-GB.json

Description

Types of Changes

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Documentation update
  • Breaking change (could cause existing functionality to not work as expected)
  • Other changes (non-breaking changes that does not fit any of the above)

Breaking changes include:

  • Removing a public function or component or prop
  • Adding a required argument to a function
  • Changing the data type of a function parameter or return value
  • Adding a new peer dependency to package.json

Changes

  • (change1)

How to Test-Drive This PR

  • (step1)

Checklists

General

  • Changes are covered by test cases
  • CHANGELOG.md updated with a short description of changes (not required for documentation updates)

Accessibility Compliance

You must check off all items in one of the follow two lists:

  • There are no changes to UI

or...

Localization

  • Changes include a UI text update in the Retail React App (which requires translation)

joeluong-sfcc and others added 30 commits October 16, 2025 16:48
…clarity (#3410)

* Site ID prompt has been updated for correct clarity

* update regex

* update change log

* update change log

* revert prompt text

* Update CHANGELOG.md

Signed-off-by: sf-henry-semaganda <henry.semaganda@salesforce.com>

---------

Signed-off-by: sf-henry-semaganda <henry.semaganda@salesforce.com>
…oxy-extensibility

Adds support for SLAS proxy req/res callbacks
…y-update

Switch a11y tests to private storefront and single set of snapshots
…evelop (#3422)

* @W-19677915 Use einstein suggested phrases in search (#3390)

* skip changelog

* skip changelog

* skip changelog

* Remove unnecessary translation files

- Remove en-GB.json, en-US.json, en-XA.json from compiled translations
- Remove en-GB.json, en-US.json from source translations
- These are generated files that are not needed for Einstein suggestions functionality

* Generate translation files for Einstein suggestions

- Add compiled translation files (en-GB.json, en-US.json, en-XA.json)
- Add source translation files (en-GB.json, en-US.json)
- These files include translations for new Einstein suggestions features:
  - Popular Searches
  - Recent Searches
- Generated using npm run build-translations

* increase bundle size

* Add changelog entry for Einstein suggestions feature

* Updated changelog
It failed when committing a temporary commit because there was no git user.name and user.email set yet.
…3418)

* @W-18957985- Product Search Integration & Rule-Based Detection (#3396)

* 1. use search endpoint

* 2 add rule based detection

* 3. update discovery logic

* add tests, update bundle size limit, update changelog

* @W-19980361 Rule based bonus products- Work Item 2- update display logic (#3408)

* 1. use search endpoint

* 2 add rule based detection

* 3. update discovery logic

* cleanup. remove unused code

* add tests, update bundle size limit, update changelog

* fix header counts

* fix flasing, re-rendering

* pr comments + lint

* @W-19980361 fix 2 bugs- selection count & flashing due to re-renders (#3421)

* fix header counts

* fix flasing, re-rendering

* pr comments + lint

* add param &refine=pmpt=bonus for promotion type

* pr comments

* use commerce sdk

* add const- limit=50  |  replace harded Search Param values

* remove function breakdown change

* update changelog

* refactor. re-use

* fix: prevent promotion message flashing when changing product variant… (#3428)

* fix tests

* Rule-Based Bonus Product Promotions Enhancement

This PR enhances the existing rule-based bonus product promotions feature by adding proper variant eligibility checking. Previously, rule-based promotions could not accurately determine which specific product variants qualified for a promotion. This enhancement introduces a qualifying products lookup system that uses the product search API to fetch and validate eligible variants, ensuring that only products that truly qualify can trigger bonus product selection UI and functionality.

Key Changes:

1. New Hook: useRuleBasedQualifyingProducts
   - Added to app/hooks/use-rule-based-bonus-products.js
   - Fetches qualifying products for rule-based promotions using productSearch API
   - Uses refinement parameters: pmid=${promotionId} and pmpt=qualifying
   - Returns a Set of qualifying product IDs for efficient lookup
   - Supports variant eligibility checking by examining both variant and master product IDs

2. Enhanced Promotion Eligibility Logic
   - Updated getPromotionIdsForProduct() in app/utils/bonus-product/common.js
   - Distinguishes between list-based and rule-based promotions
   - Added fallback logic to check master product IDs when variants don't directly qualify
   - Filters promotion IDs to only return those the product actually qualifies for

3. Qualifying Products Map Integration
   - Added ruleBasedQualifyingProductsMap parameter throughout the bonus product utility chain
   - Updated useBasketProductsWithPromotions() hook to fetch and return qualifying products map
   - Propagated the map through all relevant functions and components

4. Updated Function Signatures
   - isAutomaticPromotion()
   - shouldShowBonusProductSelection()
   - getBonusProductsForSpecificCartItem()
   - getBonusProductsInCartForProduct()
   - getAvailableBonusItemsForProduct()
   - getRemainingAvailableBonusProductsForProduct()

5. Component Updates
   - Cart Page: Destructures and passes ruleBasedQualifyingProductsMap
   - Add to Cart Modal: Uses qualifying products map for eligibility checks
   - Cart Product List: Accepts and forwards ruleBasedQualifyingProductsMap prop

6. Comprehensive Test Updates
   - Updated all test files to distinguish list-based vs rule-based promotions
   - Added new test cases for rule-based promotion eligibility scenarios
   - Enhanced test coverage across all bonus product utility test files

Backward Compatibility:
- All changes are backward compatible with existing list-based promotions
- Default parameter values ensure functions work without the new map
- Existing tests updated to explicitly mark promotions as list-based

* fix: prevent promotion message flashing when changing product variant (#3431)

* fix: prevent promotion flash by keeping previous data during variant changes

- Add keepPreviousData option parameter to useProductViewModal hook
- Pass keepPreviousData: true in BonusProductViewModal to maintain UI stability
- Prevents promotion message from clearing while fetching new variant data

* chore: trigger CI

* remove those stable references

* revert last changes

* bundle size limit update

* @W-20037720: Not allow duplicate items to appear in the cart (#3433)

* Fixed duplicating bonus products in the UI

* Fixed issue with list based not rendering properly

* Update cart-product-list-with-grouped-bonus-products.jsx

Signed-off-by: Daniel Diaz <38542490+ddiazccrz@users.noreply.github.com>

* Fixed lint errors

---------

Signed-off-by: Daniel Diaz <38542490+ddiazccrz@users.noreply.github.com>

---------

Signed-off-by: Daniel Diaz <38542490+ddiazccrz@users.noreply.github.com>
Co-authored-by: sf-xingquan-jin <xingquan.jin@salesforce.com>
Co-authored-by: cboscenco <cboscenco@salesforce.com>
Co-authored-by: Daniel Diaz <38542490+ddiazccrz@users.noreply.github.com>
* Remove transfer-encoding if chunked

* Changelog
* Fix chunked encoding option name

* Changelog
kevinxh and others added 10 commits February 12, 2026 16:05
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The merge conflict resolution used --theirs (release branch) for
package-lock files, which lost develop-only changes like Node 24
engine support from #3652. Restore lock files from develop and
re-run npm install to pick up version bumps.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The previous bump-version re-run corrupted independent package
versions. Re-run independent bumps and clean up duplicate changelog
headers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
….16.x-to-develop

Merge release-3.16.x back to develop, bump to 3.17.0-dev
…saging (#3658)

* feat: control floating button visibility and fix launch when hidden
Co-authored-by: Cursor <cursoragent@cursor.com>
@cc-prodsec

cc-prodsec commented Feb 19, 2026 •

Copy link
Copy Markdown
Collaborator

⛔ Snyk checks have failed. 7 issues have been found so far.

Status Scanner Critical High Medium Low Total (7)
⛔ Open Source Security 0 7 0 0 7 issues
✅ Licenses 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@amittapalli

Copy link
Copy Markdown
Contributor

@rasbhat, I am trying to see if we can gradually reduce the number of checks that are failing.
--We can fix the bundle size one (think there is a value to upgrade and sometimes our code changes require that we do
--did you run the lint check on the merge branch? Some checks may be because of that?
--maybe the package.json lock files are not in sync? If they didn't have merge conflicts (since they usually tend to), then npm ci command passes. Normally for develop we run npm install but CI/CD runs npm ci (based on package.json lock files)

Lets try some of these after we confirm that things are still working on MRT

@rasbhat

rasbhat commented Feb 20, 2026

Copy link
Copy Markdown
Contributor Author

@rasbhat, I am trying to see if we can gradually reduce the number of checks that are failing. --We can fix the bundle size one (think there is a value to upgrade and sometimes our code changes require that we do --did you run the lint check on the merge branch? Some checks may be because of that? --maybe the package.json lock files are not in sync? If they didn't have merge conflicts (since they usually tend to), then npm ci command passes. Normally for develop we run npm install but CI/CD runs npm ci (based on package.json lock files)

Lets try some of these after we confirm that things are still working on MRT

Deleted a couple of duplicates and pushed a couple of changes onto the branch. I've run lint. Hopefully that would pass a few checks.

@jeffraab-sfdc jeffraab-sfdc left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is to get the feature branch up to date, so if things are working in general I'm fine with merging this to move forward. Any failing checks etc will need to be addressed before the feature branch merge anyway. If it's less disruptive to do these tasks in this PR that's fine too.

@amittapalli

Copy link
Copy Markdown
Contributor

Yes, I agree. We are not planning on fixing all of these right now. Just a note so if there is any low hanging stuff we can, else we make note and do later. But so far we only tested credit card with this merged branch. We can quickly test Express and/or another gateway and if all good merge

@rasbhat
rasbhat merged commit 4298b55 into t/team404/sfp-on-pwa Feb 20, 2026
15 of 43 checks passed
@rasbhat
rasbhat deleted the rvishwanathbhat/merge-from-develop branch February 20, 2026 21:46
rasbhat added a commit that referenced this pull request Mar 5, 2026
…/merge-from-develop

W-21241548: Merge from develop
rasbhat added a commit that referenced this pull request Mar 5, 2026
…/merge-from-develop

W-21241548: Merge from develop
rasbhat added a commit that referenced this pull request Mar 5, 2026
…/merge-from-develop

W-21241548: Merge from develop
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.