About this Module
Using Commerce Lot, you can create flexible solutions for when you need to sell multiple products together.
What Does Commerce Lot (Aim to) Do?
When you create a Commerce Lot enabled product and add other products to the lot, a relation is automatically generated between the two entities. Since Relation module stores relations as entities, we can add extra fields to affect how each product in the lot is processed by Commerce without having to modify the products themselves.
On the administrative end, you can select products to be added to another product's Add To Cart form. Together, we call these products a "lot". The product which has the Add to Cart form is the "super-product", and the products added to the Add to Cart form are "sub-products". The sub-products are rendered in the super-product's Add to Cart form as selectable options, and the administrator can set each product as an optional purchase, or "required" (sub-product automatically gets added to the cart). Next updates will allow you to set quantities for the sub-products, prices, and price/line item combining (override the combined prices of the sub-products with the price for the super-product).
For example, say you have a music store that sells CDs, mp3s, and band t-shirts. You want to sell a CD, and package the digital version of the album with the CD by using the mp3s you already sell on the store using Commerce File. You also want to give the customer the option to buy a t-shirt at a reduced price and pick the size and color and keep track of your inventory using Commerce Stock. AND you want to do it all from one Add to Cart form. This isn't entirely possible with this module yet, but is the primary use case motivating development (among others weird use cases).
Another example might be you want to sell a configurable computer tower. You could give your customers a variety of options for hardware and upgrades and also offer a monitor or other peripherals at a discounted rate. (Again, not possible yet, but another goal for the module to be able to achieve.)
Differences between other modules
The main difference between this and Commerce Product Lot/Commerce PADO is that it relies on Relation module entities to define relationships between products rather than using a simple product reference or entity reference. Commerce PADO can add optional products as simple upsells, Product Bundle is great for configuring a product type with a set number of products as options. This module aims to do that and more, but at the expense of increased server load and adding lots of entities to the database. If you do not need the kind of extra features enabled by Relation entities, the above-mentioned modules may fit your needs better.
Commerce Contrib Support
Currently, this module has not been tested to work with any other module outside of its dependencies. See ROADMAP in README.txt. It is planned to be able to work with Commerce File and Commerce Stock, assuming that anything even needs to be written for that. If so, support will come as sub-modules.
Last updated: 10/11/2013
As of this writing, the module can add sub-products to super-products, but the prices of all items are added together in the cart (so, the music store example above is not yet possible since you'd end up with the album price, plus all the mp3 prices, plus the optional t-shirt price if selected.). Support for cardinality >2 in relations (product variations such as the t-shirt having selectable sizes/colors) has been written in but not tested. Relation entities are left in the database on uninstall. Do not use this on a production site!
Next update will be quantity modifiers, followed by price modifiers. I am debating adding a custom line type as well.
For planned bugfixes/features, see ROADMAP in README.txt
Feedback, suggestions, and bug reports are extremely welcome!
Notes from the Author
This is my first Drupal module ever! \(^_^)/
Development is currently slowed while I attempt to recover a hard drive I accidentally formatted. If anyone reading this is an ext4 expert, I would appreciate some help!