В новой версии:
- Обновлен пакет shopModx до версии 0.2.0-beta.
- Добавлено TV-поле keywords. Теперь легко можно указать ключевые слова для документа.
- Полностью переписан класс modMgrOrdersProductsAddProcessor компонента billing. Удален метод getInstance(). Теперь логика вызова Add- или Create- процессора выполнена прям в методе process() текущего класса. Это позволяет гораздо легче расширять логику на уровне классов.
- Улучшен компонент basket:
- Механизм корзины полностью переписан на основе базы данных. В сессии хранится только id заказа, и то исключительно для того, чтобы поддерживать механизм корзины для неавторизованных пользователей. Если пользователь авторизованный, то будет автоматически получен id его актуальной корзины. В остальном все данные хранятся в базе данных.
- Созданы новые basket/web/orders/update и basket/web/orders/status/update процессоры. Вupdate-процессоре прописана проверка, действительно ли данный заказ принадлежит текущему пользователю.
- Переписан процессор очистки корзины. Теперь дополнительно еще проверяется, чтобы статус корзины (заказа) был только 1 - то есть новый. После того, как он оформлен, ее уже нельзя очистить. В дальнейшем еще будет дописан процессор orders/cancel, чтобы пользователь имел возможность отменить уже оформленный заказ, но не взятый в работу менеджерами.
- Все процессоры теперь не в папке processors/, а в папке processors/basket/. Это необходимо, чтобы не было конфликтов имен классов с процессорами других компонентов (например биллинга). Дело в том, что механизм MODX-а устроен так, что лучше использовать автоматически создаваемые имена классов (MODX имена генерирует). И если у нас процессоры будут лежать в одинаковых папках, но в разных модулях, то имена классов могут совпасть, и будет фатальная php-ошибка. А там процессоры именуются по маске modBasketWeb... и modBasketMgr...
Старые процессоры оставлены для обратной совместимости, но они все помечены как _depricated. От их использования необходимо отказываться, изменив пути в вызовах процессоров.
Обновляется basket простой заменой файлов.
Внимание! Если вы планируете обновлять текущую сборку ShopModxBox, готовьтесь к скорейшему изменению путей вызываемых процессоров компонента basket, так как в логи будут писаться ошибки об использовании устаревших процессоров.
Если у вас возникнуть проблемы с обновлением имеющегося магазина на ShopModxBox-е, обращайтесь в MODX-Клуб , обязательно поможем.
P.S. Смотрите запись мастер-класса по новому модулю оформления заказов.