2012-03-11 43 views
1

在Magento中,一旦客户下订单,那些数据自动转到Sales_flat_order表或者物品相关信息转到sales_flat_order_item表等。 同样我也选择了Magento数据库中的一些列&在Magento数据库中创建了1个自定义表。 现在我的要求是,一旦客户的地方订购数据也必须复制到自定义表与Magento的默认表。如何将自定义表中的所有订单库数据与Magento默认表一起保存?

所以对于我创建一个MySQL查询通过连接将从Magento的表取我所需的所有数据&将其插入我的自定义表.... 现在我打算创建PHP文件,包括我上面的查询。

我的疑问是如何改变我的Magento代码,以便一旦客户下订单,我将调用此文件,以便通过该查询将数据复制到自定义表中。 我得到一些参考,因为当客户下订单时,它会在Onepage模型中使用saveOrder函数,这是在结算/型号/类型/ Onepage.php

所以任何人都可以告诉我在这种情况下我需要做什么。 ...任何人有这样的场景或示例代码一样... 或有任何其他想法...

PLZ指导我...

谢谢..

+1

你为什么复制存储的数据?有一些可以观察到的订单保存事件,但您需要一个相当强大的参数来复制存储。 – benmarks 2012-03-11 14:32:22

+0

嗨本,我复制存储的数据,因为我想从自定义表迁移到Oracle数据...因为我已经连接MySQL和ORACLE数据库通过PHP ...请你解释一下关于订单保存事件... – Prat 2012-03-12 18:32:51

+0

嗨Sonassi,请你解释一下如何在这种情况下使用MYSQL视图... – Prat 2012-03-12 18:43:15

回答

1

您可以按照我的提示在this answer但观察checkout_type_onepage_save_order_after事件。

+0

我会赶上sales_order_save_after – 2012-03-12 12:57:49

+0

嗨拉斐尔,你的博客是非常丰富和有用的。我创建了一个包含Magento销售订单栏的自定义表格。我通过Joins创建了一个查询,它从Magento表中提取数据并将其插入到自定义表中。我通过PHP连接了MySql和Oracle,我已经把这个查询放在这个php文件中。现在我想在Magento中放置一个事件,以便这个事件调用我的查询文件,这会导致在自定义表格中插入数据。 ...如果你有相同的PLZ的示例代码提供...或PLZ指导我... – Prat 2012-03-12 19:23:13

+0

我最好创建一个外部服务来做到这一点。我认为用额外的时间来惩罚你的客户在两个数据库管理系统中都不是一个好的选择。你可以使用Magento API来做到这一点。 http://www.magentocommerce.com/support/magento_core_api – 2012-03-13 11:09:21

1

为什么不使用MySQL触发器?

# target table name target_table 
# source table name Sales_flat_order table 

DELIMITER $$ 
CREATE TRIGGER ON_INSERT_AFTER_SALES 
AFTER INSERT ON Sales_flat_order 
FOR EACH ROW 
BEGIN 
    INSERT INTO target_table VALUES(field_one,field_two,...); 
END $$ 
DELIMITER; 
+0

嗨Oguz,感谢您的方法... – Prat 2012-03-12 19:27:56

+0

我可以使用事件观察者方法包括/执行外部PHP文件吗?怎么做? – Prat 2012-03-13 15:34:51

+0

亲爱的朋友,如果你的目标是使镜像表中的一个,最好的想法是触发。在上面的代码片段中,将源表的全部新行备份到目标表中。您也可以制作delet语法。我不明白你对事件观察者的理由! – 2012-03-13 19:32:52

0

您可以使用Magento的sales_order_place_after事件,为此创建一个观察者,并把你的代码到它。

+0

这不提供问题的答案。一旦你有足够的[声誉](https://stackoverflow.com/help/whats-reputation),你将可以[对任何帖子发表评论](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提问者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [来自评论](/ review/low-quality-posts/18888457) – Maher 2018-02-21 11:50:31

相关问题