I've run into an unexpected issue with manual payments: when checking out, discounts are successfully applied on the front-end (discount amount is returned and total amount updates accordingly) but when viewing the order in the Store admin the discount is missing from the order (i.e. displays $0.00).

This does not happen for credit card orders (processed through Stripe).

A note on my checkout process. I'm using Switchee to check the member group. If the member is in our commercial member group they're presented with a manual payment form so that we can process the order and invoice for the payment.

I'm at a loss for what may be happening during the payment processing that would drop the discount. To be sure there are no conflicts, I disabled the two extensions that I use in conjunction with Store (one hooks into store_order_taxes and the other store_order_complete_end), but still no luck.

Has anyone encountered this, or something similar?

Thanks in advance for any insights.

EE 2.7.3
Store 2.2.0

  • Is the customer charged the correct amount, or is the total missing the discount too? Commented Mar 12, 2014 at 1:39
  • Sorry, I don't follow. The order is processed through the manual gateway so there is no charge to check against. Or, are you referring to the orders processed through Stripe? If so, yes, those orders correctly reflect the discount on the checkout form and the final charge. Can you confirm that discounts work together with the manual gateway in the latest version of Store? Did you happen to test?
    – Chris
    Commented Mar 12, 2014 at 12:10
  • I mean when you look at orders processed with the manual gateway, is the order total correct? The payment gateway has no effect on the discounts or payment amount, so there must be something else causing this. Commented Mar 12, 2014 at 21:50

1 Answer 1


I believe the problem here was that after allowing the user to enter a promo_code, the promo_code field was redisplayed empty.

That way, when the customer submitted the final order for payment, the promo code was reset to a blank string, resulting in the discount being removed.

To avoid this, either hide the promo_code field when it is set, or display a field with the current value:

<input type="text" name="promo_code" value="{promo_code}" />



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.