I've seen these in the shops and couldn't imagine spending money on them when I could make one myself! Not at all hard to do. I'm going to hot-glue a brooch back onto it and wear it on my coat :)
Get your zip. The best type to use for this are the ones with chunky metal teeth so that your 'petals' will really stand out!
Open it all the way out and grab hold of the left (lower in the picture) end to start working from. I'm right-handed so this means I'm more comfortable turning it clockwise as I work, but if you're left-handed you might prefer to try the opposite.
Fold over the fabric end and pinch it in place with your thumb, then get your needle and thread to secure it in place. Keep turning it and sewing as you go along.
This is what it looks like when you've done one rotation. To attach the outer layer to the inner, sew between the teeth of the zip as well as going over folds in the fabric. Try to keep it as flat as you can.
When you're near the tag, cut off the metal stopper so that the pull can be removed. This is to keep the rose as flat and un-bulgy as possible, otherwise later on you'll be trying to sew over that.
Tuck this end under neatly and sew into place.
Do the same with the other raw end and then continue to create the outer layer.
When you get to the end of the zip, tuck it under so that it just gradually disappears from sight and sew.
View from the back.
The last stage is to flip it over and go back over all the loose fabric folds, securing them in place. Keep checking on the front to make sure you're keeping it looking neat.
And your zip rose is finished! Use it as a hairclip, or as a brooch, as a pendant, wear it on your wrist like American girls do on prom night, use it to decorate soft furnishings etc etc :)