The best way to get a deal shopping is simply to take an Indian with you. It's not so much that they're good at barter, it's more that we're terrible at it. Even a crap Indian shopper will run rings around a good UK/US shop keeper. I save all my major purchases for when my mate's aunt visits from Punjab.
If you don't have access to an Indian, an alternative method is to go live in India for a bit - it's a culture thing, not a race thing, so you can learn to do it yourself over a few years.
If you can't do either of those, shopkeepers are just as bad at it as you are, so "The price tag says $whatever, but what is it for cash?" and about three quarters of all shop keeps will have offered you a discount before they even realised what happened. Note this doesn't work in large stores, as you need to be talking to someone with decision making authority. If you have to send someone to get their manager, they've got time to compose themselves, and this only works because it abuses gut instincts.