I would like to be able to receive LN payment on online shop. In order to do this and in my understanding, I have to either
wait until my customers fund channels to me, or
find a node that already has many channels and get it connect to me with an ample amount of cap.
This is correct, but there are other options as well. For example, you could open a channel of your own, and spend some funds on LN. Your customers would then be able to spend funds back to you, until your channel balance is pushed back to you entirely.
But to answer your question, I think it is more helpful to consider the situation in this way:
When a user is going to make a payment using BTC, they may consider these two options:
- Send an on-chain transaction
- Open a LN channel (likely, for an amount in excess of the payment requested).
For anyone that wants to transact on LN, there is a requirement to acquire control of a LN channel. So users will have to open channels, and thus I think assuming that opening a channel with your shop is an unnecessary burden isn't quite correct. The first user to interact with your shop will have to open a channel, but then they will reap the benefit of being connected to the LN, in that they will be able to send & receive subsequent payments on the network.
The network's utility should increase greatly as more users join and use it. The bootstrapping phase does present a bit of a 'chicken-and-egg' problem, but any user that is motivated enough to participate will be ready to pay the costs of opening a new channel, so I don't believe it will be a critical issue in the long term. I also see no reason to assumer that 1 LN user = 1 LN channel, in reality I think many users will have multiple channels, as defined by their usage habits.
Perhaps also worth mentioning: viewing all merchants as as 'receive only' entities is probably not perfectly correct either, as I see no reason merchants couldn't also utilize LN to make payments of their own. You're right that LN isn't perfectly suited to a situation of 'making payments to an endpoint, that cashes out to dollars', but I see no reason to assume that all merchants would participate in this way.