Помощь Настройка opencart под большое количество товаров

bouton

Постоялец
Регистрация
6 Сен 2007
Сообщения
149
Реакции
27
Добрый день знатоки opencart'a.
Сейчас делаю магазин на базе opencart. Возник большой затык. При импорте большого количества товаров (30 000 товаров) любая страница очень медленно грузиться. Поменял верхнее меню на SL Menu, убрал левое меню. По сути запросов к базе должно быть в разы меньше, однако ничего толком не поменялось, если только совсем чуть чуть быстрее открывается.
На оф форуме сказали отключить пересчёт товаров, всё излазил - не нашёл.
Подскажите пожалуйста какие манипуляции нужно проделать чтобы тупняка такого небыло.
Видел на форуме что кто то умудрился в opencart запихать 120 000 товаров и всё нормально.
Спасибо.
 
Во первых тебе обычный хостинг не пойдет для такого к-ва товаров и ето пожалуй самое главное что ускоряет опенкарт при его прожорливой модели построения дерева категорий
Для просмотра ссылки Войди или Зарегистрируйся как можно увеличить быстродействие перейдя на VPS или VDS

Отключения подщета категорий мало что даст, но все же Для просмотра ссылки Войди или Зарегистрируйся

Индексы в БД расставь...
 
Для обычного хостинга я настраивал кэширование запросов по этой статье
Скрытое содержимое доступно для зарегистрированных пользователей!

Дело в том, что в моем пакете хостинга разрешена нагрузка на MySQL - 700, нагрузка на ЦП - 72. Без кэширования нагрузка на MySQL была всегда больше 700 и нагрузка на цп - 2. После включения memcached стало 20-30 - MySQL и цп - 20-50.
 
я делал магазин с количеством товара 45000. По оптимизации скорости было сделано:
1. В контроллерах поубирал расчёт количества товара в категории (это основная причина тормозов)
PHP:
$product_total = $this->model_catalog_product->getTotalProducts($data);
- эту строку пишем $product_total = 0;
Причём проделываем данную опперацию везде, где формируются категории (как минимум в шапке и в модуле)
2. Смотрим, нет ли у нас замечательного модуля "Случайные товары магазина", который в случайном порядке выводит на главную несколько случайных товаров. Если есть отключаем, т.к. зачастую данный фильтр может положить даже небольшой (700 товаров) магазин.
3. В контроллерах категории, модулей оптимизируем формирование массива товаров
PHP:
$this->data['products'][] = array(
                    'product_id'  => $result['product_id'],
                    'thumb'      => $image,
                    'name'        => $result['name'],
                    'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
                    'price'      => $price,
                    'special'    => $special,
                    'tax'        => $tax,
                    'rating'      => $result['rating'],
                    'reviews'    => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
                    'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'])
                );
удаляем всё лишнее. а также выше данного формирования смотрим чтобы не подтягивались лишние данные.
 
я делал магазин с количеством товара 45000. По оптимизации скорости было сделано:
1. В контроллерах поубирал расчёт количества товара в категории (это основная причина тормозов)
PHP:
$product_total = $this->model_catalog_product->getTotalProducts($data);
- эту строку пишем $product_total = 0;
Причём проделываем данную опперацию везде, где формируются категории (как минимум в шапке и в модуле)
2. Смотрим, нет ли у нас замечательного модуля "Случайные товары магазина", который в случайном порядке выводит на главную несколько случайных товаров. Если есть отключаем, т.к. зачастую данный фильтр может положить даже небольшой (700 товаров) магазин.
3. В контроллерах категории, модулей оптимизируем формирование массива товаров
PHP:
$this->data['products'][] = array(
                    'product_id'  => $result['product_id'],
                    'thumb'      => $image,
                    'name'        => $result['name'],
                    'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
                    'price'      => $price,
                    'special'    => $special,
                    'tax'        => $tax,
                    'rating'      => $result['rating'],
                    'reviews'    => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
                    'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'])
                );
удаляем всё лишнее. а также выше данного формирования смотрим чтобы не подтягивались лишние данные.


А как будет работать постраничная навигация без подсчета общего количества товара?
 
Добрый день знатоки opencart'a.
Сейчас делаю магазин на базе opencart. Возник большой затык. При импорте большого количества товаров (30 000 товаров) любая страница очень медленно грузиться. Поменял верхнее меню на SL Menu, убрал левое меню. По сути запросов к базе должно быть в разы меньше, однако ничего толком не поменялось, если только совсем чуть чуть быстрее открывается.
На оф форуме сказали отключить пересчёт товаров, всё излазил - не нашёл.
Подскажите пожалуйста какие манипуляции нужно проделать чтобы тупняка такого небыло.
Видел на форуме что кто то умудрился в opencart запихать 120 000 товаров и всё нормально.
Спасибо.

А еще попробуйте это:
Для просмотра ссылки Войди или Зарегистрируйся

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

Вложения

  • 2013-04-19_233016.jpg
    2013-04-19_233016.jpg
    168,2 KB · Просмотры: 166
Всё равно, чтоб я не проделывал выскакивает вот такое сообщение.
Но до того как я проделал всё то что вы описали страница долго грузилась, а теперь выскакивает очень быстро ))

Откройте файл /catalog/view/theme/default/template/common/header.tpl и посмотрите что там творится. Возможно есть в самом начале пустая строка. Или нет завершающей скобки php '?>'. Если что-то исправите, перед проверкой почистите кеш vqmod'а - /vqmod/vqcache.
 
Назад
Сверху