Как вы уже заметили, мы выпустили новую версию UMI.CMS под номером 2.8.0. В этой версии основной акцент был сделан на новый модуль интернет-магазина, новый edit-in-place и на улучшение внутреннего дизайна системы.

Меня попросили написать про модуль интернет-магазина, но это слишком широкая тема, чтобы ужать ее до формата блога.

Поэтому я решил поступить следующим образом. В этом посте я выпишу технические интересности нового магазина и в целом версии 2.8 в виде списка тезисов и пояснений к ним. Ориентироваться буду преимущественно на разработчиков.

Я предлагаю написать в комментариях, какие именно пункты кажутся наиболее интересными. От ваших ответов будут зависеть темы следующих постов.

 

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

Модуль интернет-магазина был полностью перепроектирован и переписан. Интерфейсы модуля и пользовательские возможности подробно описаны в документации,поэтому дублировать этот текст в блог я не буду. Лучше остановимся на отдельных компонентах модуля.

Скидки

Скидки в 2.8 стали компонентными. Каждая скидка состоит из двух частей: модификатора цены и списка правил скидки.

  • Модификатор скидки - это алгоритм, согласно которому будет пересчитываться цена. Сейчас можно выбрать либо фиксированную скидку, либо процент от начальной стоимости.По необходимости разработчик может добавить свой совершенно новый модификатор.
  • Правило скидки - это фильтр, который необходим системе в тот момент, когда она принимает решение, какие скидки подходят для определенных товаров или заказов. Т.е. это набор фильтров. Например, если у скидки выбрано 2 правила: ограничение по времени и по группе пользователей, то скидка будет применена только в том случае, если оба эти условия удовлетворены.
    Как и в случае с модификатором цены, новые правила могут быть введены системы разработчиком сайта самостоятельно. Этот механизм позволяет реализовать буквально любой дисконтный механизм, который может потребоваться.

Скидки бывают двух видов: скидка на отдельный товар и скидка на заказ. От того, к чему применяется скидка, зависит выбор возможных правил и модификаторов. 

Заказ

Заказ теперь приписываются домену, в котором он совершен, а в административной части список заказов можно отфильтровать по домену.

Генерация номера заказа вынесена в отдельный класс, что позволяет изменить стандартный механизм генерации номера (по умолчанию это инкрементация) на специфичный для вашей бизнес-задачи. В файле config.ini за это отвечает настройка “emarket.numbers”. Пример можно посмотреть в файле ~/classes/modules/emarket/classes/orders/numbers/default.php

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

Оплата

По умолчанию магазин теперь поддерживает следующие системы оплаты: Яндекс.Деньги, Payonline System, Chronopay

Мы постарались максимально облегчить для разработчика добавление в UMI.CMS новых систем оплаты. К примеру, размер кода, который реализует интеграцию с Payonline, составляет менее 50 строк кода (~/classes/modules/emarket/classes/payment/systems/payonline.php).

Доставка

По умолчанию поддерживаются: Почта России, доставка курьером, самовывоз.

Новые системы доставки интегрируются в UMI.CMS так же легко, как и новые системы оплаты.

Процесс покупки

Процесс покупки разбит на этапы. По умолчанию в процесс покупки входит 4 этапа:

  1. Проверка необходимых персональных данных
  2. Ввод или выбор адреса доставки
  3. Выбор способа доставки
  4. Выбор способа оплаты (и оплата)

 

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

Покупка в интернет-магазине больше не требует обязательной регистрации.

Система

Restrictions”– ограничения на значения свойств объектов и страниц. Этот механизм позволяет задавать ограничения на формат полей, а также определять правила преобразования значений при их получении и сохранении.

Для разработчиков модулей и макросов у нас появился новый способ осуществлять выборки – selector (вместо umiSelection ). Документацию по его использованию можно найти по адресу http://dev-wiki.umisoft.ru/index.php/Selector

Сборка мусора.В 2.8 появился механизм, позволяющий задавать expiration для объектов (umiObject) в системе. Когда происходит событие “cron”, сборщик мусора удаляет все устаревшие объекты. Таким образом, можно организовать удобную работу с временными объектами. 

Трансляция результатов работы протоколов в json – в некоторых случаях результат работы макроса удобнее получить не в xml-формате, а в формате JSON.

В файле настроек появилась возможность указать страницу-заглушку и управлять ее показом при помощи фильтрации по ip.

Переход в режим “debug” теперь осуществляется через файл config.ini. Там же можно указать ограничение по ip-адресам для этой опции.

В файле config.ini можно указать ограничение на доступ к протоколам (udata, uobject, …) через http, а также ограничить доступ к ним в зависимости от прав пользователя.

Добавлен механизм слежения за перемещениями страниц. Теперь при запросе перемещенной страницы по старому адресу будет срабатывать seo-корректное перенаправление на ее новый адрес.

Механизм отрисовки капчи стал доступен для изменения разработчиком.

Для xslt-шаблонизатора в 2.8 по умолчанию включена опция   “xslt-nested-menu”, которая позволяет макросу udata://content/menu/ выводить вложенное меню и избавиться от необходимости использовать рекурсивные вызовы в шаблоне.

Читайте также:

Теги

Авторы блога