It's painful when one needs some unexpected item urgently.
For the less urgent stuff, I just keep a list and try to get as much from Amazon as I can. Once I reach some psychological threshold where shipping charges have become less than x% of the total items cost, I hit the buy button.