I've always gone with the maxim, a product shouldn't be priced at what it's worth, it should be priced at what people will pay for it. In development this is best seen in Fortran salaries.
I think you mean "at what it costs". At least, I've always understood "worth" to be defined as what people are willing to pay for it. "Cost" is what refers to the amount of work that it took to make it or otherwise obtain it.
So, what you probably meant to say is that a product shouldn't be priced at what it costs, it should be priced at what it's worth.