Hello,
I would like to know if it is possible to modify the checkout form entirely as per the image shown below:

Following are the requirements:
1) Product Type 1
- Fields: (Even if its a Virtual Product all these fields should be available)
- Email
- Confirm Email
- First Name
- Last Name Nationality
- Phone number with Country code
- No Shipping method
- Payment Gateway
2) Product Type 2
- Fields: (Even if its a Virtual Product all these fields should be available)
- Email
- Confirm Email
- First Name
- Last Name Nationality
- Phone number with Country code
- Shipping method: Conditions
- Delivery: Normal shipping details to be entered
- Pickup: No shipping details need to be entered. The user will come to the store to pickup the item
- Payment Gateway
If both Product 1 and Product 2 are in the cart the a message for Product 1 needs to be displayed for example "No shipping for Product 1"
So far I have managed to do Confirm Email and Phone number with country code.
Please give me a solution on how to achieve these requirements.
Thanks!