【问题标题】:Magento: Product dynamic price change on add to cartMagento:添加到购物车时的产品动态价格变化
【发布时间】:2013-07-11 07:25:51
【问题描述】:

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

【问题讨论】:

  • 我建议以编程方式为您要添加到购物车的产品添加不同的附加选项。 Magento 然后会将它们视为不同的报价项目,而不是将它们加在一起。然后,您可以使用 JS 从购物车 DOM 中删除这些选项,使它们不可见
  • 这绝对是一个想法,我会试一试,然后回复你。谢谢
  • 检查下面的链接,这可能对你有帮助。 stackoverflow.com/questions/9721583/…
  • 所以我决定正确地执行此操作,并在后端复制前端 JS 价格生成器。因此,我使用了下面链接中详述的方法,它应该为每个购物车项目提供自己的选项,这实际上与产品页面上选择的选项正确相关——甚至更好! stackoverflow.com/questions/9412074/… 我还没有完全测试,但希望价格不会被覆盖,因为它们是具有不同选项的不同报价项目。桑卡尔,谢谢你的链接。我会尽快更新。
  • 我已经解决了这个问题。一旦解除我作为新用户的限制,将更新主题

标签: magento


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-01
      • 1970-01-01
      • 2011-05-02
      • 2011-12-19
      • 2023-03-10
      • 1970-01-01
      • 2017-05-18
      相关资源
      最近更新 更多