Любой движок можно улучшить («прокачать») в соответствии с вашими собственными стандартами и задачами.
Материал подготовлен на основе практического опыта работы с двумя сайтами. В статье описаны фрагменты тюнинг-решений для популярного движка интернет-магазина osCommerce (v.2.3). Большая часть доработок создавалась в условиях ограниченного времени по принципам экстремального программирования, поэтому представленные решения не претендуют на единственно правильные.
Для кого эта статья:
- Разработчикам: будет полезна схема действий — что и где искать, править и по какому принципу.
- Владельцам сайтов: даст обзор требований и возможностей по улучшению магазина для получения конкурентных преимуществ.
Статья не подойдет новичкам, так как не содержит детальных пошаговых рецептов и требует знаний PHP и основ JavaScript.
Это набор решений, которые были в приоритете в моем случае. Для каждого проекта требования индивидуальны. Если у вас есть вопросы — пишите, возможно, вместе найдем решение.
Новая версия osCommerce 2.3 порадовала. В отличие от популярной v.2.2 (для которой, кстати, доступно большинство расширений, что я раньше использовала), базовая комплектация получилась более продуманной.
Как обычно, начать стоит с поиска готовых модулей. Я всегда уделяю большое внимание SEO-составляющей сайтов, поэтому для меня была важна оптимизация системы под поисковые системы.
Тюнинг ЧПУ (SEO-friendly URL)
Для этой цели я использовала модуль Ultimate_SEO_URLSv22d_11 (ссылка на скачивание). В файле install.html из архива подробно описано, что и куда копировать, какие файлы изменять и какие SQL-запросы выполнять.
Ключевые слова (Meta Keywords)
Поле для ключевых слов (meta keywords) в движке отсутствовало. Хотя сегодня их значение для поисковиков снизилось, их наличие лучше, чем отсутствие. Чтобы упростить рутинный процесс, я автоматизировала их генерацию на основе заголовков товаров/категорий, отфильтровав через список главных ключевиков-констант.
В osCommerce для этого нужно работать в двух областях:
- Директория
includes/modules/headers_tags/: здесь подключаются файлы для вывода мета-тегов (например,ht_category_title.phpдля категорий,ht_products_title.phpдля товаров). - Файл шаблона
includes/classes/osc_template.php: логика формированияtitle.
Основная идея — дополнить код по аналогии с формированием title. Для сопоставления слов из заголовка со списком ключевиков можно использовать функцию strpos(). Похожим образом можно организовать и генерацию Description.
Позже на официальном сайте появился плагин Easy Meta Tags for 2.3X. Сама не тестировала, но он может быть полезен.
Визуальный редактор для текста
Для установки скачиваем Ckeditor for OsCommerce 2.3 и следуем инструкциям в файле README. После этого на страницах редактирования товаров появится визуальный редактор.
Разработчики CKeditor проделали отличную работу. Я была приятно удивлена, найдя этот редактор для osCommerce 2.3. Он предоставляет удобный интерфейс, средства форматирования (списки, жирный текст, заголовки h1-h6 и т.д.) и, что важно, имеет расширение для загрузки изображений.
Загрузка изображений в визуальный редактор
Для этой задачи используется CKfinder. После загрузки файлов на сервер нужно отредактировать конфигурационный файл, а именно — функцию безопасности CheckAuthentication():
function CheckAuthentication() {
// ВНИМАНИЕ: Не возвращайте просто "true".
// Реализуйте проверку авторизации, например, через сессии.
// return isset($_SESSION['IsAuthorized']) && $_SESSION['IsAuthorized'];
return false; // Изначальное значение
} В этой функции необходимо вернуть true (или условие с проверкой авторизации) вместо false.
После успешного теста требуется интеграция в админ-панель:
- Файл
includes/template_top.php(подключение скриптов в<head>). Добавляем в общий блок скриптов:<script src="/путь_к_ckfinder/ckfinder.js"></script> - Файл
admin/includes/functions/html_output.php. Модифицируем функциюtep_draw_textarea_field, добавив инициализацию CKEditor после закрывающего тегаtextarea:php $field .= '</textarea>'; // Добавляем инициализацию CKEditor с CKFinder $field .= '<script>CKEDITOR.replace("' . tep_output_string($name) . '", { filebrowserBrowseUrl: "/путь_к_ckfinder/ckfinder.html" });</script>'; return $field;
Автоматическое уменьшение и нанесение водяного знака
Ручное изменение размеров изображений неэффективно. Эту задачу можно автоматизировать с помощью библиотеки GD.
Нанесение водяного знака через CKfinder:
В конфигурационный файл CKfinder, где подключаются плагины, добавьте строку:
include_once "plugins/watermark/plugin.php"; Затем в папке watermark замените файл logo.gif на ваше лого.
Авторесайз и наложение логотипа:
- Найдите или создайте функцию/класс для уменьшения изображений.
- Подключите ее и класс
Watermarkиз плагина CKfinder в файлincludes/functions/html_output.php. - Создайте новую функцию по аналогии со стандартной
tep_image, которая будет:- Генерировать новое имя для обработанного файла (например, с префиксом).
- Проверять, существует ли уже такой файл.
- Если нет — уменьшать исходное изображение и накладывать водяной знак.
- Возвращать путь к новому изображению.
Пример логики внутри функции:
// Генерация нового имени файла
$new_name_file = ...; // например, добавляем префикс к имени
// Проверка и обработка
if (!file_exists($new_name_file)) {
IMAGE_RESIZE($src, $new_name_file, 500, 500); // Ваша функция ресайза
$watermark = new Watermark();
$watermark->createWatermark($new_name_file, "logo.gif", 5, 5, 80, 60);
}
// Возвращаем путь к $new_name_file вместо $src - Замените вызовы
tep_imageв выводе товаров (например, вincludes/modules/product_listing.php) на вашу новую функцию.
Описания категорий
Установите модуль Subcategory textboxes for 2.3, следуя инструкции INSTALLATION.TXT. После этого в админке появится возможность добавлять описания к категориям.
Чтобы разделить описание на две части (например, текст над товарами и под ними), можно в коде вывода использовать функцию explode(), указав разделитель (например, тег <!--more-->).
Вывод кратких и полных описаний товаров
По аналогии с описаниями категорий можно реализовать вывод сокращенного описания товара в списках, используя explode() по определенному разделителю в тексте полного описания.
Создание тегов (меток) для товаров
Использование тегов значительно улучшает видимость сайта в поисковых системах по вспомогательным запросам и помогает пользователям фильтровать товары. Практика показывает, что это может в разы увеличить посещаемость.
Как это работает?
К товару привязываются ключевые метки (например, «самокат для взрослых», «самокат с большими колесами»). Каждая метка ведет на отдельную страницу, которая:
- Оптимизирована для поисковиков.
- Выводит все товары с этой меткой.
Для реализации необходимо:
- Добавить в админке функционал привязки тегов к товарам.
- Создать страницу/механизм, который по запросу вида
/tag/название-тегабудет выполнять внутренний поиск и выводить соответствующие товары.
Изначально я не ожидала большого эффекта от тегов, но результат превзошел ожидания: трафик по вспомогательным запросам может в 2-3 раза превышать трафик по основным.

