changed sample price generation logic

and make it possible to specify data id