Having issues with my Flat Rate Shipping Method when the cart has both Shippable & Non Shippable Products.

I have the following shipping requirements based on the order total:
Under $25 = Shipping $5.95
Between $25 & $40 = Shipping $7.95
Between $40 & $60 = Shipping $9.95

This is working perfectly for Shippable Products, however I have an issue when a user adds a non-shippable product (a donation) to the cart.
If someone makes a $20 Donation plus purchases a $10 product, the order total the shipping is being calculated on is $30, instead of $10.
How can I create my Flat Rate Shipping Method to calculate from only Shippable products?

Thanks.

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

michaelmcqueen created an issue. See original summary.

TR’s picture

Status: Active » Fixed

Order total is defined as the total value of the order. It doesn't mean total of only shippable products. So the issue here is that you're testing the wrong value in your Rules condition. The solution is to either 1) write a new Rules condition to return the total of shippable products (and you may as well write one for total of non-shippable products while you're at it), or 2) use a PHP condition in your Rule instead of comparing to order total, then you can write any PHP test you want to use to determine free shipping on your site.

If you create the new Rules conditions from #2, we would greatly appreciate you contributing that back to the community in terms of a patch.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.

michaelmcqueen’s picture

Thanks TR. I've been trying to implement #1 return the total of shippable products but I can't work out how to create that rule. What are the conditions and tokens I would use to create that?
Thanks a lot for the help.