Выбрать курс
3  /  3

Частичное списание с внутреннего счета

Для работы данного функционала требуется модуль Инструменты интернет-магазина.

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

Мы также можем в этом помощь, но за отдельное вознаграждение. Обратиться за помощью можно в наш чат в правом нижнем углу нашего сайта (в рабочее время отвечаем достаточно оперативно). Но оставляем за собой право отказать в доработке без объяснения причин.

Шаги по настройке частичного списания с внутреннего счета пользователя:

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();   //обновляем форму
		}
	});
});