2011-11-17 67 views
3

Im建立一個drupal商務網站,我希望讓管理員處理訂單和更改訂單狀態的功能,然後用戶收到一個電子郵件鏈接,將他重定向到付款頁面。用eighter drupal電子商務或ubercart可以這樣做嗎?訂購後的付款/不同的訂單狀態

注:uc_payafter不7.x的

回答

6

工作,我想你可以使用Drupal商務部和規則的組合,也許一些調整做到這一點。

據我瞭解,您的情況是這樣的:

  1. 用戶下訂單,但不支付。
  2. 管理員概述訂單並批准付款。
  3. 用戶會收到一封電子郵件,提示他付款。
  4. 付費訂單被標記爲完成。

Commerce已經管理員編輯訂單的狀態。然後,您可以在發送付款電子郵件的規則中捕獲該事件。最大的挑戰是干預結賬過程,以阻止用戶在下訂單後立即付款。

爲此,您必須創建兩個新的「訂單狀態」。有關如何做到這一點的信息,請參見http://www.drupalcommerce.org/faq/order-states。我們稱這些狀態爲「正在等待批准」和「已批准」。

其餘的應該是比較容易的,沒有涉及編碼:

  1. 創建一個頁面,告知他的訂單將盡快審查和批准用戶。

  2. 創建一個規則來注入我們的新地位:

    • 事件:之前的訂單正在保存
    • 條件:比較數據,不變的訂單狀態是購物車
    • 條件:比較數據,更新訂單狀態是結帳
    • 行動:訂單狀態設置爲正在等待批准

  3. 創建規則來阻止用戶去結帳:

    • 事件:Drupal是初始化
    • 條件:比較數據,頁面的路徑包含「結賬」
    • 條件:比較數據,當前訂單狀態爲等待批准
    • 操作:將用戶重定向到您在步驟1中創建的信息頁面

      現在,當用戶試圖結帳時,標記爲等待批准,並且用戶被分流到信息頁面。管理員現在可以自由編輯訂單並將其狀態更改爲已批准。我建議:

  4. 創建的所有訂單在等待審批狀態,包括「編輯」鏈接視圖。

    然後,要完成這一過程:

  5. 創建規則,通知他的訂單被批准爲支付用戶:

    • 事件:訂單已更新
    • 條件:訂單狀態爲已批准
    • 操作:Email用戶

  6. 創建規則,允許用戶支付:

    • 事件:Drupal是初始化
    • 條件:比較數據,頁面的路徑包含「結賬」
    • 條件:比較數據,當前的訂單狀態爲已批准
    • 行動:更改訂單狀態收銀臺

從這裏開始,結帳過程將照常進行,直至完成。

請注意,如果用戶在任何時候點擊結賬過程中的「取消」,訂單將恢復爲購物車狀態,並且需要由管理員再次批准。如果您不希望發生這種情況,您可以將「取消」鏈接設置爲優雅地「消失」。

+0

很高興能夠適應這樣的結賬流程,而無需編寫任何複雜的代碼。但是,我會將一個字段添加到Commerce Order實體以存儲「已批准」狀態。這將排除取消問題。 – aross