The second beta of the 1.5 cycle is now available, building onDocumentation Index
Fetch the complete documentation index at: https://docs.lunarphp.com/llms.txt
Use this file to discover all available pages before exploring further.
1.5.0-beta.1 with framework updates, new shipping features, and a sweep of bug fixes.
Framework support
Laravel 13, PHP 8.3+
Lunar 1.5 now requires Laravel 12 or Laravel 13 and PHP 8.3 or later. Laravel 11 and PHP 8.2 have reached end of life and are no longer supported. See the installation requirements and the upgrade guide for the full list of changes.Table Rate Shipping
This beta introduces several improvements to the Table Rate Shipping add-on.Availability schedules
The single dailycutoff time on shipping methods has been replaced by a richer availability schedule, allowing finer control over when each method is offered. A migration drops the cutoff column; existing cutoff times are migrated automatically.
Min and max weight
Shipping methods can now define optional minimum and maximum cart weights. Methods whose constraints are not met are excluded from the rate resolver’s results.Per-currency base prices
Shipping rates now support a base price per currency, not just the store’s default currency.Shipping discount type
A newLunar\Shipping\DiscountTypes\ShippingDiscount discount type targets the shipping portion of the cart. Discounts can replace the price for specific shipping methods (or all methods) with a fixed value per currency or a percentage off — enough to express common scenarios like free shipping or flat-rate promotions.
Callable tax rate calculator
Theshipping_rate_tax_calculation config now accepts a callable for projects that need bespoke logic to determine the shipping tax class.
See Table Rate Shipping for the full updated documentation.
Core changes
- The
card_typecolumn on thetransactionstable is now nullable and no longer length-constrained. - Cart retrieval now prefers the latest unmerged active cart, avoiding a case where merged source carts could be selected after login/logout cycles.
- Buy X Get Y discounts now record their use in
$cart->discountsso usage tracking works correctly.