You can create a custom field control with a document selector inside and then use control to register a custom field for the needed product type (can be done from ProductTypes page). Here's how to do that:
Can you take a look at this KB:
It describes how to add a Custom Field control with an Image Selector. You can download the source and inspect it yourself.
Basically, what you need to do, is create a button that opens a dialogue with a selector inside. Then when you select the image (or in your case a document) its value gets remembered in the field. You can use the source from the KB with a few changes on it. Most of the implementations are copy/paste (for example the dialogue and the button template would be the same - what you need to change is only the selector - now it is an image selector and with a few customizations you can turn it into a document selector)
I am also sending you a working user control which is a document selector (could also become an Image selector by changing the mode property in the template to "Image"). The dialogue that opens this control for the user to select can be changed with the dialogue from the KB and this would do the whole trick (and of course creating the Definition and Element classes so that it can become a Field Control).
I responded in the support ticket, here's the answer (for the community):
You are not registering the correct class. Can you please take a look at the installation instructions in this blog post and follow them:
I sent you a sample project in your support ticket. Can we keep the communication in one place only, so that the answers can be processed faster. Thanks for the understanding
I will soon make this a blog post and you will be able to download the sample from there. Thanks for the interest!
The blog post is up now:
Check it out and let me know if you have some questions on it.
You are correct about the global.asax - I added this step by mistake and it is not necessary, as the path is already registered. However, about step 6 - you need to add this as a web resource to the SitefinityWebApp assembly, not the ThumbnailSelectorField one.
The error you are getting usually pops up when the virtual path does not find the required template. Can you check if the built action of the template is set to EmbeddedResource and if the paths to it are correct? Also, you can always try to put the template directly in SitefinityWebApp and use relative path to it, but I tested this on another machine and it is causing no problems - the paths are found just fine.