订购后付款/不同订单状态

时间:2011-11-17 09:00:33

标签: drupal ubercart drupal-commerce

我设置了一个drupal商务网站,我想让管理员处理订单并更改订单状态的功能,然后用户收到一个电子邮件链接,将他重定向到付款页面。这种事情是否可能通过电动机drupal商业或ubercart来实现?

注意:uc_payafter在7.x

中不起作用

1 个答案:

答案 0 :(得分:6)

我认为你可以通过Drupal Commerce和Rules的组合来做到这一点,也许还有一些调整。

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

  1. 用户下订单但不付款。
  2. 管理员会对订单进行概述并批准其付款。
  3. 向用户发送一封电子邮件,提示他付款。
  4. 付费订单已标记为已完成。
  5. 商务部已经由管理员编辑订单的状态。然后,您可以在发送付款电子邮件的规则中捕获该事件。最大的挑战是干预结账流程,以阻止用户在下订单后立即付款。

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

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

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

    2. 创建规则以注入新状态:

      • 事件:保存订单之前
      • 条件:比较数据,未更改订单状态为购物车
      • 条件:比较数据,更新的订单状态为结帐
      • 操作:将订单状态设置为等待批准

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

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

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

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

      然后,完成该过程:

    5. 创建规则,通知用户其订单已获批准付款:

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

    6. 创建允许用户付费的规则:

      • 事件:Drupal正在初始化
      • 条件:比较数据,页面路径包含“checkout”
      • 条件:比较数据,当前订单状态为已批准
      • 操作:将订单状态更改为Checkout
    7. 从这里开始,结帐流程将照常进行,直到完成为止。

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