将数据从CSV输入到PHP(Magento)对象,作为“导入”订单的一种方式


Feeding data from a CSV in to a PHP (Magento) object as a means of "importing" orders

我正在尝试使用Magento的订单对象以编程方式将订单数据从旧的销售点系统导入Magento。来自旧销售点系统的数据位于 .CSV 格式。

例如,如果我有一个.CSV 如下所示:

Email        ||     Firstname    ||    Lastname ||    GroupID
---------------------------------------------------------------
abc@abc.com  ||     John         ||    Smith    ||    General     

我将如何将其输入到Magento订单对象的这一部分?

// set Customer data
$order->setCustomer_email($customer->getEmail())
  ->setCustomerFirstname($customer->getFirstname())
  ->setCustomerLastname($customer->getLastname())
  ->setCustomerGroupId($customer->getGroupId())
  ->setCustomer_is_guest(0)
  ->setCustomer($customer);

我知道法师的命令对象远不止于此,但这仅仅是为了充实.CSV -> PHP 对象部分。我知道如何阅读.使用 PHP 将 CSV 放入数组中 - 没有概率,但在处理对象时我仍然很弱,而且我很难概念化如何处理这个问题。我用谷歌搜索了一下,发现其他人使用 Mage 的订单对象执行各种订单上传任务,但没有关于如何从 .CSV 文件。

首先,这个过程不是小菜一碟,原因很简单,与Magento的其他功能不同,你不能只为订单调用getModel()并加载订单实例。以编程方式下订单要复杂得多。

要创建Magento订单,您将需要更多信息,然后只需电子邮件,名字,姓氏和组ID。您将需要诸如账单地址,送货地址,付款方式,产品信息等信息。如果您没有这些信息,您的第一步是开始从旧系统中收集这些信息或找到信息的良好替代品。然后,您可以编写脚本,这些脚本可以从csv中提取数据并将其推送到Magento。我们之前已经这样做了(几年前在Magento 1.6.1上。由于保密问题(我不是为此编写代码的人,这也是付费 magento 扩展的一部分)我无法共享实际代码,但我可以与您共享我们用于 CSV 适配器的代码创建订单。

使用此链接获取代码 http://munjalmunshi.info/import_order.pdf

我的观点是:

1)首先将CSV文件上传到数据库。(用它创建一个表)。处理数据会更容易。

2)使用while循环遍历表格的每一行。每行将是一个单独的订单。

3)使用每行设置例如客户名称,数量,地址等。

按照该教程了解如何使用 magento 以编程方式下订单:

希望对您有所帮助,干杯