- ๐ฎ๐ฑIsrael jsacksick
@Anybody: I don't really see the problem of keeping this functionality in a contrib module... Basic calculation shows that Commerce combine carts is used by ~4% of the Commerce installs (I just divided the reported usage of both modules).
Could probably be a 3.x target? I personally don't think this is a critical feature to have in core. - ๐ฉ๐ชGermany Anybody Porta Westfalica
@jsacksick: Thanks for the quick response! :)
The reason why I came here is, that when testing a clients Drupal Commerce store with only one store, we ran into situations, where a user had more than one cart (which is unwanted and unexpected user experience).
That's why I think if such situations can exist, Commerce Core should be able to merge these carts.The issue summary says in the first sentence:
Having multiple carts for a single store is confusing for the customer.
and I totally agree that I'd be super surprised by an online shop showing me two carts (at /cart)
In result, I think that should not happen and it should not need a contrib module to fix this?
If someone needs these multiple carts, for example because of >1 store defined, it's surely a nice feature to opt into.I hope I could make my point clearer?
Still, I'm not totally sure if these multiple carts are expected also for a single store or if this should be seen as bug in general?
I'll also try to provide steps to reproduce this, if you'd see this as a bug. It seems to happen, for example, when a user has entered a certain checkout step and then adds further products to cart then, before order completion. Maybe it's also related to address changes in checkout, which lead to complex tax situations.
We don't have a large or complicated shop setup, so it doesn't seem to be that untypical? - ๐ฎ๐ฑIsrael jsacksick
It can happen quite easily... For example, let's say you've started a cart as an anonymous then login... The cart is going to be assigned to the user that just logged in.
If you repeat the same operatio a second time, you then end up with 2 carts. - ๐ฉ๐ชGermany Anybody Porta Westfalica
@jsacksick thanks for the quick reply once again.
What do you and the others from the Centarro team think about that situation? Would you agree that it's confusing from the client side, as it's something you don't see in other Shop systems?
Would you further agree there's no benefit, but confusion from this, if only using one store?So would you finally agree (or discuss if) it might make sense to solve this in Commere Core instead of needing that contrib module for this (from my perspective) expected functionality?
I know that other Shop Systems like Shopware or JTL Shop also have such an option enabled by default to merge carts or alternatively to ask the user how to proceed with that cart.
Thank you :)
- ๐ต๐ชPeru krystalcode
Still, I'm not totally sure if these multiple carts are expected also for a single store or if this should be seen as bug in general?
This is not a bug. There are cases where multiple carts is desired for a single store. Common use case is for B2B where a business customer prepares multiple orders separately. Commerce is meant to be a flexible solution and accommodate different use cases.
Having multiple carts for a single store is confusing for the customer.
I agree that this is confusing for 90% of the B2C use cases. I don't see a problem with this being addressed in contrib, but if this were to be added to core e.g. functionality for automatically merging carts, it should be done very carefully and it should be configurable and disabled by default. Otherwise it could break many sites when such functionality is introduced.
- ๐ฉ๐ชGermany Anybody Porta Westfalica
Thank you very much for your feedback @krystalcode, I totally agree in all points. And I never said it's not a helpful feature, but I think for the vast majority of shops it's an unexpected default.
Of course, providing the expected merge functionality in Commerce Core for this majority should not be a BC! From my perspective it should be the default for new setups, but existing shops should be able to opt-into this feature, as it might otherwise break expected functionality indeed.
- ๐จ๐ฆCanada trevorkjorlien
Iโll give what I think is a completely normal use case that requires the customer to do something totally abnormal:
I have two products. One is a an event signup and the other is a physical print.
Each of these products use a different Item Order Type. One needs some attendee info and the other needs some shipping. The way Commerce is currently set up, if the customer adds both of these products, it creates two separate carts.
This means, you need to tell the customer to check out 2 times (!!) in order to sell them an event ticket and a shippable product.
Thatโsโฆ nuts. This seems very user hostile and not what any customer should be expected to do.
This is outlined here in better detail: https://drupal.stackexchange.com/a/298996/109556
- ๐ฎ๐ฑIsrael jsacksick
@trevorkjorlien: What you're describing sounds like a misconfiguration? If you want the 2 products to be on the same order, they need to share the same order type?
- ๐จ๐ฆCanada trevorkjorlien
@jsacksick: OK, I have re-configured my products so that they use just one Order Type. Now event and physical products can be in the same cart.
I don't want to hijack this issue, but I'll bring it up here: the Commerce documentation makes it sound as if you should make different Order Types for different product types (https://docs.drupalcommerce.org/v2/developer-guide/orders/getting-starte...):
Orders have a specific workflow that defines what states and transitions the order can move in. Each order type can have its own workflow.
This means your default order type, which has shippable products, can use the Fulfillment workflow. Meanwhile, your digital goods order type can have the more simplistic Default workflow.
and:
You can use a different checkout flow for each order type. In this case you would have a physical order use a multiple step checkout flow that requires shipping information. A digital order could have a more simplified checkout flow that has one step (i.e.: payment.)
This makes it sound like if I have a physical product, I should have one Order Type. And if I have a digital product, I should make a separate Order Type. Here's another example of somebody also being confused: https://www.drupal.org/project/commerce_combine_carts/issues/3023601#com... ๐ Is there something extra I need to do combine carts? Active
I think the documentation should make it more clear that if you have multiple Order Types, this will create two carts/orders. I'll be honest: this was super opaque, confusing, and frustrating.
- ๐ฎ๐ฑIsrael jsacksick
Regarding:
This means your default order type, which has shippable products, can use the Fulfillment workflow. Meanwhile, your digital goods order type can have the more simplistic Default workflow.
I believe this just describes a use case, that you don't HAVE to follow, this is just an example? For a digital workflow, you probably don't need to collect a shipping address for example?
Agreed that we could make it clearer that multiple orders are created, contributions to the documentation are more than welcome... If you find it confusing, indeed it might confuse others, so feel free to make a contribution to improve this :).
Anyway, this feature request has been opened years ago and there is nothing really actionable here. On top of that there are contrib modules that are there to alter the core behavior if needed, so closing this.
The documentation improvement can be addressed separately.