Give each food item a food value, say from 1 to 10. An apple would be a 1, a pig's head would be a 10. When you want to rest for the night, a window pops up that tells you that you need 3 (or 5, whatever) food value per party member resting, and lets you pick whatever food items you want from those that you have, to add up to the required 12 (or 20, whatever). If you don't have the food, you gain only half the normal benefits of resting and you become Hungry. Once you're Hungry, you cannot rest at all until you have sufficient food. Then just make sure that each of the merchants always has at least a little bit of food available to buy. On the off chance that the player hasn't managed to collect the hundreds and hundreds of food items currently available in the world.
What is the point of introducing this type of restriction when nothing really limits it? There is so much food in Action 1 alone that it would probably be enough for half a game with rest after each fight. Let's add food from traders and we have a PoE mechanic that has no real impact on the gameplay The only thing it does is irritate when you have to go back for supplies in the middle of exploration (although in this case we have fast travel so it matters even less).