It does not seem that Drupal Commerce currently allows you to have multiple products per "add to cart" form.

This is sometimes known as product "kits" or "grouped products" in other e-commerce systems. Ubercart allowed some simulation of this through attributes and options.

My use case:
An art studio with custom picture framing for prints
The attached screenshot tells it pretty well. That was how I implemented it in Ubercart, and using uc_cano and some custom coding, it worked. But it "just barely" worked, and in the interest of stronger foundations and forward-compatibility, I'd like to re-implement in Drupal Commerce.

Advantages:
This is a case where the number of combinations is massive, and granularity with images and prices for each combination is not required. So this would be better represented as a group of products of different types than a single extremely specific product.
Across-the-board changes (say, adding another frame class or increasing an existing one's price) would be much simpler.

Implementation:
With the separation of product entities from the nodes that present the products, adding fields for each product type seems easy.
Dependent attributes are handled nicely currently by the product-per-combination system, but something else would have to be engineered to handle it with multiple products of different types. Maybe a set of rules associated with the node type?
Line-items would have to accommodate groups/kits/bundles/whatevers of products, which may or may not be tricky, as I don't know much about how they work.
Total price would need to be calculated and kept track of like it is in Ubercart.

Comments

rszrama’s picture

Status:Active» Closed (works as designed)

This is possible by using a multiple value product reference field with the Add to Cart form display formatter. It automatically detects fields that use option list widgets, are required, and only accept a single value. See my blog post for a little information on the topic, though full documentation has yet to be written:

http://www.bywombats.com/blog/11-13-2010/drupal-commerce-alpha-3

arcadian83’s picture

StatusFileSize
new26.78 KB

I actually saw your alpha3 blog post while googling for the solution/status. This is an awesome feature you've created, and the dropdowns for narrowing down products would be a part of my use case.

I feel that this issue is different, though. In your example "blue" and "medium" are properties of a shirt, which is a single product, and rightly so for that use case.

As far as I can tell, presently you can only buy one product per "add to cart" button. I tried following your example and got what's in the attached screenshot. But this is still narrowing down to adding one product to the cart at a time, and entails a new product for every combination.

A kit/bundle is different. It's a group of products that must be added to the cart together. Magento uses the example of a tuxedo, which is made of up different products, but you cannot buy these products individually. In my art and framing use case, the print of the artwork and it's frame are necessarily bound, and cannot be bought separately. At the same time they are not a single product. Indeed, my present line of thinking there will be separate product types for artworks, mats, frames, glass, and so on.

I hope this clarifies my issue. Thanks for your patience and help.

rszrama’s picture

Status:Closed (works as designed)» Postponed

Ahh, I see. I got thrown off by the image and thought you were looking for the multiple product reference functionality. I think what you're looking at would require a custom add to cart form (that could be turned into a display formatter)... this could work in various ways, one of which might be first organizing the referenced products by node type and then calling the normal add to cart form function to get the attribute display (well... eventually we should abstract that out of the form) and handling submit for each product type... additionally we've discussed generic product types / kits as creating a "Product kit" product type that includes a product reference field to the various component products of the kit. It may actually be possible with the current Add to Cart form to make such a kit product type with a separate product reference field for each type of component. If you then create a product kit for every possible combination, the add to cart form should create the select lists like your screenshot.

arcadian83’s picture

Thanks for your reply. I think since I've pretty much got my use case working in Ubercart, that I'll be sticking with that until Drupal Commerce provides some more robust options.

I'm still excited about Drupal 7 and Drupal Commerce, so perhaps when it grows a bit more, I may help out with it in ways that refine its ability to handle use cases like mine.

Thanks for creating this very potential-filled module, and I look forward to watching it grow. :)

gorillaz.f’s picture

hi ~
I have take a try like this:
1. define a product type name a.
2. define a product type name a-package, with a unlimited product reference field that refer to a.
3. create products of both 'a' and a-package.
4. define a content type name b with a unlimited product reference field that refer to a-package.
5. create content of b.
6. finally still can not add multiple products(a package) with one click "add to cart".

will it be in next release ?

stuart.crouch’s picture

Status:Postponed» Needs review

Hi

I've been working on a product kit module that makes use of the product reference field. I post here because I'm now stumped about how to get the last bit working.

My use case is my Parents kitchen manufacturing business. They create carcasses (one product) and doors (another product).

The carcass is the base or parent item for the kit. Everything else is a child of the kit.

There are 8 doors that can fit each type of carcass, so the product reference relationship with an unlimited relationship is used for this.

There are also fittings (dynamic shelves, cutlery trays, wine racks) than can apply to a carcass, again another product-reference.

Each of these is a product that can be bought on its own or mixed and matched based off of the carcass to create a kit.

At present my module has a minor hack in it that I use to rewrite the catalog item view, but eventually I hope to find out where in the views API I can hook a "row" of data. (I found how commerce is creating its "add to cart" for product references, but this hooks on the field rather than the row).

Anyway, I now have a module that will create a "product kit" form based on any product-kit cck fields you add to the view. When you click add to cart, it runs through the list of kit fields adding all the items in the kit to your order. I'm now stumped as to how to continue the relationship once its in the order. I know I could add the parent item to the line item blob, but I don't know how I'd get that into the line item view.

rszrama: Would you be interested in seeing what I've achieved so far? The only aspect missing is how to handle the parent/child aspect of a kit and display the relationship on the order view.

Its not production worthy yet but has added product kits to the commerce system in 500 lines of code...

foo’s picture

Stuart,

Would you be willing to share the code you have so far? I'm spec'ing a project for a client right now that will need kit-like functionality, and I'd rather see a nice supported module for Drupal Commerce than fall back on Ubercart. I may be able to sponsor some effort, as we have pretty experienced module developers on our team.

rszrama’s picture

Component:Product reference» Contributed modules
Status:Needs review» Postponed

Hey Stuart, sounds exciting. I think the best thing to do right now would be to attach your work (if sharable) to this issue to see if anyone can help. I don't have bandwidth to chime in myself, other than to say that I'm not sure if I'd approach it by adding each product individually to the order vs. creating a single product for the customer that in turn references all the child products they've selected. It'd be much easier to accommodate the products then. However, it could be possible for you to add a "Parent item" field to the product line item type and add a "Group by" parameter to the View to lump them all into a single row... I'm just afraid of what that might do to the cart form since the remove button and quantity boxes depend on each row representing a single line item.

I'm putting this in the postponed / Contributed modules, and if it turns into a separate contrib module, we can move this issue into its tracker.

Best of luck!

stuart.crouch’s picture

StatusFileSize
new6.67 KB

I've attached the code to this comment.

I've tidied it up a bit and added comments to explain what I can.

You'll need to create a view called catalog and use the product kit id fields, create a custom theme, and change the theme file in the tar.gz to your look for your field names to get it working for yourself. At present you can only add one of each child item to a parent.

My plan had been to get each item displayed as its own row, but indented beneath the parent so that each row gets a quantity field. I've not gone far down the parent-child aspect yet so currently the cart has no relationships and I've no idea how the line item aspect will work. I would envisage that the children would have hidden fields listing the quantity and deleting the parent would trigger a clear up of all children.

stuart.crouch’s picture

StatusFileSize
new10.34 KB

Here's an improved version. You no longer need a theme hack to get it to work. Instead there is a field that can be added to the view called "Add kit to cart". Adding this will put any commerce_product_reference fields in a form with the add to cart button if all of the products could be retrieved.

It still doesn't solve the parent/child issue - I'll try rszramas suggestion of the "group by" next and see how badly that breaks the usability of the cart.

Is anyone else looking at this code? There are some things I've marked as TODO as I don't think they are the best way of doing things.

slavojzizek’s picture

subscribe

foo’s picture

stuart,

I should know in the next week or two if my client will be moving ahead with their ubercart -> drupal commerce migration. If that happens, we should have some time to pitch in and help with this. It would be good to poke Ryan for more feedback too.

rszrama’s picture

I'd be happy to help if you go with it. Just ping me on IRC if you do that or I'll be following this issue.

stuart.crouch’s picture

Where abouts in IRC do you hang out? I've not used IRC in years...

rszrama’s picture

In the #drupalcommerce channel on irc.freenode.net. : )

hunziker’s picture

Hi stuart

Thank you for providing your module to us. I test it, but I'm not sure what it does or should do. Can you explain a bit how it works and how to setup a basic configuration? Is the approach of post #5 your way to handle this?

You primary explain the problem domain, but not the solution you choose. I need something similar to this module, if it meets my requirement, then I will contribute some time to it.

hunziker’s picture

I thought about it. The structure must be like described in post #5. That means we have a "main product" that relates to sub products.
Each main product has multiple product reference fields. Each reference field represents one sub product. You can define multiple sub products per reference field. We need also attributes for bundles!

So far thats not a problem. I have most of this already implemented in a module. The problem starts when we try to add this to the shopping cart.

We have two options:

  1. We add each product as its own product line item or
  2. we add one product that builds the sum of all sub products.

The second option is more convincing because we don't need to care about quantity changes later in the checkout process. (We build the unit price of the main product depending on the sub products.) Additionally if we consider the shipping to multiple locations the second option is easier to implement, because we have only one item as usual, and we do not need to consider about dependencies between the line items.
But there also some down sides of this approach. When we thought about taxes and not all sub products have the same tax rat, we get into troubles. We need the option to apply price calculations for each sub product. So it may make sens to add them to the cart as "hidden" line items, but then we need to prevent the automatic sum up of this sub line items. Because the main product should display the total product price.

My Request For Change:

We should add an option for line item types to control the summing up in the commerce order controller (line 99 of commerce/modules/order/includes/commerce_order.controller.inc). Is there a chance we add an additional parameter in the array produced by hook_commerce_line_item_type_info() for excluding the summing in the for each loop? If it helps I can provide a patch for that.

I know there is the option using the "commerce_order_presave" event to alter the order total. But it is much easier if the sum is correct from scratch, because some other methods may use the "order total" before we can alter it.

BTW: Why is "rules_invoke_all('commerce_order_presave', $order)" called twice (line 119 and 168)? This make no sense to me...

hunziker’s picture

I have add a new project for all these stuff: Commerce Product Bundle

hunziker’s picture

StatusFileSize
new31.29 KB

I attach a sreenshot of what I have at the moment. Now I'm working on the "add to cart" thing.

rszrama’s picture

Wow! That's looking great. : )

Do you think we should close out this issue / transfer it to your project? Or do you think there are other use cases that we should leave this issue open here for?

slavojzizek’s picture

I have a very specific use case - was wondering if it would work?

I have two products.

1. Software-License
2. Software-Maintenance

I want them to be bundled together. The minimum software-maintenance is 5, even if someone buys 1, 2, 3, 4, 5 software-licenses. If someone buys 6 software-licenses, then they need 6 software-maintenances.

So, would this bundle work for that use case, and eliminate user input somehow?

Such as, #2 has a minimum quantity, but once its reached, grows proportionally to #1?

hunziker’s picture

We should move this issue to my project. Make more sense to me. But we should open a new issue for the following thing:

As I write above we need to alter the order total before saving. With the rules integration its really hard to achieve, because you don't get a reference with 'commerce_order_presave' on the order object. When we need to alter the order without a reference, we need it to save. But then we get a nice recursion in this case. So I would propose to add something like:

<?php
drupal_alter
('commerce_order_presave', $order);
?>
hunziker’s picture

@slavojzizek: From scratch this will not work, but I think you can using rules to achieve this. When a product is added to the cart you can iterate over all order items, you can then estimate the minimum of software maintenances. Then you can update the quantity. Its probably much easier if you write a own product calculation action method. Then invoke this method by a pricing rule.

LSU_JBob’s picture

subscribe, I need need need this for my drupal 7 shop I'm setting up.

For example, product A is $5 and product B is $5 when bought individually, But I want to be able to bundle them and offer a lower cost if they are bought together.

Do I make a Rule to discount them when both items are in their cart? Do I make another product type and reference both of my child products in that? Do I have to make a whole new product to accomodate to the change in price if the two units are bought together? It seems like these modules are the only things available for something like this with D7 commerce.

hunziker’s picture

StatusFileSize
new32.58 KB
new25.69 KB

A new release is out. It supports near all features. Beside the integration with Commerce Product Option.

rpeters’s picture

Version:7.x-1.x-dev» 7.x-1.1
Assigned:Unassigned» rpeters
Category:feature» task
Priority:Normal» Major
Status:Postponed» Active

I have been trying to do something in Ubercart, but after watching a screencast on Commerce and Rules I think Commerce may be a better solution. Her is what I want to do:
I wnat user to be able to donate to other users and the site. If a user donates to another user whatever amount they decide the user will get 90% and I will get 10%(I believe this can be done with rules). I want a donate button for the user to show up on the profile. I would like to handle this through paypal. Is this possible through Drupal Commerce.

rszrama’s picture

Assigned:rpeters» Unassigned
Category:task» feature
Priority:Major» Normal
Status:Active» Postponed

Sorry, that's a totally separate request from this one. Let's leave this issue as is, as it relates to a specific feature request people will want to find.

As to what you want, you'll need to figure out how to split that payment up, as Rules has no sway over where money gets sent to once it hits PayPal. For an example site, see ioby.org and the related write-up on it: http://www.newsignature.com/blog/2011/05/06/drupal-7-commerce-in-action-...

nmc’s picture

I'm still looking for this functionality and haven't seen a solution above. I'm not looking for anything complex, just the ability to add multiple products and product quantities with one Add To Cart click. For example, I have a view that lists:

  • product A
  • product B
  • product C

Each with a text field for quantity. I want the user to be able to specify 2 of product A, 3 of product B and 0 of product C and click Add to Cart and have all those products added to the card in the right amounts. Is this currently possible?

rszrama’s picture

That's different from this issue, which would be for buying Product A, B, and C altogether at a potentially discounted price. What you want is already developed in http://drupal.org/project/commerce_add_to_cart_extras.

MrPeanut’s picture

Is Commerce Product Bundle still the best choice for this? I'm trying to do exactly what was described in #2.

As a side note, I'd like those to control pricing and weight (for shipping) if possible.

MrPeanut’s picture

Status:Postponed» Active
rszrama’s picture

Version:7.x-1.1» 7.x-1.x-dev
Status:Active» Postponed

Really just depends on how well that project is being maintained. I don't see any commits for 6 months, so I'm not sure. Leaving this postponed until there's actually a good project to link to and close this out.

bengt’s picture

Status:Postponed» Active

@rszrama: Sorry for un-postponing this thread, but you, sort of, directed me to this thread from here. My scenario is like the one in #2, but with the big(?) difference that my "kit" consists of products which are shown on the display page for product A and which on this page can be considered as optional (the customer does not need to choose any of them) sub products/accessories to product A - a kind of related products but with just one "Add to cart"-button (like a "base computer" to which you may add one of several optional hard disks or operating systems or what ever - the latter which you also can order separately on their own display pages).

If I understand it correctly Commerce Product Bundle can't help me with this, or? Do you - or any one else - know if anyone is working with a solution for this rather common scenario in the world of e-commerce? Or is there another thread you can direct me to?

MrPeanut’s picture

@bengt — Hopping in here. I think Commerce Product Bundle will work for your use case. (However, I don't think it's being maintained, so that's something to consider.)

I was going to use that, but I needed it to not only update my price, but to update the weight field as well (for use with Commerce UPS). See #1826568: Bundle doesn't take into account product weight.

Simply follow the Installation section on the project page. It seemed to work for me (other than the weight).

rszrama’s picture

Status:Active» Postponed

Yeah, I wouldn't use that module, which is why this is postponed. For contrib module feature requests, we leave them postponed until they're actually created, and then we move these to fixed.

3goose’s picture

Thanks to everyone for all the comments. This thread is exactly what I needed. I've upgraded from ubercart and am looking to regain product kits.

@rszrama - Are you saying you wouldn't use Commerce Product Bundle at all? Or for the specific feature requested? I need a simple set of products, with discount if bought together, as you describe in #29. At a quick read, Commerce Product Bundle seems to be a better fit and more recently maintained than Commerce Add to Cart Extras that you recommended in #29.

bojanz’s picture

commerce_product_bundle is more or less abandoned, so use it only if you're prepared to jump in and fix it when needed.

Commerce Add to Cart Extras is not frequently "maintained" because I consider it feature complete (and it's definitely not a solution for product kits, let's be honest).

vaccinemedia’s picture

StatusFileSize
new42.05 KB

Did you manage to solve your issue? I have the same problem whereby an exercise machine can be sold with a fitness dvd, a stand and also a fitness poster - all of which are optional and don't have to be sold with the machine itself. Ideally I'd like to have a product display with the optional extras / products on the page with checkboxes and if the user ticks them they are also added when the user click on add to cart as separate line items in the basket.

A little bit like the attached image which shows the optional extras. In this example they are attributes on an ubercart website but I need them to be actual products, with skus for stock control.

MrPeanut’s picture

@vaccinemedia — A new module just popped up... Commerce Product Add-on. I'm not having any luck with it yet, but you could take a look.

vaccinemedia’s picture

StatusFileSize
new485.18 KB

Thanks! I'm evaluating it now. It outputs the products inside the label for the checkboxes. Maybe not the best solution but it definitely works on a functional basis. Managed to make a mug and cap additional items to one of the laptop bags (Commerce Kickstart) and ticking the boxes adds the line items :) As you can see, I need to add CSS but that's all ;)

jimvenet’s picture

Hi
I'm stuck with the same kind of problem.
Basically I could live with an easy solution like being able to add all product variations at once in the cart.
like:
variation 1 -> 3 times
variation 2 -> 1 times
variation 3 -> none
add to cart
instead of the select variation widget
is there an easy way to achieve that or should I look into more complexes solution, extra modules,...
It's my first drupal commerce site (using last kickstart profile and drupal 7)
thx

maxplus’s picture

@vaccinemedia

Wow, great, you have managed to do what I'm trying to do for a long while!

Could you please give me a little feedback how you created the result you have in your screenshot?
I followed the steps from the Product Bundle Module over and over again but I cannot get the same result...

1) Setup a product type
Learn more about product types, products and product display in drupal commerce
http://www.drupalcommerce.org/node/289

2) Add at least two Product Reference Fields to the product type.

3) Go to the Administer Display Tab in the product type admin form.
http://www.example.com/admin/commerce/products/types/YOUR-PRODUCT-TYPE/d...
Set the display formatter at all product reference fields to
'product bundle: add to cart form'.

4) Add a product with the new product type, and choose your referenced products.

5) Go and create an new product display content type, if you do not have one.
http://www.drupalcommerce.org/node/293
Add a product reference field, that can reference Products from your
in Step 1) created Product Type.

6) Create a product display node and add a reference to the product you just
created in Step 4)

You're done.

Thanks, your help would be great...

vaccinemedia’s picture

@maxplus

If you can wait till Monday or Tuesday I'll be going through the same process again as we had a power cut and due to HD corruption I had to zip my VM back to an earlier snapshot before I created the product display. For my own peace of mind I'll be documenting what I do each step of the way and if I find a better way of doing it (second time round and all that) I'll be documenting that too. I'll then post the process here :)

maxplus’s picture

@vaccinemedia

Thanks already for the quick reply, I'm looking forward to Monday/Tuesday.

I was thinking some more about this issue and I'm thinking that there should be a easy solution for this without the need of the Product Bundle Module but with some References, Rules and/or views.
I would already be happy to create a parent product that references multiple child products with one global add to cart button. I could use a Rule to sum all the prices of the child products to display a total price.
I could use the price field (or add a second price field) to the Parent product that I could use for discount to encourage to buy this product bundle.
If then one global add to cart button would add all the referenced products to the cart seperatly together with the Parent Product for the discount, I already have what I want.

maxplus’s picture

@vaccinemedia

I'm not trying to push you ;-) but did you already had the chance to reconstruct a product bundle?

vaccinemedia’s picture

Sorry - had to re-create the shop from the ground up after realising that all the demo content couldn't be removed. I should have expected it really as that's how features works! Did a training manual for Ubercart this afternoon so it's looking good I can spend all day on it tomorrow with the help of a colleague.

vaccinemedia’s picture

OK so I basically installed Commerce Product Addon again and edited the fields for the exercise machine PRODUCT TYPE (not display). I have 2 types at the moment, the stander product type and exercise machines. I added the entity reference field (checkboxes widget) and selected Commerce Product as the entity type and "Product" as the product type I wanted to use as add ons. Then I ticked "Offer products referenced with this field as add-on products on the Add to Cart form." and made the number of values "unlimited".

Then I edited my test product which has three variations all based on colour. I edited each variation in turn. I selected two related add on products for the first variation and then one each for the next two variations to see what happens.

That's about it! When viewing the product, two optional products appear with checkboxes and when I select each colour variation only one related add on is shown.

vaccinemedia’s picture

Oh.. I should have added - the add on products at the moment are displaying as check boxes (good) with the product name as a link to EDIT the product next to the checkbox (bad).

maxplus’s picture

Hi vaccinemedia,

thanks for your reply.
I also have the same problem that the referenced products link to admin/commerce/products/id and not the the view node...
I'm searching for the reason why this is happening.
When the add-on products are displayed in the cart, there is also no view-link to the products.

I'm also going to try the http://drupal.org/project/commerce_product_bundle again, because the add-on module is actually not really I'm looking for.
I really need a bundle of products together and not a main product with add-on products

vaccinemedia’s picture

@maxplus let me know how you get on. I've had another job come in which also requires optional extras to be added all on the same page. This time it's for an estate agent who has 6 packages available each with various features available in a tiered system and they want it so that if you purchase option 2 you can add additional extras from option 6 for example, without actually buying option 6 in it's entirety.

vaccinemedia’s picture

Just a thought - can views bulk operations and rules achieve this anybody?

maxplus’s picture

Hi vaccinemedia

I am also looking in that direction.
For me the available modules are not the solution.
I'm also looking for a solution based on rules at the moment, combined with some kind of content type or product type

vaccinemedia’s picture

In a nutshell, one of the clients wants this: http://www.housenetwork.co.uk/securepayment.asp but just the one MAIN product on the page with different sub / related products on each

vaccinemedia’s picture

@maxplus I created a support request on the module's page and the issue with the titles being links to edit them has been resolved! Go here for the solution: http://drupal.org/node/1933468 and the code which works for me is: $renderable_product = entity_view('commerce_product', array($product_add_on->product_id => $product_add_on), $view_mode = 'commerce_pado', NULL, TRUE);

awasson’s picture

I realize this is an older topic but I wonder if it has moved regarding the original idea

It does not seem that Drupal Commerce currently allows you to have multiple products per "add to cart" form.

I've been interested in providing this functionality for one of my client's website for some time. I built the eCommerce engine for their site about 10 years ago (before I got into Drupal) but I don't want to migrate them into Drupal + eCommerce until I have a solid plan to give them the best results for the development dollar and one of the things they are keen to add to their site is the ability for customers to make their own collections of products.

I've been reviewing sites that appear to have this functionality and in particular, this site (http://www.oatking.de/en/shop) that was built on D7 with Drupal Commerce seems to be able to allow customers to create collections of products that can then be sent to the cart for purchase. I've been playing around with it and you can either select a product and directly place it in the cart or put your products into a group that can be placed in the cart while retaining their place within the group. I don't know if this is retained within the back-office for order processing but that would be perfect if it does.

My question is, has this technique become public knowledge in the Drupal Commerce community.

Andrew

malberts’s picture

@awasson, the website seems to be using custom code for creating collections.

If you need similar functionality then you will have to write code - i.e. if you need to be able to fill up that collection from anywhere on the site. However, if you just need to capture a collection of items at one time, have a look at Commerce Customizable Products which will let you capture any Field-based data on the Add to Cart form. For example, your product can consist of a few slots and on the Add to Cart form the user has to select the items that must populate those slots. There is an example here: http://www.drupalcommerce.org/videos/tutorials/customizable-products-piz...

vaccinemedia’s picture

I've been looking at Commerce Product Add On recently http://drupal.org/project/commerce_pado. It's showing promise but only works at the moment on products with no attributes / variations as when selecting another variation there's an ajax error but it's definitely a step in the right direction and works perfectly fine if the main products have a simple 1:1 relationship of product:product display

Nick Robillard’s picture

In the last 2 months, has anyone become aware of Ubercart 2 style product kit functionality? Commerce Product Bundle is very close, but lacks integration with Commerce Product Attributes. I'm also getting incorrect prices.

ayushjn’s picture

Hi @vaccinemedia, this is just incredible, thanks for the insight !!

Apart from what you did I am looking forward to display the quantity and the individual discounts too. So, that would mean the customer can see the discount on individual item that he is getting IF he buys the complete bundle.

So, typically a bundle may consist of Product 1 of 4 qty, Product 2 of 2 qty and Product 3 of 1 qty. These qty are NOT editable by the customer but the price and the discount needs to be displayed on each of the products and hence the total saving on buying this bundle also needs to be displayed.

Your thoughts or insights are welcome on this. :-)

Thanks.

jeisonfura’s picture

Category:feature» task

I'm currently making improvements to the commerce product bundle module. So far I've added the ability for checkboxes support because that was one requirement for the company I work for. Now I'm looking into an issue where if any of the sub products are added, the main product price is omitted. If anyone has any feature requests or know of any issues with this module, let me know. It would help me.

T.Mardi’s picture

Came across this sandbox: Commerce Product Bundler

Hopefully it will solve all problems with kits / packages / bundles in Drupal Commerce.

ayushjn’s picture

Hi T.Mardi, thanks for the sandbox link, I will try this.

maxplus’s picture

Hi,
I have just watched this Webinar: http://commerceguys.com/webinars/webinar-architecting-drupal-commerce-sites

Ryan was talking about working on a new Commerce module to solve this "bundle/product kit" issue.

I hope they will finish soon!

deggertsen’s picture

Have you all seen this issue? I think it's a good solution. The only problem I'm aware of is that rules based on products contained in the package will not fire.

#1489548: Allow classification of product reference fields (option for single reference field to bundle products)

torgosPizza’s picture

Sounds good, deggertson. For me it won't work because we won't always have set bundles.

For instance, on a page with randomly-generated "Upsell" products (recommendations, for instance) which might change with each page load, I'd love to offer an Amazon-like experience where you can add those additional, recommended products (maybe even for a discount?) but not necessarily have them specified in a product display.

Still hoping that the Commerce Guys let us know what they're working on soon!

bojanz’s picture

I'm guessing it's probably this: https://drupal.org/project/commerce_bundle

torgosPizza’s picture

Nice, thanks!

maxplus’s picture

Hi bojanz,

thanks for the update!

Have you any idea when the first dev release will be available?
And also what the module exactly will do and what not?

michfuer’s picture

Status:Postponed» Closed (fixed)

First dev release of https://drupal.org/project/commerce_bundle is now available. See the project's documentation for detailed instructions on getting bundles up and running.

Closing this out so that discussion can be moved to commerce_bundle Issue queue.

aaronbauman’s picture

None of the above solutions accomplish what I want.
Mentioning Commerce Add To Cart Extras here, which does exactly what I want, since this issue kept coming up first via google.

richH’s picture

Hi,
I'm going round in circles... I have the following scenario: users can apply to become members of an organisation and when they do so, they should have to option to purchase a badge. The membership costs 20 euro and the badge costs an extra 3 euros.

I want to have a single membership form with the add to cart button and then the extra "add a badge".

I have tried multiple options including commere option and pricing attributes, but this just causes errors because the field "field_name" is missing in commerce. Don't ask - but I'm getting annoyed with modules with errors.

Anyway, I now want to use rules. Simply - if the member selects "I want a badge", then a badge product should be added to the cart.

I have:

* A Membership line item and product.
* The membership line item has a field "badge yes/no"
* A badge product.

I have created a rule which only adds a product to the cart for this product when the badge field is set to yes. But (grrr), no product is added to the cart. What is going on here. All the posts I find indicate that this is a common issue but an old one. Where am I going wrong? And does commerce option etc really not work. I'm going crazy here.

{ "rules_membership_badge" : {
    "LABEL" : "Membership Badge",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "rules", "commerce_cart", "entity" ],
    "ON" : { "commerce_line_item_insert" : [] },
    "IF" : [
      { "entity_is_of_type" : { "entity" : [ "commerce-line-item" ], "type" : "commerce_line_item" } },
      { "entity_has_field" : {
          "entity" : [ "commerce-line-item" ],
          "field" : "field_badge_line_item_option"
        }
      },
      { "data_is" : {
          "data" : [ "commerce-line-item:field-badge-line-item-option" ],
          "value" : "With Badge"
        }
      }
    ],
    "DO" : [
      { "drupal_message" : { "message" : "its a badge" } },
      { "commerce_cart_product_add_by_sku" : {
          "USING" : {
            "user" : [ "site:current-cart-order:owner" ],
            "sku" : "AOW Badge",
            "quantity" : "1",
            "combine" : 1
          },
          "PROVIDE" : { "product_add_line_item" : { "product_add_line_item" : "Added product line item" } }
        }
      }
    ]
  }
}

thanks
Rich