我已在中创建了 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
答案 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; ?>" />
就是这样。