the way I see it, this could be done 1 of 2 ways.
1- make the preview a view of the actual 3D model, with lighting and shading. This would look really cool, and allow for things like animations, and the ability to see the rotate the model around. However, it would be a lot of work to set up code wise, and be resource intensive.
2- break up the image, so the color of various parts of the image can be changed by either overlaying a differently colored image on just that part, or changing the color of the image. This would maybe be easier to do, but it would involve a lot of extra data, especially if there have to be different images for every color variation.
personally, I would love to see the first one happen, but I would like to read a breakdown of the possibilites of either from one of the developers, if it's not too much trouble.