I made my cushions by making the base out of ply covering it with two grades on foam, (soft outer, hard inner) and then I got the vinyl covered made by Solent Covers in Lymington. 01590 688886 not always there but keep trying she offers very good value for money compared to the others in Lymington.
You need spray glue to stick the foam in place and by gluing the edge and squashing it you can taper the foam in towards the bottom of the seat.
I have in the past made the whole thing but on the more complicated bits you cannot beat the experience of someone who has done it loads of times before.
If you want to do it all I found John Small at Bitterne 02380 472225 helpful they have everything from foam to vinyl.
Not sure about the zips, in the trade they put the foam in a ploy bag and put drain holes in the bottom.