Lots of different ways.
Never leave Christmas until the “Christmas” period, everything is in demand and expensive, plus too much to choose from is so easy to buy more than you actually need to.
Buy throughout the year, buy in sales (FIL got a beautiful wool jumper in his favourite colour, cost me £5 in the summer sales. New stocks of the same jumper, slightly different shade, have just come back out for £25
Buy as much Christmas themed stuff in January sales (decorations, crackers etc..)
Buy second hand if I can ( When DDs wanted Our Generation stuff I bought a bulk lot in August for £50, campervan, hairdressing chair, 3 dolls, loads of clothes. They had no idea it was 2nd hand. Even second hand prices jump up closer to Christmas.
Restrict Christmas list to 2 items. Happy to have a few extra back up gifts, but having just the 2 means I can get what they really want and anything else is a bonus.
Get Christmas list locked in early in case I do need to budget more.
Don’t buy the latest fad.
Sell old toys to buy new. Or sell old clothes to cover extra costs.
Christmas clubs are good too. I don’t use them but my parents always did.
Set reminders for sale dates for the stores your interested in buying from.
Use any kind of club card or loyalty card you can to collect points. My DHs last job had a rewards scheme for using certain retailers, I would build up points throughout the year and use as much as possible towards anything Christmas related.