I can conclude that the grocery store would be able to receive Lightning payments as soon as the channel was opened.
Correct.
But I have to be the one who opens the channel, not them?
A channel gets funded when it gets opened, so it makes sense to be opened by the person who has to pay the other person.
Sending payments in the opposite direction would in this scenario not be possible. The grocery store can't send me anything, because "my bottle is full" and I first have to empty it by sending funds to them.
Correct. But as a customer buying groceries, that should be fine. If you're a supplier selling something to the store it's a different story.
However, if
a supermarket accepts Bitcoin Lightning payments, they'll most likely use
a payment processor to handle the transaction. So you can open a channel to any well-connected node, and the shop doesn't have to worry about anything.