I just quote the nominal value. If a PC has three 50gp gems in his pouch and finds two more, he now has five 50gp gems which are indistinguishable from each other and can be used as a convenient form of high-value currency. He can update his character sheet - erase '3' and write '5'. No book-keeping for me. Move on.
If a player shows an interest in using his PC's skills to haggle over the value of something when he tries to sell or barter it, that's fine - it adds to the role-playing. In that case, it is worth whatever he can get for it, which might be more or it might be less. But I don't insist they go through the motions of haggling on every possible occasion.
Also, I don't go with the idea that "traders always give you less than the nominal value". If I want to randomize the outcome of haggling, I use 1d20 x 10% of nominal value. On average, it will be close to nominal which is what nominal means. It means the value you would expect to get, on average, by trading the object with your average trader.
I don't have a rigid procedure for haggling. If I did, the players would do it every time and it would turn into a grind. But I can invent something on the fly if I need to. The last time it cropped up, after a fun bit of role-playing, I asked the player to make a Charisma(Persuasion) check against DC10 to try to get advantage on the d20 value roll. From memory, I think he got 1600gp for a silver goblet worth a nominal 1000gp. He was pleased, and the game was good.