3

我正在建立一个 drupal 商务网站,我希望能够让管理员处理订单并更改订单状态,然后用户会收到一个将他重定向到付款页面的电子邮件链接。88er drupal commerce 或 ubercart 有可能做到这一点吗?

注意:uc_payafter 在 7.x 中不起作用

4

1 回答 1

6

我认为您可以通过结合 Drupal Commerce 和 Rules 并进行一些调整来做到这一点。

据我了解,您的情况是这样的:

  1. 用户下订单但不付款。
  2. 管理员查看订单并批准付款。
  3. 用户收到一封电子邮件,提示他付款。
  4. 已付款订单标记为完成。

Commerce 管理员已经编辑了订单的状态。然后,您可以在发送付款电子邮件的规则中捕获该事件。最大的挑战将是干预结账过程,阻止用户在下订单后立即付款。

为此,您必须创建两个新的订单状态。有关如何执行此操作的信息,请参阅http://www.drupalcommerce.org/faq/order-states 。我们将这些状态称为“等待批准”和“已批准”。

其余的应该更容易,不涉及编码:

  1. 创建一个页面,通知用户他的订单将很快得到审核和批准。

  2. 创建一个规则来注入我们的新状态:

    • 事件:订单保存前
    • 条件:对比数据,订单状态不变为购物车
    • 条件:比较数据,更新订单状态为Checkout
    • 操作:将订单状态设置为等待批准

  3. 创建规则以防止用户结帐:

    • 事件:Drupal 正在初始化
    • 条件:比较数据,页面路径包含“结帐”
    • 条件:对比数据,当前订单状态为等待审批
    • 操作:将用户重定向到您在步骤 1 中创建的信息页面

      现在,当用户尝试结帐时,订单被标记为等待批准,并且用户被分流到信息页面。管理员现在可以自由编辑订单并将其状态更改为已批准。我会推荐:

  4. 创建处于等待批准状态的所有订单的视图,包括“编辑”链接。

    然后,完成该过程:

  5. 创建一条规则,通知用户他的订单已获准付款:

    • 事件:订单已更新
    • 条件:订单状态为已批准
    • 行动:电子邮件用户

  6. 创建一个允许用户支付的规则:

    • 事件:Drupal 正在初始化
    • 条件:比较数据,页面路径包含“结帐”
    • 条件:比较数据,当前订单状态为 Approved
    • 行动:将订单状态更改为结帐

从这里开始,结帐过程将照常进行,直到完成。

请注意,如果在任何时候,用户在结帐过程中点击“取消”,订单将恢复为购物车状态,需要管理员再次批准。如果您不希望这种情况发生,您可以将“取消”链接主题化为优雅地“消失”。

于 2011-11-24T08:06:43.410 回答