As you have seen, customizing Drupal Commerce to allow additional fields for your products is relatively straightforward, once you know how. A common feature of websites that sell customized items—from t-shirts to stationery and everything in between—is to allow customers to print their picture or logo on the product, and this recipe covers how to go about achieving this for your Drupal Commerce store.
Once you are logged in to your Drupal Commerce store administration panel, follow these steps:
Navigate to Products | Variation types:
From here, you'll be presented with a list of your product types.
Select the manage fields option in the Operations column to the right for the product type to which you wish to add the file upload field. The following example uses the T-shirt product (Machine name t_shirt_product) type: