Платежные модули
Есть возможность создания платежных модулей для любых платежных систем с автоматической или ручной обработкой платежа.Платежные модули располагаются в папке pm_modules в виде папок с именем модуля.
В имени модуля допускается использовать только латинские буквы, цифры и знак подчеркивания.
Пример модуля
Если платежный модуль был привязан к способу оплаты (привязка модуля осуществляется в разделе панели администрирования "Настройки / Способы оплаты"), то после оформления покупателем заказа модуль будет подключен в место расположения метки {payment_module} в файле дизайна order_complete.tpl.
В остальных случаях контент модуля выводится в месте расположения метки {content} в файле дизайна design.tpl
Для открытия модуля в общедоступной и в администраторской части используется URL-адрес ?pmmod=sample (методом GET) и соответственно скрытое поле <input type="hidden" name="pmmod" value="sample"> для открытия методом POST, где вместо sample имя модуля.
Для открытия только контента модуля без дизайна движка можно использовать параметр independ со значением 1, например, ?pmmod=sample&independ=1
Если в платежном модуле существует файл admin/pm_module.php, то в панели администрирования на странице редактирования способа оплаты, к которому привязан данный мудуль появляется ссылка "Настройка платежного модуля ".
Функции для платежных модулей
Можно воспользоваться предоставляемыми движком функциями для платежных модулей.array engine_conf( )
Возвращаемые данные
Возвращает ассоциативный массив главных установок движка
Array
(
[charset] => кодировка документов
[design] => имя дизайна
[email] => e-mail магазина
[lang] => язык
[shop_name] => название магазина
[time_diff] => разница во времени с сервером (в часах)
[url] => URL-адрес магазина
)
array get_order_data( int $orderId )
Параметры
$orderId - идентификатор (номер) заказа.
Возвращаемые данные
Возвращает ассоциативный массив с данными заказа из таблицы "orders" базы данных.
Array
(
[order] => Array
(
[orderid] => номер заказа
[date] => дата заказа в UNIX-формате
[status] => идентификатор статуса заказа
[pmid] => идентификатор способа оплаты
[paymethod_advname] => название платежного модуля
[paymethod] => название способа оплаты
[currency_id] => идентификатор валюты платежа
[currency] => название валюты платежа
[currency_brief] => краткое обозначение валюты платежа
[currency_course] => курс валюты платежа относительно валюты базы данных
[def_currency_id] => идентификатор валюты базы данных
[def_currency] => название валюты базы данных
[def_currency_brief] => краткое обозначение валюты базы данных
[total] => сумма в валюте базы данных
[total_pc] => сумма в валюте платежа
[discount_percents] => скидка в процентах
[discount] => скидка в валюте базы данных
[discount_pc] => скидка в валюте платежа
[total_with_discount] => итого со скидкой в валюте базы данных
[total_with_discount_pc] => итого со скидкой в валюте платежа
[delivery_cost] => стоимость доставки в валюте базы данных
[delivery_cost_pc] => стоимость доставки в валюте платежа
[final_total] => окончательная сумма к оплате в валюте базы данных
[final_total_pc] => окончательная сумма к оплате в валюте платежа
[dmid] => идентификатор способа доставки
[deliverymethod] => название способа доставки
[userid] => идентификатор пользователя
[username] => логин пользователя
[first_name] => имя покупателя
[last_name] => фамилия покупателя
[patronymic] => отчество покупателя
[company] => название компании покупателя
[country_id] => идетификатор страны покупателя
[country] => страна покупателя
[city] => город покупателя
[address] => адрес покупателя
[zip_code] => почтовый индекс покупателя
[phone] => номер телефона покупателя
[email] => e-mail покупателя
[comment] => комментарий покупателя к заказу
[adm_pub_comment] => доступный покупателю комментарий администратора к заказу
[admin_comment] => недоступный покупателю комментарий администратора к заказу
)
)
int get_order_id( )
Возвращаемые данные
Возвращает уникальный идентификатор (номер) заказа после оформления заказа.
Если после оформления заказа покупатель опять добавил товары в корзину либо сессия была закрыта - возвращает 0.
array get_orders_statuses( )
Возвращаемые данные
Возвращает массив со всеми возможными статусами заказов
Array
(
[ID статуса 1] => Array
(
[name] => Название статуса 1
)
[ID статуса 2] => Array
(
[name] => Название статуса 2
)
)
bool is_paid_order(int $orderId )
Параметры
$orderId - идентификатор (номер) заказа.
Возвращаемые данные
Если заказ оплачен возвращает истину, если заказ не оплачен возвращает ложь. Сопоставление статуса заказа осуществляется на основании опции "Статус оплаченных заказов" в разделе панели администрирования "Настройки / Основная конфигурация".
string paid_status_name( )
Возвращаемые данные
Возвращает название статуса заказа который принято считать оплаченным на основании опции "Статус оплаченных заказов" в разделе панели администрирования "Настройки / Основная конфигурация".
bool set_order_paid( int $orderId )
Устанавливает для заказа статус "оплачен" на основании опции "Статус оплаченных заказов" в разделе панели администрирования "Настройки / Основная конфигурация".
Параметры
$orderId - идентификатор (номер) заказа.
Возвращаемые данные
В случае успеха возвращает истину. Если был указан несуществующий номер заказа возвращает ложь.