Hi,
Well, that's not really how ecommerce works usually.
Normally, the user pays everything at the end of the checkout.
You can have a system where you only have him pay for a deposit at the end of the checkout. But then, the user has to pay you for the rest later on. That's used for example for rentals:
The user pays the deposit on the website when placing the reservation.
Then, you charge for the rest when the user takes the rental or returns it with his credit card in real life.
This is possible with some kind of plugin. For example the cart fee plugin can potentially be used to tweak the amount paid at the end of the checkout:
www.hikashop.com/marketplace/product/279-cart-fee.html
You can also have him pay for his order in installments:
The user chooses to pay in 6 times (1 per month for example) at the end of the checkout. The order is confirmed when the bank confirms the payment. The charge for the 5 installments is done automatically by the bank and the website is not involved.
This capability depends on the payment gateway capabilities and whether the payment plugin for it integrates the capability for it.
For example, the "PayPal Checkout" plugin by default in HikaShop has the "Pay later" feature of PayPal:
www.paypal.com/us/digital-wallet/ways-to-pay/buy-now-pay-later
However, that capability is only proposed to customers based on their location, and other criteria. This is decided on PayPal's end.
What you're talking about is not something that can be done with many payment gateways. I think that Stripe can allow for it:
docs.stripe.com/payments/multicapture
However, you better first check with them that this is possible. The main issue with what you want is to keep the authorization for the capture valid until the last installment, 2 years later. Im not sure if that's something they can support.
Also, this will require the development of a custom payment plugin for Stripe to be able to offer this advanced payment mechanism.