I've read similar looking posts, but nothing addresses my particular problem.

I have 2 shipping rates and rules setup and no longer confusing each other (thanks to rfay's excellent vimeo tutorials and the discussion here: https://drupal.org/node/1415638)

One is for domestic and I'm trying to add a 50 cent per item shipping charge to a $3 base.

The other is international and I want it to add a $3 per item shipping charge to an $11 base.

I have things basically setup like rfay documents in https://drupal.org/node/1415638

And it's sort of working. The problem is it appears to be double-counting one of the items - I'm probably saying this wrong.

e.g., 4 domestic items should be base ($3) + 3*50 cents = $4.50, but it is currently computing $5.00

My international rule is behaving in the same way. How do I avoid this double-dipping?

1 Answer 1


OK - I figured it out. I don't know if this is the best way to do it, but I added an action to my rule, but not as part of the Loop - just beneath it (not indented). This new action is "Subtract an amount from the unit price." For data selector I entered commerce_line_item. For amount, I entered the amount of one additional item (50 for the 50 cents in my domestic shipping example).

So now my rule basically takes the base rate of $3, adds 50 cents for each item including the base item, so then the subtraction action removes that extra 50 cents. Hope this makes sense.

  • Hold on - that fix I just posted is not working right! When you get to final checkout, you have a correct shipping charge ($4.50 in my example) but it's above and part of the subtotal and the wrong amount ($5) shipping appears after the subtotal, so we're now charging $9.50 for shipping! I'll keep working on this and update when I find a real solution. I really did not want to spend 3 days on shipping! Argghhh! Commented Jul 12, 2013 at 22:49
  • In the end, I "fixed" this by just adjusting my base rates so the per item charges come out the way I want. In other words, for domestic, I made the base flat rate $2.50 and the per item calculation $ .50. So one item is $3, two are $3.50 etc. For international, I made my base flat rate $8 with the per item calc of $3 so those rates are computing how I want them. Kind of embarrassed this didn't occur to me at the start - doh! Commented Jul 13, 2013 at 22:44

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.