Customers are there to buy, not to fill out forms. So you need to make sure that the user registers during the payment process, not before the payment, and not before the user puts the item in the shopping cart. The registration form requires the user to take time to fill in, and there may be problems in the registration process, so it will become an obstacle for the user to successfully complete the shopping.