Product Relations
Link products through related items, upsells, cross-sells, and bundles with ordered records, quantity and discount support for bundles, AJAX loaders, and full editing inside the product create and edit workflows.
Related Products
"Buy the shoes and socks together, save 10% automatically at checkout."
Product relations in the current codebase cover four separate relation types: related products, upsells, cross-sells, and bundles. Each relation type is stored in its own ordered relation model so the front end and integrations can preserve merchandising intent.
Create and edit flows both handle relation selection, relation persistence, and relation hydration for the UI. The controller rebuilds the relation data with product names, SKU, external ID, and preview media so the editor can show a useful summary instead of just IDs.
Bundles go further by storing quantity and discount percentage on each linked item, and the module exposes dedicated bundle and variant AJAX endpoints so dependent interfaces can load relation data without reloading the full product screen.
Need structured product linking for merchandising and bundles?
Use dedicated relation models for related products, upsells, cross-sells, and bundles instead of flattening everything into one loose association field.