There are many options/ways to go about doing this! One option would be to add Drupal Commerce module to your toolset. I use it for a number of projects - when I don't really have the need to track what users purchase in CiviCRM (e.g. school cafeteria order details (which child has which meal/drink every single day) and reservations for research institute with/without GPS rentals etc).
The integration you want depends on your needs (cliche...) - but the easiest - no code required one is to string together: Commerce, Commerce_[your_payment_processor], Webform, Commerce Webform, Webform CiviCRM, CiviCRM.
Commerce Webform will let you add Commerce Product Sku-s to your webform - and then these get pushed into the Commerce Cart for checkout; Once checked out -> Commerce Webform has a Rule that then goes back to the webform and mark skus->paid;
Webform CiviCRM will let you pull in info from a specific logged in Existing Contact - relationships etc.
Voila - here's a screenshot of a specific Order in a User's Orders tab:
Drink options are Drupal Commerce SKUs; Student info -> is pulled in from CiviCRM (relationship child of logged in existing Contact);
user/2/orders/32659
