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

Мультимагазин


Recommended Posts

1 час назад, Dotrox сказал:

Плохая идея!

 

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

Все товары станут доступны во всех магазинах и при добавлении новых товаров или новых магазинов уже ничего делать не придётся.

мой вариант решения задачи не "кастрирует" движок. 

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

2 минуты назад, OCdevWizard сказал:

мой вариант решения задачи не "кастрирует" движок. 

 

подскажите куда пихать код? в какой файл?

он будет действовать только для новых файлов или для старых тоже применится?

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


1 минуту назад, OCdevWizard сказал:

мой вариант решения задачи не "кастрирует" движок. 

По вашей логике любую доработку можно назвать кастрацией.

Движок должен соответствовать задачам конкретного магазина, а не сохранять оригинальность кода просто из принципа.

 

Вы думали как ваш метод повлияет на скорость работы мультимагазина на сотню магазинов и 20к товаров (реальный пример)?

Это 2 миллиона записей в таблице связей!

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


1 час назад, Tobolskiy сказал:

подскажите куда пихать код? в какой файл?

он будет действовать только для новых файлов или для старых тоже применится?

тот код можно можно применить одноразово если его поместить нупример в файл admin/controller/catalog/information.php после http://prntscr.com/owxc51, на всякий случай почистить кеш модификаторов, и потом перейти на страницу "Каталог > Статьи". Как только страница загрузится можно убрать или закомментировать тот код из файла и почистить кеш модификаторов.

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

1 час назад, Dotrox сказал:

Вы думали как ваш метод повлияет на скорость работы мультимагазина на сотню магазинов и 20к товаров (реальный пример)?

Таблица oc_product = 213 650 записей

Таблица oc_product_to_store (с учетом что 3 магазина) = 640 890 записей

Проверено только что.

Конечно если в магазине очень много товаров и много магазинов тот код которым я поделился не подойдет, нужно как мимнум увеличивать время выполенния скрипта на сервере - хотя это не панацея. 

Если серйозно занятся этим вопросом, а не на скорою руку, то это можно сделать по другому.

Но как говорится "7 раз отмерь, 1 раз отрежь", выпилить часть функционала всегда успеете.

 

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

1 час назад, OCdevWizard сказал:

тот код можно можно применить одноразово если его поместить нупример в файл admin/controller/catalog/information.php после http://prntscr.com/owxc51, на всякий случай почистить кеш модификаторов, и потом перейти на страницу "Каталог > Статьи". Как только страница загрузится можно убрать или закомментировать тот код из файла и почистить кеш модификаторов.

спасибо

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


В 24.08.2019 в 14:48, Dotrox сказал:

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

Все товары станут доступны во всех магазинах и при добавлении новых товаров или новых магазинов уже ничего делать не придётся.

 

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

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


1 час назад, 00051by сказал:

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

думаю что нет

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

26 минут назад, OCdevWizard сказал:

думаю что нет

А ваш метод как работает? Просто вставить код в указанный файл и товары основного магазина будут отображаться во всех остальных, и, если нужно, можно потом галки поснимать? Нужно чистить кэш какой-то? Вставил в файл но пока ничего не происходит...

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


57 минут назад, 00051by сказал:

А ваш метод как работает? Просто вставить код в указанный файл и товары основного магазина будут отображаться во всех остальных, и, если нужно, можно потом галки поснимать? Нужно чистить кэш какой-то? Вставил в файл но пока ничего не происходит...

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

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

2 часа назад, 00051by сказал:
 

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

 

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

 

1 час назад, OCdevWizard сказал:

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

 

 

на самом деле отличный код и метод, сделать бы его на кнопку что бы потом не забыть про метод а ткнул и все.

Змінено користувачем Tobolskiy
Надіслати
Поділитися на інших сайтах


1 час назад, Tobolskiy сказал:

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

могу помочь но уже платно, так как это решение уже не пару строчек кода. Напишите мне в ЛС, договоримся. 

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

1 час назад, OCdevWizard сказал:

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

 

тоже не сработал код))

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


1 час назад, Tobolskiy сказал:

 

тоже не сработал код))

а в какой файл вы добавляете код ?

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

1 час назад, Tobolskiy сказал:

 

admin/controller/catalog/information.php

image.png.12d20fb9b225137f216df19582155081.png

так, я предлагал почистить кеш модификаторо, это не обязательно если у вас в системе нет модификаторов которые вносят правки в этот файл.

но на всякий случай вы почистили кеш модификаторов? http://prntscr.com/oxa1ls

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

Только что, OCdevWizard сказал:

так, я предлагал почистить кеш модификаторо, это не обязательно если у вас в системе нет модификаторов которые вносят правки в этот файл.

но на всякий случай вы почистили кеш модификаторов? http://prntscr.com/oxa1ls

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

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


1 час назад, Tobolskiy сказал:

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

http://prntscr.com/oxa7cp - сюда заходили? роут должен быть такой route=catalog/information

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

4 минуты назад, OCdevWizard сказал:

http://prntscr.com/oxa7cp - сюда заходили? роут должен быть такой route=catalog/information

 

да, только у меня это называется статьи, роут выглядит так /admin/index.php?route=catalog/information&token=

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


1 час назад, Tobolskiy сказал:

 

да, только у меня это называется статьи, роут выглядит так /admin/index.php?route=catalog/information&token=

странно

Напишите мне в ЛС доступы по ftp и в админку магазину, помогу

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

13 часов назад, 00051by сказал:

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

В базовой версии мой метод это не предполагает.

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

Но этот вариант имеет смысл только, если большинство товаров всё же будут доступны во всех магазинах.

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

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


19 часов назад, OCdevWizard сказал:

http://prntscr.com/oxa7cp - сюда заходили? роут должен быть такой route=catalog/information

Все заработало. Спасибо. Упустил из виду изначально, что нужно переходить на страницу статей. А с категориями можно тот же фокус провернуть?

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


58 минут назад, 00051by сказал:

Все заработало. Спасибо. Упустил из виду изначально, что нужно переходить на страницу статей. А с категориями можно тот же фокус провернуть?

да

// получаем общий массив всех магазинов в системе
$default_store = array(0 => array('store_id' => 0, 'name' => $this->config->get('config_name').' (Default)'));
$this->load->model('setting/store');
$all_stores = array_merge($this->model_setting_store->getStores(), $default_store);

// очищяем таблицу category_to_store
$this->db->query("TRUNCATE ".DB_PREFIX."category_to_store");

// добавляем каждую категорию во все магазины
$all_categories = $this->db->query("SELECT category_id FROM " . DB_PREFIX . "category"); // сюда можете дописывать условия выборки нужных вам категорий

foreach ($all_stores as $store) {
 if ($all_categories->rows) {
  foreach ($all_categories->rows as $category) {
    $this->db->query("INSERT INTO " . DB_PREFIX . "category_to_store SET category_id = '" . (int)$category['category_id'] . "', store_id = '" . (int)$store['store_id'] . "'");
  }
 }
}

 

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

  • 2 months later...
On 3/13/2018 at 8:39 PM, optimizator18 said:

http://saratov.detskuu.ru/sanki-kolyaski/nika/nika-6/ - все сломал. Пробовал различные вариации прежде чем написать. Что я сделал не так?

Тэг title со склонением

Тэг h1 - стандартный 


$this->progroman_city_manager->setFias($fias_id);
$city = $this->progroman_city_manager->getCityName();
$city = $this->load->controller('common/declension', $city);
		$category_info = $this->model_catalog_category->getCategory($category_id);

		if ($category_info) {

		if ($category_info['meta_title']) {
				$this->document->setTitle($category_info['meta_title'] . ' в ' . $city);
			} else {
				$this->document->setTitle($category_info['name']);
			}

			$this->document->setDescription($category_info['meta_description']);
			$this->document->setKeywords($category_info['meta_keyword']);

			if ($category_info['meta_h1']) {
				$data['heading_title'] = $category_info['meta_h1'] . ' в ' . $this->progroman_city_manager->getCityName();
			} else {
				$data['heading_title'] = $category_info['name'];
			}

 

 

Тоже не получается сделать склонение городов, точнее получилось, но только в теге TITLE

Инструкцию брал отсюда:

https://microdata.pro/blog/declension

 

Правильный фрагмент кода product.php для вывода названия города в правильном падеже (проверил, работает):

if ($product_info['meta_title']) {
$city = $this->load->controller('common/declension', $city = $this->progroman_city_manager->getShortCityName());
$title = str_replace('%CITY%', $city, $product_info['meta_title']);
$this->document->setTitle($title);
} else {
$this->document->setTitle($product_info['name']);
}

 

Подскажите, как сделать, чтобы название города в правильном падеже выводилось в описании товара и meta description?

В каком месте в файле product.php нужно будет вставить код замены?

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


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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

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