Order life cycle in drupal commerce

Drupal commerce has rather good documentation for D8 commerce but I will try to summarise here how each order is made, what it needs to be completed and what goes on in lifespan of an order.
So lets start by order entity it self, check

CheckoutController and formPage method, troubles with checkout flow

If you are having any problems with checkout flow (designing custom checkout flow or new payment gateway) check in 

Drupal\commerce_checkout\Controller;  

and see formPage method, debug it and you can track what is step sent from URL, what is step set in order and do they match and adjust accordingly when needed.

Delete all user carts from particular user

If for some reason your commerce site gets stuck while in development with some bad data for user cart, to get rid of all the carts you can fire this code to delete all the carts for that user (probably admin or user 1)
 

Running A PHPUnit Test

There are different ways in which we can run our PHPUnit tests. We can either run a full unit test, a test suite or one specific test as shown in following commands:

To run all the tests available from the custom modules directory:

How to swap class for drupal 8 services

One of the reasons we are using services instead of plain classes is possibility to swap out class that each service uses.  So what we need to do is we need to create a new class that's overriding an existing service class, and then we need to alter the service container to use our new class.