Как исправить ошибку в модуле PayKeeper (версия файла от 29/10/2021)

Обнаружилась проблема в модуле PayKeeper: в случае, если клиент по какой-то причине не оплатил заказ (вариант оплаты картой онлайн), заказ создаётся со статусом «Открыт».

Мы используем этот статус для заказов, которые оформляются юр. лицами с оплатой по счету. Увы, в настройках модуля нет возможности выбрать статус незавершенного заказа (знаю, некоторым статус «Незавершенный» очень не нравится или не подходит).

Дополнительная проблема: разработчики в этой компании не отслеживают версии модулей (наверное, не успевают или задача такая не поставлена).

Примерно 13 декабря 2021 я написал об этой проблеме в техподдержку PayKeeper, но ответа не дождался. Позвонил — предложили заменить модуль. Заменил, не помогло.

Пришлось править самостоятельно. В файле app/addons/paykeeper/payments/paykeeper.php исправил статус заказа. Было:

//render form
echo $form;

fn_change_order_status($order_info['order_id'], 'O', '', false);

Стало:

//render form
echo $form;

fn_change_order_status($order_info['order_id'], 'N', '', false);

Теперь заказ, который не оплачен, создается со статусом «Незавершенный».

2 лайка

Судя по всему это сделано для того, чтобы товар снялся с наличия (зарезервивовался). Статус “Незавершенный” этого не сделает. Если вас это устраивает, то все ок

Если товар не оплачен, его нельзя резервировать, у нас так.

Ну и от поддержки PayKeeper получил письмо:

Добрый день!
Действительно в при оплате модуль меняет статус заказа, прошу прощения, я просмотрел невнимательно этот момент. В будущем вообще уберу эту строку, в нет не большой необходимости, оставлю только в пост оповещении. Спасибо за подсказку.