Hi!
Steps 1-4 require custom pages. You can style them so that they would look like other Checkout pages.
1. Is Delivery types are just shipping options? If so, you can save the selected option to the internal checkout data storage:
Shop_CheckoutData::set_shipping_method(post('shipping_method')); // Supposing that your shipping method drop-down list have name "shipping_method"
After setting the shipping method you should redirect either to page for step 2 or page for step 3.
2. Display the regular shipping location form partial here. Save the entered data by calling Shop_CheckoutData::set_shipping_info() in the form submit handler.
3. It should be a custom page with the delivery date field. You can save the field value to a c
ustom order field.
4. Another custom page with a product list.
5-8 - regular checkout page without some regular steps. Skipping checkout page has been discussed on this forum many times. Let us know if you need help with it.
I hope this helps. Thank you