Интернет магазин на osCommerce

2

Статья напечатана в январском номере журнала Системный Администратор

Начать свой бизнес в Интернет сегодня довольно просто, следует лишь купить домен, создать свой сайт и привлечь к нему покупателей. С первым и третьим пунктом обычно все ясно, но что взять за основу сайта? Начать разработки с нуля или взять готовое решение. Предлагаю остановиться на втором варианте.

Проект osCommerce (Open Source Commerce) представляет открытое решение предназначенное для организации Интернет магазина. Изначально проект назывался The Exchange Project, но затем в 2001 году оно было сменено. Лидер проекта перуанец Harald Ponce de Leon проживавший в Германии начал свою разработку в конце 1999 года. Первый релиз был представлен общественности уже в марте следующего года. Хотя это был скорее прототип, для привлечения внимания, чем готовое решение. Но как водится, хорошая идея была подхвачена, и проект весьма быстро оброс многочисленными последователями и главное получил дотации со стороны заинтересованных компаний. И к настоящему времени вокруг проекта уже сформировалось огромное сообщество. На момент написания этих строк их количество по данным сайта проекта уже превысило 161 тысячу человек, а свыше 12700 онлайн магазинов уже используют это решение.

Текущей версией osCommerce является 2.2 Milestone, выход в свет которой датирован февралем 2003 годом. Но это не значит, что проект заброшен, если посмотреть в changelog, то можно увидеть что развитие 2.2 идет постоянно, устраняются найденные ошибки, добавляются новые возможности. Последняя запись сделана июлем 2007 года, в ней версия названа уже как osCommerce Online Merchant 2.2 RC1. Также весьма продолжительное время ведется разработка третьей ветки, но она все ни как не может увидеть свет и находится в вечной альфе. Это кстати стало одно из основных (но не единственных) причин появления примерно с десятка клонов osCommerce, в которых устранены, в том числе и некоторые его «неудобства». Самым известным из них является отсутствие поддержки шаблонов для изменения дизайна сайта. Но этот недостаток в самом osCommerce компенсируется наличием многочисленных контрибуций, именно так называются здесь дополнения. Количество дополнений тоже уже исчисляется тысячами, если точнее, то в данный момент на официальном сайте доступно более 4450 дополнений.

Написан osCommerce на PHP (код совместим с 4 и 5 версиями), для хранения информации о заказах, покупках и прочее, используется MySQL, в качестве веб-сервера может быть использован любой умеющий работать с PHP 4.1+. Также не имеет разницы операционная система. Это может быть Linux, Solaris, *BSD, Mac OS X и Windows.

Распространяется osCommerce по лицензии GNU GPL. По умолчанию устанавливается только три языка — английский, немецкий, испанский языки. Но в контрибуциях доступны и многие другие, среди которых есть русский и украинский. В установке помогает удобный мастер инсталляции. Также для удобства установки все возможности Интернета магазина по умолчанию включены.

Все что нужно для создания Интернет магазина любого уровня в osCommerce есть. Это и неограниченное число разделов и продуктов, поддерживаются как физические, так и виртуальные товары, любое количество валют, ведение статистики покупок, товаров и заказчиков. Добавление, удаление изменение информации о товаре происходит очень просто. Есть возможность создать раздел о производителях, добавлять статьи и обзоры, автоматические рассылки, оповещающие о новых продуктах.

Клиенты могут свободно регистрироваться, совершать покупки, оплачивая любым из многочисленных типов платежей. Поддерживаются чеки, платежные поручения, платежные системы 2CheckOut, PayPal, Authorize.net, iPayment, RuPay, Webmoney и другие. Счет за товар можно тут же распечатать.

Клиенты могут просматривать историю и текущие статусы сделанных заказов. Выбранные товары помещаются в корзину. Для клиентов она постоянная, для гостей временная. Встроенная система поиска поможет быстро найти нужный товар. Для разных районов может быть использован свой метод оплаты, клиент может использовать несколько адресов доставки. Возможен расчет стоимости доставки на основе веса, цены товара и района. Среди дополнений можно найти и другие модули доставки. Автоматический учет налогов, для выбранного района. Поддерживается работа через защищенное SSL соединение, в том числе и контролируются некоторые параметры вроде Session ID. Окно просмотра одинаково хорошо смотрится во многих популярных браузерах. А еще добавить простоту администрирования, создания резервной копии и восстановления информации и многое другое. Если чего-то нет в стандартной поставке, то оно наверняка уже есть в дополнениях. Работу магазина на osCommerce можно оценить зайдя на демонстрационную страницу. Мы же разберем его установку и локализацию.

Установка osCommerce

Для установки нам потребуется веб-сервер с поддержкой PHP и MySQL. Тестовая установка производилась в Ubuntu, веб-сервер Apache по умолчанию устанавливается без поддержки PHP. Проверить доступные модули, можно введя команду «a2enmod«, если в списке нет модуля mod_php, то его следует установить.

$ sudo apt-get install php5 php5-mysql

$ sudo a2enmod php5

И перезапускаем сервер:

$ sudo /etc/init.d/apache2 restart

Теперь создадим новую базу данных и дадим необходимые права пользователю, которой будет с ней работать. Имя базы и пользователя можно выбрать произвольно, я использовал oscommerce.

$ mysqladmin —user=root password ‘mysql_root_password’

$ mysqladmin —user=root -p create oscommerce

$ mysql —user root -p

mysql> GRANT ALL PRIVILEGES ON oscommerce.* TO oscommerce@localhost IDENTIFIED BY ‘db_passwd’;

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> quit;

Распаковываем архив osCommerce и копируем в корневой каталог веб-сервера подкаталог catalog находящийся внутри. По окончании копирования пробуем активировать программу установки, набрав в браузере http://localhost/catalog/install. Появится страничка, на которой можно получить информацию о соответствии системных установок требованиям osCommerce.

Проверка соответствия системных установок

В моем случае было предложено установить разрешение 777 для двух файлов configure.php.

$ sudo chmod 777 /var/www/catalog/includes/configure.php /var/www/catalog/admin/includes/configure.php

Кроме этого в поле Server Capabilities напротив GD и cURL стоял красный крестиком показывающий их отсутствие. Они являются опциональными и на дальнейшую установку не влияют, но лучше их установить.

$ sudo apt-get install php5-curl php5-gd

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

Настройка подключения к базе данных

Если все нормально, будут созданы все необходимые таблицы. Иначе в окне выводится сообщение о причине неудачи. Если что-то не так, таблицы можно создать вручную, использовав шаблон oscommerce.sql находящийся в подкаталоге install. В следующем окне проверяем правильно ли указанны каталог в который скопирован osCommerce и URL для доступа. В третьем окне вводим информацию о владельце ресурса, электронный адрес, логин и пароль учетной записи администратора. Теперь вас поздравят с успешной установкой, нажатием кнопки Catalog или Administration Tool соответственно мы попадаем собственно в магазин или в панель администрирования.

По умолчанию имеется несколько записей, что позволяет осенить внешний вид будущего магазина.

Страничка веб-магазина по-умолчанию

Обращает внимание две надписи появившиеся вверху. В одной рекомендуется удалить каталог установщика catalog/install. Удаляем.

$ sudo rm -Rf /var/www/catalog/install

Вторая изменить еще раз разрешение файла configure.php.

$ sudo chmod 444 /var/www/catalog/includes/configure.php

Прежде чем идти дальше, займемся локализацией.

Локализация osCommerce

Как говорилось, по умолчанию в osCommerce присутствует поддержка только трех языков, остальные языковые модули устанавливаются дополнительно. Переходим на сайте проекта страницу Contributions — Language и выбираем в списке Russian Language for osCommerce 2.2-MS2 (есть и другие модули, но этот самый последний). Распаковываем архив. Внутри два каталога admin и includes, просто копируем их в каталог osCommerce на веб-сервере. Далее регистрируемся в модуле администрирования, набрав в браузере адрес http://server/admin/login.php. Выбираем вкладку Localization — Languages нажимаем кнопку «New language» и заполняем значения в появившихся полях:

Name — Русский

Code — ru

Image — icon.gif

Настройки языка

Это имя файла в каталоге includes/languages/russian/images, по умолчанию используется именно это значение.

Directory — russian

Sort order — 1

Отмечаем внизу флажок «Set as default» и нажимаем кнопку insert. Новый язык появится в окне Languages, он должен быть отмечен жирным шрифтом, и с надписью default напротив имени. Теперь можно выбирать в раскрывающемся списке свой язык. Но это еще не все, переходим в меню Локализация — Валюты, здесь пока только две денежные единицы — евро и доллар, нажимаем кнопку «новая валюта» и заполняем поля. Все значения заполнять не нужно:

— Название — рубль

— Код — руб

— Символ справа — р.

— Десятичный знак — ,

И если нужно отмечаем флажок «Установить по умолчанию«. Новая валюта появится в окне. Поле Величина в настройке валют, позволяет автоматически рассчитывать курс. За точку отсчета берется валюта, используемая по умолчанию, у которой в этом поле вводим 1.00. А в остальных валютах прописываем коэффициент, зависящий от курса. Но это еще не все. В файлах english.php и russian.php, которые находятся в catalog/includes/languages, следует изменить строку, в которой указано по умолчанию доллар:

define(‘LANGUAGE_CURRENCY’, ‘USD’);

На нужную вам валюту.

define(‘LANGUAGE_CURRENCY’, ‘RUB’);

В этих же файлах можно изменить и некоторые другие переменные:

# локаль

@setlocale(LC_TIME, ‘ru_RU.CP1251’);

# формат даты

define(‘DATE_FORMAT_SHORT’, ‘%d/%m/%Y’); // this is used for strftime()

define(‘DATE_FORMAT_LONG’, ‘%A %d %B, %Y’); // this is used for strftime()

define(‘DATE_FORMAT’, ‘d/m/Y’); // this is used for date()

define(‘DATE_TIME_FORMAT’, DATE_FORMAT_SHORT . ‘ %H:%M:%S’);

# кодировку веб-страниц и e-mail

define(‘CHARSET’, ‘windows-1251’);

# заголовок страницы

define(‘TITLE’, ‘OsCommerce — Русская Версия’);

И так далее. Если во время работы будут замечены ошибки в переводе или понадобится изменить значение некоторых полей, очень удобно использовать встроенный редактор файлов. Выбираем в пункте Локализация — Языки нужный язык и нажимаем кнопку Настроить. Появится список файлов относящихся к этому языку, щелчок по любому откроет его для редактирования.

Если попытаться сейчас выбрать некоторые вкладки, получим сообщение о неверно установленных правах доступа на каталоги catalog/images, admin/images/graphs. После локализации это уже можно исправлять.

$ sudo chmod 777 /var/www/catalog/images

$ sudo chmod 777 /var/www/catalog/admin/images/graphs

Также создадим каталог в котором будет сохраняться резервная копия базы данных, при нажатии кнопки «Сделать backup» в окне Инструменты (Tools) — Резервное копирование БД (Database Backup).

$ sudo mkdir /var/www/catalog/admin/backups

$ sudo chmod 777 /var/www/catalog/admin/backups

Все, наш магазин в принципе готов к наполнению товарами и приему заказчиков. Все настройки товаров поступаемых в магазин производятся в меню Каталог. Здесь несколько подразделов в которых описываются сами товары, указываются производители, опции для товаров (например объем ОЗУ, модель, разъем и прочее), скидки (в прайсе показывается старая перечеркнутая цена и новая), отзывы и ожидаемые товары. Разобраться с ними будет легко. Также следует обязательно пройтись по пунктам в меню Настройки. Здесь можно изменить информацию о владельце, максимальные и минимальные значения некоторых полей обычно заполняемых вручную, GZip компрессию трафика, кэширование, журналирование и другие. В настройки находящиеся в подменю Sessions позволяют включить проверку User Agent, IP-адреса, борьбу с известными поисковыми роботами, проверку ID сессии SSL и другие.

В меню Отчеты три пункта, в которых можно получить информацию о товарах просмотренных клиентами, заказанных товарах и лучших клиентах. В меню Инструменты кроме тех, о которых уже говорилось, еще несколько пунктов позволяющих отправить e-mail (по конкретному адресу, группе рассылки или всем). Менеджер баннеров находящийся здесь же позволит узнать о количестве показов и щелчков по баннеру. Разобраться с функциями osCommerce очень просто.

Защита панели администрирования

После появления нового ресурса, наверняка найдутся желающие испытать его на прочность. Минимум, что необходимо сделать, это защитить доступ к панели администрирования. Сделать это можно несколькими способами: прописав нужные параметры в конфигурационном файле веб-сервера, использовав файл .htaccess и взяв один из специальных модулей в разделе Features. Последние я не изучал, воспользуемся первым вариантом. Допишем в конфигурационный файл веб-сервера apache2.conf, такие строки.

<Directory /srv/www/catalog/admin>

AllowOverride None

AuthUserFile /etc/apache2/.htpasswd
AuthName «Secure Zone»
AuthType Basic
Require valid-user

</Directory>

Теперь создадим указанный файл /etc/apache/.htpasswd с паролями пользователей, которым разрешено получать доступ к этой странице.

htpasswd -c /etc/apache/.htpasswd user1

htpasswd /etc/apache/.htpasswd user2

Итого за полчаса мы создали полноценный Интернет-магазин. Если возможностей предоставляемой базовой комплектацией не достаточно, то в вашем распоряжении большое количество контрибуций, уж там то вы точно найдете то, что нужно. Установка обычно заключается в распаковке в корневой каталог и подмене некоторых находящихся там файлов. Некоторую информацию о продукте, в том числе и для веб-разработчиков найдете на сайтах [3,4].

Ссылки:

1. Сайт проекта osCommerce — http://www.oscommerce.com/

2. Демо-версия osCommerce — http://www.oscommerce.com/shops/demonstration

3. Русскоязычное общество osCommerce — http://forum.oscommerce.ru/

4. Сайт osCommerce по-русски — http://oscomm.info/

5. Пакет локализации osCommerce — http://addons.oscommerce.com/info/1887

2 комментария

  1. Игорь
    // Ответить

    У меня проблема с адресом сайта. После установки oscommerce могу попасть на него только таким образом http://www.имя-сайта.org/catalog, а хотелось бы напрямую, то есть без /catalog Подскажите, как сделать красивый адрес, заранее спасибо!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *