Итак, все долго-долго ждали, и таки дождались! :-) Встречайте! ShopModxBox-2.0.0-beta. Времени потратили "чуть больше", чем планировалось, но это совсем не от безделья. Просто хотелось как можно более полную и грамотную основу заложить. Плюс была проделана огромная работа с фронтом сайта, и это не только адаптивная верстка, но и полноценное JS-API, за что Сергею огромнейшее спасибо! Все сделанное во фронте - это Сергей. Я серверную часть программировал. В общем, вот демо-ролик (демонстрация + два способа установки). А под катом детали.

Ссылка на демо-видео: http://www.youtube.com/watch?v=g_cSfGgSO9g

Сразу ссылки на ролик с привязкой по времени:

Итак, вот неполный список изменений:

  • Полностью переработан весь движок. Обратная совместимость с 1.1.0 не подразумевается.
  • Добавлен компонент Billing. На этом модуле завязано все, что связано с заказами, оплатой и т.п.
  • Корзина перестала существовать отдельно. Теперь Корзина - это еще не оформленный Заказ (Order). Теперь даже не оформленные заказы хранятся в базе данных, что как минимум позволяет видеть кого что интересует, а так же определять реальный процент конверсии и выявлять возможные ошибки.
  • Компонент Basket (Корзина) остался, но почти все, что связано с самими заказами, перенесено в Billing. Basket и дальше останется отдельным модулем, а в Billing-е будет только необходимый минимум логики. Рассчет на то, что сам механизм заказа, оплаты и т.п. можно будет реализовывать в любых сторонних модулях, которые будут взаимодействовать с биллингом.
  • Добавлен и сверстан новый шаблон по умолчанию с использованием bootstrap. Много всяких аджаксовых плюшек и полноценное JS-API.
  • Добавлен табличный редактор документов.
  • Добавлено управление заказами.
  • Добавлен личный кабинет пользователя, регистрация, смена пароля, восстановление пароля и т.п.
  • Настроена регистрация через Login, смена/восстановление пароля и т.п.
  • Добавлен модуль modHybridAuth (авторизация через социальные сети). Пока четко проверены Twitter, Facebook и Google, но должны и другие работать.
  • Подключен сервис оплаты Robokassa.
  • Настроены политики безопасности:
    • Контент-менеджер;
    • Администратор магазина;
    • Менеджер магазина;
    • Продвинутый менеджер магазина.

Всякие вкусности, а так же планы на будущее.

Движок на самом деле разрабатывался добротно, просто еще не все появилось. Но есть главное - основа. И эту основу мы будем постепенно развивать, а всякий, кому чего-то не хватит, без особых проблем сможет добавить свое. Вот простой алгоритм, как этот магазин переделать под себя: 1. Разворачиваем эту сборку. 2. Делаем копии шаблонов (assets/components/modxsite/templates/default/ (публичная часть шаблона) и core/components/modxsite/templates/default/ (Смарти-шаблоны)). Называем шаблон каким-то своим именем. 3. Меняем название шаблона в настройке. На самом деле можно было просто переименовать эти папки и настройку поменять :-) Но я так, описал полностью возможный механизм. Все, у вас свое собственное оформление сайта. То есть пока еще только такой же шаблон, но вы его можете смело редактировать как хочется. Так вот, далее просто надо учесть, что у нас Смарти, а не просто сухие чанки, то есть в самих шаблонах можно менять логику отображения и работы сайта. А так же можно создавать свои процессоры и расширять имеющиеся. За счет этого вообще кардинально можно все изменить. Но есть еще один огроменный фронт: новые модули для магазина. Мы закладываем основу так, чтобы можно было довольно легко добавить что-нибудь свое. Покажу один пример, правда он чисто для программистов. Вот у нас есть оплата через робокассу, и стоит задача прикрутить еще какой-нибудь способ оплаты. Посмотрим, как это делается. Вот это базовый процессор для любых типов оплаты: https://gist.github.com/Fi1osof/0d0df9bb085195205d25 Он абстрактный, и его нельзя вызвать напрямую, так как у каждой конкретной платежной системы свои механизмы проверки платежа. Но этот класс уже обеспечивает всю необходимую логику, и от расширяющего процессора ждет только одного: подтверждения правильности платежа и установки суммы и прочих данных платежа. И вот расширяющий процессор конкретно для робокассы:

https://gist.github.com/Fi1osof/4e3011cf1383514c586f

Как видно, это всего 60 строчек кода. Но в результате не только будет проведена оплата с учетом кто платил, через что, сколько и т.п., но и будет автоматически изменен статус заказа на Оплачен. И вот прикрутить еще какой-нибудь способ оплаты - это всего несколько десятков строк. Вот пока на этом я прервусь. Скачивайте сборку, устанавливайте, изучайте, задавайте вопросы. А впереди у нас еще очень много работы, так что если для вас сборка оказалась полезной, и вы желаете больше нужных модулей и как можно скорее, то шлите донейты. Чем быстрее будут пополняться бюджеты, тем больше мы будем работать и тем быстрее будут появляться всякие полезности :-)

P.S. Вышла новая версия ShopModxBox-2.0.1

Список изменений:

Исправлены баги с подсчетом товаров.

  • Удалил лишние папки (из-за которых на винде бага с установкой возникала).
  • Добавлен вход через Яндекс.
  • Добавлена госдеповская таблица транслитерации (у кого сайт уже стоит и кому надо, изменить настройку friendly_alias_translit=russian на russian-gosdep).