I believe sites like Zazzle where you design your own shirt do ajax requests to the server, so instead of page refreshes you get image refreshes only. I agree that having someone put in all the info and only seeing the result at the end is more difficult than seeing what you do as you go.
But I don't think it would be very simple. You might possibly want to look at the <canvas> tag however any older browsers you'd want to support would need something else entirely written for them (unless someone's made a nice canvas polyfil). Canvas has some ideas taken from SVG like primitive shapes and basic events/functions like easing, transforms etc.
When trying to make a shirt design on a site, I would have a form where I inputted stuff, and checkboxes/radios to choose what I could do (so it was limited). For example I could first write text, and hit enter. I could then select the text and choose a font, hit enter. Then I could select the text again and choose "center align" and hit enter. Each hitting of Enter would refresh the image. Something on the back end was probably regenerating a new image each time.