One thing that might help is putting things in a wish list and not into your shopping basket on line. Then periodically check back and seeing if you still want them/it.
Often times the desire to buy that particular item/book/fabric has abated and you can get rid of it out of the wish list or just never finish the purchase and you're okay.