<!-- Выводим надпись о товаре "под заказ" -->
<script>
document.addEventListener("DOMContentLoaded", function() {


//Фраза для карточки товара
const productMessage = `
<p>Данный товар отшивается по предзаказу</p>
<p>Срок изготовления 7-14 дней!</p>
`;

//Фраза для корзины
const cartMessage = `В корзине имеются позиции которые отшиваются под заказ`;

let snippetSearchRepeat = 0;
let snippet = false;
let tistore = setInterval(function() {
        const productListNum = document.querySelector('.t-store__product-snippet');
        if(productListNum) {
            if(productListNum.hasAttribute("data-product-url")){
                clearInterval(tistore);
                snippet = true;
                showProductMessage();
            };
        };
        snippetSearchRepeat++;
        if(snippetSearchRepeat>50) clearInterval(tistore);
}, 100);   

const gridCont = document.querySelectorAll(".js-store-grid-cont");
gridCont.forEach(function (el, index) {
    el.addEventListener('tStoreRendered',function(e) {
        showProductMessage();
    });    
});


function showProductMessage(){
    setTimeout(function(){

        const prevMessage = document.querySelectorAll(".message-prod-info");
        if(prevMessage.length){
            prevMessage.forEach(function (el, index) {
                el.remove();  
            });
        };
        

        let productWithLid = document.querySelectorAll(".t-popup.t-popup_show .js-store-product.js-product.t-store__product-popup");
        
        if(snippet){
            productWithLid = document.querySelectorAll(".js-store-product.js-product.t-store__product-snippet");
        };
        
        
        productWithLid.forEach(function (el, index) {
            const quant = el.getAttribute('data-product-inv');
            
            if(quant!=null && quant==''){
                
                const infoWrapper = el.querySelector('.t-store__prod-popup__info');
                const orderButton = el.querySelector('.t-store__prod-popup__btn-wrapper');
                const messageDiv = document.createElement("div");
                messageDiv.className = "message-prod-info t-text";
                messageDiv.innerHTML = productMessage;
                infoWrapper.insertBefore(messageDiv, orderButton);

            };

           
        });
        
    }, 300); 
       
};


setTimeout(function() {
    
    let cartInfo  = document.querySelector('.t706__cartpage-info');
    
    if(cartInfo==null) cartInfo = document.querySelector('.t706__cartwin-products');
    
    if(cartInfo!=null){
        const observer = new MutationObserver(mutationRecords => {
            showCartMessage()
             
        });
        
        observer.observe(cartInfo, {
            childList: true, 
            subtree: true, 
            characterDataOldValue: true
        });    
    };
    
}, 1000);


function showCartMessage(){

    const prevMessage = document.querySelectorAll(".message-cart-info");
    if(prevMessage.length){
        prevMessage.forEach(function (el, index) {
            el.remove();  
        });
    };
    
    
    const cartProducts = tcart.products;
    
    let preProductInCart = false;
    
    for(let i=0; i<cartProducts.length; i++){
        
        const inv = cartProducts[i].inv;
        
        if(inv==undefined){
            const prodInCart = document.querySelectorAll('.t706__product[data-cart-product-i="'+i+'"]');
            if(prodInCart.length){
                
                for(let j=0; j<prodInCart.length; j++){
                    prodInCart[j].classList.add('request-product');
                };
                  
            };
            
            preProductInCart = true;
            
        };

        
    };
    
    if(preProductInCart){
        
            const sidebarTop = document.querySelector('.t706__sidebar-top');
            if(sidebarTop!=null){
                const messageSidebarTop = document.createElement("div");
                messageSidebarTop.className = "message-cart-info t-text";
                messageSidebarTop.innerHTML = cartMessage;   
                sidebarTop.insertAdjacentElement('afterEnd', messageSidebarTop);
            };
            
            const cartpageForm = document.querySelector('.t706__cartpage-form-wrapper');
            if(cartpageForm!=null){
                const messageCartpageForm = document.createElement("div");
                messageCartpageForm.className = "message-cart-info t-text";
                messageCartpageForm.innerHTML = cartMessage;   
                cartpageForm.prepend(messageCartpageForm);
            };
            
            const cartwinTop = document.querySelector('.t706__cartwin-top');

            if(cartwinTop!=null){
                const messageCartTop = document.createElement("div");
                messageCartTop.className = "message-cart-info t-text";
                messageCartTop.innerHTML = cartMessage;   
                cartwinTop.insertAdjacentElement('afterEnd', messageCartTop);
            };  
        
    };
   
    
};

//При открытии карточки товара
document.addEventListener('click', function(event) { 
    if(event.target.closest('a[href*="/tproduct/"]')) showProductMessage();
});

//При изменении опций
document.addEventListener('change', function(event) { 
    if(event.target.closest('.js-product-controls-wrapper')) showProductMessage();
});

});
</script>


<style>
.message-prod-info.t-text {
    font-weight: 600;
    background-color: #fef4f2;
    width: max-content;
    padding: 10px;
    border-radius: 8px;
    font-size: 14px;
    margin-top: 7px;
    margin-bottom: 7px;
}

.message-cart-info{
    background-color: #fef4f2;
    padding: 10px;
    border-radius: 8px;
    margin-bottom: 12px;
    font-size: 14px;
    font-weight: 600;
}

.message-prod-info.t-text p:last-child {
    font-size: 12px;
    font-weight: 300;
    margin-top: 6px;
}
.request-product{
    background-color: #fef4f2;
}

.t706__product {
    padding: 12px;
    box-sizing: border-box;
    border-radius: 10px;
    margin-bottom: 10px;
}

.t706__cartwin-content .message-cart-info.t-text {
    margin-top: 14px;
}

</style>
Made on
Tilda