php – 将自定义数据添加到Magento 1.6中的购物车项目
我一直在浏览互联网上的很多教程,但即使是Magento网站上的教程都是1.5或更低版本,甚至一些函数引用也不再存在.
我正在做的很简单,我将一个项目发送到Magento之外的自定义脚本,用户进行设计,然后客户可以从那里单击添加到购物车并将其添加回Magento. 我需要的是让设计的图像文件名是订单处理中显示的特定于订单项的数据,以及客户和管理的查看订单历史记录. 我有一个挂钩到checkout_cart_product_add_after的模块,并且能够获得以下信息:designs和designId. designId用于用户返回编辑设计的事件,因此重新加载设计,然后当项目被传回时,如果不同,则应更换设计和designId内容. 目前,我正在通过URL将产品添加到购物车,因为有关如何实际添加产品的示例在一定程度上起作用,但最终无法保存到购物车.我假设在Magento代码中STORE_ID和一些随机毛刺之间的差异. 我非常感谢指向更加可靠的信息,而不仅仅是翻阅旧的文档,看看是否有任何有用的东西可以摆脱它,它已经让我这么远,但它不是一个有效的方法来完成事情. 解决方法
这种方法有很多事情要考虑,有几种方法可以做到.如果有的话,它远非简单.
A)首先,看看是否可以使用现有的产品自定义选项实现这一点.如果有任何方法可以在不改变大量核心功能的情况下完成,那么它将使您的生活更轻松. B)就个人而言,我会考虑为您的自定义内容创建一个模型,并考虑该内容与sales / quote_item和sales / order_item之间的关系.您需要修改前端以将其带入,并且还需要管理区域来显示信息,并为管理员提供将自定义内容添加到项目的方法.这可能是您可以做到最彻底的方式. C)或者,您可以在将项添加到引用时向引号添加一组自定义数据.为此,您必须完全劫持添加到购物车的控制器.首先,从现有控制器中获取所有功能.查看Mage_Sales_Model_Quote :: addProduct()函数,您将看到它需要两个参数,如下所示: $quote->addProduct($product,$request); 其中$request的类型为Varien_Object,格式如下: $request = new Varien_Object(array( 'qty'=>$qty,'options'=>$options,'custom_options'=>$custom_options )); 以及$custom_options是自定义数据的数组. 这种方式很有用,但充满了危险.您需要确保复制原始“添加到购物车”控制器的所有功能,包括调度事件和设置所有会话标志.还有其他考虑因素.如果您的数据是特定于行项目,那么我们可以安全地假设您不希望Magento只是增加购物车中订单项的数量,因为特定数据适用于特定订单项.为此,您将覆盖Mage_Sales_Model_Quote,并复制getItemByProduct()函数以对该行项目运行不同的检查集以确定是否增加数量. 如果你不能做A,B是我的推荐方法.它可能在短期内耗费更多时间,但长期是更好的解决方案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |