Skip to content

VCST-6327: Returns UI for the new Vue Admin Shell - #30

Merged
OlegoO merged 14 commits into
devfrom
feat/VCST-6327-admin-shell
Oct 27, 2026
Merged

OlegoO merged 14 commits into
devfrom
feat/VCST-6327-admin-shell

Conversation

@Woland2k

@Woland2k Woland2k commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Description

Adds the Returns module's screens to the new Vue Admin Shell. The module UI is a Module Federation remote for the Admin Shell host, built from src/VirtoCommerce.ReturnModule.Web/vue into plugins/admin-shell. The AngularJS UI is unchanged and keeps working in the classic admin.

What the module UI ships:

  • Menu: "Returns" in the Orders section, right after Orders (return:access). The host's default menu has no legacy Returns entry, so nothing is replaced.
  • Blades:
    • ReturnsList: all returns, or one order's returns when opened from the order. Search, sort and status filter.
    • ReturnDetails: the return with its order, customer and creator, and its status. The selectable statuses come from the server, since they depend on the return's decision. Status labels use the merchant's translations of the Return.Status dictionary, then the module's own labels. Unsaved edits survive when a child blade saves the return. Its "Items" widget opens the lines.
    • ReturnItems, in two modes:
      • for an order: pick the lines and quantities to return, then "Make return";
      • for a return: edit quantities and prices, and approve or decline each line while the return waits for a decision (return:authorize).
      • It takes its order or return through blade options only, so a page reload doesn't reopen it.
    • ReturnOrders: pick the order a new return is made from (return:create).
  • Widget on another module's blade: "Returns" on the Orders module's OrdersDetails blade (return:read, saved orders only), with the order's return count.
  • Extension point it uses: orders-details-toolbar, offered by the Orders module's order blade. It adds "Create return" there (return:create).
  • Blades of other modules it opens by name:
    • the host's PlatformSettingDictionary, to edit Return.Status (shown with platform:setting:access or platform:setting:update);
    • the Customer module's CustomerContactDetails / CustomerOrganizationDetails, for the customer and the creator. When the Customer module UI isn't installed, a notice shows instead.

Build and packaging:

  • The csproj excludes vue/ from the .NET build and copies plugins/ on publish.
  • .gitignore ignores the plugins/ build output.

No server change: no schema change, no migrations, no new settings, no new permissions, no new NuGet dependencies.

Companion PRs: VirtoCommerce/vc-module-admin-shell#1 (the host that loads module UIs) and VirtoCommerce/vc-shell#386 (framework fixes the host's patch carries).

Languages: the module UI and the module's server texts (setting and permission names, and the AngularJS admin's texts) come in English, Arabic, Hebrew, German, Spanish, Finnish, French, Italian, Japanese, Norwegian, Polish, Portuguese, Russian, Swedish and Chinese. In Arabic and Hebrew the Admin Shell lays the module UI out right to left.

New GraphQL queries and mutations

None. This PR adds no query or mutation.

Changes to existing GraphQL queries and mutations

None.

New public services / interfaces / methods

None. This PR adds no .NET surface. The Vue module exposes its blades to the host by name: ReturnsList, ReturnDetails, ReturnItems and ReturnOrders.

New protected methods (extensibility)

None.

Breaking changes

  • Compile time: None.
  • Package upgrade: None. No .NET member was removed or renamed, so no [Obsolete] was needed.
  • Runtime behavior: None for the AngularJS admin or the API. The Vue UI is new.

New dependencies

  • NuGet: None.
  • npm (build time only): src/VirtoCommerce.ReturnModule.Web/vue/package.json builds the module UI with @vc-shell/framework 2.6.3-rc.0, Vite and vue-tsc. It is not a runtime or NuGet dependency of the module; only the built plugins/admin-shell output ships.

Note (hand-written search and save): the module UI calls POST /api/return/search and PUT /api/return through a small fetch helper, not through the generated client. ReturnController.SearchReturns is declared as ActionResult<Return>, but it returns a search result. UpdateReturn is untyped, but it returns { id } or a list of validation messages. So the generated client types both wrong. Declaring the real response types (metadata only, the wire format stays the same) and regenerating the client would let the UI drop the helper; that is left for a separate change.

Note (follow-ups): the member-type-to-Customer-blade mapping and the "reload while keeping unsaved edits" logic also exist in other module UIs. They could move to a Customer-owned "open member" blade and a rebase option in the framework's blade form; that is left for a separate change.

References

QA-test:

Jira-link:

https://virtocommerce.atlassian.net/browse/VCST-6327

Artifact URL:

https://vc3prerelease.blob.core.windows.net/packages/VirtoCommerce.Return_3.1006.0-pr-30-525e.zip
🤖 Generated with Claude Code

Admin Shell (vc-shell) work for VCST-6327; see the pull request for what changes for consumers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Woland2k
Woland2k requested a review from a team as a code owner October 14, 2026 11:09
@CLAassistant

CLAassistant commented Oct 14, 2026 •

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

Woland2k and others added 12 commits October 14, 2026 07:45
Clears the quality gate's new issues: removes the comment lines that made the JSON manifests invalid; excludes the generated NSwag client from duplication detection.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Platform 3.1076.0 resolves System.Security.Cryptography.Pkcs 9.0.11, with known vulnerabilities (GHSA-846f-f764-76mx, GHSA-2fmv-rv2c-59x7) that fail the restore with NU1903. Platform 3.1076.4 resolves it to 10.0.13; EF Core is aligned with the 10.0.13 it references; the direct references it would downgrade move with it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
As vc-module-catalog#915 merged: Platform 3.1083.0 also resolves System.Security.Cryptography.Pkcs to 10.0.13.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Brings in the dependency fix (#31) so this branch builds before that PR reaches dev; once it does, the change is already in dev.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
vc-build Compress (locally and in CI) now builds vue/ into plugins/admin-shell/ before publish and packs it, as
VirtoCommerce.SalesRep builds its storefront plugin; until now the package carried the plugin only if it had been built
by hand. The plugin files are listed after the build, so a clean checkout packs them too. SkipAdminShellPlugin=true
leaves the plugin out.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Admin Shell counted returns requested for the "returns" menu item itself; the module now registers that counter from its
plugin with the shell's menu counter registry ($menuCounters), with its own tooltip text. The shell keeps asking it
every minute while the tab is visible.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
German, Spanish, Finnish, French, Italian, Japanese, Norwegian, Polish, Portuguese, Russian, Swedish and Chinese,
with the terms of the module's AngularJS translations. Machine-translated: a native speaker's review is welcome.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The plugin's screens in Arabic, for the Admin Shell's right-to-left support.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The settings, permissions and method names the Admin Shell shows, for its Arabic (right-to-left) UI; the rest falls back to English.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The plugin's screens in Hebrew, for the Admin Shell's right-to-left support.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The settings, permissions and method names the Admin Shell shows, for its Hebrew (right-to-left) UI; the rest falls back to English.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vc-shell/* 2.6.3-rc.0 -> 2.7.0, the release the Admin Shell host now uses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sonarqubecloud

Copy link
Copy Markdown

@OlegoO
OlegoO merged commit 8f2fa47 into dev Oct 27, 2026
12 checks passed
@OlegoO
OlegoO deleted the feat/VCST-6327-admin-shell branch October 27, 2026 11:56
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.

3 participants