Is my problem NP-Hard?
Your problem is NP-complete.

It is a multidimensional generalization of the subset sum problem.  The input to subset sum is a list of integers $a_1, \dots, a_n$ and a target&nbsp;$t$.  The question is whether there's some sublist of the integers whose total is&nbsp;$t$.  This corresponds to the case where your shopping list is just "$t$&nbsp;apples" and each package on the shelf contains some number of apples.

Having multiple products for sale in the shop certainly can't make the problem any easier.  But it doesn't get any harder, either: it's still in NP because, as you've observed, if somebody tells you "buy this set of packages", you can easily check in polynomial time that this gives you exactly what you want.