【问题标题】:Opencart - 'Add to cart' button adding x2 products to cart incorrectlyOpencart - “添加到购物车”按钮将 x2 产品错误地添加到购物车
【发布时间】:2015-10-23 15:26:15
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您是否设置了产品的最小数量?如果是,那么如果用户输入的数量小于最小值,它将自动添加一个最小数量。
  • 感谢您的回复 - 这很有意义 - 但是最小数量设置为 1 - 这也适用于所有产品,而不仅仅是单独
  • 很抱歉回复晚了,但我认为您在集成产品详细信息页面时犯了一些错误。当我单击add to cart 按钮时,当我在控制台中检查时,有两个相同的请求以单个数量传递。这会导致添加您数量的 x2 产品。

标签: opencart mmenu


【解决方案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 标签,希望能引起有答案的人的注意。祝你好运。

【讨论】:

    【解决方案2】:

    [已解决]

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

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

    第一个在 /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/yourtheme/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: 部分。一种是检查选项,然后添加到购物车,另一种是添加到购物车。

    这个sn-p的代码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, 的sn-p 直接将产品添加到购物车,通常用于网站的其他地方(产品详细信息页面除外)。用户只需将商品添加到购物车然后结帐即可。

    您将 2x 项 添加到购物车的原因是因为您使用的是 sn-p 代码检查选项然后添加到购物车。要使任何添加到购物车按钮仅将一件商品放入购物车(不检查选项),您需要使用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) {
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-19
      • 2012-06-09
      • 2021-04-04
      相关资源
      最近更新 更多