ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php – 将自定义数据添加到Magento 1.6中的购物车项目

2019-06-13 18:16:27  阅读:131  来源: 互联网

标签:php e-commerce magento


我一直在浏览互联网上的很多教程,但即使是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是我的推荐方法.它可能在短期内耗费更多时间,但长期是更好的解决方案.

标签:php,e-commerce,magento
来源: https://codeday.me/bug/20190613/1234465.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有