Feature request from craigcarnell, posted on GitHub Oct 15, 2015
It would be useful to add an option to pay for a product by instalments.
For example, you could pay for a product at £200 over 4 months at £50 a month. A cron script would have to run to take those payments.
As we are a EE customer I wouldn't be against this being a EE feature.
Comment from asemenenko, posted on GitHub Oct 30, 2015
Hi @craigcarnell in order to fully support this feature we need to use tokenization provided by a payment solution providers - say Braintree comes out of the box with this feature. The flow should be the following: create a separate payment action = Order for Braintree that will generate a token for chosen payment type with zero amount/configured % of total (PayPal or credit/debit card) and save it in the payment info. After that we need to re-charge customer based on the token and control what to do if card is rejected (say ask customer for another source of payment). This will require multiple configurations available depending on amount of the order/product type/surcharge/discounts and allowance period to make it EE feature since we need to minimize manual interaction as much as possible.
Comment from craigcarnell, posted on GitHub Oct 30, 2015
@asemenenko Sounds just what I was thinking. For our use it would have to be independent of payment gateway as we predominately use Realex. But we might also use PayPal and Amazon Payment's too. Can it be factored in such a way to make this possible for other providers to extend the functionality/implement your own hooks?
@craigcarnell this is how any feature related to payments should be implemented - we must not provide something that is hardcoded to a certain configuration - it should be a part of a common interface that can be used by a 3rd party extensions. Say we already have a payment actions "Authorize" and "Authorize and Capture" that are common for all payment solutions. Same needs to be applied here as well.
Comment from craigcarnell, posted on GitHub Dec 16, 2015
@asemenenko Sounds good to me, do you think you will implement the feature?