Dashboard Release Candidate

With Vendure v3.4, our new React-based Dashboard is now in the release candidate (RC) phase.
This means that the developer APIs can be considered stable, and you can start using it and building on it.
The Dashboard is the replacement of the existing Angular-based Admin UI, and it aims to improve upon it in every way:
- Cleaner, more modern design
- Improved UX
- Radically simpler to extend with your own customizations
- Many more ways to customize every part of the UI to your exact needs
This RC version is very close to feature-parity with the old Admin UI, and we'll be filling in the missing pieces in upcoming patches.
Get started now by heading to our Dashboard Getting Started Guide
Note If you have been using the beta version of the Dashboard, you'll need to make some adjustments to your vite.config.mts
file because we have updated the import path of the Vite plugin, and changed a couple of property names since the last beta release.
CLI non-interactive mode
The Vendure CLI now has a non-interactive mode, which allows you to pass options as command-line arguments. This opens up the CLI to scripting and integrations such as Nx generators.
Settings Store
We introduced a brand-new API into Vendure core - the Settings Store. This is a native way to store configuration settings for your plugins via a fast, simple, and feature-rich API.
In fact, we already use this API to power our new Dashboard: your user settings get persisted to the settings store, so that they persist across browsers and devices.
Updating
To update:
- Update all
@vendure/...
dependencies in your package.json to3.4.0
- Run
npm install
- Generate a migration to reflect the DB changes introduced in this version (these changes are non-destructive, data won't be lost. But to be extra careful it's always a good idea to have a backup before running on production data).
- Read over the BREAKING CHANGE section below to see if there are any changes you need to know about.
Changelog
Features
- cli Non-interactive mode and new structure (#3606) (7d9f03b), closes #3606
- core Add
addItemsToOrder
mutation to add multiple items to cart (#3500) (84a8cbe), closes #3500 - core Add facetValue query to Admin API (fae3c51)
- core Add single facetValue create/update mutations to Admin API (4db0d51)
- core Add support for deprecating custom fields with @deprecated directive (#3582) (6fb399f), closes #3582
- core Add trustProxy option to ApiOptions (#3567) (f248719), closes #3567
- core Improve OrderEvent and publish for order modify (#3594) (5a27b14), closes #3594
- core Merge custom fields on updating order lines (#3673) (ead7bfa), closes #3673
- core SettingsStore for global & scoped config settings (#3684) (5aa01cc), closes #3684
- core Throw error on taxSummary if surcharges relation is not loaded (#3569) (068176c), closes #3569
- dashboard Add customizable login extensions API (#3704) (866afcb), closes #3704
- dashboard Add DashboardPlugin as part of dashboard package (#3711) (49d449f), closes #3711
- dashboard Add dev mode info to nav menu (867655e)
- dashboard Dashboard persistent settings (#3712) (17c27ff), closes #3712
- dashboard Implement content language handling (b635d23)
- elasticsearch-plugin Extend ElasticSearch to also support groupBySKU for multi-vendor store scenarios (#3528) (ec1cc5e), closes #3528
- payments-plugin Export StripeService to support more payment flows (#3624) (829ab2c), closes #3624
- payments-plugin Migrate Mollie to Payments API (#3603) (d0db5cb), closes #3603
Perf
Fixes
- cli Standardise flag names (a63ac07)
- core Fix relation constraints in OrderModification (87fc929)
- core Product by slug query filters on channel (#3591) (78608cc), closes #3591
- dashboard Add "ring offeset" padding on devmode on hover ring (#3707) (a2e3a10), closes #3707
- dashboard Add missing order property to nav menu items (#3705) (6ffa048), closes #3705
- dashboard Fix detection of node_modules (55e012b)
- dashboard Fix dev mode styling in dark mode (092b432)
- dashboard Fix editing of order history entries (74f149a)
- dashboard Fix heading for collection contents (971ecca)
- dashboard Fix intersecting borders and inconsistent rounded corners (#3717) (ae7828f), closes #3717
- dashboard Improved facet value editing (16c2e5e)
- dashboard Multiple style & functionality fixes (cca25e2)
- dashboard Remove use of crypto.randomUUID in option input (#3618) (61bed48), closes #3618
- payments-plugin improve order state transition handling for channel-specific contexts and default channel as a fallback (#3420) (4f29f0a), closes #3420
BREAKING CHANGE
- If you are using the
MolliePlugin
, you should install @mollie/api-client@4.3.3 as the plugin has been updated to use the latest Mollie features. - Indexes have been added on the columns
orderPlacedAt
in the Order table, andcreatedAt
in the JobItem table (for those using the DefaultJobQueuePlugin). This will require a non-destructive DB migration be performed to add these indexes to your schema. - With the introduction of the new SettingsStore feature, a non-destructive database migration will be required to set up the new table that will store the settings data.
What's Changed
- feat(core): Add trustProxy option to ApiOptions by @gabriellbui in #3567
- feat(core): Throw error on taxSummary if surcharges relation is not loaded by @DeltaSAMP in #3569
- Pass schema into api extension definition by @sonntag-philipp in #3261
- feat(core): Add multiple items to cart by @martijnvdbrug in #3500
- fix(core): Make findOneBySlug also filter by channel by @DeltaSAMP in #3591
- Migrated Mollie to Payments API by @martijnvdbrug in #3603
- feat(cli): Non-interactive mode and new structure by @HouseinIsProgramming in #3606
- fix(dashboard): option value input by @nxmad in #3618
- feat: better handling of order-event, added trigger for order modify by @grolmus in #3594
- feat(payments-plugin, stripe): Export StripeService to support more payment flows by @kkerti in #3624
- perf(jobs,orders) added indexes and change default sort order for jobs by @oidt in #3614
- standardize-flag-names by @HouseinIsProgramming in #3655
- feat(core): Merge custom fields on updating order lines by @michaelbromley in #3673
- Key Value store by @michaelbromley in #3684
- feat(elasticsearch-plugin): Extend ElasticSearch to also support groupBySKU for multi-vendor store scenarios by @LeftoversTodayAppAdmin in #3528
- feat(core): Add support for deprecating custom fields with @deprecated directive by @mohdbk in #3582
- fix(payments-plugin): improve order state transition handling for channel-specific contexts and default channel as a fallback by @LeftoversTodayAppAdmin in #3420
- feat(dashboard): Add customizable login extensions API by @dlhck in #3704
- fix(dashboard): Add missing order property to nav menu items by @dlhck in #3705
- fix(dashboard): Add "ring offeset" padding on devmode on hover ring by @HouseinIsProgramming in #3707
- feat(dashboard): Add DashboardPlugin as part of dashboard package by @michaelbromley in #3711
- docs(dashboard): Add themeing section in react admin dashboard category by @HouseinIsProgramming in #3709
- feat(dashboard): Dashboard persistent settings by @michaelbromley in #3712
- Dashboard UI fixes by @michaelbromley in #3715
- docs(dashboard): Updating inline docblocks by @HouseinIsProgramming in #3714
- fix(dashboard): Fix intersecting borders and inconsistent rounded corners by @HouseinIsProgramming in #3717
- chore(dashboard): Change the nav menu item "Dashboard" to "Insights" by @HouseinIsProgramming in #3720
- refactor(dashboard): Restructure UiConfigPluginOptions to remove AdminUiConfig dependency by @dlhck in #3718
- docs(dashboard): Make all Cli commands use non-interactive mode in dashboard cms tutorial by @HouseinIsProgramming in #3721
- docs(core): Modify docs Codeblock copy to always visible and image borders by @HouseinIsProgramming in #3722
New Contributors
Full Changelog: v3.3.8...v3.4.0