2012-07-27 88 views
0

我已經在我們的magento中啓用了安全購物車。之後,添加到購物車按鈕不起作用。我的主題有自定義ajax添加到購物車按鈕。然後,我在我的模板js代碼中添加了以下代碼,並添加到產品列表頁面的購物車按鈕開始工作。但是,我無法弄清楚我應該如何更改產品視圖(詳細信息)頁面的添加到購物車按鈕代碼,因爲它不工作。我需要他們與我的安全車。我的產品詳細信息頁面在http協議下。如果我使用https手動輸入產品詳細信息頁面,則可以使用添加到購物車按鈕。但是,我需要它在http產品詳細信息頁面下工作,並且可以與安全購物車頁面一起使用。我應該如何更改JavaScript代碼或任何其他代碼?Magento添加到購物車ajax按鈕不與安全(https)購物車一起使用

我的代碼

 if (window.location.protocol == "https:") { 
     url=url;  
     }else{ 
     url=url.replace("https://","http://"); 
     } 

我的主題:http://demo.galathemes.com/#gala-gearbox

這裏是主題的JavaScript代碼,在做這項工作:

var test;    
Event.observe(window, 'load', function() { 
    var containerDiv = $('containerDiv'); 
    if(containerDiv) 
     test = new LightboxAJC(containerDiv); 
}); 
function cart_form(url) 
{  
    data = $('product_addtocart_form').serialize(); 
    ajax_add(url,data); 
} 

function ajax_add(url,param) 
    { 

     tam  = url.search("checkout/"); 
     tam2 = url.search("product/"); 
     str1 = url.substr(0,tam)+'ajaxcart/index/add/'; 
     str2 = url.substr(tam2,url.length); 
     link = str1+str2; 
     var check = url.search("options");   
     if(check > 0){ 
      window.location.href = url; 
     } 
     else{ 
      var tmp  = url.search("in_cart"); 
      test.open(); 
      new Ajax.Request(link, { 
       parameters:param, 
       onSuccess: function(data) { 
        if(tmp > 0) { 
         var host = find_host(url); 
         window.location.href = host+'index.php/checkout/cart/'; 
        } 
        else{ 
         //result = data.responseText;alert(result);     
         $('ajax_content').innerHTML = data.responseText; 

         if($('ajax_content').down('.top-link-cart')){ 
          var count_cart = $('ajax_content').down('.top-link-cart').innerHTML;         
          $$('.top-link-cart').each(function (el){ 
           el.innerHTML = count_cart; 
          }); 
         } 

         if($('ajax_content').down('.block-cart')){ 
          var ajax_product = $('ajax_content').down('.block-cart').innerHTML;  
          $$('.block-cart').each(function (el){ 
           el.innerHTML = ajax_product;    
          }); 
         } 

         if($('ajax_content').down('.col-main')){ 
          var ajax_result = $('ajax_content').down('.col-main').innerHTML;     
          $$('.ajaxcart_row1').each(function (el){ 
           el.innerHTML = ajax_result;    
          }); 
         } 

         $('ajax_loading').hide(); 
         $('ajaxcart_conent').show(); 
         Event.observe('closeLink', 'click', function() {      
          test.close(); 
          $$('.ajaxcart_row1').each(function (el){ 
           el.innerHTML = '';    
          }); 
          $('ajax_loading').show(); 
         });  
        } 
       } 
      }); 
     } 
    } 

function setLocation(url){ 
    if (window.location.protocol == "https:") { 
    url=url;  
    }else{ 
    url=url.replace("https://","http://");  
    } 

    var tam  = url.search("checkout/cart/"); 
    if(tam > 0) ajax_add(url);  
    else window.location.href = url; 
}  

document.observe("dom:loaded", function() { 

    var cartInt = setInterval(function(){ 
     if (typeof productAddToCartForm != 'undefined'){ 

      if(test){ 
       var tam = $('product_addtocart_form').serialize(); 
       var check = tam.search("ajaxcart");   
       if(check < 0){       
        productAddToCartForm.submit = function(url){ 
         if(this.validator && this.validator.validate()){           
          cart_form($('product_addtocart_form').readAttribute('action')); 
          clearInterval(cartInt); 
         } 
         return false; 
        } 
       } 
      } 
     } else { 
      clearInterval(cartInt); 
     } 
    },500); 

}); 

function find_host(url) 
{ 
    var tmp  = url.search("index.php"); 
    var str  = url.substr(0,tmp) 
    return str; 
} 
+0

哎呀,我的代碼可能是僅當(window.location.protocol == 「HTTP:」){ URL = url.replace( 「https://開頭」,「HTTP: //「); } – Robi 2012-07-27 16:50:07

+1

您是否測試過控制檯上的任何錯誤? – 2012-07-27 20:27:23

+0

我找到了解決方案。感謝您的建議! – Robi 2012-08-04 14:39:41

回答

1

這是所有頁面的解決方案!這很簡單..

if (window.location.protocol == "http:") { 
url=url.replace("https://","http://");  
} 
+0

在哪個文件位置我必須更新此代碼。我有同樣的問題 – sdfa 2016-12-19 18:17:58

相關問題