Модуль оплаты ЕдинаяКасса для ShopModxBox

В наш репозиторий выложил новый пакет — EdinayaKassa. Это дополнительный модуль оплаты для нашей сборки ShopModxBox. Таким образом, теперь на сайте можно использовать помимо Робокассы и Единую Кассу. В самое ближайшее время выйдет новый релиз ShopModxBox с уже установленным и настроенным компонентом EdinayaKassa, но если для тех, у кого уже работает наша сборка, под катом подробно опишу как установить и настроить этот компонент. Следует иметь ввиду, что данный компонент рассчитывался только для работы с ShopModxBox, так что если вы его хотите использовать отдельно, то он годится скорее только в качестве примера. Установка и настройка компонента EdinayaKassa. 1. Регистрируемся в ЕдинойКассе. 2. Качаем из нашего репозитория и устанавливаем данный компонент. ? ? ? 3. Создаем документы для работы компонента. Особое внимание сразу же обратите на соответствие ID-шников спецдокументов в настройках. Само собой в настройки надо указывать актуальный ID. Так же имейте ввиду, что кроме валюты, все настройки будут пусты, их надо будет прописать самостоятельно. ? 3.1 В документ Result прописываем [[!edinayakassa.payResult]] Шаблон Пустой. Снимаем галочку «Использовать HTML редактор». 3.2 В документы Success и Failure прописываем произвольные сообщения об успешности или не успешности платежа. Шаблон Основной. Все эти три документа снимаем галочки «Доступен для поиска», чтоы в sitemap.xml не попадали. 4. В шаблон страницы оплаты сразу после {assign var=order value=result.object[0]} дописываем подключение директории шаблонов модуля и вызов сниппета. {modx->smarty->addTemplateDir("{modx->getOption('core_path')}components/edinayakassa/templates/web/default/")} {snippet name="edinayakassa.getButton" params="&WMI_PAYMENT_AMOUNT=`{order.sum}&order_id={smarty.get.order_id}`"} Вообще Smarty хороша тем, что шаблоны можно переопределять. К примеру, в сниппете вызывается шаблон edinayakassa/button.tpl Так как он находится в папке шаблонов самого модуля EdinayaKassa, то нам и приходится указывать Smarty дополнительную директорию шаблонов. {modx->smarty->addTemplateDir("{$modx->getOption('core_path')}components/edinayakassa/templates/web/default/")} Но, если вы создадите шаблон edinayakassa/button.tpl в основной директории шаблонов сайта, то будет использован ваш шаблон. Собственно, тогда можно и не подключать папку шаблонов EdinayaKassa. 5. Надо еще добавить в базу данных еще один платежный сервис (он будет учитываться в биллинге). Для этого заходим через PhpMyAdmin (или кто что использует) в базу данных, и в таблицу modx_billing_paysystems добавляем запись со значением name=EdinayaKassa. ? Значение id новой записи указываем в системную настройку edinayakassa.bill_serv_id Ну и все. Если все правильно сделано, то на странице появится кнопка оплаты через ЕдинуюКассу. ? UPD: Выложил пакет на гитхаб. github.com/Fi1osof/EdinayaKassa