2011-11-17 84 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