2012-03-11 62 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

相關問題