After checking with the client I tried the following method first.
Added spry validation to the shipping fields on the checkout page.
This prevents a customer moving to the confirm page until the shipping fields have been completed.
All was working well with a completed successful test purchase.
However during testing when submitting the checkout page and moving to the confirm page and then aborting the test I found that the order details were being stored in the orders table.
I've not noticed this orders table update happening before I added the spry validation to the shipping fields on the checkout page. This page doesn't have the "store summary in database" behaviour like the confirm page.
Should this be happening or is it as a result of the addition of the spry validation?