The old-school Dungeons & Dragons game of my youth was practically a survivalist game. It was deeply interested in how many torches, days’ rations, and such you were carrying. Today, not much thought is given to the bookkeeping aspects of the game–except among those who play in OSR (old-school revival) D&D clones.
Even in those, I suspect, most of the consumable supply question is hand-waved away. No one really wants to do bookkeeping but a bookkeeper. (Gary Gygax was a bookkeeper.)
But there’s an easy way to account for such materials: roll for it.
Consumable materials can be lost, contaminated, or used up more quickly than expected in the course of combat, falls, camping, and other adventuring. Near the end of each adventure, the game master should roll 1d20 for the heroes’ consumable supplies. Check difficulty class 4 for food, torches/lantern oil, each character who uses arrows or material components, etc. On a failure, that consumable is down to “low” and has three “uses” left.
In the case of arrows and crossbow bolts, you are down to 3. So, in any later combat, you only have three shots (you can retrieve them for reuse later, unless you his a creature that runs away with it). This can happen even if you haven’t shot very many shots, since a tumble or attack can break some, and you might not even realize it until you start pulling out headless arrows.
Another aspect of consumable supplies is potions. Players tend to hoard what they have until they “need”, but often go down fighting without having used all their supplies. To get them to drink and be merry, just say that potions have a short shelf life. This means that potions should not be found among dungeon treasure, at least not any that are still usable.
Potions should be purchased and made to order before the adventure. Use it on that adventure, or it goes bad. This is a convenient way to get the heroes to spend some cash. Just rule that potions cost, say, 25 gp per level of the spell they emulate. For 100 gp, you can carry around a 4th-level spell that affects only you.
This is a handy way to reduce scroll build-up and other magic items as well. Just make them quite a bit rarer, so the heroes are forced to rely more on potions. You might even make potions able to replicate spells that don’t affect the imbiber–drink a potion, throw a fireball. Those might cost more; after all, there must be come reason why most potions only affect the imbiber.
For fun, you may occasionally throw in a potion that has gone bad but doesn’t yet stink. Drinking this results in the imbiber suffering a wild magic effect, same as if you drink a potion while another is still in effect.
This also works for other kinds of magic items that go bad after a certain time, such as magic fruit or berries. You can tell it’s ripe when you find it on the smoking corpse of the wizard you killed, so it doesn’t have to be custom made, but it does need to be used before it rots.
And you can even create items that are renewable, so the character feel fine using them.
Renewable magic items are ones that regenerate or refresh after a certain amount of time. Even if they don’t go bad, this means that if they don’t get used, their value was wasted, because it would have renewed anyway.
For example, a magic weapon that has a thrice-per-full-moon power. They can’t abuse it by overusing it (it’s basically three uses per adventure, unless you decide there’s a full moon in the middle of the adventure), but they might as well use it or the power is wasted.
Or a magic item that is mundane in function but which renews itself overnight, like a perpetual torch.
These are actually better than items with a set number of charges, since it’s unlikely they would ever use all those charges anyway. In fact, give those a shelf life too: the wand has 19 charges, but it loses one charge every day, whether it’s used or not.