Opencart - “添加到购物车”按钮,错误地将x2产品添加到购物车

时间:2015-10-23 15:26:16

标签: opencart mmenu

我全新安装了Opencart 1.5.6.4 - 链接为here

在我的所有产品页面(不是类别页面)上 - 当您点击“添加到购物车”时,它会添加所有内容的x2。

我尝试使用新的SEO标题,标题,产品,新型号重新创建产品 - 但是,它仍然会将它添加到我的购物车两次?

有什么想法吗?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

这绝对是用于导航栏的 mmenu jquery扩展程序的冲突或错误,并且包含在 jquery.mmenu.min中.all.js

注释掉这一行:

$('nav#menu').mmenu();

您将看到购物车按钮正常运行。不幸的是,这打破了导航栏。我希望我能告诉你更多,但也许值得联系该扩展的开发者:

http://mmenu.frebsite.nl/support/problem-solving.html

或在此处提出问题:

https://github.com/BeSite/jQuery.mmenu/issues

由于您似乎正在运行最新版本,如果确实存在错误,则尚未修复。我已经开始将 mmenu 标记添加到您的问题中,希望可能会引起某人的注意。祝你好运。

答案 1 :(得分:0)

[已解决]

  

在我所有的产品页面(而非类别页面)上-单击“添加”   放入购物车”,它会将所有内容加2倍。

您将具有两个用于控制“添加到购物车”按钮的功能。正确放置/执行代码将产生不同的结果。请参阅下面的代码段。

第一个位于/catalog/view/javascript/common.js:

function addToCart(product_id) {
    $.ajax({
            url: 'index.php?route=checkout/cart/add',
            type: 'post',
            data: 'product_id=' + product_id,
            dataType: 'json',
            success: function(json) {

第二个通常位于/ catalog / view / theme / template / 您的主题 /product/product.tpl:

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

如果您会注意到代码的 data 部分。一种是检查选项,然后添加到购物车,另一种是添加到购物车。

此代码段data: $('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\']:checked, .product-info input[type=\'checkbox\']:checked, .product-info select, .product-info textarea'), 正在检查选项,然后添加到购物车。通常在产品详细信息页面(product.tpl)上使用。 此代码段data: 'product_id=' + product_id,直接将产品添加到购物车,通常在网站上的其他位置(产品详细信息页面除外)使用。用户只需将商品添加到购物车然后结帐即可。

您将 2x件商品添加到购物车的原因是,因为您使用的是用于检查选项然后添加到购物车的代码段。要使任何添加到购物车按钮仅在购物车中放置一项(无需检查选项),您将需要使用data: 'product_id=' + product_id,

它看起来像这样

$('#button-cart').bind('click', function() {
$.ajax({
url: 'index.php?route=checkout/cart/add',
type: 'post',
data: 'product_id=' + product_id,
dataType: 'json',
success: function(json) {