Romalibert Posted February 9, 2014 Report Share Posted February 9, 2014 Добрый день, решил поделиться скриптом, который при попытке выйти со страницы сайта покажет сообщение и предложит остаться и оформить покупку, очень актуально если у вас много оставленных корзин на сайте, делается это просто:В cart.tpl добавляем: {if $smarty.cookies.exitshop == 'yes'} {if $cart->purchases} <script> {literal} var exitsplashmessage = 'ВЫ ДОБАВИЛИ ТОВАР В КОРЗИНУ, НО НЕ ОФОРМИЛИ ЗАКАЗ. ОФОРМИТЕ ЗАКАЗ СЕЙЧАС ИСПОЛЬЗУЯ КУПОН "bonus2014" И ПОЛУЧИТЕ СКИДКУ 10% НА ВСЁ.'; var exitsplashpage = 'http://ССЫЛКА НА САЙТ/cart'; function addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function() { if (oldonload) { oldonload(); } func(); }}} function addClickEvent(a,i,func) { if (typeof a[i].onclick != 'function') { a[i].onclick = func; } } var theDiv = '<div id="ExitSplashDiv" style="display:block; width:100%; height:100%; position:absolute; background:#FFFFFF; margin-top:0px; margin-left:0px;" align="center">'; theDiv = theDiv + '<iframe src="'+exitsplashpage+'" width="100%" height="100%" align="middle" frameborder="0"></iframe>'; theDiv = theDiv + '</div>'; theBody = document.body; if (!theBody) {theBody = document.getElementById("body"); if (!theBody) {theBody = document.getElementsByTagName("body")[0];}} var PreventExitSplash = false; function DisplayExitSplash(){ if(PreventExitSplash == false){ window.scrollTo(0,0); PreventExitSplash=true; divtag = document.createElement("div"); divtag.setAttribute("id","ExitSplashMainOuterLayer"); divtag.style.position="absolute"; divtag.style.width="100%"; divtag.style.height="100%"; divtag.style.zIndex="99"; divtag.style.left="0px"; divtag.style.top="0px"; divtag.innerHTML=theDiv; theBody.innerHTML=""; theBody.topMargin="0px"; theBody.rightMargin="0px"; theBody.bottomMargin="0px"; theBody.leftMargin="0px"; theBody.style.overflow="hidden"; theBody.appendChild(divtag); return exitsplashmessage; } } var a = document.getElementsByTagName('A'); for (var i = 0; i < a.length; i++) { if(a[i].target !== '_blank') {addClickEvent(a,i, function(){ PreventExitSplash=true; });} else{addClickEvent(a,i, function(){ PreventExitSplash=false;});}}disablelinksfunc = function(){var a = document.getElementsByTagName('A'); for (var i = 0; i < a.length; i++) { if(a[i].target !== '_blank') {addClickEvent(a,i, function(){ PreventExitSplash=true; });} else{addClickEvent(a,i, function(){ PreventExitSplash=false;});}}} addLoadEvent(disablelinksfunc); disableformsfunc = function(){ var f = document.getElementsByTagName('FORM'); for (var i=0;i<f.length;i++){ if (!f[i].onclick){ f[i].onclick=function(){ PreventExitSplash=true; } }else if (!f[i].onsubmit){ f[i].onsubmit=function(){ PreventExitSplash=true; }}}} addLoadEvent(disableformsfunc); window.onbeforeunload = DisplayExitSplash; document.cookie='exitshop=no;path=/'; {/literal} </script> {/if} {/if} А после добавляем в product.tpl (products.tpl, main.tpl если у вас в этих шаблонах есть кнопка "добавить в корзину") к кнопке "добавить в корзину" код, устанавливающий cookie который и будет проверяться при выходе со страницы с корзиной: onclick="document.cookie='exitshop=yes;path=/';" Получится что-то вроде этого: <input type="submit" class="button radius addbutton expand imageeffect" value="В корзину" onclick="document.cookie='exitshop=yes;path=/';" added_text="добавлено"> Вот и всё, я реализовал данный скрипт только при выходе со страницы с корзиной, но его можно вставить на любую страничку сайта, для этого сам скрипт необходимо вставить в нужное место, например в index.tpl Quote Link to post Share on other sites
Sid_Vishez Posted February 13, 2014 Report Share Posted February 13, 2014 Круто, спасибо. Еще было бы замечательно оформить это сообщение не как системное от браузера, а как сообщение сайта. Такое реализовано на sotmarket.ru. Если у кого-то есть наработки, скиньте, пожалуйста. Quote Link to post Share on other sites
Romalibert Posted February 14, 2014 Author Report Share Posted February 14, 2014 var exitsplashpage = 'http://ССЫЛКА НА САЙТ/cart'; Вот сюда прикрути скриптик Quote Link to post Share on other sites
Reni Posted February 17, 2014 Report Share Posted February 17, 2014 А что значит "скриптом, который при попытке выйти со страницы сайта покажет сообщение"? Добавил данный скрипт, реализовал его, закрываю и сайт закрывается. Ничего не показывает Где и что я мог упустить, хотя вроде упускать то тут нечего Quote Link to post Share on other sites
Romalibert Posted February 18, 2014 Author Report Share Posted February 18, 2014 товар в корзину добавил? Ссылку в лс скинь, посмотрим Quote Link to post Share on other sites
SergeyKharkov Posted February 21, 2014 Report Share Posted February 21, 2014 Скажите, а как вообще отслеживать сколько брошеных корзин ? В день, по дням например.Можно поставить какой-то счетчик?А то сидишь и не знаешь - брошена-не брошена. Quote Link to post Share on other sites
Vice Posted February 22, 2014 Report Share Posted February 22, 2014 Скажите, а как вообще отслеживать сколько брошеных корзин ? В день, по дням например.Можно поставить какой-то счетчик?А то сидишь и не знаешь - брошена-не брошена.В метрике или ГА сделать 2 цели, 1 - добавление в корзину, 2 - оформление заказа. Тогда посещения, закончившиеся 1 целью и будут брошенной корзиной, а 1+2 заказом. Можно отсортировать и смотреть причину в вебвизоре. Quote Link to post Share on other sites
Romalibert Posted February 27, 2014 Author Report Share Posted February 27, 2014 В метрике или ГА сделать 2 цели, 1 - добавление в корзину, 2 - оформление заказа. Тогда посещения, закончившиеся 1 целью и будут брошенной корзиной, а 1+2 заказом. Можно отсортировать и смотреть причину в вебвизоре.А причину-то как в вебвизоре понять? Quote Link to post Share on other sites
Vice Posted February 27, 2014 Report Share Posted February 27, 2014 А причину-то как в вебвизоре понять?Ну это всяко вам виднее. Может пользователь после просмотра доставки свалил. Может форма при оформлении заказа не работает. Может в заказе нужно заполнить 50 полей. Да какая угодно. Quote Link to post Share on other sites
Romalibert Posted February 28, 2014 Author Report Share Posted February 28, 2014 Ну это всяко вам виднее. Может пользователь после просмотра доставки свалил. Может форма при оформлении заказа не работает. Может в заказе нужно заполнить 50 полей. Да какая угодно.в том-то и дело, что какая угодно, хрен отследишь почему корзину бросают Quote Link to post Share on other sites
Julius123 Posted July 19, 2017 Report Share Posted July 19, 2017 Проблема в том что если один раз покупатель запишет этот код купона то он может его использовать при каждой покупке или друзьям скинуть и т.д Quote Link to post Share on other sites
Noxter Posted July 19, 2017 Report Share Posted July 19, 2017 Проблема в том что если один раз покупатель запишет этот код купона то он может его использовать при каждой покупке или друзьям скинуть и т.дУ вас много друзей которые регулярно покупают товары в одном и том же магазине вместе с вами?Скупость одним словом. Quote Link to post Share on other sites
Just074 Posted July 19, 2017 Report Share Posted July 19, 2017 Проблема в том что если один раз покупатель запишет этот код купона то он может его использовать при каждой покупке или друзьям скинуть и т.дТак это же хорошо! Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.