Fortunately for us, there is already Commerce CiviCRM module that matched our requirements. However after implementation we found that it didn’t work with the latest CiviCRM version 4.7.x. So we took on the task to upgrade it to work with CiviCRM 4.7.x.
I have also created an issue for asking to merge this code to the main stream https://www.drupal.org/node/2806529
Hope this helps for folks looking for the same.
Also published on Medium.