sylius/sales-bundle
Sylius Sales Bundle provides the core sales order model and processing logic for the Sylius e-commerce platform, including orders, order items, adjustments, and order state handling—a foundational component for building flexible online stores and custom checkout workflows.
composer require.total column; derived totals recomputed on every state transition; order-item units (one row per quantity) so partial refunds, partial shipments, and partial discounts don't require invented refunded_quantity columns. These map cleanly onto Eloquent tables and are the deliverable from reading the source.Adoption criteria (deliberately narrow):
composer.json.When to look elsewhere (i.e., almost always):
symfony/workflow works standalone, or a lightweight Laravel states package). This bundle is not a candidate.Hard disqualifiers regardless of context: archived and read-only status, no maintainers, no dependents, and a Symfony 2.x baseline that will not resolve against a modern PHP runtime.
To executives: This is an archived, read-only component of a legacy PHP e-commerce framework, last relevant in the Symfony 2 era. It costs nothing and it is worth nothing as a dependency — adopting it means owning unmaintained code with no security patches and no one to call when it breaks. The real decision it surfaces is small and unavoidable: if we need order management, we either pay for a maintained platform or fund a focused in-house build. Recommendation: do not adopt; record it as a reference artifact, and if it already appears in our stack, add a migration line item to the roadmap.
To engineering: Treat sylius/sales-bundle as documentation. Its durable contribution is the domain shape — order and order-item aggregates, per-quantity order item units for partial refunds and shipments, adjustments as the uniform mechanism for discounts and fees, derived totals recomputed on every transition, and an explicit order state machine. That is worth a day of reading during design. It is not worth a Composer entry: it targets Symfony 2.x, is archived and read-only, has no dependents, and will not resolve cleanly against current PHP or Symfony. On Laravel, none of the runtime applies — build the aggregate with Eloquent plus a workflow component.
Proposed next step: a short spike (1–2 weeks) comparing (a) adopting a maintained commerce platform against (b) an in-house Laravel order domain modeled on the patterns above, with the archived bundle cited only as prior art.
How can I help you explore Laravel packages today?