I'd be glad to help you design and implement this system. I do not believe an off-the-shelf CMS is going to be the best thing for your needs. The ordering system would be custom, regardless, and thus I think you'll get the best mileage by integrating a custom order system with an existing ecommerce package (perhaps leaning on Stripe for the payment processing). I think the best workflow would involve a static site (generating a site from config files and some markdown, easily and cheaply hosted on AWS, and possibly free-to-host for the first year) that explains your services, and a custom-built ordering system. The custom order system would be best designed in something flexible like Python+Flask, and could be setup as follows (in reverse order):
1) Purchasing system: This takes a fully-fleshed-out order from the Order Builder (including design document, price, and any extra features) and handles billing, shipping, gathering customer info, and payment.
2) Order Builder: This takes a design document (either uploaded by the client directly, or built in the Design Tool) and adds material choices, special features, and quantities. The price is then calculated from this information, which they can change live on the calculation screen.
3) Design Tool: This is a user-friendly vector graphics tool, allowing the client to create a design from shapes, lines, curves, and text.
I'd love to discuss this further, including more about your shop's capabilities. Please get in touch.