【问题标题】:Add product to cart using jquery ajax not working使用 jquery ajax 将产品添加到购物车不起作用
【发布时间】:2014-11-14 12:35:59
【问题描述】:

我正在使用 ajax 使用代码在购物车中添加产品:

$cart = Mage::getModel('checkout/cart')->getQuote();
$cart->addProduct($product,array('qty'=>1));
$cart->save();
Mage::getSingleton('checkout/session')->setCartWasUpdated(true);

当我单击添加到购物车时,这会成功添加产品(比如说 CPU),然后我添加任何其他产品(比如说笔记本电脑)然后它无法将笔记本电脑产品添加到购物车中,但是当我第二次添加笔记本电脑产品时时间然后它被成功添加到购物车。我无法找到问题所在。请帮忙。 提前致谢。

【问题讨论】:

  • ajax 调用中传递了哪些参数?你在控制台检查你的 ajax 调用了吗?
  • 是的,我已经检查过了,我已经从那里传递了产品 ID,它的值就在控制台中
  • 你们有现场演示来帮助调试吗?
  • 奥凯。在“addProduct”行之前打印变量“$product”的值,以确认正确的值。代码示例:var_dump($product); $cart->addProduct($product,array('qty'=>1));
  • 显示对象类型

标签: php jquery magento cart


【解决方案1】:

在 magento 中,添加到购物车过程是一个简单的表单提交过程,因此页面会重新加载。因此,基于 Ajax 的购物车作为一种解决方案来加快购买过程。分步流程:How to Add Product To Cart Using Ajax

【讨论】:

    【解决方案2】:

    只需在带有 url 属性的按钮上调用产品添加到购物车链接,例如..

    > <button type="button" title="<?php echo $this->__('add to cart') ?>"
    > class="button btn-cart addsample" url ="<?php echo
    > $this->getAddToCartUrl($_product) ?>"><span><span><?php echo
    > $this->__('add to cart') ?></span></span></button></div>
    

    现在使用这个 ajax 帖子。

    $j('button.addsample').click(function(){
                $j(this).attr('disabled','disabled');
    
                $j.ajax({
                                type: "POST",
                                cache   : false,
                                dataType: 'json',
                                url: $j(this).attr('url'),
                                data: data,
                                success:function(data){
    
                                    setTimeout(function() {
                                                window.location.reload();
                                        }, 1600);   
    
    
                                    },
                                error:function(){
    
                                        setTimeout(function() {
                                                window.location.reload();
                                        }, 1600);   
    
                            }
    
    
                });
    
        });
    

    在这里,我将 ajax 帖子发送到 magento 的默认添加到购物车控制器。希望这对您有所帮助

    【讨论】:

    • 我不能使用这种方法,因为我没有使用目录/产品页面来显示“添加到购物车”按钮的位置,实际上我已经做了一些自定义,并且我在不同的页面上显示产品所以 $this-> getAddToCartUrl($_product) 以空值响应。
    • 你能告诉我你的自定义代码来获取产品集合吗
    猜你喜欢
    • 1970-01-01
    • 2021-04-27
    • 1970-01-01
    • 2017-01-03
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    相关资源
    最近更新 更多