can't check out with only non-shippable products

Issue #1030 resolved
Allan Stavely created an issue

If I have a cart with only non-shippable products, I can't check out.

The checkout page suppresses the shipping-information selector (appropriately). Instead, it displays "There are no items in this order to ship" (in boldface, as if that were an error).

But then I can't proceed because the shipping information is missing. In the template base_pay_ship.html, the value of form.errors is: shipping * This field is required.

("Please correct the following error:", is displayed, but nothing about what the error is, because form.non_field_errors is empty!)

If I go back and add a shippable product to the cart, everything works fine.

Comments (13)

  1. Allan Stavely reporter
    • changed status to open

    Since nobody else has looked at this issue, I've tried to resolve it myself. :-)

    In fact, the fix seems to be easy. It only involves the relevant template:

    apps/payment/templates/shop/checkout/base_pay_ship.html

    The test "{% if cart.is_shippable %}" (line 34) bypasses this step if the cart isn't shippable:

    form.shipping

    But this seems to be necessary in either case. Other code handles the case that the cart isn't shippable (particularly apps/payment/forms.py, lines 72 and 73) and applies shipping method 'NoShipping'.

    Fix: change the else-case of the test (lines 54-57) to:

    {% else %} form.shipping {% endif %}

    I'll leave the issue open so that some developer can check this fix and make sure it's sufficient.

    Cheers,

    - Allan

  2. Chris Moffitt repo owner

    Allan,

    I'm not able to reproduce this. What payment backend are you using? If I try to use the stock satchmo store with the dummy payment, it lets me check out just fine with a non-shippable product. I'm wondering if one of the payment modules is broken in some way. Any more details you can provide will help me out.

    -Chris

  3. Allan Stavely reporter

    Hello, Chris,

    I'm just using the dummy payment module too. I haven't touched the payment apparatus at all. I have one custom shipping module and several customized templates, but I get the same behavior when I remove all of those.

    I'm running the "tip" version of Satchmo that I downloaded on about February 9.

    BTW, Bitbucket isn't showing the Django double curly braces that I put around "form.shipping" in my previous comment. Of course, those are necessary for the fix I suggested.

    Thanks for looking at this,

    - Allan

  4. Allan Stavely reporter

    I've enabled "Per piece" and "Flat rate".

    But in the case of a non-shippable cart I never get to invoke one of these, as I mentioned in my original posting.

  5. Chris Moffitt repo owner

    In 18dabe6f773c I modified the template to more gracefully handle a situation where the shipping choices aren't selected. Please give it one more shot and let me know if you're still having problems. Using this version, non-shippable products seem to work for me.

  6. Allan Stavely reporter

    Thanks, Chris! Yes, the modification looks like an improvement, but I'm afraid it doesn't solve the original problem for me. I get the same behavior as I originally reported. Sorry.

  7. Chris Moffitt repo owner

    One more thing. Bruce mentioned on the mailing list to install the shipping.modules.no module. I had forgotten about that one.

  8. Allan Stavely reporter

    (Reply via a...@nmt.edu):

    Thanks, Chris! This may be the solution!

    But I don't remember getting email about this (I may not be on the right list), and I can't find anything on "shipping.modules.no" with a search of the BitBucket site and the Google group. Can someone recapitulate or give me a pointer?

    I do have the directory apps/shipping/modules/no in the Satchmo installation I downloaded ("tip" as of about Feb. 9), but it doesn't show up as a choice in the "Active shipping modules" menu on the site-setting page, so I can't install it from there. What do I need to do to install it?

    Thanks,

    - Allan

  9. Allan Stavely reporter

    (Reply via a...@nmt.edu):

    Sorry to bother you. Bruce's email has arrived. It was an email problem at my end, I guess.

    I'll try his solution. Thanks!

    - Allan

  10. Log in to comment