add product procedure