Checkout is one of the most important moments in the work of an online store. Changing the checkout process can cause errors in operation and the client won't be able to place an order. However, sometimes it's necessary to turn off the step of selecting delivery and go straight to the method of payment.
This step is disabled only for virtual goods, but you can disable this step by redefining the native behavior of the controller responsible for checkout
In this article we will tell you how to do it.
The first step is to create a file OrderController.php in the folder front on the way /override/controllers/front/. In this file we will redefine the controller OrderControllerCore and method buildCheckoutProcess().
In the created file we redefine the controller
Next, we need to copy the method buildCheckoutProcess() from the file at /controllers/front/OrderController.php and comment out the lines of code as shown in the screenshot
After that, save the file and if you have a cache, you need to clear it.
Now when ordering on the checkout page will not be a step to select delivery, and immediately will go to the selection of the method of payment.
Again, note that this approach is not recommended because different modules can be tied up at this stage, but if it is necessary, you know how to do it.