Skip to content

v3.0.0-beta.1

Pre-release
Pre-release

Choose a tag to compare

@mckenziearts mckenziearts released this 24 Jun 22:29
9cf53f4

Caution

This is a beta release of the framework. Breaking changes may be introduced to v3 releases during the beta period.

Shopper 3.0 is the first major release built on Filament 5 and Laravel 13. It introduces the public Store API and a JavaScript SDK, a redesigned admin shell with theme tokens, a full promotion engine, and a dedicated upgrade package to move 2.x projects forward.

Installation

"minimum-stability": "beta",
"prefer-stable": true
composer require shopper/framework:^3.0.0-beta

Highlights

Store API and JavaScript SDK

The flagship of 3.x. A public, headless Store API built on JSON:API, served by two new packages: shopper/api (endpoints, resources) and shopper/http (HTTP infrastructure). Coverage includes catalog, geo (countries, zones, currencies), customer authentication and accounts, guest and customer carts, promotion codes on carts, shipping options, and checkout, payment and orders. Product resources are shaped by product type and expose catalog stock. A first-party JavaScript SDK (@shopperlabs/shopper-sdk) and generated TypeScript types (@shopperlabs/shopper-types) consume the API directly.

Filament 5 and Laravel 13

The admin panel migrates from HasForms to HasSchemas, adopts Filament 5 patterns end to end, and adds Laravel 13 support (range 11, 12, 13 on PHP 8.3 and 8.4).

Redesigned v3 admin shell

A full-width header shell with a theme token system, admin theme selection, dynamic breadcrumbs with sidebar auto-detection, grouped settings navigation with a split layout, a reworked product edit navigation shell, a customers shell with inline stats, reviews page polish, theme-aware empty-state illustrations, and a session expired modal replacing the native 419 prompt.

Promotion engine

Campaigns with parent grouping, stacking rules, and automatic promotions, with a reworked discount create and edit UI that persists items synchronously.

Upgrade package for 2.x to 3.x

shopper/upgrade ships a shopper:upgrade orchestrator command, a Rector ruleset for class renames, Boost skills for the remaining breaking changes, and a permissions dot-notation migration command.

Permissions and authorization hardening

Permissions migrate to dot notation with domain-based grouping. Explicit, fine-grained permission checks are enforced across Filament actions and Livewire mutations, including destructive variant, attribute and tag actions.

New Features

Improvements

  • refactor: migrate from HasForms to HasSchemas (Filament 5) by @mckenziearts in #465
  • refactor: split TwoFactorAuthenticatable into SOLID interfaces and traits by @mckenziearts in #467
  • refactor(onboarding): replace Spatie wizard with a native Filament wizard by @mckenziearts in #530
  • refactor(admin): settings pages polish with reusable components and tabs by @mckenziearts in #506
  • feat(discounts): rework create and edit UI and persist items synchronously by @mckenziearts in #533
  • refactor: replace internal slide-over with laravelcm/livewire-slide-overs by @mckenziearts in #470
  • refactor: allow attributes on virtual products by @mckenziearts in #482
  • refactor: make gender field optional across the application by @mckenziearts in #479

Bug Fixes

  • fix(admin): enforce fine-grained permissions on destructive variant, attribute and tag actions by @mckenziearts in #572
  • fix(admin): enforce explicit permissions on remaining Filament actions and Livewire mutations by @mckenziearts in #575
  • fix: dedupe discountables, fix shipment slide-over and stepper by @mckenziearts in #576

Breaking Changes

This is a major release with breaking changes across Filament 5, permissions, and renamed classes. Run the upgrade package on your 2.x project:

composer require shopper/upgrade --dev
php artisan shopper:upgrade

It applies the Rector ruleset for class renames, migrates permissions to dot notation, and surfaces the remaining manual steps via Boost skills.

Contributors

Full Changelog: v2.9.2...v3.0.0-beta.1