- 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
- 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
- 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
- core Improve efficiency of order merge (0a60ee9)
- 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 theInjector
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);
- 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
- 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
- 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
- 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
- core Fix performance when using FacetValue-based checks (a735bdf)
- admin-ui List views only load the visible custom fields, closes #3097
- admin-ui Display up to 3 decimal places in OrderSummary tax rate (13a1b21), closes #3051
- core Fix regression in correctly setting OrderLine.featuredAsset (7d070f2)
- 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
- 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)
- 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
- core Improve hydrator performance for customFields (#2961) (f40761d), closes #2961
- core Refactor applyCollectionFiltersInternal method to improve performance (#2978) (6eeae1c), closes #2978
Note: the changes in this release are identical to v2.3.0.
- 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
- 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
BREAKING CHANGE: All core Vendure packages are now licensed under the GPL v3.0 license. See LICENSE.md and the License FAQ.
Changelogs for versions prior to v3.0.0 can be found in the CHANGELOG_v2.md and CHANGELOG_v1.md files.