Building an online print shop
I would either add an image field directly to the line item type and expose it to the Add to Cart form (along with any other pertinent fields) or figure out some sort of entity reference scenario with an Inline Entity Form on the line item to show the entity add form in the Add to Cart form. Might be a bit general, but googling any of those topics will turn up more info.