Как сформировать услугу с произвольной ценой в корзине в Tilda
ООО Интерьеры и дизайн
Оплата
Вы можете выбрать услугу, номер договора и дату, затем оплатить через удобную Вам платёжную систему

Как сформировать услугу с произвольной ценой в корзине в Tilda

1
Создали кнопку или текст со ссылкой #order:Выберите тип услуги
2
Создали корзину ST100 и в настройках активировали опции
  • Не сохранять товар в корзине
  • Запретить изменение количества товара
  • Не показывать кнопку открытия виджета
3
Создали в корзине поля с именами, которые участвуют в названии услуги
  • выпадающий список - services
  • поле для ввода в одну строку - summ
  • Имя - fio
  • поле для ввода в одну строку - number
  • дата - contract-date
4
Добавили блок Т123 и вставили в него код
Библиотека для примера

<script>
$( document ).ready(function() {


function changeProductName(){
    let serv = $("select[name='services']").val();
    let num = $("input[name='number']").val();
    let date = $("input[name='contract-date']").val();
    let fio = $("input[name='fio']").val();
    
    serv = `${serv} по договору №${num} от ${date}, ${fio}`;
    
    let summ = $("input[name='summ']").val();

    if( num!='' && date!='' && fio!=''  ){
        
        tcart.products[0].name = serv;
        tcart.products[0].price = summ;
        tcart.products[0].amount = summ;
        tcart.amount =  summ;
        tcart.prodamount =  summ;
        tcart__reDrawProducts();
        tcart__reDrawTotal();
    
    }
};

$(document).on("input", "input[name='summ']", function() {
    if(this.value.match(/[^0-9]/g)){
        this.value = this.value.replace(/[^0-9]/g, "");
    };
    changeProductName();
});

$(document).on("input click", "input[name='number'], input[name='contract-date'], input[name='fio'], .t_datepicker__day-cell ", function() {
    changeProductName();
});

$(document).on("change", "select[name='services']", function() {
    changeProductName();
});

$(document).on("click", "a[href^='#order:']", function() {
    setTimeout(function(){
        changeProductName();
    }, 250);
});


$(document).on("keydown", ".t-form", function(event) {return event.key != "Enter";});
});
</script>


<style>
.t706__cartwin-products {
    pointer-events: none;
}

.t706__product-del-wrapper {
    display: none !important;
}

.t706__cartwin-bottom {
    display: none;
}

.t706__product {
    /*display: none !important;*/
}    
</style>
Made on
Tilda