Currently, I'm using a flat rate table to make any shipping for a cart with more than, for example, $100, become $0 instead of $3.
$shippingAddress = $quote->getShippingAddress();
$shippingAddress->setCollectShippingRates(true)
->collectShippingRates()
->setShippingMethod('tablerate_bestway');
However, the client wants to do special promotions where free shipping becomes available, either through coupons or for a specific amount of time.
The problem is, the Shopping Cart Price Rules are not applying to the cart, and the shipping remains the same even when the conditions of the rule are met. For example, if I set free shipping for today, I still get $3 as shipping in the cart.
totals: { subtotal: 29, shipping: 3, tax: 0, discount: 0 }
Do I have to check the shopping cart rules myself and force free shipping as a method? Or is something else wrong?
Edit: Here's a screenshot of the rule as requested:
Stop Further Rules Processing
for your %-discount, so your shipping discount could be applied afterwards?