New Recurring / Subscription Support for ISC
First off, the reason I am designing a new version of my recurring subscription module is that the new version of ISC has an added a level of complexity to the system that makes it extremely difficult to modify the process of the checkout process in the same way required by my previous module. I have had a lot of clients asking me for a solution that I could provide that would work on 5.5.4 as well as 6.0.14.
So with this being the case I have been hard at work on a new module that will work on both versions of the cart and allow store administrators to setup recurring products that can be either digital or physical.
So what is different from this module and the other module I have created?
The most notable difference with this new recurring module is that it doesn’t allow recurring products to be purchased using the current checkout feature. The modification forces the user to purchase subscription products individually without ever going through the checkout. The customer can purchase multiple quantities of the recurring product but can only choose one variation per transaction. So if a customer wishes to purchase “Fresh Columbian Coffee Beans” where billing occurs once every two weeks and “Fresh Columbian Coffee Beans” where billing occurs once every month they would have to purchase these separately. If the customer wants to purchase “Fresh Columbian Coffee Beans” where the billing occurs ever 7 days but wants 2 of them to arrive every week this would be possibly from a single transaction. Because of the need for a separate transaction per product I have created a mini single page checkout that is extremely easy to use and launched directly from the product page where the Add to Cart button would be placed.
So how does a user purchase a recurring product with this new module?
When a user goes to a product page containing a product that is recurring, the “Add to Cart” button is replaced with a button called “Purchase Membership Now” (or whatever you want it to say). Upon clicking this button a pop-up window appears instead of adding an item to the cart. This popup window checks to see if the user is currently logged into the cart, if so it will pre-populate the billing / shipping address (only if the product is physical) with any addresses the customer might have used in the past that have been saved in the database. If the user is not currently logged in or is simply checking out as a guest the same forms will be displayed but no information will be pre filled.
Below the billing/shipping form is a description of the subscription, noting the frequency of the billing and length of the subscription. Below the subscription details, the total amount of the recurring product and the shipping cost is displayed so that the customer can verify the total cost of the subscription and the frequency that they will be billed. Currently, I have designed it to work with a fixed shipping cost that is assigned utilizing the option that is already built into the Add/Edit product panel in the administration panel. There is additionally more shipping options that can be configured within the Subscription Manager add-on that comes with this module. I am considering adding real time rate calculations utilizing the shipping calculator built into the shopping cart already. If the user likes what they see all that is left to do is click a “Purchase” button to process the order. So in essence purchasing subscription products is easier than purchasing normal products through the store by using a mini single page checkout! If the payment is successful the details of the order are added to your “Orders” panel in the administration backend of ISC just like normal orders appear. The order comments are prefilled with the subscription information, such as the subscription ID that gets returned by authorize.net as well as the frequency / amount and number of payments that are to be received before the subscription ends (If the subscription is setup as indefinite the billing will recur until the user or administrator cancels the subscription or until the credit card on file no longer works). Subsequently when a recurring payment gets processed through authorize.net the modification makes use of the “Silent Post Back URL” notification to parse out the results of the transaction and if payment is successful, will add a new order to your orders panel in the backend so that you can fulfill and assign a tracking number.
The backend features are the same as the current subscription module I offer which allows you to Add / Edit recurring products, configure their settings and manage / view current active subscriptions should you need to cancel one or reference a subscription payment to the order was created with. This alleviates the need to login to the back end of Authorize.net, search for a subscription ID and cancel it manually. The front-end feature is still in tact allowing users to view their active subscriptions and cancel if they choose to by viewing their order history in their account settings. This front-end feature is optional should you require that users contact you directly to cancel their subscription. You can also create variations of subscription types per product. So if you would like a recurring subscription for a single product to have different billing frequencies you can define and activate them. Currently, since fixed shipping rates are being used to handle the cost of shipping you can also define how shipping rates differ between shipping zones. So for instance, should you need to charge an additional amount for orders shipping to Canada you can define the additional cost from the same administration panel.
This alleviates the need to create duplicate entries of the same product, which was one of the issues I never quite worked out a solution for with the previous module. With the previous module you are forced to create a new product for each variation of the billing frequency. So if you wanted to offer a product that allowed for billing ever other week and once a month you would have to create a product for each variation. So you might have One Week Membership Plan, Semi-Weekly Membership Plan and Monthly Membership Plan. Three products would be required even though each entry was the same product with a different subscription length. While this really isn’t a big deal it creates the need for additional work on the administrative side and it can possibly cause the product listings on the front end of the cart to look rather repetitive and redundant depending on the number of products and variations you needed to create.
This new method for handling subscriptions in my opinion is much easier to use, with the only tradeoff being that if the user wants to purchase multiple subscriptions they would have to go through the process of clicking the purchase button on the mini popup window multiple times. I should also add if they have any normal products in their cart they would have to go through the normal checkout process after they completed their purchase of the recurring product. Currently, if they user has items in the cart when purchasing a subscription it will prompt the user to continue to checkout after they purchase a subscription product, thus avoiding any confusion a customer might experience due to the new process used to purchase recurring products. While it is a small annoyance for users wishing to purchase a recurring product and a normal product in a single transaction (which for a large number of my previous client would not even be an issue), I think it makes the experience of purchasing a subscription product easier because the customer is presented with an extremely simple one page checkout launched directly from the product page.
If you have any questions / comments / feedback / concerns please feel free to contact me at email@example.com or Skype me by adding the nickname Dustin013 to your account.