In the last article, we talked about enabling subscriptions through the inbuilt core facilities. This article will talk about the list of enhancements I will be making as part of the subscription tools module.
Introduction
While setting up a subscription based site was relatively easy to setup, I have found the system to cause a few management problems and has not been as intuitive as it could be. To address these issues I have been working on a module targeted to help manage and extend the process of selling subscriptions.
Note, this is to sell subscriptions within a single site, not the reselling of multiple portals. That is the realm of an upcoming module called portal tools.
Problem 1: Current Status of a Subscription
At the moment, it’s impossible to tell from my site the current status of a subscription. It might be active or non-active at paypal. This forces a manual check that could be removed. This is not only a pain for the administrator, but your end user would like to know the current status of their own subscription. They can go the membership services section, but it only shows whether or not you are in the role, not that status of the actual subscription at your payment provider (PayPal).
Solution 1: Current Status of a Subscription
Currently when storing a subscription role it only contains two values, the name of the role, and the expiry date of that role.
The solution is to extend the information stored about a role by including a status (possibly separating the role from the actual subscription).
This will be updated when ever a subscription is created (like it currently does), but more importantly when it’s cancelled. (Currently, if you have IPN on, a cancellation actually deletes that person from the role!)
As part of this enhancement, a module showing the status of a subscription will be added, and a reason for that status. This will include links to cancel/join from your site as well. This is to replace the membership services section which is not very prominant.
The question is, it's hard to disable the membership services section, which will still display, regardless if you use another module to do the work. The only real solution is to move the actual subscription away from the role. (So it won't appear in this section). The role will no longer be public and the only way to join the role is through the subscription signup module.
------------------
Problem 2: Pending Payments
Pending payments are a problem, when someone pays via eCheck at paypal it can take a few days to clear. As part of this process, they are not automatically added to your selected role. In the current environment, it’s confusing, because the end user does not know what has happened unless they look at your site F.A.Q. Manual intervention is then required to add them to the role.
Solution 2: Pending Payments
As part of the last enhancement, a status field was added to the information stored about the subscription. A status of “pending” will be added to the status field until it clears. When it clears, the status will be update to “active”.
------------------
Problem 3: Notifications
The notifications at the moment are not adequate, notifications from your site should be sent whenever an event happens, e.g. created, cancelled and pending.
Solution 3: Notifications
Extra emails will be sent out during the major events in a subscription. These will be customizable like other emails in your portal.
------------------
Problem 4: Dev/Prod Payment Gateway
At the moment, there is no way to test payments through your portal.
Solution 4: Dev/Prod Payment Gateway
A facility to supply the URL of your payment gateway, could allow you to test out your site before accepting “official” payments.
------------------
Problem 5: Multiple Payment Gateways
Currently, it only supports one gateway. This can be a proper with people that can now pay via paypal.
Solution 5: Multiple Payment Gateways
Add payments to be provider based and configurable.
------------------
Problem 6: Reporting
There are no real reporting other then viewing users in a role in “Security Roles”
Solution 6: Reporting
Provide a facility similar to “Site Logs”
------------------
These are the problems I have had, have I missed anything?