sylius/shipping component aligns well with modular Laravel architectures (e.g., DDD, Hexagonal, or component-based designs). Its decoupled models (Shipment, ShippingMethod, ShipmentUnit, etc.) can be integrated as a standalone service layer without tight coupling to Sylius’s full-stack framework.ShipmentCreated, ShippingMethodSelected) can integrate with Laravel’s event system or queues for async workflows.Shipment → app/Models/Shipment).ShippingMethodRepository) to implementations.shipments, shipment_units, shipping_methods, shipping_rules).sylius_resource bundle adds metadata tables; Laravel’s resourceful controllers can bypass this if using API-only.ExpressionLanguage, Workflow). Laravel’s standalone Symfony packages (e.g., symfony/expression-language) can mitigate this, but version alignment may require careful composer.json management.DatabaseMigrations, DatabaseTransactions) would need adaptation.Shipment::with('units.methods')) must be replicated in Laravel to avoid performance pitfalls.Shipment, ShippingMethod).ShippingMethodRepository) to Laravel’s bindings in AppServiceProvider.ShipmentCreatedEvent) to Laravel’s event system or queues (e.g., ShipmentCreated::dispatch())./api/shipments/{id}/methods).symfony/expression-language via Composer.symfony/workflow and configure in Laravel’s config/workflow.php.sylius/validator for form requests.refreshDatabase()).Phase 1: Proof of Concept (PoC)
sylius/shipping to composer.json (with Symfony dependencies).app/Models/Shipment).GET /api/shipments/1/methods).Phase 2: Core Integration
ShippingMethodRepository).ShipmentCreated → ShipmentCreated::dispatch()).GET /api/shipments/{id}/methods).POST /api/shipments/{id}/calculate).POST /api/shipments).Phase 3: Advanced Features
How can I help you explore Laravel packages today?