只需点击“添加到购物车”按钮,即可将两个产品添加到购物车。打开购物车1.5.5.1

时间:2014-01-17 21:44:26

标签: add opencart cart

我已在中创建了 configurator.tpl 文件( product.tpl +一些编辑的副本) strong> 目录/视图/主题/主题名称/模板/产品/ configurator.tpl ,以便在产品页面上同时拥有2个产品。另外,我创建了控制器文件 目录/ controller / product / configurator.php product.php +一些编辑)。一切安好。您可以查看here

现在,我正在尝试将这两个产品添加到购物车,点击“添加到购物车”按钮。这两个产品总是相同的两个(product_id = 50和product_id = 51) 我是否必须修改“添加到购物车功能”,或者为每个product_id调用两次函数?任何方法都可以。

我发现了一些有价值的信息here,但我无法想象这个解决方案。请帮忙!

打开购物车1.5.5.1

2 个答案:

答案 0 :(得分:0)

替换

  $('#button-cart').bind('click', function() {

    $.ajax({
        url: 'index.php?route=checkout/cart/add',
        type: 'post',
        data: $('.product-info.first input[type=\'text\'], .product-info.first input[type=\'hidden\'], .product-info.first input[type=\'radio\']:checked, .product-info.first input[type=\'checkbox\']:checked, .product-info.first select, .product-info.first textarea'),

addtocart2(pid) {

    $.ajax({
        url: 'index.php?route=checkout/cart/add',
        type: 'post',
        data: $('#product-'+pid+' .product-info.first input[type=\'text\'], #product-'+pid+' .product-info.first input[type=\'hidden\'],#product-'+pid+'  .product-info.first input[type=\'radio\']:checked, #product-'+pid+' .product-info.first input[type=\'checkbox\']:checked, #product-'+pid+' .product-info.first select,#product-'+pid+'  .product-info.first textarea'),

并替换

 <input type="button" value="Adauga in cos" id="button-cart" class="button" />

 <input type="button" value="Adauga in cos" onclick="addtocart2(<?=$product_id ?>)" class="button" />

最后将html id添加到priduct-info div

<div class="product-info first">

替换为

<div class="product-info first" id="product-<?=$product_id?>">

我不知道你如何输出,所以$ product_id可能会更改为$ product ['product_id']或$ product2_id;

答案 1 :(得分:0)

所有更改均适用于 configurator.tpl
替换 $('#button-cart')。bind('click',function(){
 与

$('#button-cart').bind('click', function() {
 $.ajax({
    url: 'index.php?route=checkout/cart/add',
    type: 'post',
    data: $('.product-info.first input[type=\'text\'], .product-info.first input[type=\'hidden\'], .product-info.first input[type=\'radio\']:checked, .product-info.first input[type=\'checkbox\']:checked, .product-info.first select, .product-info.first textarea'),
    dataType: 'json',
    success: function(json) {
        $('.success, .warning, .attention, information, .error').remove();
        if (json['error']) {
            if (json['error']['option']) {
                for (i in json['error']['option']) {
                    $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>');
                }
            }
        } 

        if (json['success']) {
            $('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
            $('.success').fadeIn('slow');
            $('#cart-total').html(json['total']);
            $('html, body').animate({ scrollTop: 0 }, 'slow'); 
        }   
    }
});

$.ajax({
    url: 'index.php?route=checkout/cart/add',
    type: 'post',
    data: $('.product-info.second input[type=\'text\'], .product-info.second input[type=\'hidden\'], .product-info.second input[type=\'radio\']:checked, .product-info.second input[type=\'checkbox\']:checked, .product-info.second select, .product-info.second textarea'),
    dataType: 'json',
    success: function(json) {
        $('.success, .warning, .attention, information, .error').remove();
        if (json['error']) {
            if (json['error']['option']) {
                for (i in json['error']['option']) {
                    $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>');
                }
            }
        } 

        if (json['success']) {
            $('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
            $('.success').fadeIn('slow');
            $('#cart-total').html(json['total']);
            $('html, body').animate({ scrollTop: 0 }, 'slow');
        }   
    }
});
});

<div class="product-info">替换为
<div class="product-info first">(对于产品1)和与 <div class="product-info second">(产品2)

仅替换第二个产品
<input type="hidden" name="product_id" size="2" value="<?php echo $product; ?>" />
<input type="hidden" name="product_id" size="2" value="<?php echo $product_id_2; ?>" />

就是这样。