CHANGELOG.md 110 KB

3.5.2 (2025-12-19)

Fixes

  • admin-ui Ensure outOfStockThreshold works when global setting is toggled (b8d5492)
  • core Correct behaviour of complex list filtering (#4068) (68cde97), closes #4068
  • core Fix scheduled task concurrent execution on Postgres (#4069) (a80d24b), closes #4069
  • core Update validation for session when using relationLoadStrategy query (#3691) (a70ea6b), closes #3691
  • create Handle port conflicts between server & storefront (e4c2d5a)
  • create Use actual server port for vite config (60b9144)
  • dashboard Avoid 429 errors in dev mode (6d52887)
  • dashboard Decimal values in tax rate input (#4052) (01a17cc), closes #4052
  • dashboard Display shipping method in order summary (#4054) (e7e8ff8), closes #4054
  • dashboard Fix custom icons in data table faceted filters (#3998) (70492e4), closes #3998
  • dashboard Fix error due to ProductVariantPrice custom fields (29e6484)
  • dashboard Fix facet values sheet in facet list (#4064) (883a09e), closes #4064
  • dashboard Fix for custom nav section placement (#3995) (372fbf3), closes #3995
  • dashboard Fix port:auto for api requests (#3980) (14f42c0), closes #3980
  • dashboard Fix products breadcrumb from variant detail (d874f86), closes #4019
  • dashboard Fix tsc error (2c26ad7)
  • dashboard Further fix to rate limiting in dev mode (a335a60)
  • dashboard Improve RTL layout and Arabic translation in dashboard (#4008) (ae003b9), closes #4008
  • dashboard keep job queue dropdown open during auto refresh (#4059) (6eb2d52), closes #4059
  • dashboard Move shared config for global-languages to reuse (#4024) (e8cf3f9), closes #4024
  • dashboard Persist user-defined column order in saved views (#3988) (e14d562), closes #3988
  • dashboard Pin @lingui/swc-plugin version to fix compilation issue (c85110a), closes #3929
  • dashboard Show zone regions by default (2316b67)
  • dashboard Sort languages by their label instead of language label (#3981) (e503f3c), closes #3981
  • job-queue-plugin Respect configured prefix in RedisJobBufferStorageStrategy (#4066) (127b76b), closes #4066
  • job-queue-plugin Upgrade @google-cloud/pubsub to fix protobufjs vulnerability (#4042) (4670d66), closes #4042

Features

  • create Add Next.js storefront option to create command (#4015) (3713923), closes #4015
  • dashboard Add Bulgarian (bg) translation for the Dashboard (#4001) (090db23), closes #4001
  • dashboard Add surcharge functionality to order modification page (#4044) (0188735), closes #4044
  • dashboard Implement dragging to reorder collections (#4035) (3c47160), closes #4035
  • dashboard Product channel assigner (#4063) (fbe5de2), closes #4063

Perf

  • core Fix slow queries when entities have self-referencing relations (#4020) (ae93c9f), closes #4020

3.5.1 (2025-11-14)

Fixes

  • admin-ui-plugin Deprecate compatibilityMode option (#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

3.5.0 (2025-10-22)

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)
  • dashboard Add delete bulk action to facet value table (6ac2edd)
  • dashboard Add empty state to customer group select (38b9f8c)
  • dashboard Alerts improvements and docs (#3876) (252eb0f), closes #3876
  • dashboard Allow DateTimeInput to be cleared (418bb27)
  • dashboard Allow reading tsconfig files with comments (c5c7646)
  • dashboard Auto generate facet value slug on create (76aa3e2)
  • dashboard Correctly display order state in all languages (d8be8d0)
  • dashboard Correctly handle object-type dashboard reference (e4c1dab)
  • dashboard Correctly reset page on filters change (87bfd02)
  • dashboard Custom fields in shipping methods view were not visible (#3877) (644ffae), closes #3877
  • dashboard Disable removing from default channel (cf1479d)
  • dashboard Disallow negative tax rate input (8b29d7c)
  • dashboard Display MoneyInput currency per selected display locale (0d4b797)
  • dashboard Display new line assets in order modification preview (c4c851a)
  • dashboard Do not allow empty filters (5d677c5)
  • dashboard Do not emit NaN values from number input (3e3ab3e)
  • dashboard Enforce numeric min/max in promotions & generated inputs (2d7f927)
  • dashboard Fix & localize pagination labels (924d771)
  • dashboard Fix bg color of bulk actions select in dark mode (6e26ac7)
  • dashboard Fix boolean faceted filters (71e2497)
  • dashboard Fix cancellation of order modification preview (1a6a584)
  • dashboard Fix cell rendering on order modification table (4057821)
  • dashboard Fix column alignment in order table (9ded89b)
  • dashboard Fix custom field error on manage variants (006a6a9), closes #3850
  • dashboard Fix customer group input (089821d), closes #3849
  • dashboard Fix data passed to single-row bulk action (605de62)
  • dashboard Fix data table component overrides (2e9f862)
  • dashboard Fix filtering by column with meta dependencies (05f17d5)
  • dashboard Fix filtering in administrator list (622e1a4)
  • dashboard Fix i18n code in admin detail (5354c38)
  • dashboard Fix i18n refactor errors (860f0d5)
  • dashboard Fix issues with facet value table (4f5b4ac)
  • dashboard Fix layout of move collection dialog (b88ae8e)
  • dashboard Fix missing column dependencies (c22d74b)
  • dashboard Fix multi selection in asset gallery (347b273)
  • dashboard Fix option group list display (c646071)
  • dashboard Fix product selection in Promotion filters (56986ae)
  • dashboard Fix rich text editor undo/redo buttons (6282ab3)
  • dashboard Fix router initialization and BASE_URL processing (#3841) (f34e855), closes #3841
  • dashboard Fix selection of global languages (0dc7e6d)
  • dashboard Fix setting custom fields on draft order (321a6fb)
  • dashboard Fix setting dates in promotion detail (76ac84c), closes #3806
  • dashboard Fix setting quantities during order modification (a92e079)
  • dashboard Fix several issues on the list pages (#3851) (8a5c2bb), closes #3851
  • dashboard Fix sidebar collapsed user menu display (0840468)
  • dashboard Fix sidebar error on hot reload (64e47d9)
  • dashboard Fix slug input issues (4d66dc7)
  • dashboard Fix sort & filter on Promotion list (676c45e)
  • dashboard Fix spacing of customer group badges (08f1147)
  • dashboard Fix tax rate faceted filtering (341085c)
  • dashboard Fix TaxRate detail default toggle (b11869e)
  • dashboard Fix UX of number inputs (6645c66)
  • dashboard Fix wrong breadcrumbs sometimes being rendered (927c5ff)
  • dashboard Guard against too many items per page in data table (4432228)
  • dashboard Handle invalid channel token in API calls (6bc98da)
  • dashboard Handle NaN input in order modification table (346a3dc)
  • dashboard Implement partial HMR for dashboard extensions (930af00)
  • dashboard Improve collection preview behaviour (2023126)
  • dashboard Improve default json display in data tables (051a30a)
  • dashboard Improve display of description columns (ef828f9)
  • dashboard Improve facet value selector (6e30d0c)
  • dashboard Improve responsive layouts for page, data table, asset gallery (8a76d94)
  • dashboard Improve responsiveness of DataTable (87c2a08)
  • dashboard Improve styling of order addresses and fulfillment (879b84e)
  • dashboard Improve styling of order customer block (87b43c5)
  • dashboard Include list options in all list queries (a2e899e)
  • dashboard Make filter badges editable, improve styling (7cf0f7e)
  • dashboard Make list filters responsive (208f96d)
  • dashboard Prevent creation of ShippingMethod without calculator/checker (705975c)
  • dashboard Prevent filtering on additionalColumns (54dbbf4)
  • dashboard Remove duplicated "delete" option on product variant table (7d6878a)
  • dashboard Set data table page to 1 when filter term changes (7e9329d)
  • dashboard Unset addresses when changing customer for draft order (0c52284)

Features

  • cli Improve support for Nx-style monorepos (8a83236)
  • cli Improved monorepo detection and support (99e0b11)
  • cli Introduce new schema command (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
  • dashboard Add date range filtering to dashboard widgets (#3818) (1643313), closes #3818
  • dashboard Add dev mode wrapper for table columns (2f7e321)
  • dashboard Add handleNestedFormSubmit utility for nested forms (#3835) (ced9371), closes #3835
  • dashboard Add link to parent product from variant detail (0320150)
  • dashboard Add page size controls to asset list (8dc3c92)
  • dashboard Add rebuild search index button (c162135)
  • dashboard Add saved views for data tables (#3825) (afdc37c), closes #3825
  • dashboard Add stock level controls for multiple locations (516b0ff)
  • dashboard Add storybook app for dashboard components (#3879) (dcf8516), closes #3879
  • dashboard Add subtle fade in on blocks (18125fd)
  • dashboard Add support for multiple currency prices (34ace59)
  • dashboard Add TanStack Router validateSearch support and unauthenticated routes (#3840) (00628dd), closes #3840
  • dashboard Default dashboard page & dx improvements (#3859) (1ad5250), closes #3859
  • dashboard Display Tanstack query devtools only in devMode (1a4e188)
  • dashboard Enable filtering products & variants by SKU (dc7cabf)
  • dashboard Full localization for 25 languages (#3847) (6c85b28), closes #3847
  • dashboard Implement add command for Dashboard extensions (#3864) (8c23593), closes #3864
  • dashboard Implement option group & option editing (#3837) (226d14f), closes #3837
  • dashboard Support bearer token auth (b9d2686)
  • dashboard Support conditional rendering of page blocks (a83ed37)
  • 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

Perf

BREAKING CHANGE

  • We have updated the underlying library used in our @vendure/sentry-plugin package, bringing it up to the latest version. This also impacts the way that the sentry plugin is configured - see the release notes for details.

    3.4.4 (2025-10-08)

Fixes

  • core Omit saving Order.customFields on applyPriceAdjustments (293a74b)
  • create Fix package resolution in monorepos (7590b56)

3.4.3 (2025-10-02)

Fixes

  • core Ensure surcharges relation 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

3.4.2 (2025-09-11)

Fixes

  • core Correctly implement SettingsStore validation & argument order (#3808) (d8cdd62), closes #3808
  • core Emit CollectionEvent after 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)

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)   

Features

  • dashboard Add manage variants screen (cdfd4ca)

3.4.1 (2025-08-25)

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

3.4.0 (2025-08-01)

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

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

  • core Add indexes on date cols for orders & job items (#3614) (ceb5279), closes #3614

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, and createdAt 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.

    3.3.8 (2025-08-01)

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

3.3.7 (2025-07-18)

Fixes

  • core Apply custom field defaults on entity creation (#3674) (65804ba), closes #3674
  • core Correct unfulfilled quantity calc for multiple fulfillment lines per orderline (#3647) (430dcb8), closes #3647
  • core ID decoding in nested filter structures (#3677) (b2c3bc9), closes #3677
  • dashboard Fix handling of more types of path alias (#3678) (c9f993f), closes #3678

3.3.6 (2025-07-14)

Fixes

  • admin-ui Better Spanish translation for "locale" (#3664) (12b6a4d), closes #3664
  • admin-ui Respect visibility setting when creating a new collection (#3650) (cda91df), closes #3650
  • admin-ui update button class for consistency in action bar (#3625) (32c261a), closes #3625
  • cli Create new instance of entity before saving to db in generated Entity (#3623) (8a2e679), closes #3623
  • core Export missing common utilities in index files (#3665) (4551eb9), closes #3665
  • core Handle fs-capacitor readstream creation error (#3646) (73902ee), closes #3646
  • core Remove unused variable in removeVariantFromChannel (#3661) (8b28ae8), closes #3661
  • dashboard Correct import path for RichTextInput component (462708a)
  • dashboard Fix bad imports (9a43255)
  • dashboard Fix creation of new entities using UUID ids (b56cefe), closes #3658
  • dashboard Fix dashboard bulk action hook imports (#3640) (969e1a1), closes #3640
  • dashboard Fix race condition causing customField error (78555cb)
  • dashboard Fix redirect after creating new product (5ea9ad8)
  • dashboard Fix saving new entities when using UUIDs (d880112), closes #3616
  • dashboard Fix tanstack router config for utils dir (40f1ca3)
  • dashboard Form control rendering (436c7b9)
  • dashboard Handle list relation custom fields properly (622ed04)
  • dashboard Improve single and multi-select handling in relation selector (807d055)
  • dashboard Improve styling of bulk select dropdown (#3635) (8efcaed), closes #3635
  • dashboard Make variant detail breadcrumbs context-aware (07c174c)
  • dashboard Remove duplicate export (c4ed056)
  • dashboard Update imports in hooks to fix typings (cd450ed)
  • dashboard Update Money component to use 'currency' prop (#3644) (aa517a6), closes #3644
  • dashboard Use dedicated @/vdb alias for imports (#3631) (a3d7f05), closes #3631

Features

  • dashboard Add custom ID filtering and fetching for relation selector (1bdc8cb)
  • dashboard Allow override of all detail form inputs (#3642) (bce0ec9), closes #3642
  • dashboard Enhance detail forms extension API with input and display components (#3626) (e6def00), closes #3626
  • dashboard Implement API to extend detail page queries (e83ad3b)
  • dashboard Implement bulk actions for collections (b85c7a5)
  • dashboard Implement collection channel bulk actions (332e6e2)
  • dashboard Implement extension of list query documents (5190e4f)
  • dashboard Implement product variant bulk actions (2f651b2)
  • dashboard Implement remaining bulk actions (#3627) (13989b9), closes #3627
  • dashboard Move collections UI (#3629) (a921e97), closes #3629
  • dashboard Order detail missing features (#3636) (183b8f3), closes #3636
  • dashboard Order modification (#3656) (8a15d89), closes #3656
  • dashboard Relation selector components (#3633) (d648ac1), closes #3633
  • dashboard Support compilation of external plugins (#3663) (e445bdb), closes #3663

Perf

  • core Optimize relation loading strategies for orders and order lines (#3652) (a04b94a), closes #3652

3.3.5 (2025-06-27)

Fixes

  • core Only use shipping address for tax zone determination (#3367) (8977d9f), closes #3367
  • cli Allow comments in tsconfig for the migrate command (#3604) (957c5e8), closes #3604
  • dashboard Add order property to navigation items for improved sorting (82a1b7f)
  • dashboard Enable tailwind processing of dashboard extension files (694d0dd)
  • dashboard Fix asset imports in built index.html (3ad6634)
  • dashboard Fix bulk editing of product facet values (943b71f)
  • dashboard Fix extension loading on Windows (bbaa3e9), closes #3593
  • dashboard Fix handling of Vite base option (f21a0b6)
  • dashboard Fix plugin detection from barrel files (aa12ac7)
  • dashboard Improve data table loading UX (2227598)
  • dashboard Only transform base path in build phase (3a031b3)
  • dashboard Update Vite plugin output directory to 'dist' for consistency (8526da9)
  • email-plugin Fix Dynamic smtp config require server restart to reflect changes (#3282) (d6d967d), closes #3282
  • job-queue-plugin Correctly list running jobs (391e314)
  • job-queue-plugin Do not throw on unknown job state (bb91f26)

Features

  • dashboard Add entity prop to detail pages for improved context (4c20cae)
  • dashboard Add relation field transformation (#3619) (caa18ac), closes #3619
  • dashboard Add support for monorepo setups (76759d9)
  • dashboard Confirmation on deletion from list views (d88a0a7)
  • dashboard Custom form components for custom fields (#3610) (155f376), closes #3610
  • dashboard Dashboard bulk actions (#3615) (39edc18), closes #3615
  • dashboard Implement tabbed interface for custom fields in forms (68af675)
  • dashboard Improve display of variant stock levels in lists (1ce87ed)
  • dashboard Respect base path of Vite config in router (7716ece)

3.3.4 (2025-06-19)

Fixes

  • core Add missing peer deps and docs (#3595) (36cf92b), closes #3595
  • core Call OrderInterceptor willRemoveItemFromOrder on removeAllItemsFromOrder (#3578) (#3592) (6c239bf), closes #3578 #3592
  • core Further stability improvement to default scheduler (664b919)
  • core Improve fault-tolerance of default scheduler (852cdce)
  • core Improve ProductOptionGroup soft-delete handling (#3581) (95d9417), closes #3581
  • core Product by slug query filters on channel (#3591) (357de30), closes #3591
  • core Safer access to queryRunner in transactions (5beb2fe), closes #3565
  • dashboard Allow customization of custom field columns (#3597) (f42085b), closes #3597
  • dashboard Fix bug preventing login screen from rendering (cc77ddf)

Features

  • dashboard Custom nav sections (#3598) (cbc0409), closes #3598
  • dashboard Enhance Vite plugin configuration for build output management (257bc03)
  • dashboard Support for custom fields in detail page component (#3599) (32314cc), closes #3599

Perf

  • job-queue-plugin Optimize list query for BullMQJobQueuePlugin (#3590) (208b87a), closes #3590

3.3.3 (2025-06-06)

Fixes

  • admin-ui Make product / variant cols link to detail pages in order table (#3552) (0fda452), closes #3552
  • core Export OrderableAsset (#3571) (e17aaf6), closes #3571
  • core Include custom fields on activePaymentMethods and activeShippingMethods queries (#3513) (bb4723d), closes #3513
  • core Update @nestjs/* packages version constraint (#3577) (1a8eece), closes #3577
  • dashboard Do not throw on compilation errors by default (b1df849)
  • dashboard Fix admin auth & channel selection bugs (#3562) (3b9c090), closes #3562
  • dashboard Fix default channel list columns (c552aa5)
  • dashboard Fix default column order (1e1dc8e)
  • dashboard Fix default column visibility (029dd31)
  • dashboard Fix issue with form not being marked dirty until second interaction (604cf4f)
  • dashboard Fix loading of server config on page refresh (66a7977)
  • dashboard Fix positioning of toasts (38785e7)
  • dashboard Fix render issues for asset & facet blocks (e14c457)
  • dashboard Improve responsiveness of form state (21dc4bf)
  • dashboard Improve styling of channel switcher (829513c)

Features

  • dashboard Add reset button for data table columns (5877ef5)
  • dashboard Implement adding new variants & product options (7646a4a)

3.3.2 (2025-05-28)

Fixes

  • core Create spans for method calls within same class (#3564) (a2721d1), closes #3564
  • core Enhance error handling for Error instances in logger (#3561) (a580e88), closes #3561
  • dashboard Authenticated status race condition (#3554) (58ac01b), closes #3554
  • dashboard Fetch channel info on login (81f6659)

3.3.1 (2025-05-20)

Fixes

3.3.0 (2025-05-12)

Fixes

  • dashboard Fix checkbox on DetailPage (f32d66d)
  • dashboard Fix Page component not rendering when used externally (3322fa1)
  • dashboard Fix some form validation issues (e811e99)
  • dashboard Fix some small issues with extensions, add docs (7dca28c)
  • dashboard Fix types for dashboard extensions (c6ade27)
  • dashboard Improve DetailPage component (c4c93a0)
  • dashboard Preserve Vite alias settings if set (d79ea77)
  • dashboard Prevent navigation blocker on creating entity (b5851d5)

Features

  • telemetry-plugin Add new @vendure/telemetry-plugin package
  • graphiql-plugin Add new @vendure/graphiql-plugin package
  • admin-ui Manual triggering of scheduled tasks (76d74e1), closes #1425
  • core Add scheduled task to clean up jobs from the DB (ed28280)
  • core Allow manual triggering of scheduled tasks (2a89b2a), closes #1425
  • core Apply Instrumentation to all services & key helper classes (4b3f526)
  • core Enhance cache service and SQL cache strategy with tracing support (374db42)
  • core Enhance scheduled task execution with RequestContext (c0b5902)
  • core Integrate tracing into ConfigService for enhanced custom fields logging (195132f)
  • core Tracing for job-queue (7a27428)
  • core Update tracing in AppModule to enhance middleware configuration logging (596846c)
  • create Update default tsconfig (ee40c50)
  • dashboard Add refresh button to data tables (891ff15)
  • dashboard Implement alert system with customizable alerts (13c8969)
  • dashboard Manual triggering of scheduled tasks (226730e), closes #1425

3.2.4 (2025-05-05)

Fixes

  • admin-ui-plugin Fix issue with sendFile and absolute paths (#3499) (62664cb), closes #3499
  • admin-ui-plugin Fix proxy-middleware v2 to v3 issue (#3507) (ae20be1), closes #3507
  • admin-ui-plugin proxy target template string (#3514) (8e6a991), closes #3514
  • admin-ui Relax rxjs dependency version (01b7375)
  • core Detect circular reference in collection ancestor tree (c427d8e)
  • core Enhance password validation strategy with maxLength option and set default maxLength (fbd3a94)
  • core Fix PaginatedList filtering by calculated property (7966978)
  • dashboard Fix several issues related to login/logout (7b3b917)
  • dashboard Fix some issues on order list/detail pages (fe0ceb4)
  • dashboard Improve compatibility of config loading (7cb3624)

3.2.3 (2025-04-17)

Fixes

  • admin-ui Fix missing product variant list tab (047eaa5)
  • core Align Express & types versions (ba4111b)
  • core Relax some express typings to prevent v4/v5 types conflicts (97e53d5)

3.2.2 (2025-04-03)

Fixes

  • dashboard Fix dashboard plugin publishing (65281e5f)

3.2.1 (2025-04-03)

Fixes

  • job-queue-plugin Respect custom prefix for BullMQ Redis keys (40f1cb8)
  • ui-devkit Silence sass warnings during compilation (724e849)
  • ui-devkit Update angular.json for v19 compatibility (1ac69a7)

3.2.0 (2025-04-02)

Fixes

  • admin-ui Fix build error (fbbcc3e)
  • admin-ui Fix incorrect pagination range (#3404) (1ee2d45), closes #3404
  • core Avoid variant options combination check on updateProductVariant mutation (#3361) (c820f42), closes #3361
  • core Fix progress reporting for collection filters job (3976148)
  • core Use correct precision for CacheItem.expiresAt (12e2db0)

Features

  • admin-ui Add Japanese UI translations (#3400) (d24964a), closes #3400
  • common Add exports field to package.json for module resolution (5623c2b)
  • core Add two new queries to get public payment and shipping methods (1aa75d5)
  • core Add two new queries to get public payment and shipping methods (5c7fe42)
  • core Add updateProductVariant mutation (0b854b4)
  • core Add verification token strategy (#3294) (9375ba2), closes #3294
  • core Update all major dependencies (#3445) (d376d83), closes #3445
  • harden-plugin Allow skipping complexity check in Harden Plugin (#3340) (0bef00b), closes #3340
  • job-queue-plugin Add support for job options Priority (90b5e05)

Perf

  • core Remove duplicated calls to promotion checks (e3508f3)

BREAKING CHANGE

  • If you are using the DefaultCachePlugin, then you should generate a migration that adds precision(3) to the expiresAt column. This will only affect cache records so no prod data will be affected by it.

3.1.8 (2025-03-31)

Fixes

3.1.7 (2025-03-06)

Fixes

  • admin-ui Fix broken Collection list & Order detail views (6a5bb90), fixes regression from #3368

3.1.6 (2025-03-06)

Fixes

  • core Fix FastImporterService when using stockOnHand (f97484c), fixes regression from #3288

3.1.5 (2025-03-06)

Fixes

  • admin-ui Fix incorrect tracking id on ProductOption's / ProductOption list per page switch (#3368) (33cfea6), closes #3368
  • core Fix fast-importer-service stock location (#3288) (59d6447), closes #3288
  • core Fix order cancellation when shipping has tax (#3393) (e753df9), closes #3393
  • core Fix server crash when subscribable job times out (7f851c3), closes #3397

3.1.4 (2025-02-28)

Fixes

  • admin-ui Fix app crash when user has unknown locale (a4c1de2), closes #3362
  • core Do not return deleted ProductOptionGroups (#3363) (1df1b7f), closes #3363
  • core Fix progress reporting for collection filters job (eaa8eb6)
  • core Fix struct custom field support on GlobalSettings (50a90e7), closes #3381
  • core Add missing "enabled" flag to CreateProductVariant input (#3377) (f5a0f99), closes #3377

Perf

  • core Remove duplicated calls to promotion checks (4407488)

3.1.3 (2025-02-14)

Fixes

  • admin-ui Improve display of OrderLine custom fields in form (4e92d85)
  • core Allow non-public customOrderLineFields in admin api (#3357) (becfe9d), closes #3357
  • core Fix undefined type issue with nested fragment spreads (#3351) (d0c0454), closes #3351

Perf

  • core Optimize payload of apply-collection-filters job (4157033)
  • core Optimize payload size for buffered jobs in DB (f81a908)
  • job-queue-plugin Optimize payload size for buffered jobs in Redis (7c72352)

3.1.2 (2025-01-22)

Fixes

  • admin-ui Add support for mac command key for selection manager (#3315) (c1cfb737)
  • admin-ui Add ProductVariantPrice custom fields ui inputs (#3327) (0d22b25), closes #3327
  • admin-ui Update Polish localization (#3309) (82787cf), closes #3309
  • common Contract multiple sequential replacers to just one in normalizeString (#3289) (f362a4b), closes #3289
  • core Clear previous line adjustments before testing order item promotions (#3320) (c970dea), closes #3320
  • core Fix schema error with readonly Address custom field (1bddbcc), closes #3326
  • core Improvements to Redis cache plugin (#3303) (b631781), closes #3303
  • core Include variant custom fields when duplicating a product (#3203) (69a1de0), closes #3203
  • create Specify Typesense Docker image version (fd6a9fd)
  • elasticsearch-plugin Improve search results (#3284) (b8112be0)
  • payments-plugin Fix null access error in BraintreePlugin (627d930)
  • payments-plugin Stripe plugin supports correct languageCode (#3298) (4349ef8), closes #3298

3.1.1 (2024-12-17)

Fixes

  • asset-server-plugin Correctly handle EXIF rotation on source files (#3260) (d606d7a), closes #3260 #3259
  • core Fix circular reference error in email sending job (02bcdba), closes #3277
  • core Fix serialization of ShippingMethod (0c122bc), closes #3277

3.1.0 (2024-12-04)

Features

  • admin-ui Improve facet selector with the code (#3175) (35892a5), closes #3175
  • admin-ui Integrate Vendure Assets Picker with ProseMirror and add single image selection (#3033) (18e5ab9), closes #3033
  • admin-ui Set default shipping and billing address for draft orders (#3196) (dec72e7), closes #3196 #2342
  • asset-server-plugin Implement ImageTransformStrategy for improved control over image transformations (#3240) (dde738d), closes #3240 #3040
  • core Add custom field support for Payment, Refund, ShippingLine, StockLevel, StockMovement, Session, HistoryEntry (1167102), closes #3044
  • core Add means to selectively ignore plugin compatibility errors (e362475), closes #2958
  • core Add OrderInterceptor API (#3233) (7706e35), closes #3233 #2123
  • core Add replicationMode for ctx and getRepository (#2746) (60cdae3), closes #2746
  • core Add StockLocationEvent (5cff832)
  • core Allow unsetting of shipping and billing addresses (#3185) (e0f2118), closes #3185
  • core Create a user from external authentication (#3005) (bb28d70), closes #3005
  • core Create Cache class for a more convenient caching API (a7ceb74), closes #3043
  • core Create PromotionLineAction (#2971) (0ff8288), closes #2971 #2956
  • core Enable hydration of translations relation (84710d5)
  • core Implement bulk versions of order operations (8d65219)
  • core Implement cache invalidation by tags (382e314), closes #3043
  • core Implement CacheStrategy and CacheService (489c9c0), closes #3043
  • core Implement caching for FacetValueChecker (3603b11), closes #3043
  • core Implement redis cache plugin (9d99593), closes #3043
  • core Implement support for struct custom field type (#3178) (dffd123), closes #3178
  • core Include address-based tax zone strategy (#3198) (5547128), closes #3198
  • core Initial DefaultCachePlugin implementation (9c2433f), closes #3043
  • core Introduce new default MultiChannelStockLocationStrategy (62090c9), closes #2356
  • email-plugin Allow specifying metadata for EmailSendEvent (#2963) (ac0baf9), closes #2963
  • payments-plugin Add option to StripePlugin to handle payment intent that doesn't have Vendure metadata (#3250) (ec934dd), closes #3250
  • payments-plugin Allow additional options on Stripe payment intent creation (#3194) (3f66216), closes #3194

Fixes

  • admin-ui Only update facetValueIds if changed (8f22ef8)
  • core Fix error in FacetValueChecker on nullish input (44aad49)
  • core Fix error with new session cache when seeding data (508f797)
  • core Update DefaultMoneyStrategy.round() Logic (#3023) (f43c204), closes #3023

Perf

  • core Improve efficiency of order merge (0a60ee9)

BREAKING CHANGE

  • A technically breaking change in this release is that we have corrected the default rounding logic:

    // v3.0
    return Math.round(value) * quantity;
    
    // v3.1
    return Math.round(value * quantity);
    

This makes order totals calculations much more "correct" as per most people's expectations, but it pointed out as a technically breaking change in the unlikely event that you rely on the old, less correct method of rounding.

  • If you are using the FacetValueChecker utility class, you should update your code to get it via the Injector rather than directly instantiating it.

Existing code will still work without changes, but by updating you will see improved performance due to new caching techniques.

- facetValueChecker = new FacetValueChecker(injector.get(TransactionalConnection));
+ facetValueChecker = injector.get(FacetValueChecker);

3.0.8 (2024-12-03)

Fixes

  • admin-ui Fix adding country to zone dialog (22eaf6c), closes #3212

3.0.7 (2024-12-02)

Fixes

  • admin-ui Preset filters preserve query parameters (#3176) (7a25bef), closes #3176
  • asset-server-plugin Fix issues with s3/minio file retrieval (8545267), closes #3217
  • core Fixed wrong join statement for variant on ProductVariantPrice (#3230) (#3231) (7798ddc), closes #3230 #3231
  • core Improve resolution of OrderLine.featuredAsset (#3177) (4530c81), closes #3177
  • payments-plugin False positive error logging fix in MolliePlugin (#3245) (adfbda6), closes #3245

3.0.6 (2024-11-15)

Fixes

  • admin-ui Fix collection product filter dark theme (#3172) (9f4eb9e), closes #3172
  • admin-ui Fix incorrect type when dealing with numeric value in list (#3094) (76d66c6), closes #3094 #3093
  • admin-ui Fix variant detail quick-jump component (#3189) (478989e), closes #3189
  • admin-ui Make registerPageTab work on 'order-list' location (#3187) (61d808b), closes #3187
  • admin-ui Refund order dialog is showing the wrong field for prorated unit price (#3151) (3777555), closes #3151
  • admin-ui Swedish translation adjustments (#3174) (a21f129), closes #3174
  • common Allow null on idsAreEqual function (#3171) (7bba907), closes #3171
  • core Added deprecation notices to the old refund input fields (#3119) (7324bb3), closes #3119
  • core Disallow deletion of default channel (#3181) (2ed3211), closes #3181
  • core Fix error on internal Administrator customFields (#3159) (e03b7f0), closes #3159
  • core Fix merging order with conflicting products using UseGuestStrategy (#3155) (f0607aa), closes #3155
  • core Fix returning stale data in Role Update Event (#3154) (71f85d2), closes #3154
  • payments-plugin Check for eligibility of Mollie method (#3200) (a12dedc), closes #3200
  • payments-plugin prevent false positive logging (#3195) (961297d), closes #3195
  • testing Make test client's fileUploadMutation work for more input variable shapes (#3188) (a8938f4), closes #3188

3.0.5 (2024-10-15)

Fixes

  • asset-server-plugin Fix local file read vulnerability when using the LocalAssetStorageStrategy (e2ee0c4). See the security advisory
  • admin-ui Fix theme & ui language switcher (c93589b), closes #3111
  • core Do not include deleted variants when indexing productInStock (#3110) (73cb190), closes #3110 #3109
  • core Fix coupon code validation across multiple channels (e57cc1b), closes #2052
  • core Fix filtering on list queries of tree entities (227da05), closes #3107
  • core Improve error message on populating without tax rates (7e36131), closes #1926

Features

3.0.4 (2024-10-04)

Fixes

  • admin-ui-plugin Implement rate limiting on static server (9516c71)
  • admin-ui Add padding to default relation custom field dropdown (02e68e0)
  • admin-ui Add support for custom fields on CustomerGroup list (7128a33)
  • admin-ui Enable selective loading of custom fields (9d7744b), closes #3097
  • admin-ui Fix bad locale detection regex (f336d7f)
  • admin-ui Lazy-load only selected custom fields in list views (690dd0f), closes #3097
  • admin-ui Unsubscribe from alerts when logging out (#3071) (f38340b), closes #3071 #2188
  • asset-server-plugin Do not return raw error message on error (801980e)
  • core Correctly parse numeric sessionDuration and verificationTokenDuration values (#3080) (98e4118), closes #3080
  • core Fix issues caused by f235249f (5a4299a)
  • core Fix RequestContext race condition causing null activeOrder (f235249), closes #2097
  • core Handle empty state for product and variant id filter (#3064) (9a03c84), closes #3064
  • core Prevent theoretical polynomial regex attack (9f4a814)
  • core Remove duplicate call in applyCouponCode resolver (bffc58a)
  • core Replace insecure randomness with secure randomBytes (cb556d8)
  • payments-plugin Use default channel in Stripe webhook calls to reach all orders (#3076) (8434111), closes #3076

Perf

  • core Fix performance when using FacetValue-based checks (a735bdf)
  • admin-ui List views only load the visible custom fields, closes #3097

3.0.3 (2024-09-11)

Fixes

  • admin-ui Display up to 3 decimal places in OrderSummary tax rate (13a1b21), closes #3051
  • core Fix regression in correctly setting OrderLine.featuredAsset (7d070f2)

3.0.2 (2024-09-10)

Fixes

  • admin-ui Fix removing coupon code from draft order (04340f1), closes #2969
  • core Fix search indexing issue when working with multiple channels (#3041) (75ed6e1), closes #3041 #3012
  • core Prevent exposure of private custom fields via JSON type (042abdb), closes #3049
  • elasticsearch-plugin Fix search multichannel indexing issue (9d6f9cf), closes #3012

Perf

  • core Fix slow order query for postgres v16 (1baa8e7), closes #3037
  • core Omit ID encode/decode step if default EntityIdStrategy used (ad30b55)
  • core Optimizations to the addItemToOrder path (70ad853)
  • core Optimize order operations (e3d6c21)
  • core Optimize resolution of featuredAsset fields (d7bd446)
  • core Optimize setting active order on session (c591432)

3.0.1 (2024-08-21)

Fixes

  • admin-ui Add missing and revise portuguese and brazilian portuguese translations (#3002) (9b5911f), closes #3002
  • admin-ui Fix overflow in channel assignment block (#2984) (0f8bdb5), closes #2984
  • admin-ui Make sku optional in create-product-variant-dialog (#3007) (13fe069), closes #3007 #2999
  • admin-ui Use correct 24hr format for locale in dates (#2972) (f078b41), closes #2972 #2970
  • core Allow fulfillment creation with deleted product variants (#2982) (752c2b6), closes #2982 #2434
  • core Fix EntityHydrator error on long table names (#2959) (bcfcf7d), closes #2959 #2899
  • core Fix NaN error thrown when modifying pro-rated discounted OrderLine to 0 (#3009) (fa50770), closes #3009
  • core Make firstName and lastName required in CreateCustomerAndUser method (#2996) (0d8054d), closes #2996
  • core Resolve User.roles field in GraphQL APIs (#3011) (8f99b2d), closes #3011
  • core Return type of collection breadcrumb was missing slug (#2960) (620eeb1), closes #2960
  • create Dynamically find open port if 3000 in use (a40fbb1)
  • create Fix typo (#2994) (999e89e), closes #2994
  • create Update EmailPlugin config to use templateLoader API (6708440), closes #2981
  • payments-plugin Fix Mollie not calling webhook on updated orders (#3014) (694845f), closes #3014 #2941
  • payments-plugin Mollie - add missing request when settled amount is 0 (#2993) (afd6435), closes #2993

Perf

  • core Improve hydrator performance for customFields (#2961) (f40761d), closes #2961
  • core Refactor applyCollectionFiltersInternal method to improve performance (#2978) (6eeae1c), closes #2978

3.0.0 (2024-07-17)

Note: the changes in this release are identical to v2.3.0.

Features

Fixes

  • core Add usage check of nested custom property filters in ListQueryBuilder (#2939) (05cfc9d), closes #2939
  • core Copy tax category on product duplication (#2947) (2f0521c), closes #2947
  • core Update DefaultSearchPlugin indexer controller to avoid TypeORM memory leak (#2883) (ee2c177), closes #2883

Perf

  • core Improve performance of role query with many channels (fe3e455), closes #2910

BREAKING CHANGE: All core Vendure packages are now licensed under the GPL v3.0 license. See LICENSE.md and the License FAQ.

2.x

Changelogs for versions prior to v3.0.0 can be found in the CHANGELOG_v2.md and CHANGELOG_v1.md files.