Checkout in Drupal Commerce 2.x is configurable for any order type
Checkout is a pretty fundamental part of a commerce system. So the fact that Commerce 2.x has a checkout is not really news. But it’s what you can do with the checkout that makes 2.x special.
You can now configure the checkout workflow. You can opt to ask for billing information, shipping information, certificates, registration details, etc. There is a lot of different data that can change depending on the type of product you sell. For instance, you don’t need shipping information if you sell digital products. If you sell course registrations, you might require pre-existing certificates. Maybe you do both, so you need to configure multiple types of checkouts.
And that’s easy to do. For the most part, it’s a matter of dragging and dropping options. You can add or remove pieces pretty easily. If you need something really custom, such as needing to validate a safety certificate against a third party, you might need a developer to build that functionality. But otherwise, it’s a fairly simple process.
You can also integrate into any part of the checkout. Maybe you do something when you add to the cart, or when you complete the order. Maybe you even go off-site to pay through PayPal or register through Eventbrite and then come back. You can hook into any step you need in order to get those things done.
Commerce 2.x also has a more modern checkout out of the box than Commerce 1 had, with billing information on the side, a floating cart rather than a series of pages you go through, and all those sorts of best practices. It’s a nice update from Commerce 1.
In the end, it’s all the customizations that make the checkout in Commerce 2.x new and cool.