I have just finished two projects. One was a Joomla website where I was required to add a customized booking component. The component allows registered users to view the calendar of availability, then place booking requests. These booking requests are then approved by admin. Admin generates a Invoice using nBill component. This is visible in the user dashboard, where he/she can make payments.
The other project was a Drupal CMS customization with Ubercart and Affiliate Module. I have created a new module to allow an affiliate to call a function/URL from any third party website, which creates an affiliate cookie on the user’s machine. Then when user makes a purchase, it again calls a URL with user email and product id/SKU. The module at drupal site, creates a order on the behalf of the affiliate and marks the commission and payment details.