Не знаю как кто решает такую проблему у нас принцип такой(рассказываю общую концепцию только):
1. Заводим тип оплаты - наличные, переименовываем в сертификат или баллы(в 1С есть такой способ оплаты как баллы насколько я понял штатно). т.е. Если у нас есть тип оплаты нал, появится второй вариант, только переименованный и клиент сам решает чем он расплачивается
2. заводим новое свойство заказа - сертификат
3. кастомизируем компонент оформления заказа, вносим обработку(на сайте все сертификаты должны быть в инфоблоке/HL/таблице, главное чтобы были, как и в 1С). если заполнено свойство, проверяем активность сертификата, если активен, его лимит, если лимит >=сумме заказа, разрешаем оформить заказ. НО разницу придется обнулить, не важно осталось от сертифиак 1рубль не истраченный или 10000, поэтому клиентов нужно предупреждать что будет так. Если способ оплаты в 1С передается как баллы, то там (со слов 1С-ника) есть штатный мехаизм обработки таких заказов, остается только написать обработку деактивирования сертификата и выгрузить его на сайт что он анулирован.
4. А вот если ситуация обратная - когда сумма заказа > сертификата, тут мы нашли только подходящий вариант это добавления 2 оплаты в заказ. Тут появляется заковыка, что все стандартные обработки и компоненты не видят 2 оплату, хотя возможность дополнительных оплат появились уже достаточно давно(может я не прав и в последних версия битрикса уже все компоненты видят, но на момент разработки - 18-19 битрикс нет). Их придется тоже кастомизировать или дописывать шаблоны. Так же обмен заказами с 1С не видит 2 оплату, его придется тоже кастомизировать.
Вот такая схема решения у нас. Дорабатывать пришлось много всего, ошибок вылезает тоже в процессе не мало. Причем дописывать пришлось не только сайт, но и 1С.
Если у кого-то схема проще, было бы здорово чтобы кто-то так же поделился ей
)