Dependent product variation type
I am looking for this for Drupal 8, however it appears that the module Commerce Product Add-on provides a solution for Drupal 7 (I have not tested it).


  Commerce Product Add-On allows users to attach products as options to
  the add to cart form of another product. This is particularly useful
  for things like event sponsorship, optional accessories, and other
  up-sells.