[FAQ] Настройки, оптимизации, фичи, статьи для OpenCart

Тема в разделе "OpenCart", создана пользователем VeroN, 23 дек 2012.

  1. VeroN

    VeroN

    Регистрация:
    26 ноя 2012
    Сообщения:
    82
    Симпатии:
    316
    « Правила раздела »
    1. Обсуждения - запрещены! Здесь размещаются только "готовые решения".
    2. Если хотите отблагодарить автора поста, то используем кнопку «Мне нравится». Создавать для этого новые сообщения не нужно!
    3. Размещать ссылки на сторонние ресурсы - запрещено.
    4. Если у вас возникли вопросы по одному из сообщений и вы считаете, что оно требует доработки или прочих изменений, то свяжитесь с автором поста для редактирования информации или сообщите одному из модераторов раздела для внесения изменений при помощи личных сообщений или кнопки "Пожаловаться".
    Правила оформления сообщения
    1. Название - для удобного поиска.
    2. Использовать размер шрифта для заголовков не больше 5, для остального не меньше 3 (стандартный). Если используете другой "цвет" шрифта, то он должен быть адекватным и не содержать 'радуги' или 'ядовитый' оттенок, который при просмотре ломает глаза.
    3. Для кода используем соответствующие теги, если код длинный, то прячем под "спойлер".
    4. Свободная информация взятая из интернета под хайдом не устанавливается! Если это ваш личный метод, то хайд на ваше усмотрение.
    Пример:
    « Меняем иконку для сайта »

    По умолчанию стандартная иконка имеет вид корзины для покупок. Рисуем свою иконку (16х16 px), сохраняем ее как "favicon.ico" и загружаем в корень сайта. Открываем файл "header.tpl" (путь: catalog\view\theme\default\template\common) и добавляем строчку:
    Код:
    <link rel="shortcut icon" href="/favicon.ico">
    - - -
    С уважением,
    Администрация форума
     
    rrrrsrer79, hisbvdis, Zelveger и 3 другим нравится это.
  2. VeroN

    VeroN

    Регистрация:
    26 ноя 2012
    Сообщения:
    82
    Симпатии:
    316
    « Совет после установки движка на хостинг » (метод был проделан на OpenCart версии 1.5.3.1)

    1) Заходим в панель администратора, далее "Система" - "Настройки" - "Управление магазинами" - жмем "Изменить". Заходим во вкладку "Сервер" и находим раздел "Ключ шифрования:" (значение которого имеет вид 0e485dc46ab8fd0ca460340a0f7a3359 ). Заменяем его на свой-любой (формат UTF 8).

    Попутно в данной вкладке включаем ЧПУ. Тип ЧПУ выбираем SeoPro. Включаем "ЧПУ товаров с категориями". "Окончание ЧПУ" - пишем как ".html".

    Жмем кнопку сохранить. В корне сайта (магазина) находится файл ".htaccess.txt". Переименовываем его в ".htaccess" (обязательно !!!). Многие забывают это сделать и как следствие красивые урлы страниц не генерируются. Теперь наши страницы с созданными товарами будут иметь вполне красивый вид, типа http://site.ru/категория/имя_товара.html, вместо: http://site.ru/index.php?route=product/product&path=20&product_id=40.

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

    2) Для повышения безопасности интернет-магазина на OpenCart после установки движка не забываем удалить папку install и изменить права на файлы: "config.php" и "/admin/config.php" на 444. Не лишнем будет и защитита папки "admin" при помощи файлов ".htpasswd" и ".htaccess". Т.е. доступ к ней будет получен только после ввода логина и пароля. Это можно сделать через панель управления хостингом cPanel, либо найти информацию о защите папок при помощи ".htpasswd" и ".htaccess" в интернете (там ее предостаточно). Если у Вас статичный IP-адрес и Вы уверенны, что он не изменится, то можно поместить в директорию "admin" файл .htaccess примерно следующего содержания:
    Код:
    Order Deny,Allow
     
    Deny from all
     
    Allow from Ваш_IP_адрес
    или дописать эти строки, если файл ".htaccess" уже существует в папке "admin".

    - - -

    « Делаем нормальную ссылку при нажатии на логотип сайта » (метод был проделан на OpenCart версии 1.5.3.1)

    Если кликнуть на логотип вверху сайта с надписью "opencart" или на ссылку вверху "Главная", то открывается главная страница, но в адресной строке url имеет примерно такой вид: http://site.ru/index.php?route=common/home. Уберем лишнее из url, так, чтобы ссылка при клике приняла вид: http://site.ru/

    Для этого подредактируем файл "url.php" (путь: system/library/url.php)

    Находим строчки (с 25 по 27):
    Код:
    if ($args) {
    $url .= str_replace('&', '&amp;', '&' . ltrim($args, '&'));
    }
    После них вставляем следующий кусок:
    Код:
    else {
     
    if($route == 'common/home') {
     
    if($connection == 'NONSSL') { return HTTP_SERVER; }
     
    else { return HTTPS_SERVER; }
     
    }
     
    }
    Все, задача решена.

    - - -

    « Избавляемся от дублей главной страницы » (метод был проделан на OpenCart версии 1.5.3.1)

    Изначально, главная страница сайта доступна по следующим адресам: http://www.site.ru/, http://site.ru/, http://site.ru/index.php, http://www.site.ru/index.php. Это очень плохо, ведь для поисковиков это четыре разных страницы (разные URL)! Если не принять меры, то поисковые системы добавят в свой индекс четыре одинаковых страницы. А это признак некачественного сайта! Для того, чтобы избежать такой проблемы в файл ".htaccess", расположенный в корне сайта допишем после RewriteEngine On следующие строки:
    Код:
    # Редирект c www на без www
     
    RewriteCond %{HTTP_HOST} ^www.site.ru
     
    RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
     
    # Редирект для главной (с /index.php на /)
     
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\ HTTP/
     
    RewriteRule ^index\.html$ / [R=301,L]
     
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
     
    RewriteRule ^index\.php$ / [R=301,L]
    Все дубли главной страницы будут склеены редиректом с кодом 301 («постоянное перемещение») с главной страницей – http://site.ru/. Желательно также назначить совпадающее основное зеркало в файле robots.txt. Внизу этого файла дописываем строчку:
    Код:
    Host: site.ru
    Разумеется везде, вместо site.ru - используйте свой домен.

    Внимание! Бывает, что после применения редиректа с www на без www или наоборот, становится невозможно авторизоваться на сайте в качестве администратора. Для решения этой проблемы (используя ftp доступ к сайту) смотрим и при необходимости редактируем пути в файле "config.php" в папке "admin" и "корневой" директории магазина.

    - - -

    « Убираем или редактируем надпись внизу страницы "Работает на Opencart" » (метод был проделан на OpenCart версии 1.5.3.1)

    Внизу нашего сайта (интернет-магазина) видим надпись и ссылку на сайт http://myopencart.ru/:
    Код:
    Работает на OpenCart
    Название_магазина © 2012
    Убираем ссылку и меняем надпись на свою. Чтобы убрать эти строчки полностью - находим файл "footer.tpl" (путь: \catalog\view\theme\default\template\common).

    Внизу файла удаляем строку:
    Код:
    <div id="powered"><?php echo $powered; ?></div>
    Либо в это место "футера" вставим счетчики посещаемости. Тогда строка будет вида:
    Код:
    <div id="powered"><span>код_счетчика_1</span> <span>код_счетчика_2</span></div>
    С помощью css стилей можно отредактировать отступы и выравнивание для блока счетчиков. Для этого идем в папку \catalog\view\theme\default\stylesheet. Открываем файл "stylesheet.css". В его конце (строка 1627, примерно) находим идентификатор "powered"
    Код:
    #powered {
    margin-top: 5px;
    text-align: right;
    clear: both;
    }
    Его и правим, как нам угодно, добиваясь красивого расположения счетчиков внизу страницы. Если же надо просто убрать ссылку на сайт http://myopencart.ru/ и изменить надпись на какую-то свою, то вносим изменения в файле "footer.php" (путь: \catalog\language\russian\common). Внизу файла меняем информацию в строке:
    Код:
    $_['text_powered'] = 'Работает на <a href="http://myopencart.ru">OpenCart</a>
    %s &copy; %s';
    - - -

    « Настройка и совет по модулю "Приветствие" » (метод был проделан на OpenCart версии 1.5.3.1)

    Модуль "Приветствие" необходим для описания магазина (что он продает, какие услуги предлагает и т.п.) мы рекомендуем включить модуль "Приветствие", который уже имеется в движке магазина. Он дает пользователю начальную информацию и представление об интернет-магазине, его товарах, особенности и работе. А уникальный и грамотно составленный текст описания (1000 - 1500 символов) позволит поисковикам лучше ранжировать Ваш сайт.

    Итак, сначала устанавливаем модуль.

    В админ панели ищем: "Дополнения" - "Модули" - выбираем "Приветствие" - жмем "Установить". Далее "Изменить" - "Добавить модуль". Пишем сообщение и включаем модуль. Обновляем главную страницу, модуль включен, но есть один неприятный момент, а именно надпись "Добро пожаловать в Мой Магазин", изменить которую в админ панеле нельзя. "Мой Магазин" - это название сайта (магазина). Соответственно название может быть каким угодно, например: "Сотовые телефоны", "Кондиционеры и сплит системы", "Ноутбуки в Урюпинске - продажа, цены" и т.п. Согласитесь, что заголовок приветствия вида "Добро пожаловать в Ноутбуки в Урюпинске - продажа, цены" как-то не совсем красивый. Для исправления данной ситуации вносим изменения в файл "welcome.php" (путь: \catalog\language\russian\module). В нем всего три строчки кода:
    Код:
    <?php $_['heading_title'] = 'Добро пожаловать в %s'; ?>
    Убираем лишнее, а именно фразу "Добро пожаловать в ". Получаем то, что нужно - хороший заголовок:
    Код:
    <?php $_['heading_title'] = '%s'; ?>
    Теперь немного по оптимизации данного заголовка. Если просмотреть исходный код главной страницы, то название сайта в приветствии (у меня оно "Мой Магазин") обрамлено конструкцией
    Код:
    <div ="<a class="attribute-value">welcome</a>">Мой Магазин</div>
    Для поисковой оптимизации и лучшего ранжирования сайта заключим название магазина в теги <h1>
    Код:
    <h1>Мой Магазин</h1>
    Для этого открываем файл "welcome.tpl" (путь: \catalog\view\theme\default\template\module):
    Код:
    <div class="welcome"><?php echo $heading_title; ?></div> <?php echo $message; ?>
    меняем на:
    Код:
    <h1><?php echo $heading_title; ?></h1> <?php echo $message; ?>
    Стиль заголовка (размер шрифта, цвет, отступы и т.д) меняем в файле "stylesheet.css" (строки 16-24):
    Код:
    h1, .welcome {
     
    					color: #636E75;
     
    					font-family: Verdana;
     
    					margin-top: 0px;
     
    					margin-bottom: 20px;
     
    					font-size: 32px;
     
    					font-weight: normal;
     
    					text-shadow: 0 0 1px rgba(0, 0, 0, .01);
     
    				  }
    Как видим для заголовка h1 и класса welcome значения стилей одни и те же.

    При просмотре исходного кода главной страницы встречается еще один тег <h1> с названием магазина.
    Код:
    <h1 style="display: none;">Мой Магазин</h1><span class="end-tag">
    Располагается он вверху карусели производителей, но из-за атрибута "display: none;" посетителям сайта не виден, зато его прекрасно видят поисковые роботы. Два тега h1 на странице - не есть хорошо. Поэтому удаляем невидимку. Для этого в файле "home.tpl" (путь: \catalog\view\theme\default\template\common) удаляем строчку:
    Код:
    <h1 style="display: none;"><?php echo $heading_title; ?></h1>
    - - -

    « robots.txt для OpenCart »

    Для закрытия от индексации дублей страниц в OpenCart предлагаю вот такой файл robots.txt.

    Если в нем что-нибудь забыл указать, то просьба знающих людей дополнить или поправить…
     
  3. non@me

    non@me

    Регистрация:
    21 ноя 2012
    Сообщения:
    77
    Симпатии:
    109
    Автоматическая генерация ЧПУ товаров и меню
    после установки работает только при создании нового товара или меню со старыми уже созданными не работает

    Берем вот этот архив. В нем файл translit.js.
    1. Копируем его в admin/view/javascript/jquery/
    2. Открываем в редакторе файл admin/view/template/common/header.tpl
    3. Ищем в нем строку подключения jQuery, а именно
    <script src="view/javascript/jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
    после нее подключаем наш translit.js
    <script type="text/javascript" src="view/javascript/jquery/translit.js"></script>

    PS Если чего нужно поменять, в translit.js

    setTranslit("product_description[1][name]", "keyword", false);
    первый параметр – имя input с названием товара
    второй параметр – имя input куда будем писать
    третий параметр – перезаписывать ли псевдоним при изменении имени товара.
    Если третий параметр false – псевдоним будет заполнен только если ранее это поле было пустым.

    P.S. Для того, чтобы ЧПУ были в нижнем регистре нужно заменить в скрипте translit.js строку
    return tmp_str;
    (это строка №14) на
    return tmp_str.toLowerCase();

    в скрипте 14 строка, которая

    return tmp_str;

    замените ее на

    return tmp_str.toLowerCase();

    - - -

    Откорректированный файл seo_url.php
    берем вот отсюда

    - - -

    Настройка ЧПУ в OpenCart

    ЧПУ в OpenCart настраивается достаточно просто.
    1. В "Система" / "Настройки"/ "Сервер" / ваш_магазин ставим "Включить ЧПУ" - да, Тип ЧПУ - по умолчанию.

    вот что нужно прописать в .htaccess.

    Options +FollowSymlinks
    Options -Indexes
    <FilesMatch "\.(tpl|ini|log)">
    Order deny,allow
    Deny from all
    </FilesMatch>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
    RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
    RewriteRule ^yandexmarket.xml$ index.php?route=feed/yandex_market [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

    - - -
     
    skiv14, Евгения, optik и 10 другим нравится это.
  4. alex_storm

    alex_storm webdev

    Регистрация:
    11 дек 2012
    Сообщения:
    1.151
    Симпатии:
    667
    Тематические картинки для главных категории
    Пример работы http://zooper.com.ua/ - к каждой категории своя тематическая картинка.

    Открываем файл www\catalog\view\theme\default\template\common\header.tpl

    В коде


    Перед последним закрыванием <?php } ?> добавляем следующий код.


    Пояснения - это генерация автоматических добавлении классов к каждому пункту меню.
    'item_' - это имя, которые будет присвоено к каждому пункту меню, только будет отличатся числовым значением.
    Например: <li class="'item_1"><a href="#">Пункт меню 1</a></li> и по аналогии так будет и item_2

    Теперь мы можем для каждого пункта меню создать свои собственный стиль как на сайте http://zooper.com.ua/
     
    TheAspiringWebMaster, vojack, posad и 5 другим нравится это.
  5. VeroN

    VeroN

    Регистрация:
    26 ноя 2012
    Сообщения:
    82
    Симпатии:
    316
    Перенос магазина с локального сервера на хостинг

    Ваш интернет-магазин готов, пора переносить его на виртуальный сервер.

    Начнем по порядку. Для того, чтобы "не потерять" файлы, создадим отдельную папку - ХОСТИНГ и в ней создадим еще одну - ADMIN. Вы же можете назвать их как вам будет понятнее. Если на хостинге еще не созданы база данных и пользователь - создайте, т.к. эти данные нужны для правильной работы сайта.

    На некоторых хостингах имя базы данных и пользователь одинаковы с Вашим логином к панели управления. УТОЧНЯЙТЕ ДАННЫЕ в службе поддержки вашего хостинга.
    ПЕРВАЯ ЧАСТЬ (локальный сервер)
    1. Подготовка дампа базы данных.
    Заходим в phpMyAdmin, в левом меню выбираем нужную базу (если у вас не одна база данных) и нажимаем на название. В открывшемся окне выделяем все файлы (в самом низу ссылка Check All), затем поднимаемся вверх и нажимаем Export.
    Ставим галочку Save as file, остальные настройки оставляем, как есть и жмем Go. Сохраняем дамп в папку ХОСТИНГ.

    2. Подготовка архива каталогов сайта.
    В файловом менеджере (далее ФМ) предварительно открываем в одном окне корень сайта, в другом окне папку ХОСТИНГ. Выделяем все каталоги и файлы в корне сайта, нажимаем Упаковать файлы (название может различаться в других ФМ), выбираем архиватор ZIP и жмем ОК.
    Следующее, что нужно сделать, это ОБЯЗАТЕЛЬНО скопировать из сайта в папку ХОСТИНГ файл config.php из корня сайтa и в папку ADMIN файл config.php из каталога admin.
    Далее также в ФМ открываем архив(просто щелкнув по нему мышью) и удаляем оба файла - config.php из корня сайтa и config.php из папки admin. Будьте внимательны - удаляем из АРХИВА!!!

    3. Корректировка дампа базы данных.
    Открываем в ФМ файл базы данных, примерное название: название_вашей_базы.sql, сохраненный в папку ХОСТИНГ. На 19 строке видим название, которое нужно заменить на настоящее (то, которое вы сами создали на хостинге или получили от хостера).
    Также нужно проверить и, при необходимости, заменить пути в других строках. Упростим себе работу - копируем в адресной строке браузера полный путь к сайту на локальном сервере, возвращаемся в файл базы данных. Нажимаем на Поиск, вносим скопированный путь и жмем Искать далее.
    Если такая запись есть, приступаем к замене. Вернемся к началу файла - Поиск - Замена, во втором поле вписываем правильный путь и нажимаем Заменить все. После правки сохраняем файл.

    4. Корректировка файлов config.php.
    Осталось подправить пути к сайту в файлах config.php.
    Открываем сохраненный в папке ХОСТИНГ файл config.php:
    и сохраняем.

    !!! Начало пути в директории раздела // DIR - /home/ваш_логин/public_html/ может различаться (зависит от хостинга). Предварительно уточните в службе поддержки.

    Далее открываем файл config.php, сохраненный в папке ADMIN:
    и также сохраняем.
    Вот теперь сайт полностью готов к переносу.
    ВТОРАЯ ЧАСТЬ (хостинг)
    Для дальнейшей работы нам нужно войти в административную панель управления хостингом или cPanel и соединиться по FTP.
    !!! Не отключайтесь до того момента, пока не убедитесь в полноценной работоспособности загруженного сайта.

    5. Загрузка дампа базы данных.
    Переходим в phpMyAdmin, в левом меню выбираем нужную базу и нажимаем на название. В открывшемся окне нажимаем Import, указываем путь к сохраненному дампу базы данных в папке ХОСТИНГ и жмем Go.
    Как только данные загрузятся, вы увидите уведомление и все загруженные таблицы.

    6. Загрузка архива.
    Загружаем по FTP архив в корневую директорию на хостинге. Распаковываем архив (делать это лучше через админ. панель хостинга) и переносим все каталоги и файлы на уровень выше (в видеоуроке по установке на хостинг показано, как это делать).
    После этого копируем в корень сайта сохраненный файл config.php из папки ХОСТИНГ, затем открываем каталог admin и копируем второй сохраненный файл config.php из папки ADMIN.
    !!! Копируем файлы с КОМПЬЮТЕРА на хостинг.

    И последний шаг - это установка полных прав на папки и файлы.
    !!! Если вы создавали для изображений товаров/категорий раздельные каталоги, необходимо на каждый из них задать полные права в папках image/data/ и /image/cache/data/.

    Осталось проверить работу магазина - вписываем в адресной строке адрес сайта и смотрим, что получилось. Также проверяем и админ. часть.
    Пройдите по всем ссылкам на вашем сайте, проверьте отображение графики (фото товаров, категорий, баннеры).
    Все работает? Смело выходите из админ. панели хостинга и отключайтесь по FTP.
     
  6. vivivor

    vivivor

    Регистрация:
    4 янв 2013
    Сообщения:
    186
    Симпатии:
    162
    Изменение стандартного оповещения о добавлении в корзину
    [​IMG]


    Открываем файл /catalog/view/javascript/common.js
    Удаляем прокрутку страницы вверх
    Код:
    $('html, body').animate({ scrollTop: 0 }, 'slow'); 
    Заменяем строку
    Код:
    $('.success').fadeIn('slow');
    на
    Код:
    $('.success').dialog({modal: true,buttons: {Ok: function() {$( this ).dialog( "close" );}}});
    Тоже самое нужно сделать в файле product.tpl вашей темы, чтобы работало на странице товара
     
    Последнее редактирование: 29 сен 2013
    Peters, W1nnyPyx, vgik и 14 другим нравится это.
  7. VeroN

    VeroN

    Регистрация:
    26 ноя 2012
    Сообщения:
    82
    Симпатии:
    316
    Закрытие серьезной уязвимости в OpenCart.
    (по крайней мере до версии 1.5.4.1 включительно)

    http://ваш_сайт/system/logs/error.txt
    И весь журнал ошибок доступен для всех
    Так делать нельзя, потому что бывают ошибки SQL, из-за которых можно получить логин и адрес сервера mysql, а также получить логин и хеш пароля пользователя (в случае ошибки mysql при авторизации), который в принципе можно взломать.

    C аналогичной уязвимостью в ранних версиях 1C-Битрикс, хакеры уводили базы данных сайтов. http://habrahabr.ru/post/165999/

    Поэтому, почаще чистите журнал, или закройте доступ к файлу в .htaccess , иначе в error.txt можно многое узнать про сайт.
    Пример с лога одного сайта, и найденной серьёзной ошибки и все это в течении 1 минуты
    PHP:
    SELECT command denied to user 'u138235'@'10.10.0....'..... и т п
    Пропишите в .htaccess
    PHP:
    <FilesMatch "error.(txt)$">
    Order Allow,Deny
    Deny from all
    </FilesMatch>
    P.S: Прописываем в конце или в начале - без разницы.

    или
    PHP:
    <FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))"
    Order deny,allow 
    Deny from all 
    </FilesMatch>
    Таким образом перекроем доступ и к файлу vqmod.log и другим, кое где платежные логи есть.
     
    Lasted edited by : 16 июл 2015
    Влад Хантер, resta, max307 и 24 другим нравится это.
  8. SeregaSS

    SeregaSS

    Регистрация:
    17 дек 2012
    Сообщения:
    96
    Симпатии:
    42
    Отзывы в Opencart для товаров, делаем их индексируемыми для поисковиков

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

    Код:
    catalog/view/theme/ВАША_TEMA/template/product/product.tpl
    Находим там строку:

    Код:
    <div id="review"></div>
    Заменим ее на следующий код:

    Код:
    <?php
    $reviews = $this->model_catalog_review->getReviewsByProductId($product_id);
    if ($reviews) {
    foreach ($reviews as $review) {
    echo '<div class="content"><p><strong>'.$review['author'].'</strong> – ';
      $date = strtotime($review['date_added']);
      echo date('d M Y',$date); ?><br />
    <img src="catalog/view/theme/default/image/stars_<?php echo $review['rating'] ?>.png" alt="<?php echo $review['rating'] ?> из 5 звёзд!" /><br />
      <?php echo $review['text'].'</p></div>';
      }
    } else { ?>
    	<div class="content"><?php echo "Нет отзывов"; ?></div>
    	  <?php } ?>
     
    Влад Хантер, Dema, resta и 8 другим нравится это.
  9. nix

    nix php, MySQL, UNIX, MikroTik ROSAPI

    Регистрация:
    16 янв 2013
    Сообщения:
    1.000
    Симпатии:
    890
    Ускоряем opencart при большом количестве товаров

    Если большое к-во товаров(больше 7000) то опенкарте начинает виснуть(долго откриваються страници)
    Решения покупать виделений сервер или сервер и самое главное настроить мускуль, а имено хотя би так


    Код:
    key_buffer = 400M
    max_allowed_packet = 48M
    table_cache = 1024
    sort_buffer_size = 4m
    read_buffer_size = 4m
    read_rnd_buffer_size = 2m
    myisam_sort_buffer_size = 64m
    tmp_table_size = 96m
    query_cache_type = 1
    query_cache_size = 64m
    thread_cache_size = 16
    max_connections = 300
    wait_timeout = 120
    после етово перезапускаем mySQL (а лутше весь сервак) и радуемся жизни))

    ВНИМАНИЕ! Если ви уже используете "решение" типа етово то никаких изменений не увидите!!! Нужно откатить систему вначало, а имено файл system/library/cache.php и подправить файл config как бил раньше!

    ДЕМО как работает openkart с базой более 1500 категорий(включая подкатегории) и более 27 000 товаров можно посмотреть у меня


    Помните, для хорошой роботи opencart достаточно нормальново хостинга, и не стоит прислушиваться к службе поддержки что они рекомендуют VPS так как без етой конфигурации всеравно ничево не слетит високо!!! Если поддержка на обичном хостинге отказиваеться сконфигурировать правильно БД то стоит подумать про переезд на новий хостинг!

    Да, чуть не забил))

    Помог - говорим "СПАСИБО!"

    Рекомендовано прочесть еще ето

    P.S: С русским не всё в порядке, так как автор сообщения украинец.
     
    Последнее редактирование: 30 июн 2014
    ramses, plat75, Zulus и 27 другим нравится это.
  10. SeregaSS

    SeregaSS

    Регистрация:
    17 дек 2012
    Сообщения:
    96
    Симпатии:
    42
    Делаем один язык в opencart или убираем английский

    Opencart 1.5.x
    1) Самый простой способ, если вы хотите сделать магазин только на русском — просто удалить английский язык через админку opencarta : Система — Локализация — Языки. Но иногда такой способ не проходит — потому, что английский это fallback language то есть системный язык для некоторых шаблонов, например shoppica 2. Поэтому при его удалении может выдать кучу ошибок.


    2) Если стоит задача оставить только один язык на сайте, но не удалять английский , то при добавлении товара название товара все равно приходится заполнять для английской вкладки — такова логика работы самого opencart’a . Сами разработчики насчёт этой проблемы высказываются в духе «это не баг, а фича» или кому надо тот найдет решение. Решение представляется таким: сделать поле название товара для английской вкладки необязательным.
    Для этого редактируем \admin\controller\catalog\product.php строка 1301

    Код:
    /*foreach ($this->request->post['product_description'] as $language_id => $value) {
    if ((utf8_strlen($value['name']) < 1) || (utf8_strlen($value['name']) > 255)) {
    $this->error['name'][$language_id] = $this->language->get('error_name');
    }
    }*/
    В итоге имеем один язык на сайте.
     
    OldAine, weghjn, torineso и 6 другим нравится это.
  11. SeregaSS

    SeregaSS

    Регистрация:
    17 дек 2012
    Сообщения:
    96
    Симпатии:
    42
    Ключевые слова на главной странице

    Модулем:
    Добавляет в админке (Система-Настройки-Ваш магазин-Витрина) настройку поля Мета-тег "Ключевые слова".

    Ручками:

    Открываем

    /www/catalog/view/theme/default/template/common/header.tpl


    Находим

    Код:
    <?php if ($keywords) { ?>
     
    <meta name="keywords" content="<?php echo $keywords; ?>" />
     
    <?php } ?>
    Заменяем на

    Код:
    <?php if ($keywords) { ?>
     
    <meta name="keywords" content="<?php echo $keywords; ?>" />
     
    <?php } else { ?>
     
    <meta name="keywords" content="через, запятую, все, ключевые, слова, которые, для, главной, странице" />
     
    <?php } ?>
    Сохранить файл после изменений необходимо в кодировке "UTF-8" или иначе вместо ключевых слов получите кракозябры.
     
    LowTech, pilc, Sedmi и 5 другим нравится это.
  12. delamer

    delamer

    Регистрация:
    19 дек 2012
    Сообщения:
    100
    Симпатии:
    57
    Расширяем возможности стандартного редактора CKEditor

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

    В файле admin\view\javascript\ckeditor\config.js
    Меняем строку config.toolbar = 'Custom';
    на строку config.toolbar = 'Full';
    После чего может потребоваться очистить кэш вашего браузера, нажав Ctrl + F5. Если ничего не изменилось, очистите кэш вручную (всмысле через меню браузера).

    В CKEditor'e появится много дополнительных возможностей. Мне, например, очень пригождаюся шаблоны.
    Есть разные варианты подключить свои шаблоны из отдельного файла, но я обычно делаю просто.. Стандартные шаблоны (совсем мне не подходящие) определены в файле plugins/templates/templates/default.js
    Я просто заменяю код стандартных шаблонов, на html код нужных мне шаблонов.
    Если ваших шаблонов не появилось - ещё раз очистите кэш браузера.
     
    Chvalov, irsn, malegender и 8 другим нравится это.
  13. WildeRNS

    WildeRNS

    Регистрация:
    6 ноя 2012
    Сообщения:
    151
    Симпатии:
    112
    Выводим название категории в title перед названием Товара

    Код:
    <modification>
     
    	<id>Product Title + Category</id>
    	<version>1.0.0</version>
    	<vqmver>2.1.5</vqmver>
    	<author>noname</author>
       
    	<file name="catalog/controller/product/product.php">
    		<operation>
    			<search position="replace"><![CDATA[setTitle($product_info['name'])]]></search>
    			<add><![CDATA[setTitle(((isset($category_info['name']))?($category_info['name'].' : '):'').$product_info['name'])]]></add>
    		</operation>	   
    	</file>
    </modification>
     
    anskachkov, TheAspiringWebMaster, StiX и 4 другим нравится это.
  14. buldozer

    buldozer

    Регистрация:
    7 окт 2012
    Сообщения:
    107
    Симпатии:
    44
    при добавлении валют в админке валюты пересчитываются согласно валюты по умолчанию
    чтобы валюта пересчитались относительно рубля ставим для рубля Значение 1 (Валюта по умолчанию)
    удаляем другие валюты затем добавляем их снова
     
    zerofirefox и TheAspiringWebMaster нравится это.
  15. sunny8u

    sunny8u

    Регистрация:
    21 окт 2012
    Сообщения:
    71
    Симпатии:
    63
    Современные отзывы на сайте
    Варианты замены стандартных Отзывов в Opencart.
    Сторонние сервисы, встраиваемые в сайт в качестве виджетов позволяют снизить нагрузку на сервер, увеличить конверсию в отзывы.
    Да и авторизация через соц.сети никогда лишней не будет:rolleyes:

    Инструкция по подключению данных виджетов

    1. Комментарии "В контакте" и "Facebook"
    2. Hypercomments
    3. CACKLE
    4. DISQUS
    5. LIVEFIRE
    6. KAMENT
    Модераторы, приношу извинение за размещение ссылок на сторонние ресурсы, но как по-другому в таком случае?:unsure: - от модератора: все нормально :wink:
     
  16. sunny8u

    sunny8u

    Регистрация:
    21 окт 2012
    Сообщения:
    71
    Симпатии:
    63
    Меняем сортировку товаров в витрине по умолчанию
    по дате добавления, имени, модели, количеству, цене или рейтингу.

    Долго мучилась, нигде не могла найти информацию. Нашла - делюсь=)

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

    З.Ы.Ы. У меня в примере товары будут отсортированы по дате добавления, но по образцу можно сделать любой вид сортировки.
    Переменные в OpenCart 1.5.4 выглядят следующим образом. Далее поймёте, где это нужно будет вставлять:wink:
    Код:
    'pd.name', - сортировка по имени.
    'p.model', - сортировка по модели.
    'p.quantity', - сортировка по количеству.
    'p.price', - сортировка по цене.
    'rating', - сортировка по рейтингу.
    'p.sort_order', - сортировка, которая стоит по умолчанию.
    'p.date_added' - сортировка по дате добавления.
     
    Соответственно, для каждого типа сортировки нужно будет задать направление, это:
    DESC - по убыванию,
    ASC - по возрастанию.
    
    1. Меняем тип сортировки По умолчанию на сортировку по Дате добавления (без добавления в список "Сортировать по").
    Просто меняем принцип отображения товаров для метода "По умолчанию".
    2. Но если нужно, чтобы новый вариант был добавлен в выбор сортировки и назывался по-другому, делаем следующее:
     
    anskachkov, resta, Сентинел и 17 другим нравится это.
  17. nix

    nix php, MySQL, UNIX, MikroTik ROSAPI

    Регистрация:
    16 янв 2013
    Сообщения:
    1.000
    Симпатии:
    890
    Избавляемся от index.php?route= или красивый ЧПУ 1.5.1 - 1.5.4.1

    1) заменить все в файле catalog/controller/common/seo_url.php на

    2) И установи модуль вот такой
     
    Sedmi, stas_one, halfhope и 7 другим нравится это.
  18. klop

    klop

    Регистрация:
    19 ноя 2012
    Сообщения:
    1.582
    Симпатии:
    1.968
    Обновление шаблона Opencart 1.5.4.1 -> 1.5.5.1
    При переходе на новую версию столкнулся с некоторыми проблемами. В фалах темы *.tpl для предыдущей версии используются переменные, которые в новой версии были переименованы.
    Чтобы ваша тема работала с новой версией магазина, нужно произвести некоторые изменения в файлах
    common/header.tpl
    product/search.tpl

    1.5.4.1 filter_name
    1.5.5.1 search

    1.5.4.1 filter_category_id
    1.5.5.1 category_id

    1.5.4.1 filter_sub_category
    1.5.5.1 sub_category

    1.5.4.1 filter_description
    1.5.5.1 description
     
    fob, TheAspiringWebMaster, buldozer и 3 другим нравится это.
  19. Rrrichard

    Rrrichard

    Регистрация:
    29 ноя 2012
    Сообщения:
    105
    Симпатии:
    32
    Грабли с www и без www

    Один и тот же сайт отображается по двум адресам:
    www.site.com
    site.com

    Сервер, где расположен сайт, может изначально задавать приоритет для отображения с www или без www
    htdocs/файлы сайта - сайт будет отображаться без www
    htdocs/www/файлы сайта - сайт будет отображаться с www

    ОпенКарт привязывается к этим настройкам и кнопка "купить" добавляет товар в корзину лишь в "приоритетном" отображении сайта. Хотя страницы отображаются в обоих случаях.

    Грабли, с которыми столкнулся я:
    сайт расположен по пути
    htdocs/www/файлы сайта
    и по умолчанию всегда открывается с www

    При попытке склеить сайты на открывание без www , браузер выдает ошибку, что "обнаружено циклическое перенаправление, которое не может завершится.

    При склейке, на открывание с www - все нормально заработало.

    Мелочь, на которую потратил день времени.
    Добавлено от Yuriy_Z:

    Не проще в .htaccess поставить
    Код:
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
    Полезно даже для СЕО, вместо двух "доменов" www.sayt.ry | sayt.ry гугл индексирует один..._-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

    Также полезно еще зделать 301 с sayt.ry/index.php на sayt.ry
    А делается вот так
    Код:
    RewriteCond %{QUERY_STRING} ^$
     
    RewriteRule ^index\.php$ / [R=301]
     
    vetas, tvzon, dreamkin и 3 другим нравится это.
  20. DionisCR

    DionisCR

    Регистрация:
    17 фев 2013
    Сообщения:
    108
    Симпатии:
    57
    Заметил, что на форуме постоянно задают одни и те же вопросы по базовому устройству форума, "где найти, как переделать, куда смотреть". Так что будет более чем актуально и ссылку можно будет давать не на сторонние ресурсы:

    Структура шаблонов Opencart

    В шаблоне Opencart достаточно легко разобраться, но трудоемко править - иногда необходимо вносить изменения в 3-4-5 файлов.
    Что бы не запутаться, где какие файлы, вот - их расположения (и описание):

    Папка common/

    home.tpl - вывод главной страницы
    column_left.tpl - левая колонка магазина
    column_right.tpl - правая колонка магазина
    content_bottom.tpl - нижняя часть магазина (только в 1.5.х)
    content_top.tpl - верхняя часть магазина (только в 1.5.х)
    footer.tpl - нижняя часть шаблона
    header.tpl - верхняя часть шаблона
    cart.tpl - всплывающее окно корзины (в верху сайта) (только в 1.5.х)
    maintenance.tpl - шаблон выводится, когда магазин закрыт
    success.tpl - выводится после успешной регистрации в магазине и после успешного оформления заказа (guest mode)

    Папка product/

    category.tpl - вывод группы товаров
    manufacturer.tpl - вывод товаров по производителю (в 1.5.х не используется)
    manufacturer_info.tpl - вывод товаров по производителю (только в 1.5.х)
    manufacturer_list.tpl - страница со списком всех производителей (только в 1.5.х)
    product.tpl - вывод одного товара
    review.tpl - вывод отзыва о товаре в шаблоне product.tpl
    search.tpl - поиск и результаты поиска
    special.tpl - выбор специальных предложений (Special Offers)
    compare.tpl - страница сравнения товаров (только в 1.5.х)

    Папка information/

    contact.tpl - вывод адреса магазина и формы отправки сообщений
    information.tpl - вывод информационной статьи
    sitemap.tpl - карта сайта

    Папка error/

    not_found.tpl - страница с ошибкой "error 404"(...not found!)

    Папка account/

    account.tpl - форма регистрации или входа в аккуант
    address.tpl - Страница выбора/редактирования адреса оплаты/доставки (в 1.5.х не используется)
    addresses.tpl - Адресная книга в настройках аккаунта (в 1.5.х не используется)
    address_form.tpl - страница редактирование адреса в аккаунте (только в 1.5.х)
    address_list.tpl - Адресная книга в настройках аккаунта (только в 1.5.х)
    create.tpl - форма регистрации в магазине (в 1.5.х не используется)
    register.tpl - форма регистрации в магазине (только в 1.5.х)
    return_form - страница создания возврата товара (только в 1.5.х)
    return_list.tpl - страница истории о возвратах товара (только в 1.5.х)
    return_info.tpl - подробная информация о возврате товара (из return_list.tpl) (только в 1.5.х)
    reward.tpl - информация о зачисленных бонусных баллах за покупки (только в 1.5.х)
    transaction.tpl - страница истории платежей (только в 1.5.х)
    wishlist.tpl - страница "Взято на заметку" (только в 1.5.х)
    download.tpl - страница со скачиваемыми товарами
    edit.tpl - редактировать профиль
    forgotten.tpl - напоминание пароля
    history.tpl - история заказов
    invoice.tpl - счет-фактура
    login.tpl - форма логина или регистрации на сайте
    newsletter.tpl - подписка на новости
    password.tpl - смена пароля

    Папка checkout/

    address.tpl
    cart.tpl - вывод содержимого корзины (в центре страницы)
    confirm.tpl - последний шаг заказа, подтверждение перед отправкой, этот же шаблон используется для guest_step_3. Нижние ссылки ( назад и подтвердить заказ) беруться из шаблона метода оплаты, к примеру из payment/cod.tpl
    guest_step_1.tpl- 1 шаг заказа без регистрации
    guest_step_2.tpl- 2 шаг заказа без регистрации
    payment.tpl- оплата
    shipping.tpl- доставка

    Папка mail/

    order_confirm.tpl - письмо о подтверждении

    Папка modules/

    bestseller.tpl - самые покупаемые товары
    bestseller_home.tpl - самые покупаемые товары на главной странице
    cart.tpl - вывод корзины в колонке
    category.tpl - блок Категории
    featured.tpl - "рекомендуемые товары"
    featured_home.tpl - "рекомендуемые товары" на главной странице
    google_talk.tpl
    information.tpl - список статей на сайте, ссылки на сайтмап и контакты
    latest.tpl - "последние товары"
    latest_home.tpl - "последние товары" на главной странице
    manufacturer.tpl - выпадающий список производителей
    special.tpl - специальное предложение
    special_home.tpl- специальное предложение на главной странице

    Дерзайте! :wink: И удачи в ваших проектах!

    Добавлено от buldozer:
    Папка modules/
    filter.tpl - "фильтр" засветился в 1.5.5.1 появится в 1.6+ (наверное)
     
    BBVA, AndreyBrylb, anskachkov и 27 другим нравится это.