Можно сгенерить неограниченной количество ключей и адресов самостоятельно, написав небольшую программу. Алгоритм генерации известен и открыт. Лучше это сделать локально в целях безопасности, а затем список адресов импортировать на сервер магазина в базу данных или в файл. А чтобы в вашем кошельке они были вам видны как "свои" - их можно туда импортировать. Эту функцию сейчас имеют все кошельки, не только Bitcoin core.
По поводу "скинуть на один кошелёк" - смотря что вы имеете в виду. Если их хотите видеть как свои деньги - достаточно импортировать в кошелёк, а если хотите чтобы все деньги были на одном адресе - тогда только транзакция - но входов может быть много, т.е. одной транзакцией можно перевести со многих адресов.
Сгенерировать-то можно, но лучше все же делать это через апи того же bitcoind , иначе можно пролететь с алгоритмом генерации, ибо есть много ньюансов, которые лучше возложить на поддерживаемый и обновляемый код.
Как вариант, если уж очень не хочется давать доступа к кошельку, генерить через апи адреса, а потом их запросом запихивать в базу на хостинге, на котором будет работать прием платежей.
Т.е. будет 2 сервера , один с bitcoind , полностью закрытый извне, а второй обычный хорстинг, на котором в базе будут только публичные адреса, для которых на сервере bitcoind есть соотвествующий публичный ключ в кошельке.