Thanks for your patience.OK. I think part of the confusion here in this thread, is related to the difference in behavior, between Standard PayPal Buttons, and PayPal Pro Express Checkout, via s2Member Pro Forms.
In the log entries, and Shortcodes that you posted, it appears that you're using both, not just one or the other. So this is probably where some of the confusion is arising, because each of these integrations are a bit different with respect to Modification Buttons vs. Modification Pro Forms.
Modification Buttons are ultimately handled by PayPal, at PayPal.com checkout, whereas Modification Forms are handled by s2Member Pro, almost entirely. Even in the case of Express Checkout via s2Member Pro Forms, s2Member still controls the overall dynamic.
With s2Member Pro Forms, even via Express Checkout, the Modification Form will upgrade or downgrade an existing Customer's Recurring Profile, based exactly on what you specify in your s2Member Pro Form Shortcode. Any existing Recurring Profile at PayPal is completed wiped out, and an entirely new one is created to take its place. If you specify an Initial/Trial Amount in your s2Member Pro Form Shortcode, that *will* be charged, regardless of what the Customer is or was already paying you.
It's very much like an all new transaction. The only difference is that the old Recurring Profile is also being terminated to prevent further charges from the previous billing plan. This way the new Recurring Profile can take its place. Therefore, if you need to apply a discount, or allow a grace period of some sort, based on what a Customer has already paid you, this needs to be handled by you, via the configuration of your Pro Form Shortcode. s2Member Pro makes no assumptions about how to handle this, we leave that decison completely in your hands as the site owner, giving you the ability to generate as many Shortcodes as might be needed to accomplish what you need.
This
article may also be of some assistance for advanced site owners that need to generate Pro Forms in more dynamic ways; perhaps to accommodate a unique billing structure, or a more elaborate upgrade/download solution that is tailored to your business model.
With Standard PayPal Buttons. Or, more specifically, with Standard PayPal Modification Buttons ( i.e. with
modify="1" in the s2Member Shortcode ), this is handled quite differently. In this type of integration, PayPal decides what happens. If your Customer is already paying you on a recurring basis, and you send them to PayPal with a Modification Button; upon logging in at PayPal, the Customer is given a list of existing Subscriptions for your site ( usually just one ). The Customer chooses the existing Subscription they want to modify to the new one that you configured in your Modification Button that led them here.
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.
- PayPal will charge them $49 on the next recurring payment.
There is also another important difference between Standard PayPal Buttons and s2Member Pro Forms. PayPal Standard button integration handles the decision making process about Initial/Trial amounts. Their policy is NOT to charge an Initial/Trial Amount when a Customer is performing a "Modification". So even if your Modification Button includes a new Initial/Trial Amount, this will NOT be charged, ever. PayPal Standard assumes that you've already collected an Initial/Trial Amount, and all it changes is the recurring fee associated with the new plan ( i.e. Subscription ).