Не работает корзина

голоса: 0

Здравствуйте, Уважаемые администраторы.

Подскажите, пожалуйста. Открываю на своем сайте любой товар, при помощи плюсика добавляю его в корзину ( на примере на фото добавляю 4 шт), затем открываю корзину, а там не 4 штуки, а 1.  http://tovari-golubei.ru/foto/ne_rabotaet_korzina.jpg  И так любой товар, всегда добавляется по 1. Что делать, подскажите пожалуйста.

Адрес сайта http://tovari-golubei.ru/
Закрыто с пометкой: Вопрос решен!
| Автор: | Категория: Интернет-магазин
Закрыт | | Автор: Yuri_Geruk

Ответов: 1

Голоса: +1

Изучите ответ в материале https://www.ucoz.ru/qa/index.php/196357 должно помочь.

| Автор:
Вообще слетела корзина. До этого сделал бекап  шаблона. Пытаюсь возвратить все назад, на не получается..... Что делать ?
Роман Иванов,
Что вы делали что она у вас слетела? Написано же, просто прописать отдельные строки кода.
Yuri_Geruk,
восстановил стандартный шаблон корзины
Роман Иванов,
Стоило дочитать переписку в вопросе до конца, пользователи заменяют рекомендуемый код и проблема решается. Восстановление шаблона это уже крайний метод.
Роман Иванов,
я неделю назад делал бекап проета, если я его восстановлю, то вернется все назад ?
Роман Иванов,
Если сайт на платном тарифе, значит есть автоматическое резервное копирование шаблона и сайта в целом. Пишите в техподдержку, запросите копию шаблона за определенную дату, там должны сообщить за какие даты есть копии и вы выберете.
Yuri_Geruk,
Юрий, какую ссылку Вы мне предоставили, там написано, что нужно восстановить старый шаблон корзины. Я сделал как Вы и писали.  Теперь Вы пишите, что необходимо было заменить код.    Неужели Вам трудно было скопировать этот чертов код и написать мне сюда.........
Роман Иванов,

Роман, никто не знал заранее, что у вас резервная копия вам не поможет. Скачайте свою резервную копию, распакуйте и найдите файл sh11.t шаблона корзины и замените код корзины вручную.

Yuri_Geruk,
У меня сейчас без корзины сайт не функционирует вообще. Я знаю, Юрий, что Вы хороший специалист в этом, подскажите хоть, что можно сделать, что бы он функционировал. Я написал в службу поддержки, но пока они ответят, пройдет много времени
Роман Иванов,

Замените вручную шаблоны с резервной копии:

  1. sh11.t - Шаблон корзина
  2. sh12.t - Шаблон вид товара в корзине
Yuri_Geruk,

Юрий, можно немножко по подробней, как это правильно сделать...  Я уже боюсь все испортить....

Я нашел эти два файла в бекапе шаблонов. И не пойму, где их заменить, в файловом менеджере? Или.....

Yuri_Geruk,

Юрий, спасибо, я так и сделал, все вернулось , как и было...... 

Теперь я так понимаю, нужно заменить вот эти строки

В связи с обновлением jQuery поменялась начинка JS-методов добавления в корзину: 
было в add2Basket(id, pref) 

_uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'add', 'id':id, 'pref':pref, 'opt':opt.join(':'), 'cnt':$('#q'+pref+'-'+id+'-basket').attr('value')}};); 


стало: 

_uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'add', 'id':id, 'pref':pref, 'opt':opt.join(':'), 'cnt':$('#q'+pref+'-'+id+'-basket').val()}};); 


было в buyNow(id, pref) 

_uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'add', 'id':id, 'pref':pref, 'opt':opt.join(':'), 'cnt':$('#q'+pref+'-'+id+'-basket').attr('value'), 'now':1}};); 


стало: 

_uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'add', 'id':id, 'pref':pref, 'opt':opt.join(':'), 'cnt':$('#q'+pref+'-'+id+'-basket').val(), 'now':1}};); 

Перед восстановлением шаблона корзины обязательно создайте резервную копию шаблона.

  1. Замените код запросов в шаблоне корзины обычно это решает проблему.
  2. На крайний случай придется восстановить стандартный шаблон Корзины и проблема должна решиться.
  3.  
Роман Иванов,

Да, правильно. Хотя советовал бы просто заменить в вашей корзине скрипт:

<script language="Javascript">
<!--
 var lock_buttons = 0;
 function clearBasket(){
 if(lock_buttons) return false; else lock_buttons = 1;
 var el = $('#shop-basket');
 if(el.length){ var g=document.createElement("div"); $(g).addClass('myWinGrid').attr("id",'shop-basket-fade').css({"left":"0","top":"0","position":"absolute","border":"#CCCCCC 1px solid","width":$(el).width()+'px',"height":$(el).height()+'px',"z-index":5}).hide().bind('mousedown',function(e){e.stopPropagation();e.preventDefault();_uWnd.globalmousedown();}).html('<div class="myWinLoad" style="margin:5px;"></div>'); $(el).append(g); $(g).show(); }
 _uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'clear'}});
 ga_event('basket_clear'); 
 return false; 

function removeBasket(id){ 
 if(lock_buttons) return false; else lock_buttons = 1; 
 $('#basket-item .with-clear-'+id+' .sb-func').removeClass('remove').addClass('myWinLoadS').attr('title',''); _uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'del', 'id':id}});
 return false; 

function add2Basket(id,pref){ 
 if(lock_buttons) return false; else lock_buttons = 1; 
 var opt = new Array(); 
 $('#b'+pref+'-'+id+'-basket').attr('disabled','disabled'); 
 $('#'+pref+'-'+id+'-basket').removeClass('done').removeClass('err').removeClass('add').addClass('wait').attr('title',''); 
 $('#'+pref+'-'+id+'-options-selectors').find('input:checked, select').each(function(){ opt.push(this.id.split('-')[3]+(parseInt(this.value) ? '-'+this.value :''));});
 _uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'add', 'id':id, 'pref':pref, 'opt':opt.join(':'), 'cnt':$('#q'+pref+'-'+id+'-basket').attr('value')}}); 
 ga_event('basket_add'); 
 return false; 

function buyNow(id,pref){ 
 if(lock_buttons) return false; else lock_buttons = 1; 
 var opt = new Array(); 
 $('#b'+pref+'-'+id+'-buynow').attr('disabled','disabled'); 
 $('#'+pref+'-'+id+'-buynow').removeClass('done').removeClass('err').removeClass('now').addClass('wait').attr('title',''); 
 $('#'+pref+'-'+id+'-options-selectors').find('input:checked, select').each(function(){ opt.push(this.id.split('-')[3]+(parseInt(this.value) ? '-'+this.value :''));}); 
 _uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'add', 'id':id, 'pref':pref, 'opt':opt.join(':'), 'cnt':$('#q'+pref+'-'+id+'-basket').attr('value'), 'now':1}}); 
 ga_event('basket_buynow') 
 return false; 

jQuery('#shop-basket a').on('click touchend', function(e) { 
 var el = jQuery(this); 
 var link = el.attr('href'); 
 window.location = link; 
}); 
//-->
</script>

Роман Иванов,

Заменить на:

<script><!--
var lock_buttons = 0;
 
function clearBasket(){
if(lock_buttons) return false; else lock_buttons = 1;
var el = $('#shop-basket');
if(el.length){ var g=document.createElement("div"); $(g).addClass('myWinGrid').attr("id",'shop-basket-fade').css({"left":"0","top":"0","position":"absolute","border":"#CCCCCC 1px solid","width":$(el).width()+'px',"height":$(el).height()+'px',"z-index":5}).hide().on('mousedown', function(e){e.stopPropagation();e.preventDefault();_uWnd.globalmousedown();}).html('<div class="myWinLoad" style="margin:5px;"></div>'); $(el).append(g); $(g).show(); }
_uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'clear'}});
ga_event('basket_clear');
return false;
}
 
function removeBasket(id){
if(lock_buttons) return false; else lock_buttons = 1;
$('#basket-item-'+id+' .sb-func').removeClass('remove').addClass('myWinLoadS').attr('title','');
_uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'del', 'id':id}});
return false;
}
 
function add2Basket(id, pref){
if(lock_buttons) return false; else lock_buttons = 1;
var opt = [], err_msg = '', err_msgs = [], radio_options = {}, el_id = {};
$('#b'+pref+'-'+id+'-basket').attr('disabled','disabled');
$('#'+pref+'-'+id+'-basket').removeClass('done').removeClass('err').removeClass('add').addClass('wait').attr('title','');
$('#'+pref+'-'+id+'-options-selectors').find('select, input').each(function(){
switch (this.type) {
case 'radio':
el_id = this.id.split('-');
((typeof (radio_options[el_id[3]]) == 'undefined') && (radio_options[el_id[3]] = { 'val': - 1, 'id': this.id }));
(this.checked && (radio_options[el_id[3]]['val'] = this.value));
break;
case 'checkbox':
if (this.checked && (this.value !== '')) {
if(this.value !== ''){
opt.push(this.id.split('-')[3]+'-'+this.value);
} else {
err_msgs.push({'id':this.id.split('-')[3], 'msg':'<li>'+$(this).parent().parent().find('span.opt').html().replace(':', '')+'</li>'});
}
}
break;
default:
if (this.value !== '') {
opt.push(this.id.split('-')[3]+'-'+this.value);
} else {
err_msgs.push({'id':this.id.split('-')[3], 'msg':'<li>'+$(this).parent().parent().find('span.opt').html().replace(':', '')+'</li>'});
}
}
});
for(i in radio_options){
if(radio_options[i]['val'] != -1){
opt.push(radio_options[i]['id'].split('-')[3]+'-'+radio_options[i]['val']);
}else{
err_msgs.push({'id':radio_options[i]['id'].split('-')[3], 'msg':'<li>'+$('#'+radio_options[i]['id']).parent().parent().parent().find('span.opt').html().replace(':', '')+'</li>'});
}
}
 
err_msgs.sort(function(a, b){ return ((a['id'] > b['id']) ? 1 : -1); });
for (var i=0; i<err_msgs.length; i++) { err_msg += err_msgs[i]['msg']; }
 
if(err_msg == ''){
_uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'add', 'id':id, 'pref':pref, 'opt':opt.join(':'), 'cnt':$('#q'+pref+'-'+id+'-basket').val()}});
ga_event('basket_add');
}else{
lock_buttons = 0;
shop_alert('<div class="MyWinError">Опции<ul>'+err_msg+'</ul>обязательны для выбора</div>','Замечания','warning',350,100,{tm:8000,align:'left',icon:'/.s/img/icon/warning.png', 'onclose': function(){  $('#b'+pref+'-'+id+'-basket').removeAttr('disabled'); $('#'+pref+'-'+id+'-basket').removeClass('wait').addClass('add');  }});
}
return false;
}
 
function buyNow(id, pref){
if(lock_buttons) return false; else lock_buttons = 1;
var opt = [], err_msg = '', err_msgs = [], radio_options = {}, el_id = {};
$('#b'+pref+'-'+id+'-buynow').attr('disabled', 'disabled');
$('#'+pref+'-'+id+'-buynow').removeClass('done').removeClass('err').removeClass('now').addClass('wait').attr('title','');
$('#'+pref+'-'+id+'-options-selectors').find('select, input').each(function(){
switch (this.type) {
case 'radio':
el_id = this.id.split('-');
((typeof (radio_options[el_id[3]]) == 'undefined') && (radio_options[el_id[3]] = { 'val': - 1, 'id': this.id }));
(this.checked && (radio_options[el_id[3]]['val'] = this.value));
break;
case 'checkbox':
if (this.checked && (this.value !== '')) {
if(this.value !== ''){
opt.push(this.id.split('-')[3]+'-'+this.value);
} else {
err_msgs.push({'id':this.id.split('-')[3], 'msg':'<li>'+$(this).parent().parent().find('span.opt').html().replace(':', '')+'</li>'});
}
}
break;
default:
if (this.value !== '') {
opt.push(this.id.split('-')[3]+'-'+this.value);
} else {
err_msgs.push({'id':this.id.split('-')[3], 'msg':'<li>'+$(this).parent().parent().find('span.opt').html().replace(':', '')+'</li>'});
}
}
});
for(i in radio_options){
if(radio_options[i]['val'] != -1){
opt.push(radio_options[i]['id'].split('-')[3]+'-'+radio_options[i]['val']);
}else{
err_msgs.push({'id':radio_options[i]['id'].split('-')[3], 'msg':'<li>'+$('#'+radio_options[i]['id']).parent().parent().parent().find('span.opt').html().replace(':', '')+'</li>'});
}
}
 
err_msgs.sort(function(a, b){ return ((a['id'] > b['id']) ? 1 : -1); });
for (var i=0; i<err_msgs.length; i++) { err_msg += err_msgs[i]['msg']; }
 
if(err_msg == ''){
_uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'add', 'id':id, 'pref':pref, 'opt':opt.join(':'), 'cnt':$('#q'+pref+'-'+id+'-basket').val(), 'now':1}});
ga_event('basket_buynow');
}else{
lock_buttons = 0;
shop_alert('<div class="MyWinError">Опции<ul>'+err_msg+'</ul>обязательны для выбора</div>','Замечания','warning',350,100,{tm:8000,align:'left',icon:'/.s/img/icon/warning.png', 'onclose': function(){ $('#b'+pref+'-'+id+'-buynow').removeAttr('disabled'); $('#'+pref+'-'+id+'-buynow').removeClass('wait').addClass('add');  }});
}
return false;
}
jQuery('#shop-basket a').on('click touchend', function(e) { 
 var el = jQuery(this); 
 var link = el.attr('href'); 
 window.location = link; 
}); 
//-->
</script>
Yuri_Geruk,
Юрий, сделал все, поменял, теперь добавляется как надо, но только вот теперь не работает - оформить заказ
Роман Иванов,
Покажите ваш код шаблона корзина.
Yuri_Geruk,

<div class="header-cart "> 
 <div class="block-content"> 
 <?if($BODY$)?>


 <div class="summary"><div class="block-cart-icon"></div>Корзина<span>$NUM_ENTRIES$</span></div>


 <?endif?> 
 
 <?if($BODY$)?> 
 <div class="cart-content"> 
 
 
<?else?> <div class="cart-content minsas"> <?endif?> 
 
 
 <div class="subtotal"> 
 <?if($NUM_ENTRIES$)?> 
 <div class="total">Итого:  
 <span class="price">$ORDER_AMOUNT$</span>
 </div> 
 <?if($ORDER_DISCOUNT$)?> 


 <?if($DISCOUNT_INFO$)?> <?endif?> 


</div> 

 

 <?if($BODY$)?>

 <ol class="mini-products-list" id="cart-sidebar">$BODY$</ol>


 <?endif?> <?endif?> <div class="actions"> <a class="basketorder btn" href="/shop/checkout">Оформить заказ</a>
 <a class="basketclear btn" href="javascript://" rel="nofollow" onclick="return clearBasket();">Очистить</a> </div> 
 <?else?> <div class="empty-basket">Ваша корзина пуста</div> </div> <?endif?> 
 </div> 
</div> 
<?if($NUM_ENTRIES$)?> <?else?> 
<div class="summary"> Корзина<span>$NUM_ENTRIES$</span></div>
<?endif?> </div> 

<script><!--
var lock_buttons = 0;
 
function clearBasket(){
if(lock_buttons) return false; else lock_buttons = 1;
var el = $('#shop-basket');
if(el.length){ var g=document.createElement("div"); $(g).addClass('myWinGrid').attr("id",'shop-basket-fade').css({"left":"0","top":"0","position":"absolute","border":"#CCCCCC 1px solid","width":$(el).width()+'px',"height":$(el).height()+'px',"z-index":5}).hide().on('mousedown', function(e){e.stopPropagation();e.preventDefault();_uWnd.globalmousedown();}).html('<div class="myWinLoad" style="margin:5px;"></div>'); $(el).append(g); $(g).show(); }
_uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'clear'}});
ga_event('basket_clear');
return false;
}
 
function removeBasket(id){
if(lock_buttons) return false; else lock_buttons = 1;
$('#basket-item-'+id+' .sb-func').removeClass('remove').addClass('myWinLoadS').attr('title','');
_uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'del', 'id':id}});
return false;
}
 
function add2Basket(id, pref){
if(lock_buttons) return false; else lock_buttons = 1;
var opt = [], err_msg = '', err_msgs = [], radio_options = {}, el_id = {};
$('#b'+pref+'-'+id+'-basket').attr('disabled','disabled');
$('#'+pref+'-'+id+'-basket').removeClass('done').removeClass('err').removeClass('add').addClass('wait').attr('title','');
$('#'+pref+'-'+id+'-options-selectors').find('select, input').each(function(){
switch (this.type) {
case 'radio':
el_id = this.id.split('-');
((typeof (radio_options[el_id[3]]) == 'undefined') && (radio_options[el_id[3]] = { 'val': - 1, 'id': this.id }));
(this.checked && (radio_options[el_id[3]]['val'] = this.value));
break;
case 'checkbox':
if (this.checked && (this.value !== '')) {
if(this.value !== ''){
opt.push(this.id.split('-')[3]+'-'+this.value);
} else {
err_msgs.push({'id':this.id.split('-')[3], 'msg':'<li>'+$(this).parent().parent().find('span.opt').html().replace(':', '')+'</li>'});
}
}
break;
default:
if (this.value !== '') {
opt.push(this.id.split('-')[3]+'-'+this.value);
} else {
err_msgs.push({'id':this.id.split('-')[3], 'msg':'<li>'+$(this).parent().parent().find('span.opt').html().replace(':', '')+'</li>'});
}
}
});
for(i in radio_options){
if(radio_options[i]['val'] != -1){
opt.push(radio_options[i]['id'].split('-')[3]+'-'+radio_options[i]['val']);
}else{
err_msgs.push({'id':radio_options[i]['id'].split('-')[3], 'msg':'<li>'+$('#'+radio_options[i]['id']).parent().parent().parent().find('span.opt').html().replace(':', '')+'</li>'});
}
}
 
err_msgs.sort(function(a, b){ return ((a['id'] > b['id']) ? 1 : -1); });
for (var i=0; i<err_msgs.length; i++) { err_msg += err_msgs[i]['msg']; }
 
if(err_msg == ''){
_uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'add', 'id':id, 'pref':pref, 'opt':opt.join(':'), 'cnt':$('#q'+pref+'-'+id+'-basket').val()}});
ga_event('basket_add');
}else{
lock_buttons = 0;
shop_alert('<div class="MyWinError">Опции<ul>'+err_msg+'</ul>обязательны для выбора</div>','Замечания','warning',350,100,{tm:8000,align:'left',icon:'/.s/img/icon/warning.png', 'onclose': function(){  $('#b'+pref+'-'+id+'-basket').removeAttr('disabled'); $('#'+pref+'-'+id+'-basket').removeClass('wait').addClass('add');  }});
}
return false;
}
 
function buyNow(id, pref){
if(lock_buttons) return false; else lock_buttons = 1;
var opt = [], err_msg = '', err_msgs = [], radio_options = {}, el_id = {};
$('#b'+pref+'-'+id+'-buynow').attr('disabled', 'disabled');
$('#'+pref+'-'+id+'-buynow').removeClass('done').removeClass('err').removeClass('now').addClass('wait').attr('title','');
$('#'+pref+'-'+id+'-options-selectors').find('select, input').each(function(){
switch (this.type) {
case 'radio':
el_id = this.id.split('-');
((typeof (radio_options[el_id[3]]) == 'undefined') && (radio_options[el_id[3]] = { 'val': - 1, 'id': this.id }));
(this.checked && (radio_options[el_id[3]]['val'] = this.value));
break;
case 'checkbox':
if (this.checked && (this.value !== '')) {
if(this.value !== ''){
opt.push(this.id.split('-')[3]+'-'+this.value);
} else {
err_msgs.push({'id':this.id.split('-')[3], 'msg':'<li>'+$(this).parent().parent().find('span.opt').html().replace(':', '')+'</li>'});
}
}
break;
default:
if (this.value !== '') {
opt.push(this.id.split('-')[3]+'-'+this.value);
} else {
err_msgs.push({'id':this.id.split('-')[3], 'msg':'<li>'+$(this).parent().parent().find('span.opt').html().replace(':', '')+'</li>'});
}
}
});
for(i in radio_options){
if(radio_options[i]['val'] != -1){
opt.push(radio_options[i]['id'].split('-')[3]+'-'+radio_options[i]['val']);
}else{
err_msgs.push({'id':radio_options[i]['id'].split('-')[3], 'msg':'<li>'+$('#'+radio_options[i]['id']).parent().parent().parent().find('span.opt').html().replace(':', '')+'</li>'});
}
}
 
err_msgs.sort(function(a, b){ return ((a['id'] > b['id']) ? 1 : -1); });
for (var i=0; i<err_msgs.length; i++) { err_msg += err_msgs[i]['msg']; }
 
if(err_msg == ''){
_uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'add', 'id':id, 'pref':pref, 'opt':opt.join(':'), 'cnt':$('#q'+pref+'-'+id+'-basket').val(), 'now':1}});
ga_event('basket_buynow');
}else{
lock_buttons = 0;
shop_alert('<div class="MyWinError">Опции<ul>'+err_msg+'</ul>обязательны для выбора</div>','Замечания','warning',350,100,{tm:8000,align:'left',icon:'/.s/img/icon/warning.png', 'onclose': function(){ $('#b'+pref+'-'+id+'-buynow').removeAttr('disabled'); $('#'+pref+'-'+id+'-buynow').removeClass('wait').addClass('add');  }});
}
return false;
}
//-->
</script>

Роман Иванов,

Попробуйте заменить вашу ссылку:

<a class="basketorder btn" href="/shop/checkout">Оформить заказ</a>

на:

<a class="basketorder" href="/shop/checkout">Оформить заказ</a>

Yuri_Geruk,
Сделал, выделение пропало и не работает опять
Роман Иванов,
Что у вас в шаблоне вид корзины? Код покажите.
Yuri_Geruk,

<li class="item last odd" id="basket-item-$ID$">

 
 <div class="product-control-buttons">
 <a class="sb-func remove btn-remove" title="Удалить товар" onclick="return removeBasket('$ID$')" href="javascript://" rel="nofollow"><i class="fa fa-times"></i></a>
 
 </div>
 <a class="product-image" title="$NAME$" href="$ENTRY_URL$">
 <img alt="$NAME$" src="$THUMB$"></a>
 <p class="product-name"><a href="$ENTRY_URL$">$NAME$</a></p>
 <div class="product-details">
 <strong>$COUNT$</strong> x

 
 <span class="price">$PRICE$</span> 
 
 </div>
</li>

<span class="clear"></span>

Роман Иванов,
Верните ссылку как было с классом. Далее обновите код с частью выделенной красным как я выше исправил http://joxi.ru/5mdgkOxce43bNr это должно помочь.
Роман Иванов,
Вроде все заработало как вижу))
Yuri_Geruk,

Да, все как и нужно. У меня уже голова шальная от этих изменений.

Спасибо Вам огромное, Юрий. Вы и правда специалист с ВЫСОКОЙ буквы. Не первый раз меня и конечно других выручаете. Я бы хотел с Вами лично пообщаться, напишите мне в ВК - https://vk.com/foto_na_kruzhke_tula. Есть небольшое предложение

...