sylius/variation-bundle
Sylius Variation Bundle adds product variation support to the Sylius e-commerce platform, providing models and logic for variants and options so stores can sell configurable products with different sizes, colors, and other attributes.
options table, an option_values pivot, a variants table with an option-value tuple) or adopt Sylius wholesale. Even if we build, seeing the battle-tested shape de-risks the build.Consider using it as a reference when:
sylius/sylius — since Sylius 1.0 this code lives in ProductBundle/sylius/product (Option became ProductOption, Variant became ProductVariant), so the split repo is history, not a dependency.VariantGenerator's cartesian expansion that reuses existing matching variants instead of duplicating them. That one routine is worth porting nearly verbatim.Look elsewhere when:
composer require an archived, read-only subtree split with 6 stars and zero dependents. It extends Symfony's bundle/kernel and assumes Doctrine ORM and Sylius's resource layer — none of which map onto Laravel's service providers, Eloquent, or facades. Expect dependency resolution failures.To executives: This is not a package we buy or deploy — it is a design reference. It shows how a mature e-commerce platform (Sylius) structures product variations: which combinations exist, what each costs, and what's in stock. Reading it costs us days; getting this model wrong costs a re-platforming project once orders, inventory, and pricing are all keyed to the wrong identifier. Recommendation: use it as input to our catalog architecture decision, budget zero licensing cost, and explicitly not add it as a dependency. It is archived, has no support contract, six stars, and zero dependents — that is a documentation artifact, not a dependency.
To engineering: Treat sylius/variation-bundle as read-only reference documentation. It is an archived subtree split of the Sylius monorepo; the code now lives in sylius/product, so if we ever adopt Sylius we take the parent and get this for free. Use it to pressure-test our schema: how we represent options and option values, how we generate and prune variant combinations, and where price and stock attach. If our needs are simple, don't import the full graph — borrow the shapes, keep the queries cheap, and keep the variant-generation reuse logic (match existing combinations rather than recreate them). Realistically this is a port of a small domain — options, option values pivoted to products, a variants table with an option-value tuple, and a cartesian generation service — a few days of work, not weeks, and it gives us full ownership. Flag any proposal to require this package directly as a risk, not an implementation detail.
One-line summary: Valuable as a blueprint for product variations, dangerous as a dependency — mine it for the data model and the generation logic, don't ship it.
How can I help you explore Laravel packages today?