tomatophp/filament-ecommerce
Build a full ecommerce store inside FilamentPHP with Tomato CMS Builder. Manage products with variants, images, and multilingual content, plus orders, shipping, coupons, gift cards, referrals, and multi-company branches. Includes order logs, status actions, receipts, exports, and imports.
view ability on TomatoPHP\FilamentEcommerce\Models\Order), which means the package now leans harder into native Laravel authorization. Teams using Filament Shield get policy generation for free; teams with bespoke permission models must wire this explicitly. This is a net architectural improvement (standard Laravel gate/policy semantics) but introduces a hard dependency on policy registration for admin functionality.ProductResource).Order policy to control print access.Order policy view ability. Without a registered policy for TomatoPHP\FilamentEcommerce\Models\Order, printing will stop working for existing installs. Mitigation: run php artisan make:policy (or use Filament Shield’s generator), implement view, and test print flows in staging before rollout.filament-ecommerce.print (enabled, middleware, expires). Misconfiguration (e.g., enabled=false, restrictive middleware, or a very short expires) will silently degrade printing. Teams behind proxies/CDNs must confirm signed URLs are generated against the externally reachable host.filament-accounts-model) could clash with existing schemas. Use --force cautiously or review migrations pre-install.filament-cache:clear tags), offload static assets to a CDN, and use queue workers for order processing. Signed print URLs add negligible overhead but should not be minted in bulk loops.Order policy — Filament Shield (auto-generated) or a hand-rolled permission model? Is view mapped to the correct roles (fulfillment staff, support, finance)?expires window and middleware config accommodate their access patterns?APP_KEY and config parity across instances so signed print URLs validate everywhere.Order policy needed for printing).users table).APP_KEY, host/domain, and trusted-proxy config across all nodes so temporary signed print URLs work behind load balancers.composer require filament/filament:"^3.0"), then set up Filament auth (filament:install).composer require tomatophp/filament-ecommerce
# or, for existing installs:
composer update tomatophp/filament-ecommerce
Publish required migrations (MediaLibrary, Laravel Settings, settings hub, accounts model), then run the installer:
php artisan filament-ecommerce:install
Order policy with a view ability. If using Filament Shield:
php artisan shield:generate --resource=TomatoPHP\\FilamentEcommerce\\Models\\Order
Otherwise create the policy manually and register it (Laravel 10+ auto-discovery, or explicitly in AuthServiceProvider).config/filament-ecommerce.php → print.enabled, print.middleware, print.expires. Align expires with how long staff/emails need link validity.APP_URL, TrustProxies).ProductResource), override Tomato CMS templates if used, configure payment gateways (Stripe keys in .env).@include('filament-ecommerce::...').^1.1.3 once policy and print config are validated; do not roll forward to production without the policy in place.Order policy, publish/tune filament-ecommerce.print config, verify signed URL host generation, regression-test printing and cart totals. This unblocks all subsequent work.filament-ecommerce, configure core features (products, orders, customers).products, validate signed-URL behavior under load.composer update.Order policy becomes a maintained artifact. Ensure it survives refactors, is covered by tests, and is included in any Filament Shield regeneration workflow.filament-ecommerce.print should live in version-controlled config with documented rationale for expires and middleware values.print.enabled=false, or expired links. Publish an internal runbook with triage steps.APP_KEY and consistent URL generation so print links validate regardless of which node serves the request.Order policy → all print links 403. Mitigated by Phase 0 remediation and a staging smoke test.print.enabled=false or over-restrictive middleware blocks legitimate requests. Mitigated by config review and monitoring print endpoint error rates.expires values break emailed/queued print workflows. Mitigated by aligning expiry with actual usage patterns.How can I help you explore Laravel packages today?