3

我想要一个基本上是计算器的产品,我将用 Javascript 构建它。我希望添加到购物车过程从页面中获取生成的价格并将其提交到购物车 - 这是我所拥有的。

我创建了一个观察者来挂钩 checkout_cart_product_add_after 事件并根据提交的表单中的字段值更新报价项目价格,这很有效。

我遇到的问题是,如果您添加具有不同价格的第二个或多个版本的商品,它会将购物车中的所有其他版本更新为相同的价格 - 所以您永远不会在购物车中拥有多个相同的商品不同的价格。

有人有想法么?这是我观察者的代码:

public function modifyPrice(Varien_Event_Observer $observer) {
    $customprice = $_POST["customprice"];       
    $item = $observer->getQuoteItem();
    $item = ( $item->getParentItem() ? $item->getParentItem() : $item );
    if ($customprice > 0) {
        $item->setCustomPrice($customprice);
        $item->setOriginalCustomPrice($customprice);
        $item->getProduct()->setIsSuperMode(true);
    }
}
4

2 回答 2

0

感谢 McNab,我遵循了为添加到购物车的每个项目添加自定义选项的方法,以克服它覆盖价格的问题 - 这非常有效。

此外,我决定实际获取 JS 用于生成自定义价格的产品页面上选择的选项,并根据所选选项在后端复制该价格生成。在将产品传递到购物车之前,使用以下说明将自定义选项动态添加到产品中:

Magento - 基于用户输入的报价/订单产品项目属性

这使得价格计算更加安全,然后选择的选项显示在购物车和订单详细信息中,并且没有价格覆盖问题!

我关于 Stack Overflow 的第一个问题,这是一个地狱般的社区,谢谢大家。

于 2013-07-11T19:06:26.540 回答
0

我认为实现此功能的唯一方法是动态创建具有新价格的新产品,或者您尝试使用替换价格的属性,而您必须将此逻辑编码到您的购物车以及结帐中。

于 2013-07-11T10:03:16.723 回答