A sale-shopping budget that exists only as a vague intention rarely survives contact with an actual sale event - a specific, pre-committed number is far more effective than a general plan to "not overspend."
Deciding a specific dollar amount before opening any sale page, rather than while already browsing discounted items, keeps the decision rational rather than made in the moment under promotional pressure.
Splitting a sale budget into a portion for planned, needed purchases and a smaller separate portion for genuine impulse buys allows some flexibility without letting impulse spending consume the whole budget.
Keeping a running total as you shop, rather than checking the final total only at checkout, makes it much easier to stop at the budget limit rather than discovering after the fact that it was significantly exceeded.