Open james-allan opened 5 years ago
Is this a "multi-currency" thing, though? I've always thought "multi-currency" as store having multiple currencies in use in parallel (which WC doesn't natively support), but this seems to be a store configuration before/after change problem of some kind.
Not sure either if semantics matter that much here, or not.
@lkraav In the case that brought this up, the store is using WPML multi-currency plugin, which allows purchases in currencies other than the store base currency. However, this can be reproduced in any case where the renewal occurs in a currency other than the store base currency.
@james-allan @NickGreen Can you be a bit more specific on the exact scenarios where this bug can be reproduced? Is this related to the WooCommerce Multi-Currency plugin only?
We are currently testing WPML with their WooCommerce Multilingual plugin on a shop with base currency in GBP. We have enabled the Multi-Currency option of WooCommerce Multilingual and it appears to work fine so far.
I attempted the following
Both subscriptions renewed correctly. A new order was created, the payment was taken from Stripe and the subscription remained active.
I see no issues in the above flow, but i'd like to establish if you're referring to a different plugin or a flow that i didn't test.
In Subscriptions, support for multi-currency plugins was discussed here since 2015:
https://github.com/woocommerce/woocommerce-subscriptions/issues/1040
It looks like our developers decided not to pursue this.
From what I recall, even with no multi-currency plugins, if the site's currency is changed - the renewal will be done in the new currency.
Affected ticket(s)
WooCommerce.com Request Number 139220 - we've been responding to the customer on our end.
What I expected
I expect that processing a subscription renewal payment with Stripe that the currency will be used and the amount will be charged.
What happened instead
No attempt to collect the renewal payment was made.
Steps to reproduce the issue
There are plenty of ways to replicate this, this is only one, simple way to replicate:
Looking in the code, the issue comes from this section of code, where because the base currency is now Yen, the minimum Stripe amount is 5000 ¥ and 30 x 100 doesn't reach that requirement. That error is returned and nothing is done with it (here)