У меня есть большой опыт работы с огромным количеством cms систем и движков магазинов. До сегодняшнего дня опыта работы с Prestashop не было. Зато был ужасный опыт работы с x-cart. Что хотелось бы отменить в плюсы к модификации и написанию модулей к Prestashop:
Адекватная и полная документация описывающая процесс создания модулей.
Просто открыл раздел создание модулей и по нему начал работать. В ходе документации рассматривается пример создание модуля, все доступно и пошагово расписано.
Понятный код и архитектура системы.
Код модуля встраивается через хуки — функции которые в определенный момент вызовут код вашего модуля. Для того чтобы расширить админку так же применяются хуки. Можно заменять целые классы своими, унаследовав их от Core классов cms и положив в папочку override в корень cms. При всех этих манипуляциях код cms может автообновляться без каких либо проблем.
В качестве языка шаблонов используется шаблонизатор smarty.
Тут главный момент не в использовании конкретно smarty, а что прозрачно разделена верстка+шаблоны от моделей и кода. В x-cart же черт ногу сломит в плане шаблонов, там нужно создавать кучу дополнительных абстракций. Как по мнению разработчиков X-cart, верстальщик сможет работать с шаблонами я не знаю, для меня это полнейшая загадка. Видимо у них создатель шаблонов по идее это php — программист уровня Senior. И главный бред X-cart, после малейшего измненения шаблона, необходимо пересобирать кеш, а это занимает в зависимости от параметров сервера до 10 минут. В prestashop мы просто отключаем кеш на момент разработки и сразу же видим результат изменения шаблона.
Для меня ответ на вопрос, что лучше X-cart или Prestashop теперь очевиден. И очевидна причина популярности wordpress — важна не «крутость» кода самой cms (использование хитрых паттернов проектирования), а коммунити и количество модулей. Количество модулей же в свою очерель зависит от того насколько сложно модифицировать cms (расширять ее функциональность) и насколько сложно интегрируется программный код модулей и верстка в админку и «front» cms системы. Можно сколько угодно пенять на производительность и устаревший код, но пользователи как говорится голосуют ногами (выбором) и деньгами.