2017-02-01 104 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

感谢你的亲切。我也在寻找解决方案。 –

相关问题