This works differently, depending on how they are integrating s2Member. Here's something Jason wrote to me about it some weeks ago:
Jason Caldwell wrote:AliPay, Clickbank, Google Checkout, and ccBill.
The options are limited for these integrations. Any modifications or cancellations must be completed by logging into these services. s2Member provides Modification/Cancellation Button generators for these services, to make this easy for site owners to implement. For example: s2Member -> Clickbank Buttons -> Modification/Cancellation Buttons.
That being said, even with these services, if a Customer goes back through the checkout process using a normal Payment Button (and they are already logged into the site), s2Member is still capable of upgrading/downgrading their existing account. However, this effectively creates two paid Subscriptions (both tied to the same Username), because these services do not provide any formal method of billing modification, other than to log into each of these services and update billing details, and/or cancel.
In other words, with each of these gateway integrations, the ideal approach is for a Customer (or administrator) to cancel existing charges, then have the Customer go back through the checkout process again. They can retain their original Username, by first logging into the site before they proceed with checkout. This allows s2Member to update the existing Username, instead of asking the Customer to register all over again.
PayPal Standard integration (Subscriptions)
The modification process takes place at PayPal, and PayPal's policy is to process the modification instantly, but billing does not change until the next billing date of the original subscription plan.
For instance, if a Customer is paying monthly at $24.95/mo for Level #1 Access, and then they upgrade to Level #2 at $49.00/mo, here is how its handled.
- s2Member automatically upgrades them to Level #2 membership immediately after modification is completed at PayPal.
- PayPal will charge them $49 on the next recurring payment.
PayPal Standard integration (Buy Now)
In this case, the EOT Time is what controls their length of access, because there is no Subscription plan established at PayPal (i.e. it's a Buy Now transaction). So in this case, the upgrade/downgrade just configures the Membership Access at whatever the Button is configured for.
This works well, except... this is where we need to improve, because the EOT Time, needs to be incremented instead of reset to a completely new value. At least it does in some cases. There are other cases, where this would NOT be desirable. For instance, if they are upgrading to acquire a new Capability only, and not necessarily to obtain more time on their access.
In this case, incrementing the time is not the best approach; instead, the EOT Time should remain as it was, and not be changed at all. A new Button Generator that allows for the addition of specific Capabilities is needed I think; and that would solve this conflict, making it possible for us to increment the EOT Time without introducing a problem for some site owners. This is also needed for Subscriptions, so that Capabilities become more independent, and can be sold separately, as needed.
PayPal & Authorize.Net Pro Forms (Recurring Profiles)
In this case, we give complete control to the site owner, and s2Member makes NO assumptions. Whenever an upgrade takes place, the old Recurring Profile is completely terminated, and a new one is created in its place, which carries with it a completely new set of terms. There is nothing carried over, and there is no prorating done on the part of s2Member. It's up to the site owner to configure the Modification Form to whatever it needs to be. In some cases, this might mean that a grace period offered through the application of Free Days, or a first Initial payment amount that is less, might be needed. (Both might be appropriate during an upgrade, depending on the scenario).
There is room for improvement here too, though I've not decided exactly what it should be. Although the current implementation is not as powerful as it could be, it is easy to understand, and provides the site owner with full control. Again though, we need to make it possible to sell Capabilities separately, without any other modifications taking place.
PayPal & Authorize.net Pro Forms (Buy Now)
In this case, the EOT Time is what controls their length of access, because there is no Recurring Profile established at PayPal (i.e. it's a Buy Now transaction). So in this case, the upgrade/downgrade just configures the Membership Access at whatever the Form is configured for. This works the same as Standard integration Buy Now modifications that I mentioned at #2 above.
And the new version that'll come out soon will have a new setting to handle the EOT in differently, extending the existing subscription instead of replacing it, I'm not sure if in upgrades there will be prorating done.
Let me know if this helps understand it better.