Does anyone know of the best solution to achieve the following:
You should look at the Easy Booking distribution, to check if there is anything in it similar to what you're looking for (specific to the way this distribution uses Rooms and Drupal Commerce). If you find something, it is just a matter of reusing what's appropriate in your own site, or just use that distribution (attention: it only has a beta release so far).
Here are some more details about this distribution (quotes from its project page):
... to set up a website, that will suit all your needs in managing your own hotel, inn or hostel online.
It gives a set of options for visitors to make room reservations, contact hotel administration or just follow hotel’s newsletter to be aware of all special offers and discounts. Easy booking profile is powered by Drupal Rooms and Drupal Commerce - widely used and popular contributed decisions, which means active maintaining and timely technical support.
Note: for some other module suggestions that might possibly help, refer to my answer to the question "https://drupal.stackexchange.com/questions/173341/how-to-create-this-reservation-form-in-drupal/173467#173467".