A manual approach with no coding, just a little .chtml editing:
- check the 'Disable buy button' for all tours, left the Wishlist button enabled. (you can chose a theme where the wishlist button has text on it, you can change it to 'Select tour'
Your customers can only place items in the wishlist and not in the shopping cart. (change all description text and guides in the shop so that they will not be confused of this)
- When they are ready with the wishlist, the go into their wishlist, and press 'Email a Friend' button (which you rename 'Pre-Order Tour' or something similar_, in the next Form you change Friend's email text to your company name, and edit the .cshtml file to preload the admin's email address and make this field not editable. You change the button below to 'Send Request'
- When the admin receives the email with the wishlist, he checks the selected tour(s) for availability, he the logs in as admin. Closes the shop, so nobody can directly buy the item in this short time, and unchecks the disable but button in the product. He then impersonates the customer, goes into his wishlist, and presses the 'Add to cart' button in the wishlist. The tours are now in the shopping cart. Admin finishes impersonation. Checks the disable buy button again in the product, and opens the shop. (the shop was closed for ca. 10 seconds, if you don't have 100 visitors on your website, I would not even bother to close the shop for this time)
- Replies the customer in an email that the tours are ready for payment, the customer logs in any time he wants and does the checkout and payment in his shopping cart.
A more professional approach with very little coding:
- would be to add a role to the admin that would allow him to override the disable buy button's effect. So it will be not needed the uncheck/check this button in the product's datasheet.
..if you can go thru the first part and ready for the coding part, we can go on with this
The ultimate solution with more coding: This requires more time and programming skills
Eliminate the need to impersonate the customer. Make all wishlists viewable for the admin in a new View page. Add a button to the wishlist's admin view that would place the items in the customer's shopping cart and send the email to the customer that the shopping cart is ready for payment.
(I may be some time later be available for more help you asked for, but I think you can start with the info above)