Magento:产品动态价格变化加入​​购物车

时间:2013-07-11 07:25:51

标签: magento

我想要一个基本上是计算器的产品,我将用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);
    }
}

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

Magento - Quote/order product item attribute based on user input

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

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