Project-7525: [DO NOT MERGE] Feature branch for the new returns flow#2667
Project-7525: [DO NOT MERGE] Feature branch for the new returns flow#2667bc-vivekaggarwal wants to merge 19 commits into
Conversation
…2653) * feat(returns): ORDERS-7704 condition for new returns on orders page * feat(returns): ORDERS-7704 condition for new returns on orders page - confirmed
feat(orders): ORDERS-7706 add new return page layout
feat(orders): ORDERS-7706 add new return page layout
…context (#2665) * feat(returns): ORDERS-7708 new-return page — render items from order context, stepper qty controls, responsive layout, gate behind returns_v2_enabled flag * feat(returns): ORDERS-7708 new-return page - review feedback
There was a problem hiding this comment.
Pull request overview
This PR parks initial Cornerstone theme changes for PROJECT-7525’s “new returns flow”, adding new templates/assets for a redesigned return-request experience and gating existing “Return” affordances on a new settings.returns_v2_enabled flag (with fallback to settings.returns_enabled).
Changes:
- Add new return-related templates: a guest return portal page and a new account “add return” page layout.
- Add new styling and a new page manager (
AddReturnNew) plus bundle wiring for the new return-request UI. - Gate “Return” entry points in order details and orders list on returns settings; update
CHANGELOG.md.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| templates/pages/guest-return-portal.html | New guest-facing return portal page scaffold. |
| templates/pages/account/orders/details.html | Gate “Return” button using returns_v2_enabled OR returns_enabled. |
| templates/pages/account/add-return-new.html | New account return-request page markup for the redesigned flow. |
| templates/components/account/orders-list.html | Gate “Return Items” link using returns_v2_enabled OR returns_enabled. |
| CHANGELOG.md | Add draft entries for the new return pages / gating changes. |
| assets/scss/components/stencil/addReturn/_addReturn.scss | Add styling for the new return-request page (.newReturn). |
| assets/js/theme/add-return-new.js | New page manager that renders the new return UI (currently with placeholder data). |
| assets/js/app.js | Wire account_new_return page type to load the new return page manager. |
Comments suppressed due to low confidence (3)
assets/js/theme/add-return-new.js:96
- Date formatting is hardcoded to the
en-AUlocale. This will display incorrect date formats for stores with different locales; use store locale from Stencil context (e.g.this.context.storeLocale) or omit the locale to allow the browser/store locale to drive formatting.
// TODO ORDERS-7715: invoke createReturn Storefront GQL mutation.
});
}
}
assets/js/theme/add-return-new.js:142
- Currency formatting is hardcoded to
en-AUand always usesitem.totalIncTaxeven thoughorder.isTaxInclusiveis available. This will display incorrect amounts/formatting for non-AU stores and for tax-exclusive display settings. Use a locale from context and choosetotalIncTaxvstotalExTaxbased onorder.isTaxInclusive(or use server-provided formatted totals if available).
assets/js/theme/add-return-new.js:239 console.log('Submitting return', ...)should not ship in theme code. Either remove it or gate it behind an explicit debug flag, and replace with the real API call / proper error handling when wiring this up.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| account_order: getAccount, | ||
| account_addressbook: getAccount, | ||
| shippingaddressform: getAccount, | ||
| account_new_return: getAccount, | ||
| account_new_return: getAddReturnNew, | ||
| 'add-wishlist': () => import('./theme/wishlist'), |
| {{> components/common/breadcrumbs breadcrumbs=breadcrumbs}} | ||
|
|
||
| <h1> Guest Return Portal</h1> | ||
|
|
| </div> | ||
| <div class="newReturn-headerActions"> | ||
| <a href="{{../urls.account.orders.all}}" class="newReturn-btnBack">{{lang 'account.orders.return.back_button'}}</a> | ||
| <a href="/return-policy" class="newReturn-btnPolicy">View return policy →</a> | ||
| </div> | ||
| </div> | ||
| {{#if date}}<p class="newReturn-orderDate">{{date}}</p>{{/if}} |
| this.bindSubmit($form); | ||
| } | ||
|
|
||
| bindOrderLineItemEvents() { | ||
| document.querySelectorAll('.newReturn-stepperBtn').forEach(button => { | ||
| button.addEventListener('click', () => { | ||
| // Derive itemId from the parent row — buttons do not carry data-item-id, | ||
| // so the [data-item-id] selector stays scoped to the row container only. | ||
| const row = button.closest('.newReturn-orderLineItem'); | ||
| const itemId = row?.dataset?.itemId; | ||
| if (!itemId) return; | ||
| const action = button.getAttribute('data-action'); |
| - Fix duplicate `id="default_instrument"` on Update Payment Method page [#2661](https://github.com/bigcommerce/cornerstone/pull/2661) | ||
| - Respect `available_to_sell` on PDP so the Sold Out alert is hidden and the Add to Cart button stays enabled for backorderable products, and is disabled when quantity exceeds `available_to_sell` [#2659](https://github.com/bigcommerce/cornerstone/pull/2659) | ||
| - Updated accessibility features [2656](https://github.com/bigcommerce/cornerstone/pull/2656) | ||
| - Adds new guest-return-portal page. [2645](https://github.com/bigcommerce/cornerstone/pull/2645) |
|
cursor review |
feat(orders): ORDERS-7731 add template for create return page
feat(returns): ORDERS-7717 - add new returns list ui
feat(orders): ORDERS-7718 add return details page layout
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
There are 3 total unresolved issues (including 2 from previous reviews).
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 6ebc73c. Configure here.
* feat(returns): ORDERS-7764 render create return page with stencil context * feat(returns): ORDERS-7764 render create return page with stencil context * feat(returns): ORDERS-7764 render create return page with stencil context * feat(returns): ORDERS-7764 render create return page with stencil context * feat(returns): ORDERS-7764 fix code review comments * feat(returns): ORDERS-7764 fix code review comments * feat(returns): ORDERS-7764 fix design feedback * feat(returns): ORDERS-7764 fix design feedback

What?
This PR is for a feature branch to park all reviewed changes related to the new returns flow PROJECT-7525
Requirements
Tickets / Documentation
PROJECT-7525
Screenshots (if appropriate)
Not applicable: They are part of individual PRs
Testing
TBD
Note
Medium Risk
Touches customer order/return flows and introduces incomplete paths (no GQL submit, return-details not registered, placeholder detail links); behavior depends on new
returns_v2_enabledsettings.Overview
This feature branch lands the returns v2 storefront UI behind
settings.returns_v2_enabled, withsettings.returns_enabledas a fallback for legacy return entry points on order details and the orders list.New surfaces: a
create_returnpage (templates/pages/create-return.html) with line-item qty/resolution/reason controls, client-side submit validation, andbuildReturnInput()prepared for a future Storefront GQLcreateReturncall (submit is still a no-op). A returns list v2 partial shows RMA, OPEN/IN_PROGRESS/CLOSED badges, and summary fields when v2 is on. Return details and guest return portal templates exist (details JS uses mock data; neither is fully routed inapp.jsyet).create_returnis wired inapp.js; legacyaccount_new_returnstill uses the account bundle.Supporting changes: SCSS for create-return and return-details, account list status badge styling, expanded
lang/en.jsoncopy, and small a11y fixes on the legacy add-return table.Reviewed by Cursor Bugbot for commit a12175b. Bugbot is set up for automated code reviews on this repo. Configure here.