artisanpack-ui / ecommerce-storefront-livewire
Livewire storefront for the ArtisanPack UI ecommerce engine.
Package info
github.com/ArtisanPack-UI/ecommerce-storefront-livewire
pkg:composer/artisanpack-ui/ecommerce-storefront-livewire
Requires
- php: ^8.3
- ext-intl: *
- artisanpack-ui/core: ^1.0
- artisanpack-ui/ecommerce: ^1.1
- artisanpack-ui/hooks: ^1.2
- artisanpack-ui/livewire-ui-components: ^2.1
- artisanpack-ui/security: ^1.0.3|^2.0
- illuminate/support: ^12.0|^13.0
- livewire/livewire: ^3.6|^4.0
Requires (Dev)
- artisanpack-ui/code-style: ^1.1
- artisanpack-ui/code-style-pint: ^1.1
- dealerdirect/phpcodesniffer-composer-installer: ^1.0
- friendsofphp/php-cs-fixer: ^3.75
- laravel/pint: ^1.26
- orchestra/testbench: ^10.2|^11.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-browser: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
- pestphp/pest-plugin-livewire: ^4.0
Suggests
- artisanpack-ui/cms-framework: Theme-aware visual-editor template resolution for storefront pages.
- artisanpack-ui/media-library: Responsive product, variant, and category images from the media library's conversions.
- artisanpack-ui/seo: Meta tags and JSON-LD through the SEO package's schema collector (^1.4).
- artisanpack-ui/visual-editor: Commerce blocks (product grid, single product, add to cart, cart contents, checkout steps, and more) and editable product/category templates (^1.8).
Provides
None
Conflicts
Replaces
None
README
The customer-facing storefront for the ArtisanPack UI ecommerce engine: catalog, product pages, cart, checkout, customer accounts, guest order lookup, and search, built with Livewire on livewire-ui-components. With visual-editor installed it also ships commerce blocks and editable product and category templates.
The storefront calls the engine's services in-process and owns no tables. Its routes work right after install, and every screen is also a Livewire component you can embed in your own pages.
Features
- Catalog and product pages: Filters with facet counts, sorting, and pagination kept in the query string; category and tag pages; purchase forms for simple, variable, grouped, bundled, and digital products; reviews; related products, upsells, and cross-sells.
- Cart: A cart page with coupons and a shipping estimate, a header cart button, and a slide-out cart drawer.
- Checkout: A multi-step wizard or a single page, chosen by the store owner. Guest checkout rules, optional account creation, and idempotent order placement.
- Payments: A Stripe Payment Element driver, a redirect driver, and a registry for other gateways' payment UIs. Card data never enters Livewire state.
- Accounts: Order history and detail, address book, downloads and licence keys, profile and notification preferences, and claiming guest orders.
- Guest order lookup and search with facets and live header suggestions.
- Visual-editor blocks and templates when
artisanpack-ui/visual-editoris installed. - Extension points: Registries for purchase forms and payment drivers, and filters for catalog filters and sorts, product sections, cart sections, checkout steps, and header actions.
- Accessible and translated: Targets WCAG 2.2 AA, checked with axe and keyboard tests in a real browser. Ships English, Spanish, French, and German.
Requirements
- PHP 8.3+ with the
intlextension - Laravel 12 or 13
- Livewire 3.6+ or 4
artisanpack-ui/ecommerce1.1+artisanpack-ui/livewire-ui-components2.1+, with Tailwind CSS and daisyUI in the host app
Installation
composer require artisanpack-ui/ecommerce-storefront-livewire php artisan ecommerce-storefront:install
The service provider is auto-discovered and registers the package with the engine's satellite registry. The install command publishes the config, prints the Tailwind @source lines and the layout snippet, and warns when it finds no sign-in or registration routes or no configured payment gateway.
Add the @source lines to your stylesheet, then open /shop. For a demo store:
php artisan ecommerce:seed-demo
To use your own layout, point storefront.layout at it and include the global partial (cart drawer, toasts, and cart merge prompt):
@include( 'ecommerce-storefront::partials.global' )
See Layouts for the full layout contract and for Blade component layouts.
Documentation
- Getting Started
- Installation: requirements, configuration, front-end setup, layouts
- Usage: screens
- Checkout: layouts, guest checkout, account creation, payment drivers
- Visual Editor: blocks, templates and patterns
- Extending: embedding components, Blade components, hooks reference
- Accessibility, Localization, SEO
- Advanced: Artisan commands, performance, browser tests
Testing
composer test # Unit and Feature suites composer test:browser # Browser suite; run npm ci and npx playwright install chromium first composer lint
Contributing
As an open source project, this package is open to contributions from anyone. Please read through the contributing guidelines to learn more about how you can contribute to this project.
License
MIT. See LICENSE.