This reminds me of a functionality I saw on an older version of Ubercart where one could choose how many items they had in stock, so when the number became 0 no one was able to add it to their cart. Then of course when the store owner had more in stock he could just add a new number to the product and make it available again. However I believe that may have been another contribution from someone else.
This too "You can associate this module with uc_role.module in order to create expirable subsciptions to a role." provides a great service!