Показываем свою кнопку со всплывающим окном в товарах Tilda когда товара нет в наличии

Когда товара в каталоге товаров Тильды нет в наличии, внутри карточки товара автоматически пропадает кнопка добавления в корзину. Это логично, но что если мы не хотим терять клиента? Давайте дадим ему возможность оставить заявку, добавив собственную кнопку во все карточки товаров, которых нет в наличии на место вот этой серой кнопки.

Код как заменить кнопку «Нет в наличии» на Tilda на свою собственную

Ниже мы подробно расскажем как в несколько простых шагов можно добавить свою кнопку на все отсутствующие товары с любым всплывающим окном на место стандартной серой кнопки «Нет в наличии». Пара вводных правил: 1. Если вы используете стандартный каталог товаров Тильды, и ваши товары отображаются всплывающими окнами, то все последующие манипуляции необходимо проводить на той странице, на которой у вас находится блок каталога товаров. 2. Если вы используете настройки, с помощью которых карточки товаров отображаются отдельными страницами, делайте все на странице футера каталога товаров.

Код для добавления кнопки и формы в карточку товара Тильды «не в наличии»

1. Добавляем на страницу всплывающее окно, которое мы хотим видеть по клику на кнопку и настраиваем его. Можно добавить любое подходящее вам из библиотеки блоков Тильды, вбив в поиск слово popup. В настройках поп-апа в поле со ссылкой, по которой он вызывается, вписываем #popup:productout
2. Добавляем на страницу блок T123 и вставляем в него код, который размещён ниже. Текст в коде ’Cообщить о поступлении’ вы можете заменить на свой собственный. Именно он будет отображаться на нашей кнопке.
				
					<script>
$( document ).ready(function() {
let btnCaption = 'Сообщить о поступлении'; //Надпись на кнопке
let formlink = '#popup:productout'; //Ссылка на popup
let popupBlk = $('div[data-tooltip-hook="'+formlink+'"]').closest('.t-rec');
let formNeedID='';
if(popupBlk.length){
    popupBlk.addClass('needform');
    formNeedID =  popupBlk.attr('id').replace(/[^0-9]/g,"")
};
popupBlk.find('.t-popup__container').prepend('<div class="t702__leftcol"><div class="t702__leftcol_wrapper"><div class="t702__leftcol-img"></div><div class="t702__leftcol-txt t-descr"></div></div></div>');
function needproductClear(){    
  $('.t-store__prod-popup__btn-wrapper').removeClass('needproduct');
  $('.t-rec').removeClass('needparent needactive');
}
function needproduct(){
    if($(".needactive .t-store__prod-popup__btn").hasClass("t-store__prod-popup__btn_disabled")) {
                 $('.js-store-prod-popup-buy-btn-txt').html(btnCaption+'');
                 $('.t-store__prod-popup__btn-wrapper').addClass('needproduct');
                 $('.t-store__prod-popup__btn-wrapper .t-store__prod-popup__btn').wrap('<div class="needproduct-btn"></div>');
                 $('.t-store .t-popup.t-popup_show , .t-store__product-snippet').closest('.r>div').addClass('needparent');
    }else{
        $(".needproduct-btn").contents().unwrap();
    };
};
   var observer = new MutationObserver(function (mutations) {
    mutations.forEach(function (mutation) {
        var newVal = $(mutation.target).prop(mutation.attributeName);
        if (mutation.attributeName === "class") {
        setTimeout(function(){
         if($(".t-store .t-popup").hasClass("t-popup_show")) {
             setTimeout(function(){
             $('.t-store .t-popup.t-popup_show').closest('.t-rec').addClass('needactive');    
             needproduct();}, 100);	
         }else{needproductClear()}; }, 100);
    };});
});
observer.observe( document.body, {  attributes: true});
setTimeout(function(){
    if($('div').is('.t-store__product-snippet')){
        $('.t-store__product-snippet').addClass('needactive');
        needproduct();
    };
}, 400);	

$('body').on('click','.needproduct-btn',function(e){e.preventDefault();
        let imagNeedProd = $('.needparent  .js-store-product').attr('data-product-img');
        $('.t702__leftcol-img').css('background-image', 'url('+imagNeedProd+')').attr('data-original', imagNeedProd);
        let productForText= `Название товара: ${$('.needparent .t-store__prod-popup__name').text()}<br>
                            ${$('.needparent .t-store__prod-popup__sku').text()}<br>
                            Цена: ${$('.needparent .js-product-price.t-store__prod-popup__price-value').text()} ${$('.t-store__prod-popup__price-currency').html()}
                             `;
    
        let productForForm=`Название товара: ${$('.needparent .t-store__prod-popup__name').text()}; 
                            ${$('.needparent .t-store__prod-popup__sku').text()}; 
                            Цена: ${$('.needparent .js-product-price.t-store__prod-popup__price-value').text()} ${$('.t-store__prod-popup__price-currency').html()}; 
                             `;
        
        let currentCotrols = $(this).closest('.js-product').find('.js-product-controls-wrapper');
        let numOption = currentCotrols.find('.t-product__option').length;
        let prodOption={};
        if(numOption){
            productForText +=`<br><span>Опции товара:</span><br>`;
            productForForm +=` Опции товара: `;
            currentCotrols.find('.t-product__option').each(function(index) {
                productForText +=`${$(this).find('div.t-product__option-title').text()}: ${$(this).find('.t-product__option-select').val()}<br>`;
                productForForm +=`${$(this).find('div.t-product__option-title').text()}: ${$(this).find('.t-product__option-select').val()}; `;
            });
        };
        $('.t702__leftcol-txt').html(productForText);
        $('input[name="needproduct"]').val(productForForm.replace(/\s{2,}/g, ' '));
        $('.needparent .t-popup__close').click();
        t702_showPopup(formNeedID);
        t702_resizePopup(formNeedID); 
});   
    $(document).on('click','.needactive .t-slds__bullet',function(e){
        setTimeout(function(){needproduct();}, 600);});   
    $(document).on('change','.needactive .t-product__option-select',function(e){
        setTimeout(function(){
        $('.t-store__prod-popup__btn-wrapper').removeClass('needproduct');
        needproduct();}, 600);});   
    $(document).on('input','.needactive input',function(e){
        setTimeout(function(){
        $('.t-store__prod-popup__btn-wrapper').removeClass('needproduct');
        needproduct();}, 300);});           

});
</script>

<style>
.t-store__prod-popup__btn_disabled, .js-store-prod-popup-buy-btn-txt { opacity: 1 !important;}
.t-store__prod-popup__btn-wrapper {
    cursor: pointer;
    width: max-content;

}
.t702__leftcol {
    display: none;
}
.t702__leftcol_wrapper{
    display: none;
}
.t702__leftcol-img {
    display: none;
}
.t702__leftcol-txt span {
    display: none;
}


.t702__leftcol_wrapper {
    display: none;
}

.t702__leftcol {
    display: none;
}
.t702__leftcol-img {
    display: none;
}
}

.t702__leftcol_wrapper {
   display: none;
}
.t702__leftcol-img {
    display: none;
}
.t702__leftcol_wrapper {
    display: none;
}
}

</style>

<style>
  @media screen and (min-width: 1080px) {
    .t-store__prod-popup__btn.t-store__prod-popup__btn_disabled.t-btn.t-btn_sm {
      margin-left: 0px !important;
      width: 310px !important;
    }
  }
</style>

<style>
  @media screen and (max-width: 640px) {
    .t-store__prod-popup__btn.t-store__prod-popup__btn_disabled.t-btn.t-btn_sm {
      margin-left: 0px !important;
      width: 340px !important;
    }
  }
  
   @media screen and (min-width: 640px) {
       .t-store__prod-snippet__container {padding-top: 50px !important;}
   }
</style>
				
			
Не забывайте, что работа кода будет видна только на опубликованной странице! Этот код мы применяли на сайте нашего клиента, ссылка для ознакомления ниже 🙂

Спасибо за внимание.

Пишите комментарии, делитесь статьёй в социальных сетях с помощью кнопок ниже и подписывайтесь на рассылку в нашем блоге. Мы всегда рады новым гостям!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Другие интересные материалы в нашем блоге
статья - агентство по продвижению и рекламе - сео иллюстрации - обложка статьи - блог MANUFACT PRO
SEO
Что такое SEO, индексация, оптимизация и зачем это нужно

Простым языком о том, что такое СЕО, оптимизация, какие еще термины относятся к сео-продвижению, а также зачем это нужно вашему сайту и какие базовые действия выполняют специалисты для оптимизации.

Читать »
Все статьи
Tilda vs. WordPress — что выбрать?

Рассказываем кратко и понятно, какие плюсы есть у Tilda и WordPress, что из них лучше выбрать, если вы начинаете делать сайты или хотите заказать сайт в агентстве.

Читать »
Все статьи
Как сделать любой блок закрывающимся по клику на любой элемент на Tilda

Простой код для закрытия любого блока по клику на любой элемент в конструкторе Тильды, с возможностью сделать так что бы он появлялся клиенту только один раз.

Читать »
MANUFACT это Digital Agency состоящее из специалистов в различных областях, связанных с разработкой и поддержкой веб-проектов. В нашем корпоративном блоге мы делимся тем полезным, что знаем сами. Знакомьтесь с нами неторопливо и со вкусом, делитесь впечатлениями и узнавайте новое.
Выжимки из наших статей и уникальные материалы мы публикуем в нашем Телгерам-канале. Подписывайтесь, чтобы ничего не пропустить.
Зачитались?

Оставьте свой email и получайте актуальный материал от команды MANUFACT.

НУЖЕН САЙТ ИЛИ РЕКЛАМА?
При заказе сайта в нашей студии, бесплатно настроим эффективную рекламу в Google

Зачитались?

Оставьте нам свой e-mail адрес и получайте актуальный материал от команды MANUFACT