2011-06-28 138 views
2

我正在研究有兩種類型產品的商店:易腐食品和一般商品。食品必須始終通過FedEx過夜運送,其他商品必須始終通過USPS運送。如果有人從兩個類別訂購產品,則必須單獨發貨。Magento - 每個產品的設置載體

你知道的現有模塊或者配置的設置,將允許嗎?

如果沒有,這聽起來像一個自定義模塊,將是其他的解決辦法。在這種情況下,最好的方法是什麼?我認爲這會將訂單拆分爲多地址發貨,對於兩種貨運方式使用相同的地址。不幸的是,我不確定如何以編程方式執行此操作,因此任何教程/示例/資源都將不勝感激。

回答

3

可能是最簡單處理此問題的方法是爲每個產品類型創建兩個訂單,每個產品類型使用不同的承運商發往同一地址。從商店跟蹤的角度來看,這也使IMO更有意義,因爲您可以彼此獨立地處理每個問題。爲了讓你走上正確的軌道(因爲Magento在這部分本身特別神祕),你應該閱讀Inchoo programmatically create order in Magento的文章以及同一作者Programatically create customer and order in Magento with full blown one page checkout

基本上我看到這是怎麼回事是:

  1. 獲取客戶訂單
  2. 巡迴通過訂單內的每一個產品和兩個數組中把它分解爲每個產品類型
  3. 創建一個單獨的順序針對每種產品類型,並針對每種產品使用不同的送貨方式。

您可能需要擴展一些控制器,或者以非標準方式進行操作,並使用輔助函數,硬件部分將在訂單處理過程中集成付款/運輸模塊。通過這種方式,您可以創建完整的結賬流程,因爲Magento提供的一頁結賬功能並不會真正起作用,並且由於其使用AJAX的方式而難以工作。

另一種選擇是連接到Magento的預創建訂單事件,並使用已定義的訂單數據在兩個訂單中創建訂單,但這是我從未聽到或看到過的事情,所以您我必須這樣做,「蒙上眼睛」可以這麼說。

一種更簡單的方法是使用定義你的產品的運輸方式,這種方式,您只需添加和不關心的定製訂單的自定義字段。你只是對此作出反應,但跟蹤將成爲幾乎不可能的海事組織。

+0

感謝您的答案和資源的鏈接!儘管您的想法確實有道理,並且可以解決問題,但我不確定這是否適合本商店,因爲此網站一次只需一頁結帳和購買。也就是說,我認爲我可以試着改變你的想法,但不要在步驟3中創建單獨的訂單,而應根據產品類型將其分爲不同的運輸。 –

+0

其實,它看起來像多航運甚至不使用onepage結帳,所以這個論點是無效的:P我越想它,我認爲你的方法越有意義。我唯一的問題是:我如何處理向客戶收費?是否有一種安全/簡單的方式將兩份訂單合併收費一次,還是會有兩項單獨收費? –

+0

由於您將負責整個結賬流程,您可以爲兩者收取一次費用。這對你來說只是一個後端的事情,你必須重寫結賬流程來對兩個訂單進行排序,最簡單的做法是對整個產品的大訂單收取一次性費用,然後將它們分成兩個「子訂單「爲每個送貨地址。有很多方法可以解決這個問題,但是您需要找到一個適合商店的方法,但這是我能看到的唯一方法,它可以爲您提供管理數據所需的靈活性。 – unknownnf

0

覆蓋免費送貨模塊。

你可以設置適用於特定的產品,使他們「免費送貨」,而使其他產品您所選擇的主要貨商銷售規則。

您需要了解其工作原理,但是,問題是,Magento的確實有一些建在訂單分成兩個類別的出貨,雖然只上免費送貨銷售規則。但你有源代碼...