zen-cart网站,模版,采集,二次开发

首页 » ZenCart » ZenCart教程 » 阅读文章

Zencart客户资料转移合并工具简版 Customers Populate v1.0

2014-12-01 14:48 8422 2 发表评论
标签:


很久没给大家分享点有用的东西了,今天抽空写了一个zencart客户资料转移合并工具,感觉还是有点用的,就分享给大家

主要的用途就是就一个zencart网站的客户全部迁移到另一个网站

<?php
// +----------------------------------------------------------------------
// | Project:Zencart客户资料转移合并工具简版 Customers Populate v1.0
// +----------------------------------------------------------------------
// | Explanation:2014-12-1
// +----------------------------------------------------------------------
// | Version: V1.0
// +----------------------------------------------------------------------
// | Authors: ezencart <info@ezencart.com QQ:40309022>
// +----------------------------------------------------------------------

header('Content-Type:text/html;charset=UTF-8');
require('includes/application_top.php');

function ez_get_customers_books($customers_id,$customers_default_address_id){
  global $db;
  $books_data=array();
  $books=$db->Execute("SELECT * FROM ".TABLE_ADDRESS_BOOK." WHERE customers_id=".$customers_id);
  while(!$books->EOF){
    $books->fields['primary'] = ($books->fields['address_book_id']==$customers_default_address_id) ? 1 : 0;
    $books_data[]=$books->fields;
    $books->MoveNext();
  }
  return $books_data;
}

function ez_get_customers_info($customers_id){
  global $db;
  $customers_info=$db->Execute("SELECT * FROM ".TABLE_CUSTOMERS_INFO." WHERE customers_info_id=".$customers_id);
  unset($customers_info->fields['customers_info_id']);
  return $customers_info->fields;
}

$customers_data=array();

//导出
if($_GET['toolaction']=='export'){
  $customers = $db->Execute("SELECT * FROM ".TABLE_CUSTOMERS);

  while(!$customers->EOF){
    $customers->fields['books']=ez_get_customers_books($customers->fields['customers_id'],$customers->fields['customers_default_address_id']);
    $customers->fields['customers_info']=ez_get_customers_info($customers->fields['customers_id']);
    $customers_data[$customers->fields['customers_email_address']]=$customers->fields;
    $customers->MoveNext();
  }
  file_put_contents(DIR_FS_SQL_CACHE.'/customers_data.log', json_encode($customers_data));
  echo '导出成功';
  exit;
}

//导入
if($_GET['toolaction']=='import'){
  if(!file_exists(DIR_FS_SQL_CACHE.'/customers_data.log')) {echo '客户资料文件不存在';die;}
  $customers_data_json=file_get_contents(DIR_FS_SQL_CACHE.'/customers_data.log');
  $customers_data=json_decode($customers_data_json,true);
  foreach($customers_data as $email_address => $email_data){

    $check_email_query = "select count(*) as total
                            from " . TABLE_CUSTOMERS . "
                            where customers_email_address = '" . $email_address . "'";
    $check_email = $db->Execute($check_email_query);
    if ($check_email->fields['total'] > 0) continue;  //邮箱已存在跳出

    $book_data=$email_data['books'];
    $customers_info=$email_data['customers_info'];

    unset($email_data['books'],$email_data['customers_id'],$email_data['customers_info']);

    //插入客户表
    zen_db_perform(TABLE_CUSTOMERS, $email_data);
    $customers_id = $db->Insert_ID();

    //插入客户信息表
    $customers_info['customers_info_id']=$customers_id;
    zen_db_perform(TABLE_CUSTOMERS_INFO, $customers_info);

    //插入地址表
    foreach($book_data as $book){
      $book['customers_id']=$customers_id;
      unset($book['address_book_id']);
      $primary= ($book['primary']==1) ? 1 : 0;
      unset($book['primary'],$book['address_book_id']);

      zen_db_perform(TABLE_ADDRESS_BOOK, $book);
      $books_id = $db->Insert_ID();

      //更新客户表默认地址
      if($primary==1)  $db->Execute("UPDATE ".TABLE_CUSTOMERS." SET customers_default_address_id=".$books_id." WHERE customers_id=".$customers_id);
    }
  }
  echo '导入成功';
  exit;
}
?>
<a href="?toolaction=export">导出</a>
<a href="?toolaction=import">导入</a>

使用方法很简单,只用将文件上传到网站根目录,然后浏览器运行http://xxx.com/customers_populate.php,导出后将cache/customers_data.log转移到另一个站的cache下,然后执行导入

相关日志:

评论 共2条 (RSS 2.0) 发表评论

  1. 小程 说道:

    厉害,什么时候也能弄出OPENCART 的客户资料转移?

  2. 有没有magento的分享一下 谢谢

发表评论

  • 
  • 插入代码

联系我 Contact Me

回到页首