Для работы данного функционала требуется модуль Инструменты интернет-магазина.
Внимание! В статье приведены фрагменты кода, описывающие принцип реализации. Для внедрения рекомендуется обратиться к разработчикам.
Мы также можем в этом помощь, но за отдельное вознаграждение. Обратиться за помощью можно в наш чат в правом нижнем углу нашего сайта (в рабочее время отвечаем достаточно оперативно). Но оставляем за собой право отказать в доработке без объяснения причин.
Шаги по настройке частичного списания с внутреннего счета пользователя:
I. Отключить параметр компонента bitrix:sale.order.ajax Разрешить оплату с внутреннего счета. Как бы это не было странно, надо отключить, чтобы одно другому не мешало.
II. Создать свойство заказа, например Сумма оплаты с внутреннего счета тип Число для каждого типа плательщика, если это требуется.
III. В настройках модуля: Настройки - Настройки продукта - Настройки модулей - Scoder: Инструменты интернет-магазина в опции Выберите свойства для списания с внутреннего счета указать эти свойства.
IV. Чтобы свойство не отображалось для неавторизованных посетителей и тех, у которых внутренний счет пустой, можно в настройках модуля: Настройки - Настройки продукта - Настройки модулей - Scoder: Инструменты интернет-магазина в опции Выберите свойства, которые нужно скрыть в форме заказа [sale.order.ajax] для покупателей с пустым внутренним счетом указать эти свойства.
Если вы используете модуль Шаблон формы заказа с управляемой корзиной, то на этом настройки заканчиваются.
V. Если используете стандартный шаблон формы заказа bitrix:sale.order.ajax, то необходимо выполнить дополнительные корректировки: обновить (выполнить перерасчет) форму после заполнения поля (свойства заказа) Сумма оплаты с внутреннего счета.
BX.ready(function(){
$(document).on('change', 'input[name="ORDER_PROP_<ИД_СВОЙСТВА_ЗАКАЗА>"]', function(e) {
if ($(this).val().length != 0)
{
BX.Sale.OrderAjaxComponent.sendRequest(); //обновляем форму
}
});
});