Для заполнения служебных или скрытых полей в форме заказа битрикс добавляем в footer страны оформления заказа следующий код:
function AddRoistat(){
if (typeof roistat!== 'undefined') {
let arr = [85,86];
for(let a of arr) {
var input = document.createElement("input");
input.setAttribute("type", "hidden");
input.setAttribute("name", "ORDER_PROP_"+a);
input.setAttribute("id", "ORDER_PROP_"+a);
input.setAttribute("value", roistat.visit);
document.getElementById("bx-soa-order-form").appendChild(input);
}
}
}
В тег BODY добавляем вызов нашей функции ( onload="AddRoistat(); "), которая добавит в форму заказа скрытые поля с заполненными значениями.
В данном примере мы добавляем номер клиента, полученный от RoiStat в служебные поля с индексами 85 и 86 (для физ лица и для юр лица).
ID полей можно посмотреть в админке битрикс по адресу /bitrix/admin/sale_order_props.php
Вместо добавления onload в BODY можно дописать код вызова по окончании загрузки скриптом, но тогда из короткого onload он превратится в следующий код:
if(window.attachEvent) {
window.attachEvent('onload', AddRoistat);
} else {
if(window.onload) {
var curronload = window.onload;
var newonload = function(evt) {
curronload(evt);
AddRoistat(evt);
};
window.onload = newonload;
} else {
window.onload = AddRoistat;
}
}
P.S. Если не работает, проверьте, что у формы прописан id=" bx-soa-order-form"