What’s new
A new admin panel
Lunar 2.0 ships a new first-party admin panel built on Inertia.js and Vue, published aslunarphp/panel. It covers the full catalog, sales, and settings surface, adds a customizable widget dashboard, global search, autosaved edit drafts with conflict detection, and mandatory two-factor authentication for staff. It is extended through a PHP Section API paired with Vue components, so add-ons can register pages, table columns, slots, widgets, and search sources without touching panel source.
The Filament-based admin from v1 remains available as lunarphp/admin for projects that prefer it. See the admin panel introduction for how the packages relate.
Core changes
- Fulfilments — orders are now fulfilled through dedicated fulfilment records with methods, carriers, and tracking. See Fulfilments.
- Inventory — stock is tracked per variant per location, with movements, reservations, and reconciliation. See Inventory.
- Regions — a new concept grouping channel, currency, language, and tax behavior for a market. See Regions.
- Storefront context — a single session-backed context feeds pricing and availability. See Storefront Session.
- Pricing engine — prices flow through a dedicated
PriceValuetype and a fluent pricing API. See Pricing. - Cleaner extension model — the
Lunar\Core\...namespace, verb methods on models backed by swappable action contracts, and container bindings in place of config-based class substitution. See Extending Lunar.
Upgrading from 1.x
The newlunarphp/upgrade package automates much of the move: Rector rules rewrite namespaces and renamed APIs, and guided data migrations transform a v1 database. The upgrade guide walks through the full process and the manual checklist.