Releases: vendure-ecommerce/vendure
v3.5.2
Here are the notable improvements in Vendure v3.5.2:
Next.js Storefront
When you start a new project using @vendure/create, you now have the option to include our brand-new Next.js Storefront! This gives you a true full-stack headless commerce project in a modern monorepo configuration.
For existing projects, you can also try out the storefront:
Dashboard fixes
We have continued to refine and polish the new Dashboard with over 20 fixes and features in this release, including:
- Drag-drop reordering of collections
- Ability to add surcharges when modifying orders
- Improved right-to-left layout
Core fixes
There are a number of significant fixes in Vendure core too, including:
- Huge performance improvement when dealing with self-referencing entity lists (e.g. if you define a Product relation custom field on the Product entity)
- A very important fix for scheduled tasks on postgres, to ensure that tasks get executed by only a single worker in horizontally-scaled environments
- Fixes and optimizations to advanced filtering of paginated list queries
📚v3.5.2 Changelog
What's Changed
- refactor(dashboard): Sort languages by their label instead of language label by @BibiSebi in #3981
- Fix Docs icon location in GraphiQL explanation by @nezerk in #3982
- Fix(admin UI): apply useGlobalOutOfStockThreshold correctly by @PavanendraBaahubali in #3993
- fix(dashboard): Fix for custom nav section placement by @dev-ish in #3995
- docs: fix typo in @Args documentation by @MuhammadAnas8 in #4000
- fix(dashboard): Fix port:auto for api requests by @SiebelsTim in #3980
- fix(dashboard): Move shared config for global-languages to reuse by @DeltaSAMP in #4024
- perf: Fix slow queries when entities have self-referencing relations by @gabriellbui in #4020
- fix(job-queue-plugin): Upgrade @google-cloud/pubsub to fix protobufjs vulnerability by @dlhck in #4042
- Fix/dashboard typescript errors by @grolmus in #3996
- Add Bulgarian (bg) translation for the new Vendure DashboardFeat/bg translation by @k2cult in #4001
- feat(dashboard): Custom icons in data table faceted filters by @alingabrieldm in #3998
- feat(dashboard): Add surcharge functionality to order modification page by @BibiSebi in #4044
- fix: Decimal values in tax rate input by @gabriellbui in #4052
- feat(dashboard): Implement dragging to reorder collections by @biggamesmallworld in #4035
- feat(create): Add Next.js storefront option to create command by @dlhck in #4015
- fix(dashboard): Display shipping method in order summary by @michaelbromley in #4054
- fix(dashboard): keep job queue dropdown open during auto refresh by @starry-osean in #4059
- Fix/facet values opening by @grolmus in #4064
- Polish RTL layout and Arabic translation in dashboard by @mohamed7-dev in #4008
- fix(dashboard): Persist user-defined column order in saved views by @PavanendraBaahubali in #3988
- feat(dashboard): Product channel assigner by @biggamesmallworld in #4063
- fix(job-queue-plugin): Respect configured prefix in RedisJobBufferStorageStrategy by @colinpieper in #4066
- fix(core): Update validation for session if we work with relationLoadStrategy query by @monrostar in #3691
- fix(core): Correct behaviour of complex list filtering by @michaelbromley in #4068
- fix(core): Fix scheduled task concurrent execution on Postgres by @michaelbromley in #4069
- docs: Update docs to include new Next.js starter by @michaelbromley in #4060
New Contributors
- @nezerk made their first contribution in #3982
- @PavanendraBaahubali made their first contribution in #3993
- @MuhammadAnas8 made their first contribution in #4000
- @k2cult made their first contribution in #4001
- @alingabrieldm made their first contribution in #3998
- @starry-osean made their first contribution in #4059
- @mohamed7-dev made their first contribution in #4008
Full Changelog: v3.5.1...v3.5.2
v3.5.1
Vendure v3.5.1 incorporates many fixes and improvements to the new Dashboard based on all of your feedback since the launch of v3.5.0!
Most notable fixes & features:
Support for localization of Dashboard extensions
You can now take advantage of the localization system and provide translations for your dashboard extensions. See the new Localization Guide in the docs.
Fixed compilation issues
We have fixed a number of compilation issues - one caused by an update to the underlying compiler package @swc/core
We also improved support for compilation on Windows, and added an experimental module option to the Vite plugin
which you can use to enable support for ESM-based Vendure projects.
compatibilityMode No longer required
We implemented a compatibilityMode flag for the AdminUiPlugin to allow you to run both the old Angular-based Admin UI alongside the new React-based Dashboard.
This is now no longer required - both plugins can exist without any issues.
Fixes
- admin-ui-plugin Deprecate
compatibilityModeoption (#3953) (e62fce2), closes #3953 - cli Fix schema command "dir" option (785ccf1), closes #3896
- core Correctly persist relation custom fields on Zone entity (#3951) (c68120a), closes #3951
- core Prevent duplicate GraphQL custom field input type definitions (#3889) (f16f790), closes #3889
- core Roles query pagination (#3826) (2d1c98d), closes #3826
- create Fix dev mode path to static dashboard files (d0a3206)
- create Update CLI instructions to reflect the new Dashboard (#3957) (dba8f44), closes #3957
- dashboard add optional chaining to shipping lines to prevent UI from crashing (#3930) (5e5ef68), closes #3930
- dashboard Allow rendering multiple blocks in same location (#3937) (1206605), closes #3937
- dashboard Allow the option "enableColumnFilter" for additionalColumns in ListPage (#3968) (b9bc533), closes #3968
- dashboard Copy requiresPermission to nav menu items (#3938) (a2057de), closes #3938
- dashboard Do not block reload for pristine forms (9a364f4), closes #3964
- dashboard Fix custom field tab display logic (504fa9b)
- dashboard Fix empty state of list type config args (c95a00b), closes #3969
- dashboard Fix healthcheck view when api endpoint is auto (#3919) (62d5ddb), closes #3919
- dashboard Fix history entry item destructive icon color (#3954) (e31e4cb), closes #3954
- dashboard Fix incorrect currency being displayed in product variant listing (#3906) (b2077fa), closes #3906
- dashboard Fix relation selector null/undefined handling (#3942) (715b905), closes #3942
- dashboard Fix saving global languages when selecting Norwegian (#3967) (33071cc), closes #3967
- dashboard get the right vite __status on the starting page (#3891) (521808b), closes #3891
- dashboard Implement bulk actions for the zone members table (#3966) (26997d3), closes #3966 #3927
- dashboard Improve default string list component (79fd8a4), closes #3916
- dashboard Improve security of html sanitization (4fb3bb0)
- dashboard Include OrderLine custom fields in detail view (#3958) (d314a6c), closes #3958
- dashboard incorrect extension import path generation on windows (#3915) (14cd5b4), closes #3915
- dashboard Increase rate limit for dev mode (999d3e1)
- dashboard Introduce experimental support for ESM projects (3881d46), closes #3727 #3533
- dashboard Page block fixes (#3955) (9c28eff), closes #3955
- dashboard Properly convert price to minor units before saving product variants (#3907) (7274b23), closes #3907
- dashboard Respect authTokenHeaderKey config (#3935) (7324584), closes #3935
- dashboard Show customFields on address forms (#3900) (66b2568), closes #3900
- payments-plugin Support more payment flows by checking ArrangingAdditionalPayment state (9ca67e9)
Features
- dashboard Support localization for dashboard extensions (#3962) (112cb9d), closes #3962
- dashboard Tag-based input for string list custom fields (#3934) (3fb2786), closes #3934
What's Changed
- fix(dashboard): Fix incorrect currency being displayed in product variant listing by @jirkavrba in #3906
- fix(core): Prevent duplicate GraphQL custom field input type definitions by @oliverstreissi in #3889
- fix(dashboard): get the right vite __status on the starting page by @oidt in #3891
- docs(dashboard): Add section explaining use of Tabs in pageLayout by @HouseinIsProgramming in #3913
- fix(dashboard): Properly convert price to minor units before saving product variants by @jirkavrba in #3907
- fix(dashboard): add optional chaining to shipping lines to prevent UI from crashing by @BibiSebi in #3930
- feat(dashboard): Tag-based input for string list custom fields by @dlhck in #3934
- fix(dashboard): Respect authTokenHeaderKey config by @dlhck in #3935
- feat: Expose ProductVariantPrice entity to price calculation strategy by @asonnleitner in #3918
- fix(dashboard): Copy requiresPermission to nav menu items by @dlhck in #3938
- fix: Fix dashboard build by pinning @swc/core version by @michaelbromley in #3939
- fix(dashboard): Fix relation selector null/undefined handling by @dlhck in #3942
- fix(dashboard): Show cu...
v3.5.0
Dashboard Stable Release
We are beyond excited to officially release our brand new Dashboard!
Back in February we announced our intention to completely re-imagine the experience of building custom UI for your Vendure plugins. After months of development and testing, we're proud to present the new Dashboard:
- Built on a modern, dev- & AI-friendly stack: React, Tailwind, Shadcn/ui, TanStack Router, Vite
- Customizations that took you hours can now be done in minutes
- Vastly expanded customization options
- User settings persist per logged-in administrator
→ 🔴 Dashboard Announcement Video
→ Dashboard Getting Started Guide
→ Dashboard Demo
→ Dashboard Component Library
CLI Improvements
New schema Command
The Vendure CLI now has a brand-new schema command which allows you to generate a full GraphQL schema for your Admin or Shop API in a single command. No more custom scripts or reliance on running servers. The command reads your VendureConfig and is able to construct the full schema - including all custom fields and API extensions defined in your plugins - and outputs in the format of your choice.
The resulting schema can then be used by GraphQL tooling like your IDE's GraphQL plugin to give you perfect autocomplete while you build your queries and mutations.
→ Vendure CLI schema command docs
Improved monorepo support
A number of improvements have been made to the CLI internals to better handle different types of repo setup. For example, the CLI is now smarter at detecting Nx-like setups which have multiple inherited tsconfig files, where a base config defines path mappings that are used throughout the monorepo packages.
A number of other edge cases have also been handled, like where there are multiple VendureConfigs detected.
SettingsStore read/write permissions
The SettingsStore, introduced in the last minor release, just got an update to allow you to individually specify read & write permissions. Prior to this, there was only a single permission possible, which would cover both read and write access.
This unlocks many more possibilities for this API - indeed it powers the ability of Dashboard admins to create global views on list pages that can then be accessed (but not changed) by all users.
→ SettingsStore permissions docs
Breaking Changes: SentryPlugin
We have updated the underlying library used in our @vendure/sentry-plugin package in order to bring it into line with the latest Sentry version and the recommended way of instrumenting NestJS-based apps.
First you can simplify the options passed to the SentryPlugin:
// before
SentryPlugin.init({
dsn: process.env.SENTRY_NODE_DSN,
environment: process.env.SENTRY_ENV,
tracesSampleRate: 0.1,
}),
// after
SentryPlugin.init(),With the new version, the Sentry DSN is provided as an environment variable, and you'll need to alter the way you run your server to pre-load the plugin's instrumentation file. See the SentryPlugin docs for a complete guide.
Note: If you are unable to update right away, it's perfectly safe to keep using v3.4.x of the SentryPlugin while you plan in the upgrade.
Changelog
(note: specific Dashboard features & fixes are omitted here for brevity. See the CHANGELOG.md file for a complete list)
Fixes
- cli Fix custom config path handling for migrate & schema commands (3bfe632)
- cli Fix entity generation without translation (d8e20de)
- cli Fix package location in monorepos (39fce1c)
- cli Show relative paths for duplicate plugin names in selection (#3854) (1dafa9b), closes #3854
- cli Update codegen command to use schema file (9f8a3d5)
- core Add minimums to default promotion actions/conditions (0f95ecc)
- core Fix edge case that breaks asset url prefixing (7b39613)
- core Implement min value on default shipping calculator tax (b5f4b01)
- create Fix package resolution in monorepos (daf85f8)
Features
- cli Improve support for Nx-style monorepos (8a83236)
- cli Improved monorepo detection and support (99e0b11)
- cli Introduce new
schemacommand (134e0fe) - core Add read/write permission support for settings store (#3828) (6d585a2), closes #3828
- core Implement tax rate filtering by zoneId, categoryId (08eb48e)
- create Include Dashboard with new Vendure projects (#3862) (b6152d5), closes #3862
- sentry-plugin Add option to capture logs (7777721)
- sentry-plugin Log error instead of throw error when dsn is not set (0bd9ea6)
- sentry-plugin Migrate to @sentry/nestjs module (#3744) (0a60889), closes #3744
What's Changed
- feat(dashboard): Add date range filtering to dashboard widgets by @dlhck in #3818
- chore(core,testing): Switch to mysql2 client library by @dlhck in #3821
- feat(sentry-plugin): Migrate to @sentry/nestjs module by @dlhck in #3744
- feat(core): Add read/write permission support for settings store by @dlhck in #3828
- feat(dashboard): Add saved views for data tables by @dlhck in #3825
- feat(core, dashboard): Slug strategy and slug input by @dlhck in #3832
- feat(dashboard): Add handleNestedFormSubmit utility for nested forms by @dlhck in #3835
- feat(dashboard): Implement option group & option editing by @michaelbromley in #3837
- perf(dashboard): Optimize list queries by @michaelbromley in #3838
- feat(dashboard): Add TanStack Router
validateSearchsupport and unauthenticated routes by @dlhck in #3840 - fix(dashboard): Fix router initialization and BASE_URL processing by @dlhck in #3841
- feat(dashboard): Full localization for 25 languages by @michaelbromley in #3847
- fix(dashboard): Fix several issues on the list pages by @michaelbromley in #3851
- feat(dashboard): Default dashboard page & dx improvements by @michaelbromley in #3859
- feat(create): Include Dashboard with new Vendure projects by @michaelbromley in #3862
- refactor(cli): Remove code duplication in the add command by @HouseinIsProgramming in #3855
- fix(cli): Show relative paths for duplicate plugin names in selection by @HouseinIsProgramming in #3854
- feat(dashboard): Add form controls for multi currency / multi warehouse by @michaelbromley in #3866
- feat(dashboard): Implement add command for Dashboard extensions by @michaelbromley in #3864
- refactor(dashboard): Simplify login screen and add password visibility toggle by @dlhck in #3863
- feat(dashboard): New CLI schema command by @michaelbromley in #3872
- feat(dashboard) Alerts improvements and docs by @michaelbromley in #3876
- Add storybook app for dashboard components by @michaelbromley in #3879
- chore(dashboard): Attempt to fix vercel config by @michaelbromley in #3880
- fix(docs): Update detail page configuration to use detailForms by @BibiSebi in #3881
- fix(dashboard): Custom fields in s...
v3.4.4
What's Changed
- chore: Fix docs-link in README by @DanielBiegler in #3853
Full Changelog: v3.4.3...v3.4.4
Fixes
v3.4.3
3.4.3 (2025-10-02)
This release includes a very important dependency fix, which solves an issue that prevents @vendure/core from successfully installing.
The reason for this was a recent new version of one of our dependencies - @nestjs/graphql - which in the latest minor, 13.2.0, updated the underlying Apollo Server version. This caused a series of conflicts with other dependencies ultimately leading to an infinite loop when attempting to install Vendure.
In addition to this fix, there are a lot of updates to the new React dashboard.
Fixes
- core Ensure
surchargesrelation is loaded in assignToChannels (#3812) (9d58978), closes #3812 - core Set apollo dependency to fix hung install (28a9831)
- dashboard Add bulk actions to product variants table (c3f1d1b)
- dashboard Add missing columns to product variants table (0577e24)
- dashboard Clear temp dir on compilation (a0bbe09)
- dashboard Fix asset detail preview display (03b03ac)
- dashboard Fix asset focal point positioning (d574be4)
- dashboard Fix display of collection children column (946409d)
- dashboard Fix position of bulk actions when in sheet (2902e30)
- dashboard Fix runtime issue caused by dependency bundling (7d3b2b4)
- dashboard Implement entity duplicator dialog (0328d46)
- dashboard Improve layout of permissions grid (#3827) (5c3ae0f), closes #3827
Features
- dashboard Add entity info dropdown to page action bar (#3819) (98fd82d), closes #3819
- dashboard Add support for Asset tags (#3822) (5c6967f), closes #3822
- dashboard Add support for custom history entries (#3831) (1db50a6), closes #3831
- dashboard Dashboard permissions on nav menu & custom fields (#3824) (b95ad17), closes #3824
- dashboard Expose bulk actions per row in data tables (#3820) (de79737), closes #3820
- dashboard Implement meta title based on breadcrumb (#3834) (cb0463d), closes #3834
- dashboard Implement testing of shipping methods (#3833) (a0df5be), closes #3833
- dashboard Improve toolbar display of rich text editor (#3817) (9b15ecc), closes #3817
- dashboard Support for split orders (#3829) (f31c386), closes #3829
What's Changed
- fix(dashboard): Improve toolbar display of rich text editor by @michaelbromley in #3817
- feat(dashboard): Add support for Asset tags by @michaelbromley in #3822
- feat(dashboard): Dashboard permissions by @michaelbromley in #3824
- feat(dashboard): Expose bulk actions per row in data tables by @michaelbromley in #3820
- fix(assignToChannels): ensure
surchargesrelation is loaded by @casperiv0 in #3812 - feat(dashboard): Add entity info dropdown to page action bar by @dlhck in #3819
- fix(dashboard): Improve layout of permissions grid by @michaelbromley in #3827
- feat(dashboard): Support for split orders by @michaelbromley in #3829
- feat(dashboard): Add support for custom history entries by @michaelbromley in #3831
- feat(dashboard): Implement testing of shipping methods by @michaelbromley in #3833
- feat(dashboard): Implement meta title based on breadcrumb by @michaelbromley in #3834
- test(email-plugin): Add test to verify BCC functionality with orderConfirmationHandler by @iamgerwin in #3836
New Contributors
- @iamgerwin made their first contribution in #3836
Full Changelog: v3.4.2...v3.4.3
v3.4.2
Note: In this release, the SettingsStoreService methods have been revised to put the ctx argument in the first position, as is standard across Vendure APIs. Existing code with the ctx last will still work, but you are advised to update it.
- SettingsStoreService.get<T>(key, ctx)
- SettingsStoreService.getMany(keys, ctx)
- SettingsStoreService.set<T>(key, value, ctx)
- SettingsStoreService.setMany(values, ctx)
+ SettingsStoreService.get<T>(ctx, key)
+ SettingsStoreService.getMany(ctx, keys)
+ SettingsStoreService.set<T>(ctx, key, value)
+ SettingsStoreService.setMany(ctx, values) Fixes
- core Correctly implement SettingsStore validation & argument order (#3808) (d8cdd62), closes #3808
- core Emit
CollectionEventafter moving a collection (#3801) (d80e28f), closes #3801 - core Fix logic for calculating interval (394fb05)
- core Handle foreign key violations during order merge (#3795) (c00a044), closes #3795
- core Log warning when attempting to persist invalid custom fields (#3793) (eefbd9c), closes #3793
- core Handle stale locks on scheduled tasks (#3708) (4492850), closes #3708
- create Fix resolving path in repos using hoisted node_modules (#3802) (fd971a5), closes #3802
- dashboard Add initial value to reduce call (9261f03)
- dashboard Allow column selection on recent orders (182c0b7)
- dashboard Derive breadcrumbs from path/basepath to match sidebar (#3784) (562cc54), closes #3784
- dashboard Ensure language is valid when switching channel (97d9a9d), closes #3780
- dashboard Ensure language is valid when switching channel (7473956)
- dashboard Fix api 'auto' options (#3807) (b597dfc), closes #3807
- dashboard Fix change detection in RichTextInput (1c18b41)
- dashboard Fix checkboxes on variant creation (4b69839)
- dashboard Fix data table date filter (225b774)
- dashboard Fix filtering in latest orders widget (b8ac456)
- dashboard Fix multi select on asset gallery (5826c7f)
- dashboard Fix navigation to Asset detail from gallery dialog (846ab24)
- dashboard Fix scroll behaviour on asset picker dialog (363043d)
- dashboard Improve facet list table (b76d1dc)
- dashboard Improve layout & rendering of order summary widget (cf72c72)
- dashboard Improve styling of metrics widget, add refresh (e8f8d99)
- dashboard Make long table column dropdowns scrollable (f878e24)
- dashboard Show “Create” for new entities, “Update” for edits (#3805) (fdece02), closes #3805
- dashboard Update channel switcher when Channel added/updated (1cd7652)
What's Changed
- docs: Add S3-integration guide by @HouseinIsProgramming in #3776
- make the compatibilityMode more visible in the documentation by @oidt in #3785
- fixed the link reference. by @oidt in #3786
- Add docs for implementing
HasCustomFieldsby @DanielBiegler in #3794 - docs: Add mermaid support in docs by @HouseinIsProgramming in #3797
- docs: Add CMS integration how-to guide by @HouseinIsProgramming in #3790
- docs: Add to note about custom field type generation for translated entities by @DanielBiegler in #3799
- fix(core): Handle foreign key violations during order merge by @gabriellbui in #3795
- fix(create): Fix resolving path in repos using hoisted node_modules by @HouseinIsProgramming in #3802
- feat(core): Implement custom fields validation on entity update or insert by @BibiSebi in #3793
- fix(core): Emit
CollectionEventafter moving a collection by @martijnvdbrug in #3801 - fix(dashboard): derive breadcrumbs from path/basepath to match sidebar by @mohdbk in #3784
- fix(dashboard): api 'auto' options by @casperiv0 in #3807
- fix(dashboard): show “Create” for new entities, “Update” for edits by @mohdbk in #3805
- fix: Clear stale locks when past the scheduled task interval by @biggamesmallworld in #3804
- Settings store cleanup by @michaelbromley in #3808
New Contributors
Full Changelog: v3.4.1...v3.4.2
v3.4.1
In addition to the changes listed below, this release includes an internal refactor of form components in the new React Dashboard. This includes an updated set of documentation:
As part of this refactor, the detailForms.displays property was removed as it was redundant. All custom form components for detail pages should be specified via the detailForms.inputs property.
Fixes
- admin-ui Fixed facets and tags references in Spanish translations (#3752) (bc8bbea), closes #3752
- cli Use dynamic import for strip-json-comments (#3745) (a3acd91), closes #3745
- core Filter StockMovements by type when fetching by product variant (#3713) (99907fc), closes #3713
- core Fix scheduled task registration to avoid entity ID errors (#3763) (68e98eb), closes #3763
- dashboard Add error handling to schema generation process (#3731) (23ef906), closes #3731
- dashboard Remove bulk actions display in asset picker (55f71ab)
- dashboard Remove vite plugin source code from package (c3546c4)
- email-plugin Escape recipient's HTML entities in dev mailbox (#3756) (904baa9), closes #3756
- job-queue-plugin Use SCAN instead of KEYS to clean indexed sets (#3743) (1c9b00b), closes #3743
What's Changed
- Add error handling to schema generation process by @tianyingchun in #3731
- refactor(dashboard): Rework custom form input handling by @michaelbromley in #3735
- docs(feat): Add copy as md button to doc pages by @HouseinIsProgramming in #3738
- refactor(dashboard): Replace react-grid-layout with custom grid implementation by @dlhck in #3737
- fix(core): Filter StockMovements by type when fetching by product variant by @knoid in #3713
- fix(cli): Use dynamic import for strip-json-comments by @HouseinIsProgramming in #3745
- docs: Add Google auth guide by @HouseinIsProgramming in #3759
- docs: Add Github SSO guide by @HouseinIsProgramming in #3758
- docs(cli): update flag from --plugin to --selected-plugin for entity/service commands by @qx54 in #3753
- fix(core): Fix scheduled task registration to avoid entity ID errors by @gabriellbui in #3763
- fix(admin-ui): Fixed facets and tags references in Spanish translations by @knoid in #3752
- fix(email-plugin): Escape recipient's HTML entities in dev mailbox by @knoid in #3756
- fix(job-queue-plugin): Use SCAN instead of KEYS to clean indexed sets by @colinpieper in #3743
- refactor(dashboard): Simplify form handling by @michaelbromley in #3748
New Contributors
- @qx54 made their first contribution in #3753
- @colinpieper made their first contribution in #3743
Full Changelog: v3.4.0...v3.4.1
v3.4.0
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
addItemsToOrdermutation 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
orderPlacedAtin the Order table, andcreatedAtin 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 ...
v3.3.8
Fixes
- admin-ui Fixed tracking code not showing in order history (#3402) (6002c21), closes #3402
- cli Replace regex solution with robust stirp-json-comments package (#3694) (26a9e03), closes #3694
- core Account for refund status when calculating order coverage (#3719) (1400bbc), closes #3719 #3670
- core More reliable job subscriber timeout handling (5e124d5)
- dashboard Correct detection of tailwind classes in plugins (86da88a)
- dashboard Fix custom field label (45d4b3c)
- dashboard Fix custom fields in GlobalSettings detail (bcd55b8)
- dashboard Fix npm package discovery (1fc6f85)
- dashboard Fix plugin detection on Windows (bbb8c48)
- dashboard Temporarily remove shadcn avatar (10d5ebc)
- email-plugin Hydrate lines.featureAsset on order-confirmation email (#3690) (20c05db), closes #3690
- payments-plugin Include metadata in createPayment of Stripe handler (#3692) (d415dd0), closes #3692
Features
- dashboard Full support for configurable operations UI (#3702) (8e0c5b4), closes #3702
- dashboard Full support for custom fields in detail forms (#3695) (38d6f73), closes #3695
- dashboard Implement add facet value (4b24f24)
- dashboard Implement delete facet value (c7db965)
- dashboard Job list improvements (d5c39cf)
- dashboard Update theme to use OKLCH color space and new shadcn theme (#3688) (199cbd1), closes #3688
What's Changed
- style(docs): Update fonts and reorganize CSS structure by @dlhck in #3682
- chore(dashboard): Add missing shadcn components by @dlhck in #3685
- refactor(dashboard): Rename gqlTadaOutputPath option by @michaelbromley in #3686
- feat(dashboard): Update theme to use OKLCH color space and new shadcn theme by @dlhck in #3688
- Overhaul readme and contributing guide by @HouseinIsProgramming in #3689
- fix(cli): Replace regex solution with robust stirp-json-comments package by @HouseinIsProgramming in #3694
- Include metadata in createPayment function of payment method handler by @Draykee in #3692
- feat(dashboard): Dashboard custom field improvements by @michaelbromley in #3695
- fix(llm-txt-plugin): erase index path at the end by @twlite in #3701
- doc homepage overhaul by @HouseinIsProgramming in #3700
- feat(dashboard): Full support for configurable operations UI by @michaelbromley in #3702
- fix(email-plugin): Hydrate lines.featureAsset on order-confirmation email by @knoid in #3690
- fix(admin-ui): Fixed tracking code not showing in order history by @ApplePedlar in #3402
- fix: Filter for only settled refunds and adapt test cases by @biggamesmallworld in #3719
New Contributors
- @biggamesmallworld made their first contribution in #3719
Full Changelog: v3.3.7...v3.3.8
v3.3.7
What's Changed
- fix(core): Apply custom field defaults on entity creation by @michaelbromley in #3674
- fix(core): ID decoding in nested filter structures by @gabriellbui in #3677
- fix(core): Correct unfulfilled quantity calc for multiple fulfillment lines per orderline by @williamrijksen in #3647
- docs(core): Documented the SelfRefreshingCache by @Draykee in #3666
- fix(dashboard): Fix handling of more types of path alias by @michaelbromley in #3678
Full Changelog: v3.3.6...v3.3.7
