Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@vendure/cli

vendure-ecommerce15.9kGPL-3.0-or-later3.4.1TypeScript support: included

A modern, headless ecommerce framework

vendure, ecommerce, headless, graphql, typescript

readme

Vendure logo

Vendure

Own Your Commerce. Build Without Workarounds. Ship Faster.

Documentation | Website

Vendure is released under the GPLv3 license. Follow @vendure_io Join our Discord PRs welcome!

What is Vendure

Vendure is an open-source headless commerce platform built with TypeScript and Node.js. It provides a robust foundation for building enterprise-grade digital commerce applications with exceptional scalability and maintainability.

  • Built for heavy customization: Extensible plugin architecture allows you to tailor every aspect of your commerce solution
  • Modern, AI-optimized tech stack: Built on TypeScript, Node.js, NestJS, and GraphQL for outstanding performance and developer experience
  • Headless architecture: API-first design enables seamless multichannel commerce across any frontend
  • Enterprise-ready: Trusted by thousands of teams worldwide, from startups to Fortune 500 companies
  • Rich feature set: Comprehensive out-of-the-box functionality with customizable admin dashboard and commerce framework

Whether you're building a B2B platform, multi-vendor marketplace, or D2C storefront, Vendure provides the flexible foundation to create unique commerce experiences tailored to your business needs.

Getting Started

Visit our Getting Started guide to get Vendure up and running locally in less than 2 minutes with a single command.

Need Help? Our community is here to help, join our Discord for support and discussions!

Upgrades & Plugins

New updates get released on a bi-weekly cadence, check out our release notes to keep up-to-date with the latest releases.

Have a look at all of our ready-made Vendure plugins.

Contribution

Contributions to Vendure are welcome and highly appreciated! Whether you're fixing bugs, adding features, or improving documentation, your help makes Vendure better for everyone.

Our Contribution Guide is covering everything from setting up your development environment to submitting your first pull request.

Ready to get started? Check out these issues for a good first task to start!

License

Licensed under the GPLv3 license. Commercial license (VCL) available.

changelog

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

  • admin-ui Fix product variant list location (#3410) (5082cc9), closes #3410
  • core Eligible payment methods must be enabled (#3406) (45852ea), closes #3406
  • job-queue-plugin Fix ignored values from BullMQ workerOptions (#3440) (a9aea24), closes #3440

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

  • create Improved getting started experience (#3128) (adb4384), closes #3128

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

  • admin-ui Add support for tabs on custom UI routes (26b4ea5)
  • admin-ui Enable useQuery hook to refetch on channel change (#2869) (3d516ea), closes #2869
  • core Add RefundEvent & publish on Refund creation (#2832) (cb08427), closes #2832 #2830
  • core Enable inherit resolvers from interfaces (#2800) (1069b3b), closes #2800
  • core Make Refund process configurable (#2942) (c8f1d62), closes #2942
  • core Publish event when OrderLine cancelled (#2829) (213a26b), closes #2829
  • create Support SSL enforced PostgreSQL databases (#2905) (65b4f3c), closes #2905
  • email-plugin Add support for computed email subject (#2863) (e546f24), closes #2863
  • email-plugin Support dynamic globalTemplateVars (#2950) (cab67b6), closes #2950 #2933
  • ui-devkit Support pnpm to build UI extensions (#2877) (37e6a35), closes #2877

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.