mardon Posted December 2, 2013 Share Posted December 2, 2013 On my shop some users cannot add a products to cart or after adding product to cart , the cart is empty. I use version 1.4.3 www.tucnak.cz/shop Link to comment Share on other sites More sharing options...
ibndawood Posted December 3, 2013 Share Posted December 3, 2013 Hi Are u sure ? I am able to add to cart. And the website works normally : https://www.diigo.com/item/image/4h50p/pgd7 Link to comment Share on other sites More sharing options...
mardon Posted December 3, 2013 Author Share Posted December 3, 2013 Yes, for me is function OK. But one i month I have email from the user with this problem. Together 10 users mail me with this problem. maybe is problem in specific browser. Link to comment Share on other sites More sharing options...
vekia Posted December 3, 2013 Share Posted December 3, 2013 i can confirm added to cart product and cart works well: maybe it's related to certain browsers only? do you know something more about that? Link to comment Share on other sites More sharing options...
Sharak Posted December 3, 2013 Share Posted December 3, 2013 I can see where's the problem. If you add something to cart it goes to cart like it should be. Now if you click on the cart it opens cart page with added products like it should be, but if you instead use "K pokladně" button, it opens cart page but the cart itself is cleared of all products. And this happens only for the first time. Next times this button sends to authentication page instead the cart page and I suppose cart is again cleared after logging in. It looks like you've made some bad changes in cart.js that make "K pokladně" button skip some important steps. This happens on all browsers. 2 Link to comment Share on other sites More sharing options...
mardon Posted December 3, 2013 Author Share Posted December 3, 2013 I can see where's the problem. If you add something to cart it goes to cart like it should be. Now if you click on the cart it opens cart page with added products like it should be, but if you instead use "K pokladně" button, it opens cart page but the cart itself is cleared of all products. And this happens only for the first time. Next times this button sends to authentication page instead the cart page and I suppose cart is again cleared after logging in. It looks like you've made some bad changes in cart.js that make "K pokladně" button skip some important steps. This happens on all browsers. Big thank you !! you are right, but i cannot find cart.js i only find ajax-cart.js, but if diff with the original 1.4.3 that is identical Link to comment Share on other sites More sharing options...
mardon Posted December 3, 2013 Author Share Posted December 3, 2013 I found some diffencies in themes/tucnak/js/modules/blockcart/ajax-cart.js. Would someone help me with these changes? Link to comment Share on other sites More sharing options...
Sharak Posted December 3, 2013 Share Posted December 3, 2013 Of course it's ajax-cart.js, forgot correct file name at the moment Show the differences or upload your ajax-cart,js. I'm sure someone will figure it out.. Link to comment Share on other sites More sharing options...
mardon Posted December 3, 2013 Author Share Posted December 3, 2013 (edited) my ajax-cart.js //JS Object : update the cart by ajax actions var ajaxCart = { //override every button in the page in relation to the cart overrideButtonsInThePage : function(){ //for every 'add' buttons... $('.ajax_add_to_cart_button').unbind('click').click(function(){ var idProduct = $(this).attr('rel').replace('ajax_id_product_', ''); if ($(this).attr('disabled') != 'disabled') ajaxCart.add(idProduct, null, false, this); return false; }); //for product page 'add' button... $('body#product p#add_to_cart input').unbind('click').click(function(){ ajaxCart.add( $('#product_page_product_id').val(), $('#idCombination').val(), true, null, $('#quantity_wanted').val(), null); return false; }); //for 'delete' buttons in the cart block... $('#cart_block_list .ajax_cart_block_remove_link').unbind('click').click(function(){ // Customized product management var customizationId = 0; var productId = 0; var productAttributeId = 0; if ($($(this).parent().parent()).attr('name') == 'customization') // Reverse two levels: a >> div >> li var customizableProductDiv = $($(this).parent().parent()).find("div[id^=deleteCustomizableProduct_]"); else var customizableProductDiv = $($(this).parent()).find("div[id^=deleteCustomizableProduct_]"); if (customizableProductDiv && $(customizableProductDiv).length) { $(customizableProductDiv).each(function(){ var ids = $(this).attr('id').split('_'); if (typeof(ids[1]) != 'undefined') { customizationId = parseInt(ids[1]); productId = parseInt(ids[2]); if (typeof(ids[3]) != 'undefined') productAttributeId = parseInt(ids[3]); return false; } }); } // Common product management if (!customizationId) { //retrieve idProduct and idCombination from the displayed product in the block cart var firstCut = $(this).parent().parent().attr('id').replace('cart_block_product_', ''); firstCut = firstCut.replace('deleteCustomizableProduct_', ''); ids = firstCut.split('_'); productId = parseInt(ids[0]); if (typeof(ids[1]) != 'undefined') productAttributeId = parseInt(ids[1]); } // Removing product from the cart ajaxCart.remove(productId, productAttributeId, customizationId); return false; }); }, // try to expand the cart expand : function(){ if ($('#cart_block #cart_block_list').hasClass('collapsed')) { $('#cart_block #cart_block_summary').slideUp(200, function(){ $(this).addClass('collapsed').removeClass('expanded'); $('#cart_block #cart_block_list').slideDown({ duration: 600, complete: function(){$(this).addClass('expanded').removeClass('collapsed');} }); }); // toogle the button expand/collapse button $('#cart_block h4 span#block_cart_expand').fadeOut('slow', function(){ $('#cart_block h4 span#block_cart_collapse').fadeIn('fast'); }); // save the expand statut in the user cookie $.ajax({ type: 'GET', url: baseDir + 'modules/blockcart/blockcart-set-collapse.php', async: true, data: 'ajax_blockcart_display=expand' + '&rand=' + new Date().getTime() }); } }, // cart to fix display when using back and previous browsers buttons refresh : function(){ //send the ajax request to the server $.ajax({ type: 'GET', url: baseDir + 'cart.php', async: true, cache: false, dataType : "json", data: 'ajax=true&token=' + static_token, success: function(jsonData) { ajaxCart.updateCart(jsonData); }, error: function(XMLHttpRequest, textStatus, errorThrown) { //alert("TECHNICAL ERROR: unable to refresh the cart.\n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus); } }); }, // try to collapse the cart collapse : function(){ if ($('#cart_block #cart_block_list').hasClass('expanded')) { $('#cart_block #cart_block_list').slideUp('slow', function(){ $(this).addClass('collapsed').removeClass('expanded'); $('#cart_block #cart_block_summary').slideDown(700, function(){ $(this).addClass('expanded').removeClass('collapsed'); }); }); $('#cart_block h4 span#block_cart_collapse').fadeOut('slow', function(){ $('#cart_block h4 span#block_cart_expand').fadeIn('fast'); }); // save the expand statut in the user cookie $.ajax({ type: 'GET', url: baseDir + 'modules/blockcart/blockcart-set-collapse.php', async: true, data: 'ajax_blockcart_display=collapse' + '&rand=' + new Date().getTime() }); } }, // Update the cart information updateCartInformation : function (jsonData, addedFromProductPage) { ajaxCart.updateCart(jsonData); //reactive the button when adding has finished if (addedFromProductPage) $('body#product p#add_to_cart input').removeAttr('disabled').addClass('exclusive').removeClass('exclusive_disabled'); else $('.ajax_add_to_cart_button').removeAttr('disabled'); }, // add a product in the cart via ajax add : function(idProduct, idCombination, addedFromProductPage, callerElement, quantity, whishlist){ if (addedFromProductPage && !checkCustomizations()) { alert(fieldRequired); return ; } emptyCustomizations(); //disabled the button when adding to do not double add if user double click if (addedFromProductPage) { $('body#product p#add_to_cart input').attr('disabled', 'disabled').removeClass('exclusive').addClass('exclusive_disabled'); $('.filled').removeClass('filled'); } else $(callerElement).attr('disabled', 'disabled'); if ($('#cart_block #cart_block_list').hasClass('collapsed')) this.expand(); //send the ajax request to the server $.ajax({ type: 'POST', url: baseDir + 'cart.php', async: true, cache: false, dataType : "json", data: 'add=1&ajax=true&qty=' + ((quantity && quantity != null) ? quantity : '1') + '&id_product=' + idProduct + '&token=' + static_token + ( (parseInt(idCombination) && idCombination != null) ? '&ipa=' + parseInt(idCombination): ''), success: function(jsonData,textStatus,jqXHR) { // add appliance to whishlist module if (whishlist && !jsonData.errors) WishlistAddProductCart(whishlist[0], idProduct, idCombination, whishlist[1]); // add the picture to the cart var $element = $(callerElement).parent().parent().find('a.product_image img,a.product_img_link img'); if (!$element.length) $element = $('#bigpic'); var $picture = $element.clone(); var pictureOffsetOriginal = $element.offset(); if ($picture.size()) $picture.css({'position': 'absolute', 'top': pictureOffsetOriginal.top, 'left': pictureOffsetOriginal.left}); var pictureOffset = $picture.offset(); var cartBlockOffset = $('#cart_block').offset(); // Check if the block cart is activated for the animation if (cartBlockOffset != undefined && $picture.size()) { $picture.appendTo('body'); $picture.css({ 'position': 'absolute', 'top': $picture.css('top'), 'left': $picture.css('left') }) .animate({ 'width': $element.attr('width')*0.66, 'height': $element.attr('height')*0.66, 'opacity': 0.2, 'top': cartBlockOffset.top + 30, 'left': cartBlockOffset.left + 15 }, 1000) .fadeOut(100, function() { ajaxCart.updateCartInformation(jsonData, addedFromProductPage); setTimeout("ajaxCart.collapse()", 2000); }); } else ajaxCart.updateCartInformation(jsonData, addedFromProductPage); }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert("TECHNICAL ERROR: unable to add the product.\n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus); //reactive the button when adding has finished if (addedFromProductPage) $('body#product p#add_to_cart input').removeAttr('disabled').addClass('exclusive').removeClass('exclusive_disabled'); else $(callerElement).removeAttr('disabled'); } }); }, //remove a product from the cart via ajax remove : function(idProduct, idCombination, customizationId){ //send the ajax request to the server $.ajax({ type: 'POST', url: baseDir + 'cart.php', async: true, cache: false, dataType : "json", data: 'delete=1&id_product=' + idProduct + '&ipa=' + ((idCombination != null && parseInt(idCombination)) ? idCombination : '') + ((customizationId && customizationId != null) ? '&id_customization=' + customizationId : '') + '&token=' + static_token + '&ajax=true', success: function(jsonData) { ajaxCart.updateCart(jsonData); if ($('body').attr('id') == 'order' || $('body').attr('id') == 'order-opc') deletProductFromSummary(idProduct+'_'+idCombination); }, error: function() {alert('ERROR: unable to delete the product');} }); }, //hide the products displayed in the page but no more in the json data hideOldProducts : function(jsonData) { //delete an eventually removed product of the displayed cart (only if cart is not empty!) if($('#cart_block #cart_block_list dl.products').length > 0) { var removedProductId = null; var removedProductData = null; var removedProductDomId = null; //look for a product to delete... $('#cart_block_list dl.products dt').each(function(){ //retrieve idProduct and idCombination from the displayed product in the block cart var domIdProduct = $(this).attr('id'); var firstCut = domIdProduct.replace('cart_block_product_', ''); var ids = firstCut.split('_'); //try to know if the current product is still in the new list var stayInTheCart = false; for (aProduct in jsonData.products) { //we've called the variable aProduct because IE6 bug if this variable is called product //if product has attributes if (jsonData.products[aProduct]['id'] == ids[0] && (!ids[1] || jsonData.products[aProduct]['idCombination'] == ids[1])) { stayInTheCart = true; // update the product customization display (when the product is still in the cart) ajaxCart.hideOldProductCustomizations(jsonData.products[aProduct], domIdProduct); } } //remove product if it's no more in the cart if(!stayInTheCart) { removedProductId = $(this).attr('id'); //return false; // Regarding that the customer can only remove products one by one, we break the loop } }); //if there is a removed product, delete it from the displayed block cart if (removedProductId != null) { var firstCut = removedProductId.replace('cart_block_product_', ''); var ids = firstCut.split('_'); $('#'+removedProductId).addClass('strike').fadeTo('slow', 0, function(){ $(this).slideUp('slow', function(){ $(this).remove(); //if the cart is now empty, show the 'no product in the cart' message if($('#cart_block dl.products dt').length == 0) { $('p#cart_block_no_products:hidden').slideDown('fast'); $('div#cart_block dl.products').remove(); } }); }); $('dd#cart_block_combination_of_' + ids[0] + (ids[1] ? '_'+ids[1] : '') ).fadeTo('fast', 0, function(){ $(this).slideUp('fast', function(){ $(this).remove(); }); }); } } }, hideOldProductCustomizations : function (product, domIdProduct) { var customizationList = $('#cart_block #cart_block_list ul#customization_' + product['id'] + '_' + product['idCombination']); if(customizationList.length > 0) { $(customizationList).find("li").each(function(){ $(this).find("div").each(function() { var customizationDiv = $(this).attr('id'); var tmp = customizationDiv.replace('deleteCustomizableProduct_', ''); var ids = tmp.split('_'); if ((parseInt(product.idCombination) == parseInt(ids[2])) && !ajaxCart.doesCustomizationStillExist(product, ids[0])) $('#' + customizationDiv).parent().addClass('strike').fadeTo('slow', 0, function(){ $(this).slideUp('slow'); $(this).remove(); }); }); }); } var removeLinks = $('#cart_block_product_' + domIdProduct).find('a.ajax_cart_block_remove_link'); if (!product.hasCustomizedDatas && !removeLinks.length) $('#' + domIdProduct + ' span.remove_link').html('<a class="ajax_cart_block_remove_link" rel="nofollow" href="' + baseDir + 'cart.php?delete&id_product=' + product['id'] + '&ipa=' + product['idCombination'] + '&token=' + static_token + '" title="' + removingLinkText + '"> </a>'); }, doesCustomizationStillExist : function (product, customizationId) { var exists = false; $(product.customizedDatas).each(function() { if (this.customizationId == customizationId) { exists = true; // This return does not mean that we found nothing but simply break the loop return false; } }); return (exists); }, //refresh display of vouchers (needed for vouchers in % of the total) refreshVouchers : function (jsonData) { if (jsonData.discounts.length == 0) $('#vouchers').remove(); else { $('.bloc_cart_voucher').each(function(){ var idElmt = $(this).attr('id').replace('bloc_cart_voucher_',''); var toDelete = true; for (i=0;i<jsonData.discounts.length;i++) { if (jsonData.discounts[i].id == idElmt) { $('#bloc_cart_voucher_' + idElmt + ' td.price').text(jsonData.discounts[i].price); toDelete = false; } } if (toDelete) { $('#bloc_cart_voucher_' + idElmt).fadeTo('fast', 0, function(){ $(this).remove(); }); } }); } }, // Update product quantity updateProductQuantity : function (product, quantity) { $('dt#cart_block_product_' + product.id + (product.idCombination ? '_' + product.idCombination : '') + ' .quantity').fadeTo('fast', 0, function() { $(this).text(quantity); $(this).fadeTo('fast', 1, function(){ $(this).fadeTo('fast', 0, function(){ $(this).fadeTo('fast', 1, function(){ $(this).fadeTo('fast', 0, function(){ $(this).fadeTo('fast', 1); }); }); }); }); }); }, //display the products witch are in json data but not already displayed displayNewProducts : function(jsonData) { //add every new products or update displaying of every updated products $(jsonData.products).each(function(){ //fix ie6 bug (one more item 'undefined' in IE6) if (this.id != undefined) { //create a container for listing the products and hide the 'no product in the cart' message (only if the cart was empty) if ($('div#cart_block dl.products').length == 0) $('p#cart_block_no_products:visible').fadeTo('fast', 0, function(){ $(this).slideUp('fast').fadeTo(0, 1); }).before('<dl class="products"></dl>'); //if product is not in the displayed cart, add a new product's line var domIdProduct = this.id + (this.idCombination ? '_' + this.idCombination : ''); var domIdProductAttribute = this.id + '_' + (this.idCombination ? this.idCombination : '0'); if($('#cart_block dt#cart_block_product_'+ domIdProduct ).length == 0) { var productId = parseInt(this.id); var productAttributeId = (this.hasAttributes ? parseInt(this.attributes) : 0); var content = '<dt class="hidden" id="cart_block_product_' + domIdProduct + '">'; content += '<span class="quantity-formated"><span class="quantity">' + this.quantity + '</span>x</span>'; var name = (this.name.length > 12 ? this.name.substring(0, 10) + '...' : this.name); content += '<a href="' + this.link + '" title="' + this.name + '">' + name + '</a>'; content += '<span class="remove_link"><a rel="nofollow" class="ajax_cart_block_remove_link" href="' + baseDir + 'cart.php?delete&id_product=' + productId + '&token=' + static_token + (this.hasAttributes ? '&ipa=' + parseInt(this.idCombination) : '') + '"> </a></span>'; content += '<span class="price">' + this.priceByLine + '</span>'; content += '</dt>'; if (this.hasAttributes) content += '<dd id="cart_block_combination_of_' + domIdProduct + '" class="hidden"><a href="' + this.link + '" title="' + this.name + '">' + this.attributes + '</a>'; if (this.hasCustomizedDatas) content += ajaxCart.displayNewCustomizedDatas(this); if (this.hasAttributes) content += '</dd>'; $('#cart_block dl.products').append(content); } //else update the product's line else{ var jsonProduct = this; if($('dt#cart_block_product_' + domIdProduct + ' .quantity').text() != jsonProduct.quantity || $('dt#cart_block_product_' + domIdProduct + ' .price').text() != jsonProduct.priceByLine) { // Usual product $('dt#cart_block_product_' + domIdProduct + ' .price').text(jsonProduct.priceByLine); ajaxCart.updateProductQuantity(jsonProduct, jsonProduct.quantity); // Customized product if (jsonProduct.hasCustomizedDatas) { customizationFormatedDatas = ajaxCart.displayNewCustomizedDatas(jsonProduct); if (!$('#cart_block ul#customization_' + domIdProductAttribute).length) { if (jsonProduct.hasAttributes) $('#cart_block dd#cart_block_combination_of_' + domIdProduct).append(customizationFormatedDatas); else $('#cart_block dl.products').append(customizationFormatedDatas); } else $('#cart_block ul#customization_' + domIdProductAttribute).append(customizationFormatedDatas); } } } $('#cart_block dl.products .hidden').slideDown('slow').removeClass('hidden'); var removeLinks = $('#cart_block_product_' + domIdProduct).find('a.ajax_cart_block_remove_link'); if (this.hasCustomizedDatas && removeLinks.length) $(removeLinks).each(function() { $(this).remove(); }); } }); }, displayNewCustomizedDatas : function(product) { var content = ''; var productId = parseInt(product.id); var productAttributeId = typeof(product.idCombination) == 'undefined' ? 0 : parseInt(product.idCombination); var hasAlreadyCustomizations = $('#cart_block ul#customization_' + productId + '_' + productAttributeId).length; if (!hasAlreadyCustomizations) { if (!product.hasAttributes) content += '<dd id="cart_block_combination_of_' + productId + '" class="hidden">'; content += '<ul class="cart_block_customizations" id="customization_' + productId + '_' + productAttributeId + '">'; } $(product.customizedDatas).each(function(){ var done = 0; customizationId = parseInt(this.customizationId); productAttributeId = typeof(product.idCombination) == 'undefined' ? 0 : parseInt(product.idCombination); // If the customization is already displayed on the cart, no update's needed if($('#cart_block').find("div[id^=deleteCustomizableProduct_" + customizationId + "_]").length) return (''); content += '<li name="customization"><div class="deleteCustomizableProduct" id="deleteCustomizableProduct_' + customizationId + '_' + productId + '_' + (productAttributeId ? productAttributeId : '0') + '"><a rel="nofollow" class="ajax_cart_block_remove_link" href="' + baseDir + 'cart.php?delete&id_product=' + productId + '&ipa=' + productAttributeId + '&id_customization=' + customizationId + '&token=' + static_token + '"> </a></div><span class="quantity-formated"><span class="quantity">' + parseInt(this.quantity) + '</span>x</span>'; // Give to the customized product the first textfield value as name $(this.datas).each(function(){ if (this['type'] == CUSTOMIZE_TEXTFIELD) { $(this.datas).each(function(){ if (this['index'] == 0) { content += this.truncatedValue.replace(/<br \/>/g, ' '); done = 1; return false; } }) } }); // If the customized product did not have any textfield, it will have the customizationId as name if (!done) content += customizationIdMessage + customizationId; if (!hasAlreadyCustomizations) content += '</li>'; // Field cleaning if (customizationId) { $('#uploadable_files li div.customizationUploadBrowse img').remove(); $('#text_fields li input').attr('value', ''); } }); if (!hasAlreadyCustomizations) { content += '</ul>'; if (!product.hasAttributes) content += '</dd>'; } return (content); }, //genarally update the display of the cart updateCart : function(jsonData) { //user errors display if (jsonData.hasError) { var errors = ''; for(error in jsonData.errors) //IE6 bug fix if(error != 'indexOf') errors += jsonData.errors[error] + "\n"; alert(errors); } else { ajaxCart.updateCartEverywhere(jsonData); ajaxCart.hideOldProducts(jsonData); ajaxCart.displayNewProducts(jsonData); ajaxCart.refreshVouchers(jsonData); //update 'first' and 'last' item classes $('#cart_block dl.products dt').removeClass('first_item').removeClass('last_item').removeClass('item'); $('#cart_block dl.products dt:first').addClass('first_item'); $('#cart_block dl.products dt:not(:first,:last)').addClass('item'); $('#cart_block dl.products dt:last').addClass('last_item'); //reset the onlick events in relation to the cart block (it allow to bind the onclick event to the new 'delete' buttons added) ajaxCart.overrideButtonsInThePage(); } }, //update general cart informations everywhere in the page updateCartEverywhere : function(jsonData) { $('.ajax_cart_total').text(jsonData.productTotal); $('.ajax_cart_shipping_cost').text(jsonData.shippingCost); $('.ajax_cart_tax_cost').text(jsonData.taxCost); $('.cart_block_wrapping_cost').text(jsonData.wrappingCost); $('.ajax_block_cart_total').text(jsonData.total); if(parseInt(jsonData.nbTotalProducts) > 0) { $('.ajax_cart_no_product').hide(); //$('.ajax_cart_quantity').text(jsonData.nbTotalProducts); //$('.ajax_cart_quantity').fadeIn('slow'); $('.ajax_cart_total').fadeIn('slow'); /* if(parseInt(jsonData.nbTotalProducts) > 1) { $('.ajax_cart_product_txt').each( function () { $(this).hide (); }); $('.ajax_cart_product_txt_s').each( function () { $(this).show(); }); } else { $('.ajax_cart_product_txt').each( function () { $(this).show(); }); $('.ajax_cart_product_txt_s').each( function () { $(this).hide(); }); } */ } else { $('.ajax_cart_total').each( function () { $(this).hide(); }); $('.ajax_cart_no_product').show('slow'); } } }; //when document is loaded... $(document).ready(function(){ // expand/collapse management $('#block_cart_collapse').click(function(){ ajaxCart.collapse(); }); $('#block_cart_expand').click(function(){ ajaxCart.expand(); }); ajaxCart.overrideButtonsInThePage(); ajaxCart.refresh(); }); Edited December 3, 2013 by mardon (see edit history) Link to comment Share on other sites More sharing options...
mardon Posted December 3, 2013 Author Share Posted December 3, 2013 i think that diferrence is in comment this code //update general cart informations everywhere in the page updateCartEverywhere : function(jsonData) { $('.ajax_cart_total').text(jsonData.productTotal); $('.ajax_cart_shipping_cost').text(jsonData.shippingCost); $('.ajax_cart_tax_cost').text(jsonData.taxCost); $('.cart_block_wrapping_cost').text(jsonData.wrappingCost); $('.ajax_block_cart_total').text(jsonData.total); if(parseInt(jsonData.nbTotalProducts) > 0) { $('.ajax_cart_no_product').hide(); //$('.ajax_cart_quantity').text(jsonData.nbTotalProducts); //$('.ajax_cart_quantity').fadeIn('slow'); $('.ajax_cart_total').fadeIn('slow'); /* if(parseInt(jsonData.nbTotalProducts) > 1) { $('.ajax_cart_product_txt').each( function () { $(this).hide (); }); $('.ajax_cart_product_txt_s').each( function () { $(this).show(); }); } else { $('.ajax_cart_product_txt').each( function () { $(this).show(); }); $('.ajax_cart_product_txt_s').each( function () { $(this).hide(); }); } */ } else { $('.ajax_cart_total').each( function () { $(this).hide(); }); $('.ajax_cart_no_product').show('slow'); } } }; Link to comment Share on other sites More sharing options...
Sharak Posted December 3, 2013 Share Posted December 3, 2013 I don't think commented code is related to button function problem. I will look through it when I have some time. Meanwhile backup your ajax-cart.js and copy the original one from presta 1.4.3 default theme to your themes/tucnak/js/modules/blockcart/ directory. You'll probably need to force compile and turn off cache in admin settings (don't remember where it was located in 1.4.x). See if that solved the problem. Link to comment Share on other sites More sharing options...
ibndawood Posted December 4, 2013 Share Posted December 4, 2013 Hi Sharak, Good work spotting the problem. Hi Mardon, I checked the ajax-cart.js and nothing has changed except the commented out code. I also put your code in the default installation of the code and it worked. Here are some of my observation : * This error seems to appear on firefox. I am not able to reproduce this on Chrome. * I strongly suspect there is an issue with the cookie. * I'd advice you to comment out the line in ajax-cart.js setTimeout("ajaxCart.collapse()", 2000); and open a new firefox window in incognito mode and try if this works. * The reason for my suspicion is that the only way prestashop can remember the cart information across pages is through cookies and the above line actually does some updation to the cookies. Add to cart actually returns proper response which means the add to cart is being done but the cookie which tracks the cart and the browser is lost. * Without taking a look into the backend code and doing a trial and error...cannot really zero in on the problem Link to comment Share on other sites More sharing options...
mardon Posted December 4, 2013 Author Share Posted December 4, 2013 i comment setTimeout("ajaxCart.collapse()", 2000); try as anonymous in firefox but is still same, only after adding to cart,that isnt collapse, but when i click to pay in cart thi product is deleting Link to comment Share on other sites More sharing options...
ibndawood Posted December 6, 2013 Share Posted December 6, 2013 (edited) Hi Mardon, As I said can only debug this via trial and error because we have ruled out all the usual suspects. I suggest you hire a professional to take a look and fix this. Edited December 6, 2013 by ibndawood (see edit history) Link to comment Share on other sites More sharing options...
El Patron Posted November 13, 2014 Share Posted November 13, 2014 fyi I had this issue and took a heck of a long time to finally resolve. open your db using phpmyamdin, there are three tables, find 'connections', empty all data in all three tables...(this 'finally' resolved my issue in 1.4.6.2) Link to comment Share on other sites More sharing options...
authtest Posted February 1, 2016 Share Posted February 1, 2016 Hi Developers, I am facing some JS errors for blockcart module after upgrade to 1.6.0.14 version. Can anyone please help me to get this sorted out. the first JS error I am facing is --- 1. .off() function is not defined. 2. ClickPoint.on is not a function Thanks Link to comment Share on other sites More sharing options...
Recommended Posts