I've always preferred a time gated method. Your clients that are here often and keep up with stuff are going to jump on them first and buy the limit, whatever it may be. Then, after an appropriate amount of time passes to give the slower folks a chance to grab some, I'd say a second round of buying for everyone could commence, maybe with a lower limit. For example:
Days 1-5: Limit of 7 per customer
Days 5-X: repeat customers from round one may purchase 5 additional vials
Something like that, it can obviously be tweaked however you'd like. This way you're giving people a fair chance, but also allowing loyal customers that want more the opportunity to get additional vials if you don't sell out initially.