Интернет-магазин построенный на основе OpenCart
Собственно живой сайт можно посмотреть тут:
www.toolsonline.ru Это интернет-магазин инструмента для автосервиса. Там можно купить наборы слесарного инструмента для автомобиля, для дома или в подарок на новый год. Обращайтесь ко мне за скидками, я знаю секретный код! =)
Особенность в том, что товаров в ассортименте совсем немного, но почти у каждого товара есть очень приличное описание. Дополнительные изображения, HTML описание, отзывы посетителей, рекомендуемые товары т.е. качественная карточка для каждого товара, а не просто список, где название, артикул и цена. Съемка каталога для этого проекта проводилась при содействии фотографа
Марии Петровой. Спасибо, Маша за светлые кадры =))
Я занимаюсь работами по этому проекту в качестве web-разработчика с ноября 2009 года. В качестве системы управления я выбрал ОpenCart
opencart.com не случайно и как-то сразу без долгих выборов наиболее подходящей платформы. Это просто замечательная система, код которой можно легко адаптировать под собственные нужды очень быстро. Файлы системы разделены по папкам controller, model, view, language. Гениально и просто как MVC. После длительных сражений с
Magento Commerce просто песня!
Я за считанные часы понял как работает система и уже смог адаптировать несколько контроллеров под свои нужды. Как CMS эту систему лучше не рассматривать в принципе! Все очень скудно и печально. Но площадка для коммерческой деятельности очень приличная. Главный лозунг разработчиков OpenCart: "интернет-магазин с минимальными усилиями при разработке".
Конкретный пример
Вот например, видите блок с рыночной ценой и экономией при покупке на этой странице:
http://www.toolsonline.ru/toolsets/allinone/nab.14.12.116 он выводится только для товаров бренда станкоимпорт. Это так называемое "кастумное решение".
Чтобы сделать этот блок потребовалось добавить некоторые переменные в файл контроллера отвечающего за формирования карточки товара. Не скажу, что это юзабильно т.к. мне потребовалось изменять PHP файлы по FTP. Но логика настолько прозрачная, что я уверен в том, что в будущем не запутаюсь в том, что уже сделал или потом сделаю.
Логика находится в отдельном файле в отдельной папке для логики controller.
Представление в файле шаблона дизайна, где PHP и HTML в перемешку в папке view.
Шаблонизация примитивнейшая из возможных, но в этом есть своя сила! Я добавил изменения в два файла и получил нужный мне результат. Что важно, я нашел эти файлы без хелпа.
Yandex ML
Конечно пришлось повозиться и написать код для выгрузки товаров интернет магазина в формат
Yandex ML. Это нужно, чтобы товары автоматически публиковались на самой популярной и самой технологичной торговой площадке в РФ.
В базовой комплектации этой возможности нет, но можно сделать такую штуку на основе имеющегося в системе файла для экспорта товаров в формат Google Base. Который у нас не популярен и никто не знает что это такое.
Очень много интересных аспектов открылось мне при согласовании параметров выгрузки с менеджером Яндекс.Маркета прежде чем он одобрил окончательный вариант XML файла. Я реализовал задачу по интеграции интернет-магазина в Яндекс.Маркет всего за 3 дня и очень этим гордился следующие 3 дня =)
Яндекс.Маркет
Товары автоматически выгружаются в YML файле на Яндекс.Маркет. Файл загружается, обрабатывается и публикуется приблизительно через каждые 5 часов. Яндекс.Маркет опрашивает случайным образом ссылки на товары с периодичностью в 1 минуту. Если сайт недоступен, то он снимается с публикации автоматически. По этому, если вы будете кликать по товарам в поиске Яндекс.Маркета, то вероятность того, что сайт на который вы переходите не будет работать очень небольшая.
Глупости формата YML заключаются в том, что XML принимается только в windows-1251, а не в UTF-8. Не поддерживается львиная доля
HTML Entity. Пачиму нипанятна?
Изображения
Посмотрите на дополнительные картинки
http://www.toolsonline.ru/toolsets/allinone/nab.14.12.105 они выводятся в 275х275 пикс. Клик по картике открывает картинку в размере 800х800 поверх картинки выводится водный знак. Масштабирование изображений, наложение защитного watermark'a в OpenCart встроено по умолчанию.
Надо разобраться где лежит нужная библиотека и добавить несколько строчек кода в библиотеку вывода изображения.
Особенности
У товара не может быть полей для отдельных свойств и как следствие не реализовать в принципе фильтры по свойствам, как в Virtuemart, но там очень приятный
WYSIWYG , можно добавлять неограниченное количество доп. картинок.
Очень много встроенных средств для управления ценой товара. Можно добавлять опции, которые влияют на итоговую цену. Каждый товар можно поместить одновременно в несколько разделов каталога.
Недостатки
У этой CMS есть ряд недостатков, которые обязательно требуется исправить!
Очень много ошибок с ЧПУ, я так понимаю, что эта возможность появилась начиная с версии 1.3.x и ещё не отлажена. Один товар можно смотреть так seo-url от корня сайта
http://www.toolsonline.ru/cs-tk56pmq или в структуре каталога:
http://www.toolsonline.ru/toolsets/unisets/cs-tk56pmq т.е. несколько путей до одного и того же товара, что по моему мнению не есть гуд.
Общее количество страниц больше, но вес каждой страницы с точки зрения поисковика должен быть меньше, т.к. у них одинаковый контент отдается.
Поиск по артикулу не ведется через встроенный поиск. Потребовалось внести изменения в файлы папочки model.
Ещё одна важная проблема в том, что Daniel архитектор этой самой CMS принципиально не отдает ошибку 404 для несуществующих страниц т.е. текст "страница не найдена" будет выведен, но для страницы будет передан код HTTP 200 OK.
Поисковик будет думать, что страница существует, а это не так. Решение проблемы усложняется при включении seo url
Эту проблему я решил, но удивлен почему нет решения в сообществе Opencart на официальном сайте
http://forum.opencart.com/. Я там есть под своим обычным ником jfima и уже запостил туда пару своих решений для этой и других проблем.
Я бы сказал, что сообщество молодое и неокрепшее и народу мудрого там мало.
Итог
В общем OpenCart хорошо подходит для интернет-коммерции, если ориентироваться на вариант с минимальными вложениями усилий в разработку. Я не исключительный PHP программер, а скорее среднестатистический PHP кодер.
Если моего уровня хватает, чтобы дописать что-то для этой CMS своими силами, значит многим web-разработикам эта система окажется по силам. Можно сказать, что это такой lite php mvc framework, который можно быстро настроить под нужды конкретного заказчика. Простой код, легко добавить новую возможность, есть сообщество, которое расширяется. Голосую за OpenCart!