Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Поддержка] MultiStore Admin FIX


1nSane

Recommended Posts

MultiStore Admin FIX


MultiStore Admin FIX


В OpenCart есть досадное недоразумение. Мультимагазин поддерживается только на фронтенде. И разработчики пытаются с помощью костылей заставить свои модули работать с мультимагазинами.

Что делает этот модуль?

Добавляет в админ.часть переменную с указанием магазина, и после его установки ЛЮБОЙ модуль начинает поддерживать мультимагазины.

Зачем мне это?

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

Установка и использование

После установки будут доступны админки с разных доменов, т.е. если раньше у Вас был site.ru/admin/, и при попытке зайти на site2.ru/admin/ Вас перекидывало на site.ru/admin/, то теперь у каждого домена будет "своя" админка. И все изменения сделанные там, будут касаться настроек только этого домена.

Как бонус, можно будет улучшить безопасность, для каждого домена (магазина) назначить своих менеджеров, которые будут иметь доступ только к данному магазину и не тронут всю систему.

РЕШЕНИЕ ПРОБЛЕМ

Бывает, что файлы /admin/index.php и /admin.config.php создаются, но не работают (запускается оригинальная версия). В таком случае в эти файлы надо внести правки самостоятельно. Есть 2 варианта:

1 вариант: Заливаем файл multistore_admin_fix_core.ocmod.xml, обновляем кэш дополнений. Затем идем в /system/storage/modification/admin, копируем оттуда эти 2 файла и заменяем ими оригинальные в папке /admin

2 вариант: Открываем /admin/config.php и меняем

<?php

// HTTP

define('HTTP_SERVER', 'http://ваш.сайт/admin/');

define('HTTP_CATALOG', 'http://ваш.сайт/');

// HTTPS

define('HTTPS_SERVER', 'http://ваш.сайт/admin/');

define('HTTPS_CATALOG', 'http://ваш.сайт/');

на

<?php

$host = $_SERVER['HTTP_HOST'];

// HTTP

define('HTTP_SERVER', 'http://'.$host.'/admin/');

define('HTTP_CATALOG', 'http://ваш.сайт/');

// HTTPS

define('HTTPS_SERVER', 'http://'.$host.'/admin/');

define('HTTPS_CATALOG', 'http://ваш.сайт/');

А также редактируем /admin/index.php

// Settings

$query = $db->query("SELECT * FROM " . DB_PREFIX . "setting WHERE store_id = '0'");

меняем на

// Store

if (isset($_SERVER['HTTPS']) && (($_SERVER['HTTPS'] == 'on') || ($_SERVER['HTTPS'] == '1'))) {

$store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`ssl`, 'www.', '') = '" . $db->escape('https://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");

} else {

$store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`url`, 'www.', '') = '" . $db->escape('http://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");

}

if ($store_query->num_rows) {

$config->set('config_store_id', $store_query->row['store_id']);

} else {

$config->set('config_store_id', 0);

}

// Settings

$query = $db->query("SELECT * FROM " . DB_PREFIX . "setting WHERE store_id = '0' OR store_id = '" . (int)$config->get('config_store_id') . "' ORDER BY store_id ASC");

Совместимость

Пока модуль проверен только на ocStore 2.1.0.2.1, пробуйте и сообщайте мне о совместимости и багах, буду дополнять.


  • Добавил
  • Добавлено
    21.06.2016
  • Категория
  • Системные требования
  • Метод активации
  • Ioncube Loader
  • ocStore
  • OpenCart.Pro, ocShop
  • Обращение к серверу разработчика

 

  • +1 3
Надіслати
Поділитися на інших сайтах

  • 1 month later...

Здравствуйте.

 

Ставлю модуль родной модуль яндекс-кассы, изменения сделанные в одном магазине появляются в другом, как сделать чтобы настройки были независимые для магазинов?

Надіслати
Поділитися на інших сайтах


  • 3 weeks later...

Здравствуйте.

 

Ставлю модуль родной модуль яндекс-кассы, изменения сделанные в одном магазине появляются в другом, как сделать чтобы настройки были независимые для магазинов?

Сорри, давно не было. Опишите в ЛС или аську 173841566 ситуацию, версию ОС и будьте готовы дать доступ к ФТП, проверить, все ли файлы отработали как надо.

Надіслати
Поділитися на інших сайтах

  • 1 month later...
  • 2 weeks later...

Так и не смог понять работает модуль или нет.

Получилось войти в админки разных магазинов.

 

НО все настройки меняются синхронно при изменении в одном их магазинов.

 

Автор не отвечает на мои запросы уже 1.5 месяца.

 

Скажите как должна выглядеть настройка модулей, чтобы понять работает модуль или нет, Как его можно просто проверить?

Надіслати
Поділитися на інших сайтах


  • 7 months later...
В 15.10.2016 в 23:26, valentin2811 сказал:

Так и не смог понять работает модуль или нет.

Получилось войти в админки разных магазинов.

 

НО все настройки меняются синхронно при изменении в одном их магазинов.

 

Автор не отвечает на мои запросы уже 1.5 месяца.

 

Скажите как должна выглядеть настройка модулей, чтобы понять работает модуль или нет, Как его можно просто проверить?

Та же самая проблема. Вам удалось заставить модуль работать как надо для мультимагазина?

Надіслати
Поділитися на інших сайтах


  • 3 months later...
  • 2 years later...

Работает

ВАЖНО!! Если магазин на SSL то:

 

<?php

$host = $_SERVER['HTTP_HOST'];

// HTTP

define('HTTP_SERVER', 'http://'.$host.'/admin/');

define('HTTP_CATALOG', 'http://ваш.сайт/');

// HTTPS

define('HTTPS_SERVER', 'httpS://'.$host.'/admin/');

define('HTTPS_CATALOG', 'httpS://ваш.сайт/');

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.