The typical checkout flow consists of the following steps. The flow determines how and when various price, discount, shipping and tax calculations are performed base on the available data collected from the user (e.g. Shipping cost can only be calculated after user supplies his shipping address during checkout. Similarly, taxes can only be calculated after user supplies his billing address).