Jump to content

Recommended Posts

4 часа назад, Kalwin сказал:

У меня стандартный .htaccess, в нём нет редиректов.

  Показать контент

# 1.To use URL Alias you need to be running apache with mod_rewrite enabled.

# 2. In your opencart directory rename htaccess.txt to .htaccess.

# For any support issues please visit: http://www.opencart.com

Options +FollowSymlinks

# Prevent Directoy listing
Options -Indexes

# Prevent Direct Access to files
<FilesMatch "(?i)((\.tpl|.twig|\.ini|\.log|(?<!robots)\.txt))">
 Require all denied
## For apache 2.2 and older, replace "Require all denied" with these two lines :
# Order deny,allow
# Deny from all
</FilesMatch>

# SEO URL Settings
RewriteEngine On
# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/

RewriteBase /
RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=extension/feed/google_base [L]
RewriteRule ^system/storage/(.*) index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

### Additional Settings that may need to be enabled for some servers
### Uncomment the commands by removing the # sign in front of it.
### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.

# 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
# php_flag register_globals off

# 2. If your cart has magic quotes enabled, This may work to disable it:
# php_flag magic_quotes_gpc Off

# 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try
# php_value upload_max_filesize 999M

# 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value post_max_size 999M

# 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_execution_time 200

# 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_input_time 200

# 7. disable open_basedir limitations
# php_admin_value open_basedir none

 

 

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

Share this post


Link to post
Share on other sites
1 час назад, 00051by сказал:

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

Хорошо, будем клацать.

Share this post


Link to post
Share on other sites
15 часов назад, Kalwin сказал:

У меня стандартный .htaccess, в нём нет редиректов.

Возможно, у вас на хостинге где-то настроено перенаправление.

 

 

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

Даже после удаления перенаправления какое-то время выкидывало на основной магазин.

Браузеры кешируют 301-й редирект. Поэтому редиректы надо проверять через анонимное окно браузера (режим инкогнито).

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
22 часа назад, 00051by сказал:

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

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

 

Для модулей с собственными моделями это нужно делать отдельно и тут может возникнуть проблема, если у модуля модель закрыта ИонКубом. Но, похоже, шифрование моделей уже вышло из моды, потому что проблем с этим пока не возникало.

Share this post


Link to post
Share on other sites
В 23.06.2017 в 13:50, sanya167 сказал:

Всем привет. Как массово можно включить все категории и товары во все созданные магазины? А то 20тыс товаров вручную клацать не вариант)

Спасибо )

 

 

Ребятушки, тоже мучаюсь с этим вопросом, возможно уже кто то давал ответ, но поиск не дал результатов. Скажите как решать задачу? Есть много товаров/групп, нужно их добавить во все магазины?

Share this post


Link to post
Share on other sites
2 часа назад, Tobolskiy сказал:

Ребятушки, тоже мучаюсь с этим вопросом, возможно уже кто то давал ответ, но поиск не дал результатов. Скажите как решать задачу? Есть много товаров/групп, нужно их добавить во все магазины?

// получаем общий массив всех магазинов в системе
$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);

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

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

foreach ($all_stores as $store) {
 if ($all_products->rows) {
  foreach ($all_products->rows as $product) {
    $this->db->query("INSERT INTO " . DB_PREFIX . "product_to_store SET product_id = '" . (int)$product['product_id'] . "', store_id = '" . (int)$store['store_id'] . "'");
  }
 }
}	

 

  • +1 1

Share this post


Link to post
Share on other sites

Так например
 

INSERT INTO `oc_product_to_store` (`product_id`, `store_id`) SELECT `product_id`, 2 FROM `oc_product`;
INSERT INTO `oc_category_to_store` (`category_id`, `store_id`) SELECT `category_id`, 2 FROM `oc_category`;

итд по аналогии.

  • +1 1

Share this post


Link to post
Share on other sites
9 минут назад, Pascha сказал:

для НЕхамов пишу так 

Вы адекват? Где я вам нахамил? Вы себе сообщения набиваете что ли? Я вежливо спросил у людей как решить проблему, вменяемые люди уже ответили, вам все скучно. У вас стиль общения такой? Пришли, насрали в топик и свалили. Нафиг вы пишете?

Share this post


Link to post
Share on other sites
2 минуты назад, Tom сказал:

Так например
 

INSERT INTO `oc_product_to_store` (`product_id`, `store_id`) SELECT `product_id`, 2 FROM `oc_product`;
INSERT INTO `oc_category_to_store` (`category_id`, `store_id`) SELECT `category_id`, 2 FROM `oc_category`;

итд по аналогии.

 

благодарю

Share this post


Link to post
Share on other sites
40 минут назад, OCdevWizard сказал:
// получаем общий массив всех магазинов в системе
$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);

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

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

foreach ($all_stores as $store) {
 if ($all_products->rows) {
  foreach ($all_products->rows as $product) {
    $this->db->query("INSERT INTO " . DB_PREFIX . "product_to_store SET product_id = '" . (int)$product['product_id'] . "', store_id = '" . (int)$store['store_id'] . "'");
  }
 }
}	

 

 

спасибо. хотя не очень понял куда этот код вставлять в какой файл

Share this post


Link to post
Share on other sites
2 часа назад, OCdevWizard сказал:
// получаем общий массив всех магазинов в системе
$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);

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

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

foreach ($all_stores as $store) {
 if ($all_products->rows) {
  foreach ($all_products->rows as $product) {
    $this->db->query("INSERT INTO " . DB_PREFIX . "product_to_store SET product_id = '" . (int)$product['product_id'] . "', store_id = '" . (int)$store['store_id'] . "'");
  }
 }
}	

 

Плохая идея!

 

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

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

 

 

Share this post


Link to post
Share on other sites
1 час назад, Dotrox сказал:

Плохая идея!

 

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

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

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

  • +1 1

Share this post


Link to post
Share on other sites
2 минуты назад, OCdevWizard сказал:

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

 

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

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

Share this post


Link to post
Share on other sites
1 минуту назад, OCdevWizard сказал:

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

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

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

 

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

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

Share this post


Link to post
Share on other sites
1 час назад, Tobolskiy сказал:

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

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

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

  • +1 1

Share this post


Link to post
Share on other sites
1 час назад, Dotrox сказал:

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

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

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

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

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

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

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

 

Share this post


Link to post
Share on other sites
1 час назад, OCdevWizard сказал:

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

спасибо

Share this post


Link to post
Share on other sites
В 24.08.2019 в 14:48, Dotrox сказал:

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

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

 

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

Share this post


Link to post
Share on other sites
1 час назад, 00051by сказал:

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

думаю что нет

Share this post


Link to post
Share on other sites
26 минут назад, OCdevWizard сказал:

думаю что нет

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

Share this post


Link to post
Share on other sites
57 минут назад, 00051by сказал:

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

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

  • +1 1

Share this post


Link to post
Share on other sites
2 часа назад, 00051by сказал:
 

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

 

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

 

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

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

 

 

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

Edited by Tobolskiy

Share this post


Link to post
Share on other sites
1 час назад, Tobolskiy сказал:

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

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

Share this post


Link to post
Share on other sites
1 час назад, OCdevWizard сказал:

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

 

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.