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

Drupal 订购后付款/不同的订单状态,drupal,ubercart,drupal-commerce,Drupal,Ubercart,Drupal Commerce,我正在建立一个drupal商务网站,我希望该功能能够让管理员处理订单并更改订单状态,然后用户会收到一个电子邮件链接,将其重定向到付款页面。这样的事情在第十八代drupal commerce或ubercart中可能发生吗 注意:uc_payafter在7.x中不起作用,我认为您可以结合Drupal商务和规则,或者进行一些调整 据我所知,您的场景是这样的: 用户下订单但不付款 管理员查看订单并批准付款 用户收到一封电子邮件,提示他付款 已付款订单标记为已完成 商务部已授权管理员编辑订单的状态。然后,

我正在建立一个drupal商务网站,我希望该功能能够让管理员处理订单并更改订单状态,然后用户会收到一个电子邮件链接,将其重定向到付款页面。这样的事情在第十八代drupal commerce或ubercart中可能发生吗


注意:uc_payafter在7.x中不起作用,我认为您可以结合Drupal商务和规则,或者进行一些调整

据我所知,您的场景是这样的:

  • 用户下订单但不付款
  • 管理员查看订单并批准付款
  • 用户收到一封电子邮件,提示他付款
  • 已付款订单标记为已完成
  • 商务部已授权管理员编辑订单的状态。然后,您可以在发送付款电子邮件的规则中捕获该事件。最大的挑战是在结账过程中进行干预,阻止用户在下订单后立即付款

    为此,您必须创建两个新订单状态。有关如何执行此操作的信息,请参阅。让我们将这些状态称为“等待批准”和“已批准”

    剩下的应该更简单,不需要编码:

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

  • 创建规则以注入我们的新状态:

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

  • 创建规则以防止用户进行签出:

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

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

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

    然后,要完成该过程:

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

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

  • 创建允许用户付款的规则:

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


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

    很高兴能够适应这样的结帐流程,而无需编写任何复杂的代码。但是,我会向Commerce Order实体添加一个字段来存储“approved”状态。这将排除取消的问题。