Repository navigation
VCST-6327: Price lists, prices and assignments in the new Admin Shell - #240
Merged
Merged
Conversation
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>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Clears the quality gate's new issues: rewrites the flagged code (nested ternaries, assignments and template literals, shadowed names) without changing behaviour; 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>
The module's Admin Shell menu entries and the screens they open use Title Case, and a screen is titled like the menu entry that opens it, as in the rest of the Admin Shell menu. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
After the Title Case pass, each list screen's title key held the same string as its menu entry's key. The screen now uses the menu key, as the orders list does, and the duplicate key is gone, so a rename is one edit and the two can't drift apart again. The displayed titles are unchanged. 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>
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>
Left/right margins, paddings, borders and offsets become logical (inline-start/end), so the screens mirror in the Admin Shell's right-to-left languages and stay as they are left to right. 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>
|
OlegoO
approved these changes
Oct 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Description
Adds the Pricing module's admin UI for the new Vue Admin Shell. With this module and the Admin Shell host installed, price lists, their prices and their assignments can be managed in the new shell, and the product blade shows the product's prices, as in the AngularJS admin.
What the module UI ships:
/pricing, permissionpricing:access). It replaces the AngularJS "Pricing" item in the Admin Shell navigation.PricingPricelistList: the workspace. It lists price lists with search, sort, paging and a currency filter; add, delete, export and "Assignments" (all assignments).PricingPricelistDetails: name, currency and description. Widgets: "Prices" and "Assignments", each with a count.PricingPricelistProducts: the products priced in a price list, with the price range of each. "Add" picks products and gives each a zero list price, as AngularJS did; delete and export. Other modules add commands to its toolbar (see below).PricingProductPicker: the product search used by "Add".PricingProductPrices: one product's prices in one price list: list and sale price, minimum quantity and validity dates, checked by the AngularJS price rules (list price set, sale not above list, unique quantity tiers, a price for quantity 1).PricingItemPrices: a product's price lists, with the price range, the number of prices and the catalogs and stores each is assigned to; delete, and pricing the product in another price list.PricingAssignmentList: the assignments of a price list, or all of them; delete, delete all (or all the search matches), export.PricingAssignmentDetails: name, description, price list, store or catalog (exactly one), priority, validity dates, and the "eligible shoppers" conditions from the server's condition types.CatalogProductDetailsblade (AngularJS:itemPricesWidgetonitemDetail). It shows the price range in the currency with the most prices, evaluated for the product's catalog, and opensPricingItemPrices.pricing-pricelist-products-toolbaronPricingPricelistProducts. Other modules add toolbar commands to it withuseExtensionPoint("pricing-pricelist-products-toolbar").add(...). Each command gets the price list, the selection, the search keyword, the row count,openBladeandreload. The contract is documented inpricelist-products.vue. The Price export/import module uses it for its CSV commands.ExportSettingsblade, and itsexport-filter:<type>extension points for the filter fields of the price list, price and assignment export types. The export commands appear when the Export module's UI is loaded and the user hasexport:access(as well aspricing:export).CatalogProductDetailsthrough its blade context.pricing:access,pricing:read,pricing:create,pricing:update,pricing:deleteandpricing:export. "Add" on the price list's products also needscatalog:readorcatalog:products:read, because the picker searches the catalog.How it is built and packaged:
pricing_admin) for the Admin Shell host. It is built fromsrc/VirtoCommerce.PricingModule.Web/vue(yarn build) intosrc/VirtoCommerce.PricingModule.Web/plugins/admin-shell, and the platform serves it at/modules/$(VirtoCommerce.Pricing)/plugins/admin-shell/.plugin.jsonthere declares the remote and its menu contribution.vue/from the .NET build (Compile, Content, EmbeddedResource and None items), and it copiesplugins/**next to the module ondotnet publish..gitignoreignores theplugins/build output.vue/src/api_client/virtocommerce.pricing.ts). Its pickers and lists also read the catalog, store, currency and country endpoints, the catalog list entries and products, and theVirtoCommerce.Core.General.Languagessetting values.The AngularJS UI is unchanged. Both UIs use the same endpoints and permissions.
No server change: no schema change, no migrations, no new settings, no new NuGet dependencies.
Companion PRs: VirtoCommerce/vc-module-admin-shell#1 is the host that loads module UIs. VirtoCommerce/vc-shell#386 has the framework fixes that the host's patch carries; this remote runs on the host's shared framework instance.
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. No existing query or mutation changes.
New public services / interfaces / methods
None. No C# code changes. The blade names and the
pricing-pricelist-products-toolbarextension point above are the only surface that other Admin Shell module UIs use.New protected methods (extensibility)
None.
Breaking changes
[Obsolete]was needed.New dependencies
src/VirtoCommerce.PricingModule.Web/vue/package.jsonbuilds the UI with@vc-shell/framework2.6.3-rc.0 (plus@vc-shell/mf-module,@vc-shell/api-client-generator, vite and vue-tsc). Nothing from it is a NuGet dependency. The package ships only the built bundle inplugins/admin-shell.References
QA-test:
Jira-link:
https://virtocommerce.atlassian.net/browse/VCST-6327
Artifact URL:
https://vc3prerelease.blob.core.windows.net/packages/VirtoCommerce.Pricing_3.1010.0-pr-240-d967.zip
🤖 Generated with Claude Code