Magento – How to enable more shipping methods for Nominal Items/Recurring Profile products

recurringshipping

Magento Documentation notes:
"The list of available shipping methods during the shopping cart checkout is restricted to the fixed only (Fixed, Table Rates, and Free)."

I'm wondering if there is a way to change this? I have an extension that enables "In-store pick up" shipping method and it's not displaying as an option when checking out with a nominal item.

Thanks

Best Answer

To enable the shippingmethod for a recurring profile product you need to add the following line to the shipping method model (as seen in Mage_Shipping_Model_Carrier_Flatrate):

   protected $_isFixed = true;

The check is done by addItem() in Mage_Sales_Model_Resource_Quote_Address_Rate_Collection, when there is a nominal item in the cart the FixedOnlyFilter is set to true in the function getShippingRatesCollection() in Mage_Sales_Model_Quote_Address.

The default for $_isFixed for shippingmethods that extend the Mage_Shipping_Model_Carrier_Abstract is false so you need to set it in the shipping model to get it enabled.