Ответы пользователя по тегу OpenCart
  • Как происходит передача сайта заказчику?

    zoonman
    @zoonman
    CEO @ LinuxQuestions.ru
    Зависит от заказчика. Если заказчик полный профан в IT и понятие не имеет о том, что такое хостинг, то делается это так.
    0. Получаются средства за сделанную работу.
    1. Запрашиваются паспортные данные заказчика, на его имя оформляется домен и покупается хостинг (на отдельный временный email), нужно делать это вместе с заказчиком (если заказчик живет в другом городе, то скайп еще не отменили).
    2. Переносится ресурс на хостинг заказчика, делаются последние правки.
    3. Получаете средства за перенос и развертывание. Отдаете ключи от хостинга.

    Если человек разбирается в процессе, то берете оплату, затем отдаете дампы. Заливка, установка и настройка за отдельные деньги по предоплате.
    Ответ написан
  • Как ускорить Opencart при большом кол-ве товаров?

    zoonman
    @zoonman
    CEO @ LinuxQuestions.ru
    17500 - это ничтожно малое количество записей.
    У Опенкарта основная проблема - говнокод на уровне обращений к базе данных. Много запросов в цикле и т.д.
    Решается обычно установкой MySQL на нормальную машину с хорошим объемом памяти и SSD, миграцией на InnoDB, анализом запросов и построением необходимых индексов. Кроме индексов необходимо отследить размеры буферов и т.д. В вашем случае объем памяти должен быть в районе от 8 GB RAM. Из решений рекомендую использовать не MySQL, а MariaDB или PerconaDB. Не используйте виртуальный (shared) хостинг.
    Еще поищите, есть хорошая утилита mysqltuner, она подсказывает оптимальные характеристики для СУБД.
    Включите лог медленных запросов и запросов неиспользующих индексы.
    Проанализируйте сетевой стек вашего соединения с MySQL, работа через сокет значительно ускоряет работу приложения. Некоторые горе-мастера выставляют адрес домена, который система переодически ресолвит и это увеличивает издержки на время соединения.
    При высокой посещаемости и некритичности актуальности данных используется подход с переписыванием слоя абстракции БД опенкарта с применением кеширования результатов в Memcached. Актуально для высокопосещаемых ресурсов с разного рода предзаказами или проверкой остатков непосредственно при добавлении заказа.
    Ответ написан
  • Что лучше Brocart vs OcStore?

    zoonman
    @zoonman
    CEO @ LinuxQuestions.ru
    А чем вас обычный OpenCart не устраивает?
    Ответ написан
  • Opencart как сделать вывод товаров в меню категорий слева, модули не предлагайте, все перерыл, такого нет?

    zoonman
    @zoonman
    CEO @ LinuxQuestions.ru
    catalog/view/theme/default/template/module/category.tpl

    ... ищем строку
                <a href="<?php echo $child['href']; ?>" class="active"> - <?php echo $child['name']; ?></a>
    
    дальше пишем кусок с перебором товаров примерно так, не забудьте про стили и необходимые проверки
    
    <?php if (isset($child['products'])) {  ?>
    <ul>
        <?php foreach ($child['products'] as $product) { ?>
          <li><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></li>
    <?php } ?>
    </ul>
    <?php } ?>
    
    + еще надо поправить определение текущей категории по товару
    и вытаскивание товаров для активной категории
    
    catalog/controller/module/category.php
    там, где наполняются категории
    
    $children_data[] = ...;
    
    нужно добавить кусок из catalog/controller/product/category.php
    
    переписать вот это примерно так, но поисправлять все!
    
    $data = array(
    				'filter_category_id' => $child['category_id'],
    				'filter_filter'      => $filter, 
    				'sort'               => $sort,
    				'order'              => $order,
    				'start'              => ($page - 1) * $limit,
    				'limit'              => $limit
    			);
    			$results = $this->model_catalog_product->getProducts($data);
    
    и засунуть эти результаты туда, к $children_data
    вроде следующего
    
    $children_data[] = array(
    					'category_id' => $child['category_id'],
    					'name'        => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
    					'href'        => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])	,
    
    'products' => $results 
    
    				);
    
    если много товаров, эта хрень может тормозить
    Ответ написан