<!--КОД ДЛЯ СКАЧИВАНИЯ ЗАКАЗА-->
<a class='load-button' href='' download>download</a>

<script>
document.addEventListener("DOMContentLoaded", function() {
    (function () {
        
        let phoneDetected = false;

        if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|Opera Mini/i.test(navigator.userAgent)) {
            phoneDetected = true;
        };
        
        let loadButton = document.querySelector('.load-button');
        let urlAdd = 'https://moti.domenforexample.ru/pdfmaker/pdf-first.php';
        loadButton.setAttribute('href', 'https://moti.domenforexample.ru/pdfmaker/pdf-second.php');
        
        
        if(phoneDetected){
            urlAdd = 'https://moti.domenforexample.ru/pdfmaker/pdf-create-mob.php';
            //loadButton.setAttribute('target', '_blank');
            loadButton.setAttribute('href', '');
        };
        
        
        //Проверка валидности URL
        const isValidUrl = (str) => {
          try {
            return !!new URL(str);
          }
          catch (_) {
            return false;
          }
        };
        
        
        setTimeout(function() {
            
            const sidebarContent = document.querySelector('.t706__sidebar-content');
            const cartpage = document.querySelector('.t706__cartpage');
            
            const jsSuccessbox = document.querySelector('.js-successbox.t-form__successbox');
            
            //Добавляем доп кнопку
            function addDownloadBtn(){
                if(sidebarContent!=null && cartpage!=null){
                    //const sidebar_bottom = sidebarContent.querySelector('.t706__sidebar-bottom');    
                    const tform__submit = cartpage.querySelector('.t-form__submit');    
                    const div = document.createElement("div");
                    div.className = "print-price-button t-text";
                    div.innerHTML = `
                        <div class="button-wrapper">
                            <div class="button-icon"></div>
                            <div class="button-text">Распечатать заказ</div>    
                        </div>
                    `;
                    //sidebar_bottom.insertAdjacentElement('afterEnd', div.cloneNode(true));
                    tform__submit.insertAdjacentElement('afterEnd', div.cloneNode(true));
                };
            };
            
            //addDownloadBtn();
            
            let btn = '';
            let tableRows = '';
            let totalRow = '';
            let printDate = '';
            let part1Link = '';
            let part1Image = '';
            let part2Link = '';
            let part2Image = '';
            let part3Link = '';
            let part3Image = '';
            

            //Отслеживаем нажатие по доп кнопке
            const printBtn = document.querySelectorAll(".print-price-button");
            printBtn.forEach(function (el, index) {
                el.addEventListener('click',function(e) {
                    btn = this;
                    fillProductData(); 
                    setTimeout(function() {
                        sendCartData();
                    }, 500);
                });
            });
            
            //Отслеживаем нажатие по  кнопке отправки в корзине
            document.querySelector(".t706 .t-submit").addEventListener('click', function(event) {
                btn = this;
                fillProductData();
            });
            
            
            
            function fillProductData(){
            
                    const partsBlock = document.querySelectorAll('.uc-download-data .t692__col');
        
                    part1Link = partsBlock[0].querySelector('.t-card__link').getAttribute('href');
                    part1Image = partsBlock[0].querySelector('.t692__blockimg').getAttribute('data-original');
                    
                    part2Link = partsBlock[1].querySelector('.t-card__link').getAttribute('href');
                    part2Image = partsBlock[1].querySelector('.t692__blockimg').getAttribute('data-original');
                    
                    part3Link = partsBlock[2].querySelector('.t-card__link').getAttribute('href');
                    part3Image = partsBlock[2].querySelector('.t692__blockimg').getAttribute('data-original');
                    

                    const total = tcart.amount.toLocaleString();
                    const currency = tcart.currency;
                    
                    const productList = tcart.products;
                    const positionLength = tcart.products.length;
                    
                    tableRows = '';
                    
                    for(let i=0; i<positionLength; i++){
                        
                        const product = productList[i];
    
                        const prod_pos = i+1;
                        const prod_img = product['img'];
                        const prod_title = product['name'];
                        let prod_price = product['price'].toLocaleString();
                        const prod_quant = product['quantity'];
                        let prod_total = product['amount'].toLocaleString();
                        const prod_url = product['url'];
                        let prod_sku = product['sku'];
                        
                        let prod_size = '-';
                        let product_dl = product['pack_x'];
                        let product_sh = product['pack_y'];
                        let product_vi = product['pack_z'];
                        
                        if(product_dl!=undefined && product_sh!=undefined && product_vi!=undefined){
                            prod_size = product_dl+'x'+product_sh+'x'+product_vi; 
                        };
                        
                        
                        if(prod_price=='0'){
                            prod_price= `Цена не указана`;
                        }else{
                            prod_price = `${prod_price} <span class="cur-span">${currency}`;
                        };
                        
                        if(prod_total=='0'){
                            prod_total = `Цена не указана`;
                        }else{
                            prod_total = `${prod_total} <span class="cur-span">${currency}`;  
                        };
                        
                        console.log(prod_price);
                        console.log(prod_total);
                        
                        if(prod_sku!=undefined) prod_sku = `(${prod_sku})`;

                        tableRows +=`
                        <tr>
                            <td>
                                <a href="${prod_url}">
                                    ${prod_pos}
                                </a>
                            </td>
                            <td>
                                <a href="${prod_url}">
                                    <img class="t-img" src="${prod_img}">
                                </a>
                            </td>
                            <td>
                                <a href="${prod_url}">
                                    ${prod_title} ${prod_sku}
                                </a>
                            </td>
                            
                            <td>${prod_size}</td>
                            
                            <td>${prod_price}</span></td>
                            <td>${prod_quant}</td>
                            <td>${prod_total}</span></td>
                        </tr>
                        `;

                    };
                    
                    totalRow = `${total} <span class="cur-span-total">${currency}</span>`;
                    
                    const date = new Date();
                    printDate = `${ addZero(date.getDate()) }.${ addZero(date.getMonth() + 1)}.${addZero(date.getFullYear()) }`;


            };
            
            function sendCartData(){

                    btn.classList.add('load-time');
                    jsSuccessbox.classList.add('load-time');

                    formData = new FormData();
                    formData.append('productList', tableRows);
                    formData.append('totalSumm', totalRow);
                    formData.append('printDate', printDate);
                    
                    formData.append('part1Link', part1Link);
                    formData.append('part1Image', part1Image);
                    formData.append('part2Link', part2Link);
                    formData.append('part2Image', part2Image);
                    formData.append('part3Link', part3Link);
                    formData.append('part3Image', part3Image);
                    
                    
                    fetch(urlAdd, { method: 'POST', body: formData })

                    .then(function (response) {
                        return response.text();
                    })
                    .then(function (body) {
                        if(body=="error data"){
                            console.log('error data');
                        }else{
                            
                            let correct = false;
                            if(isValidUrl(body)){
                                loadButton.setAttribute('href', body);
                                correct = true;
                            };
                            
                            
                            if(body=="successfully"){
                                correct = true;
                            };
                            
                            if(correct){
                                loadButton.click();
                                setTimeout(function() {
                                    btn.classList.remove('load-time');
                                    jsSuccessbox.classList.remove('load-time');
                                }, 2500);  
                            };
                            
 
                        };
                    });
            
            };
            

            function addZero(num) {
            	if (num >= 0 && num <= 9) {
            		return '0' + num;
            	} else {
            		return num;
            	}
            };
            
            
            window.myAfterSendedFunction = function (form) {
                if (!form) return;
                sendCartData();
            };
                
            if (document.readyState !== 'loading') {
                us_eventFromCartToPayment();
            } else {
                document.addEventListener('DOMContentLoaded', us_eventFromCartToPayment);
            };
                
            function us_eventFromCartToPayment() {
                const forms = document.querySelectorAll('.t706 .js-form-proccess');
                Array.prototype.forEach.call(forms, function (form) {
                    form.addEventListener('tildaform:aftersuccess', function () {
                        window.myAfterSendedFunction(form);
                    });
                });
            };
            
            
            
            
            

        }, 1000);
 
    })();    
});    
</script>


<style>


.uc-download-data{
    display: none;
}

.print-price-button {
    position: relative;
}

.load-time:after {
    content: "";
    opacity: 0.5;
    background-image: url(https://tilda.ru/tpl/img/ajax-loader.gif);
    background-size: 35px;
    background-position: center;
    background-repeat: no-repeat;
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

.load-time div {
    opacity: 0.2;
}

.js-successbox.load-time.t-form__successbox {
    opacity: 0.6;
}


.print-price-button.t-text {
    border-radius: 20px;
    margin-top: 5px;
    font-weight: 600;
    color: #000000;
    border: 1px solid #dddddd;
    background-color: #f5f5f5;
    cursor: pointer;
    transition: all 0.2s;
    width: 100%;
}


.button-wrapper {
    padding: 12px 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

.print-price-button.t-text:not(.load-time):hover {
    background-color: #fec800;
}

.button-icon {
    background-image: url(https://static.tildacdn.com/tild6238-3065-4138-b936-303137363262/2849806-copy-interfa.svg);
    width: 35px;
    height: 35px;
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    margin-right: 12px;
}

@media screen and (max-width:960px){
.print-price-button.t-text {
    width: calc(100% - 40px);
    margin: auto;
}

.t706__sidebar-bottom {
        margin-bottom: 15px;
}

.t706__cartpage-form .print-price-button.t-text {
    width: 100%;
    margin: auto;
}
    
}

@media screen and (max-width:640px){
.t706__cartpage-form .t-form__submit {
    padding-bottom: 5px;
}
}    
</style>
download
Made on
Tilda