[1C Битрикс] Оплата заказа после подтверждения менеджером

Сегодня узнаем, как сделать на Битриксе оплату заказа после подтверждения менеджером или только после определенного статуса.

Для чего это нужно? Например, часть магазинов в обязательном порядке обзванивает клиентов, уточняет способы оплаты, доставку, контактные данные, наличие товара и т.д., т.е. убеждается, что все в порядке, клиент настоящий, товар есть в наличии, если клиент передумал, можно сменить вариант оплаты или доставки, подтверждает заказ, меняет в заказе статус на Ожидание оплаты, клиенту отправляется письмо, он переходит по ссылке для оплаты в письме,  оплачивает заказ без каких-либо манипуляций, авторизаций и прочих костылей и радостный ждет товар, радостный не только от ожидания заказа, но и от удобства оплаты на сайте!

Данная возможность появилась в 17 версии 1С-Битрикс, но как всегда, есть проблемы, обойти их поможет одно из моих решений TS Умные статусы и письма заказов в котором это реализовано с версии 1.9.0.

1) Сначала нужно установить сам модуль и сделать базовую настройку по инструкции к модулю.

2) Далее настроим модуль Интернет-магазина на работу с оплатой в публичной части сайта без авторизации и прочих сложностей.

Переходим в настройки модуля:
Настройки - Настройки продукта - Настройки модулей - Интернет-магазин

Находим там прям на первой вкладке раздел настроек:
Настройки показа карточки заказа в публичной части

Это необходимые настройки, ниже рассмотрим их подробней.
Статус, при котором можно оплатить заказ
Данная опция позволяет на странице успешного оформления заказа отключить вывод платежной системы, правда вот такая печальная надпись появится, говорящая, что оплатить заказ можно будет в личном кабинете, но с моим модулем оплатить заказ можно будет на любой странице сайта!


Разрешить просмотр заказа по ключу без авторизации
Это та самая функция, которая дает возможность показать клиенту страницу с платежной системой без авторизации и спокойно оплатить заказ, здесь даже думать не надо, нажимаем оплатить и все, можно прям так здесь и написать.

Под кодом имеется ввиду хэш, который отправляется в письме, в самой ссылке.
В моем случае выводит на странице платежную систему компонент bitrix:sale.order.payment
Готовый код страницы /personal/payment/index.php
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");?>
<?$APPLICATION->IncludeComponent("bitrix:sale.order.payment","");?>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");?>
Вообще, это дает разработчикам максимальную гибкость реализации оплаты, можно хоть свой компонент написать, вообще любую логику.

Это практически все, остается только в статусе заказа Ожидание оплаты отправлять клиенту ссылку на оплату.


3) Ссылку на оплату можно сделать двумя способами, либо прямую, либо через макрос.

а) В стандартном описании к статусу заказа добавим прямую ссылку, статусы в битриксе здесь:
Магазин - Настройки - Статусы

Здесь либо изменяем нужный статус, либо создаем новый, например: Ожидание оплаты
Пример описания с прямой ссылкой:
#ORDER_USER#, здравствуйте!<br>
Ваш заказ №#ORDER_ID# ожидает оплаты.<br><br>
Для оплаты заказа перейдите по ссылке:<br>
<a href="#SERVER_URL#/personal/payment/?ORDER_ID=#ID#&HASH=#HASH#">#SERVER_URL#/personal/payment/?ORDER_ID=#ID#&HASH=#HASH#</a>
Наглядно

Обратите внимание на сортировку, именно у этого статуса она должна быть либо больше, чем у предыдущих, либо на ровне с ними.
Например, статусы:
  • Принят - сортировка 10
  • В обработке - сортировка 50
  • Ожидание оплаты - сортировка 100

б) Здесь же  в стандартном описании к статусу заказа можно добавить макрос прямой ссылки, макросы создаются здесь:
Сервисы - TS Умные статусы и письма заказов - Доп. макросы

Назовем сам макрос, например: #PAYMENT_LINK#

В форме добавления макроса пишите вот так:
Название: PAYMENT_LINK
Значение: #SERVER_URL#/personal/payment/?ORDER_ID=#ID#&HASH=#HASH#

Наглядно


Теперь этот макрос надо добавить в описание к статусу заказа
#ORDER_USER#, здравствуйте!<br>
Ваш заказ №#ORDER_ID# ожидает оплаты.<br><br>
Для оплаты заказа перейдите по ссылке:<br>
<a href="#PAYMENT_LINK#">#PAYMENT_LINK#</a>
Наглядно


Все, ссылка готова, описание сохранили, теперь переходим в какой-нибудь заказ, меняем статус на "Ожидание оплаты" и видим, как заменятся данные в ссылке


Все это прилетит на почту клиенту в таком виде


Клиент переходит по ссылке, ему показывается платежная система из заказа.


И оплачивает заказ, тут без комментариев.


На моем сайте эта ссылка вообще в письме о новом заказе, не обязательно в статусе.



Если что-то пропустил, пишите в комментариях, постараюсь помочь.
Установка модуля