So we have created a coupon via the admin panel for free shipping.

It's a specific coupon "free" andhas a condition that the shipping country is the "United States".

The problem is that if a non logged in customer with no address history applies the coupon via the discount box on /checkout/cart/ they get an error message saying the coupon is not valid.

The issue is that they have't been identified by Magento as having "United States" in their shipping information.

We also have hidden the shipping and tax estimator block from this page, but for debugging purposes, we re-enabled it, and than the coupon works only AFTER a customer clicks get a quote, then applies the discount code.

Seems like an issue with default magento coupon rules processing. Any ideas?

1 Answer 1


You're basing the coupon condition, which is evaluated in the cart page, on data that you get later, during checkout; it's like a chicken and the egg problem. There are several things that you could do though:

  1. Move the coupon form somewhere later in the checkout, maybe in the payment step
  2. Set a default US based shipping address for quotes that don't have a shipping address yet
  3. Make the shipping method that's used for US to be free and don't use a coupon


  • I created a module to do #2 as you suggested. Thanks!
    – CD Brian
    Commented Sep 13, 2015 at 15:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.