Problem description:

When you configure the "Shopping cart contents" checkout pane to use commerce_cart_form (to let the user update the cart during checkout) updating the cart or deleting items brings the user to the next checkout step (or completes the order) and the changes to the cart are not applied.

So the user wants to update the cart and suddenly the order is finished without applying the cart changes.

Steps to reproduce

  1. Clean drupal setup using default settings, install commerce and all dependencies.
    In my case these where:
    • Ctools
    • Commerce
    • Addressfield
    • Views
    • Entity API
    • Rules
  2. Go to admin/commerce/config/checkout/form/pane/cart_contents (Store -> Configuration -> Checkout settings)
  3. Click configure "Shopping cart contents"
  4. Select commerce_cart form Defaults for "Cart Contents View" dropdown. Click Save configuration.
  5. Create sample product using default product type
  6. Create node type for product display adding a product reference field. Check all available product types to be referencable.
  7. Create product display node referencing the product you created
  8. Add product to cart
  9. Go to /checkout (or click on the "cart" link in the message that your product was added and then on "Checkout").
    (Sidenote: On the shopping cart page the update cart form works as expected)
  10. Change the product quantity and click "Update cart"
  11. The next checkout step is shown. If you click "Go back" you see that the changes to your cart have been ignored.

This essentially breaks the checkout process.
Thanks a lot, Martin

Comments

dawitti’s picture

Title: Submitting commerce_cart_form not working when used on a checkout pane » Commerce_cart_form breaks checkout when used on a checkout pane
rszrama’s picture

Category: bug » support
Status: Active » Closed (duplicate)

I don't have it off the top of my head, but there's another issue detailing this problem. The gist of it is that by trying to use this View as a Views form, you're essentially embedding one form inside another in the HTML, which is invalid. There's no way for us to support Views forms inside the checkout form, so it really just amounts to invalid configuration that we don't have a good way to trap in the UI.