2011-09-12 83 views
2

大多數編碼人員很可能已經有在不同平臺(開發階段生產)上工作的習慣。在我工作的公司裏,他們也擁有部署Magento企業版(v1.9.0.0)實例的不同平臺。Magento客戶/訂單轉移

大約2個月前,我們的團隊花了量產版數據庫備份開始從(相當大的開發項目工作的有關內容(產品圖片,描述,......)和自動產品裝載。

目前所有的修改都已經部署在分段平臺上,包含最近兩個月前訂購的訂單的訂單信息。

在購買了一個(編碼嚴重且充滿bug的)擴展程序用於導出和導入訂單(包括訂單信息,報價,運輸信息和客戶信息)不能正常工作我決定從p中複製所有下列表格roduction網站:

  • 所有表開始customer_
  • 所有表開始S_
  • 所有表開始sales_

我進口他們對我的開發平臺(只是爲了嘗試一下, 它的工作原理!:O 所有訂單,運輸,貸項通知單和客戶信息均保留並似乎完全正常。

這裏是實際的問題: 會不會有可能發生衝突的一個機會東西訂單/客戶相關的這樣的未來?據我所知,訂單僅將關係與客戶和客戶地址進行關聯,而不涉及實際的產品(至少我認爲它們通過SKU鏈接,而不像magento中的大多數產品通過產品entity_id鏈接)

這被事實如果您從magento實例中刪除所有產品,則所有訂單和客戶信息都會保留並完全正常工作。

編輯:這實際上工作;)

+0

是否有你不想複製整個數據庫的原因? –

+1

@Joe Constant:是的,我們做了很多修改(包括添加模塊,屬性,屬性集,類別以及其他一些與後臺相關的設置); – Kenny

+0

@Anton是正確的。 Magento有外鍵設置的地方,有些地方沒有。但仍有應用程序鏈接。產品ID *存儲在報價/訂單表中,這就是Magento在需要時查找參考的方式。你最好通過代碼而不是手動添加屬性。任何類別的變化,你將不得不在生產(或使用導出/導入過程遷移變化) –

回答

1

你是這個接近周圍走錯了路。如果你有EE,那麼它捆綁內容分段程序,你應該使用它來改變你的內容。

是的,它肯定會導致問題,因爲所有與其他訂單相關的內容(如發送發票)的所有關係,所有對象屬性可能只是獲得新的entity_id,並且這最終會在某處沿着你的道路混亂。

如果您將屬性集和屬性添加到大型安裝中,則始終建議將它們實現爲擴展安裝例程,以便您可以移動代碼庫,並且所有更改都會自動填充到將來可能連接的任何數據庫中。

+0

這不僅僅是默認的magento內容,只是爲了讓您對我所談論的內容有所瞭解:我們有超過1k個表格在默認的magento表格旁邊保存所有產品信息,因此我所討論的內容是不同於你所說的內容;);但無論如何感謝。至於添加特定模塊所需的額外屬性,我們的團隊很好地使用默認的magento方式(安裝和更新腳本...) – Kenny

+0

那麼你問的問題是什麼。你應該問如何同步兩個mysql數據庫 –

2

這可能有點遲了,但我最近多次遇到這種情況,這是一個很好的問題,重要的是要意識到這一點,以避免將來與客戶/銷售關係出現問題。

在撰寫本文時,最新的Magento版本是1.7.0。2,是的,與生產和開發網站合作的習慣很可能,因此在開發過程中轉移新的銷售和客戶是一個重要的步驟,如果對DB沒有經驗,則不應該延長,所以這裏有雲:

  • 這是正確的的是,轉移customer_sales_表將正確,安全地傳輸所有數據。
  • 之後,必須只更新eav_entity_store表的increment_last_id每個行。

做了上面的最後一步,避免了新的訂單,發票,運輸或creditmemo忽略新的ID,並確保新的訂單從轉移的訂單離開的地方開始。

它可能有點混亂,但它是一個非常簡單的步驟。這種情況下,這個Article更詳細地解釋它。

1

有此腳本:

https://github.com/iateadonut/magento_copy_customer

抓住它通過一個命令一個客戶,他的所有訂單:

$ MG-> copy_customer(1234);

如果1234是customer_entity.entity_id - 您可以查看源代碼,看看如何查詢表格限制以確保抓取所有行。

+0

這個腳本是否與Magento 1.x兼容? –

+0

對不起。我不知道。我很久沒有在Magento工作過。讓我們知道它是否適合您。 – iateadonut