【问题标题】:How to programmatically add to cart with order comment history in Magento如何在 Magento 中以编程方式添加带有订单评论历史记录的购物车
【发布时间】:2016-11-30 04:29:46
【问题描述】:

如何以编程方式将商品与一些预定义的文本一起添加到购物车中,这些文本会在订购后出现在评论历史记录中? 客户不应编辑此预定义的文本注释。它本质上用作订单项的元信息,履行订单的人需要了解。

如果这是不可能的,有没有其他方法可以为此目的将预定义的文本附加到购物车?

【问题讨论】:

    标签: magento


    【解决方案1】:

    对我来说最好的方法应该是为这个元信息创建一个产品属性,并在查看订单页面(或查看我不知道的发货)上将属性值显示到自定义 adminhtml 主题中。 这样您就不必创建观察者,订购商品属性,...... 不利的一面是,如果您更新产品中的信息,该值也会在过去的订单中更新。这可能是个问题。

    【讨论】:

    • 我需要添加的文本对于每个订单都会有所不同。你的解决方案能在那种情况下工作吗?
    • 不,这将是所有订单的相同文本。所以你需要对事件/观察者做一些事情,并将数据保存在 quote_item / order_items 中。您应该在 stackoverflow 上找到有关创建自定义订单项目属性的文章
    【解决方案2】:

    我正在做类似的事情,但不完全相同......

    我创建了一个模块,在将新产品添加到购物车时,我在其中向报价单添加了一些新的自定义值

    在模块中,我有一个观察者:

    <frontend>
        <events>
            <checkout_cart_product_add_after>
                <observers>
                    <mymodule_addtocart_observer>
                        <class>mymodule_addtocart/observer</class>
                        <method>myMethod</method>
                    </mymodule_addtocart_observer>
                </observers>
            </checkout_cart_product_add_after>
    

    在我的观察者中我更新我的报价

    public function myMethod(Varien_Event_Observer $obs) {
            $item = $obs->getQuoteItem();
            $quote = $item->getQuote();
            $quote->setData("myattribute", "myvalue");  
    }
    

    我猜你也可以在观察者中更新你的项目。

    希望对你有帮助……

    【讨论】:

    • 我试过这个,但我看不到“myattribute”在订单中的位置。我正在通过管理员查看订单
    • 在我的模块中我先在SQL表中创建了属性值:$installer-&gt;run(" ALTER TABLE '{$installer-&gt;getTable('sales/quote')}' ADD 'myattribute' int DEFAULT NULL COMMENT 'Description of my attribute'; ");
    【解决方案3】:

    我的解决方案...

    添加到购物车时,获取报价商品 ID,然后在磁盘上创建一个文本文件,以报价商品 ID 作为文件名。序列化您需要存储到此文件中的数据。然后为 sales_order_place_before 事件创建一个观察者。报价项目 ID 将传递给该事件,因此您可以引用该文本文件。

    不要使用会话来存储数据,因为即使用户注销并稍后重新登录,购物车项目也会保留。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多