ubercart放弃了在civicrm标记为已完成的订单

时间:2015-11-02 19:21:40

标签: drupal-7 ubercart civicrm

我正在使用drupal(7.38),civicrm(4.6.5),ubercart(7.x-3.8)和ubercart_civicrm(7.x-4.x-dev)。每当用户(注册/匿名)从站点购买产品时,贡献将被添加到civcrm用户。如果用户是匿名用户,系统将使用drupal和civicrm中的电子邮件创建用户。我注意到ubercart中的某些产品状态为“Abandoned”,但在相应的用户贡献标签下,该产品列为已完成。我最后扔掉了uc_civicrm模块,我在uc_civicrm / uc_civicrm.module找到了一些代码

function _uc_civicrm_map_contribution_status($order_status) {
  // NOTE: There may be a more "correct" way to do this.
  $map = array(
    "completed"        => 1,
    "payment_received" => 1,
    "pending"          => 2,
    "processing"       => 5,
    "canceled"         => 3,
    "in_checkout"      => 5,
  );

  if (array_key_exists($order_status, $map)) {
    $id = $map[$order_status];
  }
  else {
    // Oh no.
    $id = 1;
    watchdog('uc_civicrm', 'There is no status that maps to %order_status, marking as "Complete"', array('%order_status' => $order_status), WATCHDOG_WARNING);
  }

  return $id;
}

我想将ubercart订单状态与civicrm贡献状态同步。请帮我解决这个问题。提前致谢

2 个答案:

答案 0 :(得分:1)

如果你想映射“被遗弃的”'取消'取消'在CiviCRM中的状态(在CiviCRM中没有"放弃"状态)您可以像这样修改上述内容:

$map = array(
 "completed"        => 1,
 "payment_received" => 1,
 "pending"          => 2,
 "processing"       => 5,
 "canceled"         => 3,
 "abandoned"         => 3,
 "in_checkout"      => 5,
);

然后我建议制作一个错误报告/补丁on the issue you filed at the project page,以便在维护者同意的情况下进入模块核心。

答案 1 :(得分:0)

在我们有CiviCRM和Ubercart的一个网站上(这是Drupal 6)我们最终需要同时使用它们 - UC CiviCRM, - Ubercart CiviCRM Products 但是我看到后者只为D6发布了

最近,对于商业集成,我们已经从使用模块转为使用CiviCRM EntityDrupal Rules

不确定上述有多大帮助,但我想应该提一下。