Remove/Quantity Issue on Cart Page

Occasionally, the remove button and/or the quantity selectors buttons for each product do not work correctly with bundles.

There are a couple of possible reasons for this:

1.) The theme is using the product ID to update the product quantity inside the cart

This is problematic because each instance of a bundle in the cart will share the product ID of the bundle product.

For example, if a customer added 2 x 'Bundle A', both bundles in their cart will share the product ID of 'Bundle A', meaning if the quantity is updated for one, both instances will be updated.

To fix this, forloop.index should be used instead of item.id wherever the quantity is being changed:

{% for item in cart.items %}
...
<!-- Old -->
<a href="{{ routes.cart_change_url }}?line={{ item.id }}&amp;quantity=0" class="cart__remove">Remove</a>
<!-- New -->
<a href="{{ routes.cart_change_url }}?line={{ forloop.index }}&amp;quantity=0" class="cart__remove">Remove</a>
...
{% endfor %}

2.) A third-party app is modifying the behaviour of these buttons

Sometimes a third-party app might change the behaviour of the remove button or quantity selectors, which again can cause issues - it is worth checking to see if any cart-related apps have been installed which could be interfering with Bundle Builder.

You can also check for "event listeners" on the button elements, which may point to a script from a third-part app which will run when the button is clicked.

To do this on Chrome, open up the Developer tools (right click → Inspect), click the Inspect Element button in the top left, then click the element you wish to check.

Click the "Event Listeners" tab in the bottom-right and check if there are any. Normally there should be none.