2017-02-01 45 views
2

我目前正在對NopCommerce組合報價。所以我需要通過一次單擊將多個產品添加到購物車。內置的NopCommerce格式添加單一的產品到購物車是多個產品添加到購物車上單擊按鈕 - NopCommerce

AjaxCart.addproducttocart_catalog('/addproducttocart/catalog/' + productId + '/1/1' 

AjaxCart.addproducttocart_details('/addproducttocart/details/' +productId + '/1', '#product-details-form') 

他們都添加單一產品做工精細。但是當我想添加多個產品時,只需將單個產品添加到購物車。提及我正在發送一個字符串,其中包含產品列表和JavaScript內部的彗星分離值,它將作爲單個產品ID解析。但是,它只是在購物車中添加單件產品。哪個產品ID是產品添加到購物車的最低產品ID。

這裏是我的作品javascript代碼

function addComboProductToCart(ids) { 
     var arrayOfStrings = ids.split(','); 
     for (var i = 0; i < arrayOfStrings.length; i++) { 
      AjaxCart.addproducttocart_catalog('/addproducttocart/catalog/' + arrayOfStrings[i] + '/1/1'); 
     } 
    } 

,但它沒有顯示過一個錯誤。那麼問題在哪裏?

回答

3

在首先你需要在public.ajaxcart.js如下改變,因爲是在每個Ajax調用添加到購物車我們需要設置它async:false對於這一點,你必須添加一個用於更清晰叫async參數來看看在下面的代碼

//add a parameter async 
    addproducttocart_catalog: function (urladd,async) { 
     if (this.loadWaiting != false) { 
      return; 
     } 
     this.setLoadWaiting(true); 

     $.ajax({ 
      cache: false, 
      async:async, 
      url: urladd, 
      type: 'post', 
      success: this.success_process, 
      complete: this.resetLoadWaiting, 
      error: this.ajaxFailure 
     }); 
    }, 

現在我已經通過addding只是一個參數修改了功能false

function addComboProductToCart(ids) { 
    var arrayOfStrings = ids.split(','); 
    for (var i = 0; i < arrayOfStrings.length; i++) { 

     AjaxCart.addproducttocart_catalog('/addproducttocart/catalog/' + arrayOfStrings[i] + '/1/1',false); 

    } 
} 

要知道w ^帽子async:false在做友善的發現this answer以及更多的澄清

讓我知道如果你需要任何進一步的援助。

+2

是啊!!!!!,它工作正常。帽子!但是我有一個關於NopCommerce Base文件更新的問題。由於我正在開發一個插件,因此我的插件將無法訪問('public.ajaxcart.js')Base文件,因此是否必須在腳本部分以我自己的方式使用該修改編寫相同的函數? –

+2

哦,是的,你必須爲你的插件添加該功能。我知道把相同的代碼寫到任何地方都是不好的做法,但是一旦我找到任何解決方案,我會更新你的分析。 – Curiousdev

+0

感謝你的親切。我也在尋找解決方案。 –

相關問題