We are looking to migrate an existing, aging, custom built website to Magento 2 and are looking for advise on how to properly setup all the products. The site is an image licensing store similar to gettyimages.com or istockphoto.com with downloadable images in various sizes. We also offer prints of the images with many size options and frame combinations. We have thousands of images we need to import and I want to make sure we use the correct product types for how we will use them.
It seems setting up each image as a downloadable product with a link for each size would work well for the downloads but I'm not sure how it could work with the print products. Ideally we wouldn't duplicate any images in the catalog and visitors would be able to choose whether they wanted a print or download of an image on its product page. Perhaps we could create a configurable product for the prints which would have options for the print size and frame? but it would need to be associated with the actual image to be printed somehow.
Any resources you can point me to that could help me out or an extension that does something similar would be greatly appreciated.
what you described could be accomplished with a bit of custom coding.
You create a configurable product - that will be your physical print. Set it to 'not visible individually'.
You create a downloadable product - that is your image. Set it to 'not visible individually' as well.
Then with customizations described here https://community.magento.com/t5/Admin-Configuration-Questions/Impossible-to-add-downloadable-produc... (These are for Magento 1 but any Magento 2 developer can port it) you create a bundle product that incorporates the configurable and the downloadable products you have created.
So you will need some coding done to Magento 2 but in my opinion a bundle product type is a way to go.
By default M2 bundles cannot have downloadables in them (here is a bug/feature request https://github.com/magento/magento2/issues/7425 ).
Using bundle product sounds easy enough, just one follow up question. How would I go about writing a script to create thousands of bundle products with the associated downloadable products? I need to to basically take a image name and file from csv and generate the products. Which classes and methods should be used to do this? I know there is much custom coding necessary and want to make sure I start by setting things up properly.