Magento“编辑捆绑包->更新购物车”添加新捆绑包而不是更新当前捆绑包


Magento "Edit Bundle -> Update Cart" adds new bundle rather than updates current one

有一个奇怪的错误,似乎并没有困扰Magento论坛或网络其他部分的其他任何人。

当我转到购物车并单击"编辑"以更改捆绑产品的配置时,它会将我带到页面

".../checkout/cart/configure/id/<id number>/" 

我可以更改捆绑包的选项。 但是当我单击捆绑包页面底部的"更新购物车"按钮时,它会使用我刚刚选择的配置将一个全新的捆绑包添加到购物车中。 显然,我宁愿让它编辑当前的捆绑包,我相信它应该这样做 - URL 中的 ID 号显然是为此目的而设计的。

查看:

design/frontend/base/default/template/checkout/cart/item/configure/updatecart.phtml 

我看到它需要更新购物车按钮:

<button type="button" title="<?php echo $buttonTitle ?>" class="button btn-cart" onclick="
productAddToCartForm.submit(this)"><span><span><?php echo $buttonTitle ?></span></span></button>

我不确定它调用 AddToCart 表单而不是更新表单的事实是否与它有关? 另一个有趣的事情是,如果我看:

app/code/core/Mage/Checkout/controllers/CartController.php

有一个名为"configureAction"的函数 - 当您转到/configure url 并获取购物车项目 ID 时,它会运行。 还有一个名为"updateItemOptionsAction"的函数 - 这看起来像我想要的那个? 不过,它似乎没有被调用。

有没有人遇到过类似的问题? 我觉得我在正确的领域,但我似乎无法弄清楚为什么这不能开箱即用?

谢谢!

编辑:

为那些展望未来的人提供的解决方案....:

位于 {MY SKIN}/template/catalog/product/view.phtml 中的文件包含以下代码,用于添加到购物车按钮:

<form action="<?php echo $this->getAddToCartUrl($_product) ?>"

因此,即使"更新购物车"按钮正确显示,按钮的行为也会始终添加到购物车而不是更新购物车。 我把它改成这样:

<form action="<?php echo $this->getSubmitUrl($_product) ?>" 

它有效! 花了一段时间来诊断,因为Magento提供的默认/现代模板实际上是不正确的,并且将始终显示添加到购物车按钮而不是更新购物车按钮 - 所以当我恢复到"默认"模板测试行为时,这扔了一个扳手在工作中。

我和你有同样的问题,加上按钮的另一个小问题。 经过大量的搜索,我最终找到了一个论坛帖子,其中包含指向以下Magento维基页面的链接:

http://www.magentocommerce.com/wiki/4_-_themes_and_template_customization/how_do_upgrade_your_template_from_1.4_to_1.5

从本质上讲,模板中的结帐.xml文件可能存在问题。 我建议暂时删除 {YOUR-TEMPLATE}/template/catalog/product/view.html 并暂时删除 {YOUR-TEMPLATE}/layout/checkout.xml ,然后清除缓存文件,然后重试并查看问题是否已解决。 如果删除这两个文件可以解决问题,请重新恢复它们并将它们与原始基本版本进行比较,并使用消除过程,找出您自己的文件错误地缺少(或包含)哪些特定部分。

在我的特殊情况下,我错过了

<reference name="product.info">
  <block type="checkout/cart_item_configure" name="checkout.cart.item.configure.block"></block>
</reference>

在结帐.xml,在<checkout_cart_configure translate="label">部分下,根据该维基页面中的信息。