Added
- PR2614 – feat(products): add a Tag filter to the Products list
- PR2617 – feat(filters): let plugins supply a filter group's values
Changed
- PR2649 – refactor(core): leave plugin-owned product types to their plugins
- PR2650 – chore(core): remove plugin-type layouts and strings core no longer uses
Fixed
- PR2603 – fix(onboarding): show the en-US install result and keep step-1 defaults
- PR2604 – fix(emails): use the [ORDERID] tag in the built-in order email strings
- PR2607 – fix(setup-guide): keep dismissals across Options saves, add Disable Setup Wizard
- PR2608 – fix(setup-guide): Disable Setup Wizard also hides the Setup Guide toolbar button and panel
- PR2610 – fix(subtemplate): inherit the store Subtemplate when the menu item names none
- PR2611 – fix(router): resolve a Category Alias to its own products menu first
- PR2613 – fix(filters): honour Vendor Filter List Type on product listings
- PR2615 – fix(filters): accessible active-filter chips and result-count updates
- PR2618 – fix(templates): json_encode gallery and option script values
- PR2619 – fix(orders): correctly fold payment-surcharge tax into order totals and tax display
- PR2620 – fix(product price): timezone shift
- PR2623 – fix(filters): per-group Clear controls as buttons
- PR2624 – fix(templates): emit the option id as a number in the uikit option script
- PR2625 – fix(filters): show per-group Clear when its group has a selection
- PR2626 – fix(filters): render the uikit filter form once
- PR2627 – fix(content): route flexivariable shortcode options correctly, add upc, group price/sku/upc
- PR2628 – fix(filters): mobile Clear all stays in place; name the off-canvas panel
- PR2630 – fix(dashboard): stop the notices carousel jumping when rotation toggles
- PR2631 – fix(confirmation): hide Continue Shopping when no destination is configured
- PR2632 – fix(content): add a Hide option for the product block on category views
- PR2635 – fix(router): answer 404 for an unavailable products category
- PR2636 – fix(orders): drop the "Order Note" label from order history rows
- PR2637 – Fix(shipping rates): added cache headers to prevent changes from being hidden
- PR2638 – Fix(email templates): images containing spaces are broken
- PR2639 – fix(a11y): keep checkout focus and label the phone input
- PR2640 – Fix double double-escaped &Itemid= in the cart form action and throughout the extension
- PR2641 – fix(content plugin): added getArticleLink to link to the article properly when in com_content context
- PR2642/2645 – Fix(email templates): added function setJ2cBodyField to keep TinyMCE's internal buffer in sync with the visual editor
- PR2643 – fix(a11y): announce coupon errors, focus checkout step headings, label phone and address fields
- PR2644 – fix(coupons): send translated text with coupon and voucher error events
- PR2646 – fix(plugins): treat a Default plugin subtemplate like Auto in PluginLayoutTrait
- PR2647 – feat(core): resolve product-type families through one extensible registry
- PR2648 – perf(products): resolve product type labels once per request
- PR2651 – fix(products): resolve variant list layouts through plugin-registered product form paths
- PR2652 – fix(products): return 403 for a category outside the visitor's view levels
- PR2653 – fewer Queries on Product Listings