Solidus
- Add changelog and source code URI to gemspec by @zirni in #6364
- Require Ruby 3.2 by @AlistairNorman in #6413
- Switch to standardrb by @AlistairNorman in #6421
Solidus Core
- Require Ruby 3.2 by @AlistairNorman in #6413
- Switch to standardrb by @AlistairNorman in #6421
- Fix shipment adjustments not persisting on order recalculate by @Noah-Silvera in #6334
- Fix misnamed shipping_categories table in 4.6.0 migration comment by @Noah-Silvera in #6341
- Configurable stock quantifier by @mamhoff in #6335
- Allow optional passing of options to calculators by @mamhoff in #6346
- Prevent merging of non-frontend-viewable orders by @Noah-Silvera in #6362
- [Admin][Products] Product option types list by @chaimann in #6283
- Fix Rubocop offenses for November 2025 by @mamhoff in #6372
- Rename order updater methods to better reflect behaviour by @Noah-Silvera in #6368
- Remove
inverse_offrom Spree::Adjustment#order by @mamhoff in #6373 - Autosave changed shipping rates by @mamhoff in #6374
- Improve order updater test coverage by @AlistairNorman in #6377
- feat: Allow to overwrite track_state_change? by @tvdeyen in #6380
- feat: Make state change tracker a configurable class by @tvdeyen in #6375
- Build discounted linte items in memory by @forkata in #6385
- Mark non-applicable promotion adjustments for destruction by @forkata in #6382
- Configurable Order Mergeable Scope by @ThuktenSingye in #6384
- Allow to recalculate cart prices by @mamhoff in #6399
- Fix Sprockets Dependency by @jarednorman in #6404
- Allow Rails 8.1 by @AlistairNorman in #6409
- Fix return item initialization in backend by @forkata in #6411
- Remove product filters require by @forkata in #6408
- Fix linting by @AlistairNorman in #6420
- Require Rails 7.2 by @AlistairNorman in #6414
- Add tax_category_id method to Spree::Product by @sascha-karnatz in #6423
- In-memory order updater by @benjaminwil in #5872
- Fix order walkthrough for iso uniqueness by @AlistairNorman in #6432
Solidus Admin
- Require Ruby 3.2 by @AlistairNorman in #6413
- Switch to standardrb by @AlistairNorman in #6421
- [Admin][Products] Product option types list by @chaimann in #6283
- Fix Rubocop offenses for November 2025 by @mamhoff in #6372
- Fix linting by @AlistairNorman in #6420
- In-memory order updater by @benjaminwil in #5872
- Fix sandbox lookbook installation by @AlistairNorman in #6417
Solidus Backend
- Require Ruby 3.2 by @AlistairNorman in #6413
- Switch to standardrb by @AlistairNorman in #6421
- Fix Sprockets Dependency by @jarednorman in #6404
- Fix return item initialization in backend by @forkata in #6411
- Fix linting by @AlistairNorman in #6420
Solidus API
- Require Ruby 3.2 by @AlistairNorman in #6413
- Switch to standardrb by @AlistairNorman in #6421
- Fix linting by @AlistairNorman in #6420
Solidus Sample
- Require Ruby 3.2 by @AlistairNorman in #6413
- Switch to standardrb by @AlistairNorman in #6421
Solidus Promotions
- Require Ruby 3.2 by @AlistairNorman in #6413
- Switch to standardrb by @AlistairNorman in #6421
- Allow optional passing of options to calculators by @mamhoff in #6346
- Autosave changed shipping rates by @mamhoff in #6374
- Improve order updater test coverage by @AlistairNorman in #6377
- Build discounted linte items in memory by @forkata in #6385
- Mark non-applicable promotion adjustments for destruction by @forkata in #6382
- Fix linting by @AlistairNorman in #6420
- In-memory order updater by @benjaminwil in #5872
- Refactor: Move rounding to promotion calculator module by @mamhoff in #6332
- Promotions Percent Calculator: Allow fractional percent by @mamhoff in #6330
- Promotions: First Order condition must not fail on canceled orders by @mamhoff in #6343
- feat(Promotion): Make ordered lanes an array by @tvdeyen in #6345
- Flat Rate calculator: Do not override #compute by @mamhoff in #6349
- DistributedAmount Calculator: Add YARD docs by @mamhoff in #6350
- FlexiRate calculator: Add YARD docs by @mamhoff in #6351
- Fix percent calculator dispatch by @mamhoff in #6352
- Add YARD docs to TieredFlatRate promo calculator by @mamhoff in #6353
- Add yard docs to solidus promotions condition by @mamhoff in #6358
- Add YARD docs to SolidusPromotions::Benefit by @mamhoff in #6359
- Improve promotion condition API by @mamhoff in #6360
- Refactor tiered calculators by @mamhoff in #6354
- Deprecate promotion "level" by @mamhoff in #6357
- Create single-responsibility conditions for products, taxons, and option values by @mamhoff in #6363
- Move shared examples for promo calculators to lib/ by @mamhoff in #6367
DiscountOrder: Use#filter_mapeverywhere by @mamhoff in #6369- Fix line item option condition params by @manleyac in #6233
- Coupon Code Case Sensitive by @ThuktenSingye in #6331
- Make OrderRecalculatorPatch prepend explicit by @AlistairNorman in #6376
- Promotions: Fix default calculator fields partial bug and make PercentWithCap calculator available in the UI by @mamhoff in #6381
- Remove benefit "level" mixins by @mamhoff in #6378
- Allow promotion conditions to work with in-memory line items, improve performance by @mamhoff in #6383
- Add
#discounted_amountby adjustments by @mamhoff in #6379 - Discountable amounts by adjustments by @mamhoff in #6371
- Allow promotion calculators to set dynamic adjustment labels by @mamhoff in #6398
- OrderPromotions: Validate promotion uniqueness per order by @mamhoff in #6424
- Change promotion condition configuration to be flat by @mamhoff in #6425
- Allow strikethrough prices to be calculated for variants by @mamhoff in #6287
- Promotions: Fix eligibility calculation in dry runs by @mamhoff in #6429
Full Changelog: v4.6.0...v4.7.0