actually, this type of project lives or dies on its planning rather then what technology you use to utilize it. What I means is to plan on breaking apart all the elements and blending them together to make it less daunting of a task to assemble the final guitar.
This sounds like it could be done with simple Javascript if you plan it right.
First figure out which options affect other options. You can isolate options that dont affect others and save yourself alot of redundancy. Here is what I mean, lets assume for a second you will be using actual images of products.
If you have 2 guitar bodies, and each is available in 5 different colors.
2 x 5 = 10 pictures
But if the neck can contain inlays for each body and there are 5 inlays then its
2 x 5 x 5 = 50 pictures you need to manage.
So if it is a front shot only, you can get away with isolating the neck and the guitar body in seperate images. and just make sure that the head matches the guitar body color.
So now if you did that, you have 5 pictures of necks and 10 pictures of bodies, which is alot easier to manage be in PHP, Javascript or Flash.
Now you could go the flash option which I have seen do some really detailed customization stuff. However, I'm going to assume that it requires just about the same amount of preplanning to make all the elements fit together.
You can combine Javascript + PHP and use AJAX to keep track of what your customer is customizing, or just stick to plain javascript and have them submit their customizations via a regular form and be proccessed via PHP. It all depends on how much time you want to spend on the user experience. Obviously the more the better.
Good luck and I hope I helped.
But as an acoustic guitar player myself, which I'm sure you already know, I look more for wood types, neck types and wood grain. In fact I would never buy a non natural color guitar because to paint you must laminate and I hate the sound of laminated guitars. But that's just my Martin in me talking.