单个按钮点击多个产品添加到购物车 - NopCommerce

时间:2017-02-01 08:25:02

标签: javascript asp.net-mvc nopcommerce

我目前正致力于NopCommerce的组合优惠。所以我需要一键添加多个产品到购物车。内置的NopCommerce格式用于将单个产品添加到购物车中

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

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

它们都可以很好地添加单个产品。但是当我想添加多个产品时,它只是将单个产品添加到购物车中。提到我发送一个带有昏迷分离值的字符串,这是一个产品列表,在Javascript中它正在解析为单个产品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');
        }
    }

但它也没有显示单个错误。那么问题出在哪里?

1 个答案:

答案 0 :(得分: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
        });
    },

现在我通过添加参数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);

    }
}

要了解async:false正在做什么,请找this answer以获得更多说明

如果您需要任何进一步的帮助,请与我们联系。