Hi @yavuzyayla,
The best way to prevent this error for now is to set up a sign-up fee that is unaffected by the coupon.
To process the subscription payment automatically later on, there must be a saved payment method in the Vault. A payment method can only be saved with a transaction, though, and PayPal does not support zero-sum payments.
So there is a special logic to handle zero-sum payments for subscriptions, but it is currently only available for subscription products with a free trial period. While a 100% coupon is similar, this is currently not considered by the special logic, so it fails with the CANNOT_BE_ZERO_OR_NEGATIVE
error.
One of the next updates will extend the functionality to cover all scenarios where a subscription product is in the cart, but there is no initial cost.
Kind regards,
Niklas
Hey Niklas,
Thanks for the answer. My problematic is that we have created coupons and send via printent actions but our users can’t use them now if they select PayPal as an option.
I’m basically unable to use them now, am I? Is there a scenario where I would be able to use the coupon? Any suggestions?
Also, is there an eta. regarding when the new version will be avaliable?
Thanks in advance.
-
This reply was modified 1 year, 5 months ago by yavuzyayla.
Hi @yavuzyayla,
Apologies for getting back just now.
Is there a scenario where I would be able to use the coupon? Any suggestions?
In the latest version, zero-sum payments are only possible for subscriptions with a free trial period. All other kinds of subscriptions require a payment during signup. For example, setting the coupon to only charge the user 0,01€ would work.
Also, is there an eta. regarding when the new version will be avaliable?
The functionality currently used only for free trials will be extended to all zero-sum subscription payments in the next update later this month. If you are interested in giving it a try, a test version can be downloaded from here.
For now, there is an important limitation, and I’m not sure if that gets addressed in time for the update:
Currently, the smart buttons are not reloaded on AJAX events. This means when a buyer adds the coupon from the Checkout page without reloading the page, they would still get the CANNOT_BE_ZERO_OR_NEGATIVE
error upon clicking the PayPal button.
So this coupon must be applied from the Cart page, or the Checkout page must be reloaded after applying it.
In any case, feedback would be highly appreciated if you decide to give it a try. Thanks!
Kind regards,
Niklas
Hello
Is the version 2.0.0 released a few hours ago solves this problem of “CANNOT_BE_ZERO_OR_NEGATIVE” ?
Thanks
Hi @legrizzly & @yavuzyayla,
With the latest update 2.0, subscriptions with no signup costs are not handled like free-trial subscriptions were handled previously: https://woocommerce.com/document/woocommerce-paypal-payments/#free-trials
So the CANNOT_BE_ZERO_OR_NEGATIVE
error usually should no longer occur, but it could still happen under certain circumstances.
For example, when a 100% coupon codes is applied on the Checkout page and the page is not reloaded afterwards, as mentioned above. This behavior will be addressed in a future update. But payments for subscription products are now all handled the same way when there are no sign-up costs.
Kind regards,
Niklas
Thanks for letting us know Niklas, that pretty much is a challenge for us right now.
Will closely monitor how this develops.
Regards,
Yavuz
Thanks you for your answer Niklas.
I’ll try deploy with this new release.