I have a subscription service that people pay monthly for, so I’ve setup a “Virtual Product” with a Recurring Profile. At the same time, I want to have it so they can add different one time products. To accomplish this I’ve tried creating a “Bundled Product” with all the different one time products and adding the “Virtual Product” to that “Bundled Product”.
However, when I go to checkout it says “Nominal item can be purchased standalone only. To proceed please remove other items from the quote.” How do I allow people to subscribe to the service and purchase the products at the same time?
Note: I am using Paypal Website Payment Pro as my merchant account.
Unfortunately this is a hardcoded restriction in the Mage_Paypal code.
You can see in
Mage_Sales_Model_Service_Quote::submitAll()that it executessubmitNominalItems()which contains:So, it kills the Cart after submitting nominal items. I’m not exactly sure why it does that, but I assume it’s due to the way that subscriptions are created at Paypal.
Here is the code that prevents adding items to a cart that contains nominals in
Mage_Sales_Model_Quote::addItem():I’m working on using Magento’s Recurring Profiles for other payment providers at the moment (its a background task: Magento Recurring Profiles with non-Paypal payment method) and it is possible to checkout both nominal (aka subscription) and real products at the same time, but it does make it quite a bit more complex.
If this is a big deal, it should be possible to refactor the Mage_Paypal code to do this, but it’s a complicated task that can’t really be answered in a single post.