带有选项的 Opencart cart.add()

Posted

技术标签:

【中文标题】带有选项的 Opencart cart.add()【英文标题】:Opencart cart.add() with option 【发布时间】:2017-10-01 09:44:12 【问题描述】:

我正在 opencart 中寻找解决方案。

需要重建 cart.add 函数以添加具有选项值的产品。

默认情况下:

'add': function(product_id, quantity) 
    $.ajax(
        url: 'index.php?route=checkout/cart/add',
        type: 'post',
        data: 'product_id=' + product_id + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),
        dataType: 'json',
        beforeSend: function() 
            $('#cart > button').button('loading');
        ,
        success: function(json) 
            $('.alert, .text-danger').remove();

            $('#cart > button').button('reset');

            if (json['redirect']) 
                location = json['redirect'];
            

            if (json['success']) 
                $('#content').parent().before('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>');

                $('#cart-total').html(json['total']);

                $('html, body').animate( scrollTop: 0 , 'slow');

                $('#cart > ul').load('index.php?route=common/cart/info ul li');
            
        
    );

结帐/购物车/为选项添加 php 端:

        if (isset($this->request->post['option'])) 
            $option = array_filter($this->request->post['option']);
         else 
            $option = array();
        

有什么解决办法吗?

【问题讨论】:

我使用了这里描述的解决方案:***.com/a/24161192/4288232 【参考方案1】:

您可以通过以下方式执行此操作。创建一个简单的javascript 对象。

var productData = 'product_id' : PRODUCT_IDS.CARD, 'quantity': 1,'option':'229':"Some option value";

并按如下方式发送请求。使用param 函数将对象转换为post params

 $.ajax(
                    url: 'index.php?route=checkout/cart/add',
                    type: 'post',
                    data: $.param(productData),
                    dataType: 'json',
                    beforeSend: function () 
                    ,
                    complete: function () 
                    ,
                    success: function (json) 

                    ,
                    error: function (xhr, ajaxOptions, thrownError) 

                    
                );

还有其他一些方法可以做到这一点,您可以在/controller/checkout/cart.php 文件中查看可能的有效负载格式。

【讨论】:

以上是关于带有选项的 Opencart cart.add()的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 OpenCart 产品页面上的原始价格?

opencart去掉网站左上角其他币种选项

Opencart:多语言横幅

如何在opencart中的用户级别应用权限

Opencart 注册需要很长时间

Woocommerce Astra 主题显示两个添加到购物车按钮