I like your solution!
I like the way they do it at Trader Joe’s here in Los Angeles:
If you don’t bring your own bags, they give you bags [paper or plastic] as usual.
If you DO bring your own bags you get a ticket. You drop the ticket in a bowl and one is drawn from it weekly. Winner gets $25 free food. This goes on every week and has gone on for years.
It’s better to offer a reward for good behavior instead of punishing for not bringing your own bags.