protected function _prepareValidate(Mage_Checkout_Model_Cart $cart) { $cart->setData('all_items', $cart->getQuote()->getAllItems()); if ($cart->getQuote()->isVirtual()) { $address = $cart->getQuote()->getBillingAddress(); } else { $address = $cart->getQuote()->getShippingAddress(); } foreach ($cart->getQuote()->getAllItems() as $item) { $ruleIdOption = $item->getOptionByCode('aw_afptc_rule'); if (null === $ruleIdOption) { continue; } $address->setTotalQty($cart->getItemsQty() - $item->getQty()); $address->setBaseSubtotal($address->getBaseSubtotal() - $item->getBaseRowTotal()); $address->setWeight($address->getWeight() - $item->getWeight()); } return $this; }