#yandex-money-cms-modx-evo
Модуль оплаты yandex-money-cms-modx-evo необходим для интеграции с сервисом Яндекс.Касса на базе CMS ModX и компонента Shopkeeper.
Доступные платежные методы, если вы работаете как юридическое лицо:
- Банковские карты - Visa (включая Electron), MasterCard и Maestro любого банка мира
- Электронные деньги - Яндекс.Деньги, WebMoney и QIWI Wallet
- Наличные - Более 170 тысяч пунктов оплаты по России
- Баланс телефона - Билайн, МегаФон и МТС
- Интернет банкинг - Альфа-Клик, Сбербанк Онлайн, MasterPass и Промсвязьбанк
- Кредитование - Доверительный платеж (Куппи.ру)
###Требования к CMS ModX:
- редакция Evolution 1.х
- компонент Shopkeeper 1.х
- компонент FormIt
###Установка модуля Для установки данного модуля необходимо:
- Распаковать архив и переместить папку
assets
в папкуassets
Вашего сайта - Перейти в административную панель CMS
- Перейти в меню
Модули
-Управление модулями
-Новый модуль
и создать новый модуль с названиемYandexMoney
- Вставить в поле
Код модуля
созданного модуляYandexMoney
следующий код:
include '../assets/snippets/yandexmoney/yandexmoney.class.php';
$dbname = $modx->db->config['dbase']; //имя базы данных
$dbprefix = $modx->db->config['table_prefix']; //префикс таблиц
$mod_table = $dbprefix."yandexmoney"; //таблица модуля
$theme = $modx->config['manager_theme']; //тема админки
$basePath = $modx->config['base_path']; //путь до сайта на сервере
$action = isset($_POST['action']) ? $_POST['action']:'';
switch($action) {
//Установка модуля (создание таблицы в БД)
case 'install':
$sql = "CREATE TABLE $mod_table (id INT(11) NOT NULL AUTO_INCREMENT, config LONGTEXT, PRIMARY KEY (id))";
$modx->db->query($sql);
$sql = "INSERT INTO $mod_table (id, config) VALUES (1, '')";
$modx->db->query($sql);
header("Location: $_SERVER[REQUEST_URI]");
break;
//Удаление таблицы модуля
case "uninstall":
$sql = "DROP TABLE $mod_table";
$modx->db->query($sql);
header("Location: $_SERVER[REQUEST_URI]");
break;
//Обновление записи в БД
case 'save':
$fields = array(
'config' => serialize($_POST['config'])
);
$ym_stat = new yamoney_statistics($_POST['config']);
$query = $modx->db->update($fields, $mod_table, 'id = 1');
header("Location: $_SERVER[REQUEST_URI]");
break;
//Перезагрузка страницы (сброс $_POST)
case 'reload':
header("Location: $_SERVER[REQUEST_URI]");
break;
//Страница модуля
default:
echo Yandexmoney::adminHeadHtml($theme);;
if (!Yandexmoney::isInstalled($dbname, $mod_table)){
//если таблицы не существует, выводим кнопку "Установить модуль"
echo Yandexmoney::adminInstallHtml();
}else{
$data_query = $modx->db->select("*", $mod_table, "", "id ASC", "");
$row = mysql_fetch_assoc($data_query);
$config = unserialize($row['config']);
$ym = new Yandexmoney($config);
echo $ym->adminModuleHtml();
}
break;
}
- Перейти в меню
Элементы
-Управление элементами
-Сниппеты
-Новый сниппет
и создать новый сниппет с названиемYandexMoney
- Вставить в поле
Код сниппета
созданного сниппетаYandexMoney
следующий код:
<?php
$dbname = $modx->db->config['dbase']; //имя базы данных
$dbprefix = $modx->db->config['table_prefix']; //префикс таблиц
$mod_table = $dbprefix."yandexmoney"; //таблица модуля
$theme = $modx->config['manager_theme']; //тема админки
$basePath = $modx->config['base_path']; //путь до сайта на сервере
if(!defined('YANDEXMONEY_PATH')) {
define('YANDEXMONEY_PATH', MODX_BASE_PATH."assets/snippets/yandexmoney/");
}
require_once YANDEXMONEY_PATH.'yandexmoney.class.php';
$data_query = $modx->db->select("*", $mod_table, "", "id ASC", "");
$row = mysql_fetch_assoc($data_query);
$config = unserialize($row['config']);
$ym = new Yandexmoney($config);
if ($_POST['payment']){
$ym->pay_method = $_POST['payment'];
}
if ($action == 'showMethods') {
return $ym->getSelectHtml();
}
?>
- Перейти в меню
Элементы
-Управление файлами
и в файлassests/snippets/shopkeeper/shopkeeper.inc.php
вставить (после строки<?php
) следующий код:
if(!function_exists('sendOrderToManager')){
function sendOrderToManager(&$fields){
global $modx, $shkconf;
if(!class_exists('Shopkeeper')) require_once MODX_BASE_PATH."assets/snippets/shopkeeper/class.shopkeeper.php";
if(!defined('YANDEXMONEY_PATH')) define('YANDEXMONEY_PATH', MODX_BASE_PATH."assets/snippets/yandexmoney/");
if(!function_exists('YandexMoneyForm')) require_once YANDEXMONEY_PATH.'yandexmoney.class.php';
$shopCart = new Shopkeeper($modx, $shkconf);
$shopCart->sendOrderToManager($fields);
YandexMoneyForm($fields);
return true;
}
}
- Перейти в меню
Элементы
-Управление элементами
-Чанки
-Новый чанк
и создать новый чанк с названиемYandexMoney
- Вставить в поле
Код чанка
созданного чанкаYandexMoney
следующий код:
[[YandexMoney?&action=`showMethods`]]
Пример с вставленной строкой [[YandexMoney?&action=
showMethods]]
:
<select name="payment" eform="payment::::#FUNCTION YandexMoneyValidate">
<option value="При получении">При получении</option>
[[YandexMoney? &action=`showMethods`]]
</select>
- В коде страницы с формой заказа необходимо вставить следующий код:
[[YandexMoney? &action=`beforeCart`]]
Пример с вставленной строкой [[YandexMoney? &action=
beforeCart]]
:
[[YandexMoney? &action=`beforeCart`]]
[!Shopkeeper? &cartType=`full` &priceTV=`price` &orderFormPage=`34` ¤cy=`руб.` &noJQuery=`1`!]
[!eForm? &formid=`shopOrderForm` &tpl=`shopOrderForm` &report=`shopOrderReport` &vericode=`1` &ccsender=`1` &gotoid=`35` &subject=`Новый заказ` &eFormOnBeforeMailSent=`populateOrderData` &eFormOnMailSent=`sendOrderToManager` !]
- Перейти в
Модули
-Управление модулями
и щелкнуть по значку рядом сYandexMoney
, а затем выбрать пункт "Установить YandexMoney"
###Лицензионный договор. Любое использование Вами программы означает полное и безоговорочное принятие Вами условий лицензионного договора, размещенного по адресу https://money.yandex.ru/doc.xml?id=527132 (далее – «Лицензионный договор»). Если Вы не принимаете условия Лицензионного договора в полном объёме, Вы не имеете права использовать программу в каких-либо целях.
###Нашли ошибку или у вас есть предложение по улучшению модуля? Пишите нам cms@yamoney.ru При обращении необходимо:
- Указать наименование CMS и компонента магазина, а также их версии
- Указать версию платежного модуля (доступна на странице настроек модуля)
- Описать проблему или предложение
- Приложить снимок экрана (для большей информативности)