Как правильно построить взаимодействие своей «внутренней» базы товаров с движком интернет-магазина?
Думается, что должно быть так: товары хранятся не в таблицах, а в единой БД. Когда владелец бизнеса что-то там меняет, эти изменения автоматически распространяются в каталоги интернет-магазинов.
Как такое делают?

А в чём сложность? Ставите тот же Mysql, складываете в него товары, потом подключаетесь, берёте данные и выводите.
Проблема тут не столько программистская, сколько организационная.
И главный ключевой вопрос тут в том: на какие трудозатраты со своей стороны готов владелец бизнеса.

Когда каталог обновляется, он экспортит эти таблицы в xlsx и присылает мне -> я выгружаю из движка интернет-магазина текущий каталог в csv -> загоняю в Excel, вручную правлю -> загружаю назад.

Вот это, с точки зрения автоматизации, никуда не годится. И логично посадить девочку, которая будет через веб-интерфейс вбивать товары в базу прямо в админку магазина. А уже из одного магазина можно полностью или частично экспортировать товары в другой, особенно, если это Битрикс какой-нибудь, в котором уже есть готовый XML формат. Или часть экспортировать, часть забить руками через админку другого магазина. В общем, варианты и простор для творчества есть.

Но может владелец бизнеса эту эксельку еще где-то использует или просто принципиально не готов менять подходы со своей стороны, осваивать веб-интерфейс не захочет, "я всю жизнь через Excel делал, переучиваться не хочу".

Еще есть вариант, что эту Excel заказчик формирует из 1C, тогда логично разобраться с импортом из него прямо в базу магазинов.

В общем, я бы поговорил с заказчиком, обсудил варианты и выяснил возможности.