Подобный функционал уже давно предоставляется на базовом уровне Impera CMS. Функция называется - работа нескольких магазинов на одном движке.
Попробую объяснить на абстрактном примере. Предположим, у нас есть главный магазин - допустим, это сайт imperacms.ru. И пусть у нас появились следующие региональные магазины:
- moscow.imperacms.ru - для Москвы
- kiev.imperacms.ru - для Киева
- donetsk.imperacms.ru - для Донецка
В админпанели предполагалось разместить страницу, где мы могли бы в несколько кликов создать / отредактировать / удалить тот или иной магазин. И даже было зарезервировано место в меню, смотрите следующий скриншот. Но до реализации так и не дошло, потому что как только идейному вдохновителю модуля было объяснено, как это сделать вручную, пока будет вестись разработка интерфейса страницы, а ему на тот момент было нужно всего 2 дополнительных подмагазина, модуль попал в очередь отложенных, ведь с получением результата вручную у того пропал интерес к финансированию интерфейса.

Для ручного запуска дополнительных магазинов есть два пути, они описаны ниже. Нужно лишь учесть, что в силу того что Impera CMS предоставляет также и функционал по субдоменному размещению товаров, категорий, брендов и так далее (то есть отдельный товар или бренд например может быть легко размещен на своем субдомене, скажем audi.autoshop.com, смотрите скриншот в конце), то ключ Impera CMS распространяется на домен магазина и его поддомены. Таким образом, для региональных магазинов, если только они не имеют независимых доменных имен, оплачивать лицензионный ключ не нужно. Например эти магазины работают на одном ключе:
- example.com
- region1.example.com
- region2.example.com
- region3.example.com
А эти магазины работают на четырех разных ключах:
- example.com
- region1.com
- region2.com
- region3.com
Соответственно, стоимость лицензии в последнем примере возрастает кратно число действующих ключей.
Путь 1 - небезопасный Создать в панели управления доменом все необходимые субдомены региональных магазинов, сделав эти домены синонимами (еще говорят - псевдонимами, алиасами) основного домена, то есть адресовав их на тот же IP-адрес. Для этого вы должны найти в своем аккаунте на сайте регистратора доменных имен раздел управления доменом, как показано на следующем примерном скриншоте, и далее - ссылку на страницу управления доменной зоной.

Затем создайте столько поддоменов, сколько у вас будет региональных магазинов, как показано на скриншоте. Добавлять новые поддомены можно позже в любое время, по мере того как открывается новый магазин.

Поскольку в данном случае вы напрямую изменяете список адресных записей DNS (система доменных имен), то при сохранении очередных ваших изменений этой системе нужно время, максимум до 3 суток, чтобы изменения стали известны всем серверам системы в мире.
Стоит напомнить, что DNS записи нужно редактировать осторожно, иначе ваш сайт может на длительное время выпасть из поля видимости. Кроме того, нельзя удалять A-записи вида @ (указатель на основной домен) и вида * (указатель на остальные неназванные субдомены).
Путь 2 - безопасный Те же действия выполнить из вашей панели управления сайтом. Для этого зайдите в аккаунт на сайте хостинг-провайдера, найдите панель управления сайтом, в ней найдите раздел управления доменными указателями.

На этой странице добавьте синонимы желаемых доменов по числу необходимых магазинов, как показано на скриншоте. Отличие от редактирования DNS записей в том, что эти изменения принимаются мгновенно и менее критичны к ошибкам.

Проверяем Один за другим наберите в адресной строке браузера имя домена каждого магазина. Вы должны увидеть, что во всех случаях открывается тот же самый сайт - ваш главный магазин. То есть все региональные магазины пока что являются зеркалами главного магазина. С технической точки зрения, региональные магазины адресованы в ту же папку на сервере, куда и основной, соответственно работают на том же движке, используют ту же базу данных товаров, тот же шаблон (дизайн), имеют идентичное URL-пространство и так далее.
Наверняка нам хотелось бы как раз, чтобы каждый магазин использовал свою базу, бекапы, шаблон и так далее. Вот здесь придется вручную сделать те действия, что возлагались на упоминавшийся выше несделанный интерфейс. Нам нужно по FTP зайти в корневую папку магазина, найти там файл Config.class.php и скопировать его в ту же папку с именами вида:
- Config_moscow.imperacms.ru.php - для Москвы
- Config_kiev.imperacms.ru.php - для Киева
- Config_donetsk.imperacms.ru.php - для Донецка
Как видно, в каждом примере после слова Config и символа подчеркивания добавляется имя домена регионального магазина (для русскоязычного домена надо указывать его punycode-представление) и завершается расширением .php. То же самое показано на скриншоте.

Сейчас если мы откроем админпанели магазинов, то пока они еще зеркалируют друг друга, так как все еще пользуются одной базой данных:
- http://imperacms.ru/admin - для главного магазина
- http://moscow.imperacms.ru/admin - для Москвы
- http://kiev.imperacms.ru/admin - для Киева
- http://donetsk.imperacms.ru/admin - для Донецка
Однако зайдя в каждом магазине на страницу настройки -> Конфигурационный файл и сменив там имя базы данных, получим магазин со своей базой данных.
К сведению Следующий скриншот упоминался в начале и просто демонстрирует, что в Impera CMS существует несколько возможностей демонстрации, например страницы товара, в том числе когда он размещается на собственном субдомене. В кратком изложении принцип отрисовки страницы субдомена таков: сначала анализируется отмеченное красными стрелками, если контент субдомена не задан или субдомен отключен - то что помечено зеленым.
