Платежные модули

Есть возможность создания платежных модулей для любых платежных систем с автоматической или ручной обработкой платежа.
Платежные модули располагаются в папке 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 - идентификатор (номер) заказа.

Возвращаемые данные
В случае успеха возвращает истину. Если был указан несуществующий номер заказа возвращает ложь.