淘宝助理CSV图片导入到ecshop上问题标记

2016-07-07 15:01 来源:www.chinab4c.com 作者:ecshop专家

昨天从淘宝助理 V4.3 Beta2到产品资料为CSV出来,然后再ecshop上进行上传的时候,发现无法传上去,第一 淘宝格式是unicode编码, ecshop为utf8编码,无法兼容, 遂用editplus将csv打开另存为utf8编码,再次上传,效果好点,但是还不能顺利加上,遂就自行搞个笨点方法:

将csv导出来的图片更名 tbi 为 jpg格式,因为图时间,程序凑合,里面的路径自行制定。
  1. function pic_rename($abs_path, $old_prefix='tbi', $new_prefix='jpg') {
  2. if(!is_dir($abs_path)){
  3. die('图片目录为空!');
  4. }

  5. $root_image_path = dirname($abs_path);
  6. $new_image_path= 'D:/xampp/htdocs/services/images/201008/source_img';

  7. if(!is_dir($new_image_path)){
  8. mkdir($new_image_path);
  9. }
  10. if(!is_dir($new_image_path)){
  11. die('新目录为空!');
  12. }
  13. if($handle = opendir($abs_path)) {
  14. $i = $f = 0;
  15. while (false !== ($file = readdir($handle))) {
  16. if($file != '.' && $file != '..'){
  17. $new_file_name = str_replace('.tbi', '.jpg', $file);
  18. $abs_file_path = $new_image_path.'/'.$new_file_name;
  19. if(!copy($abs_path.'/'.$file, $abs_file_path)){
  20. echo 'failed to copy '.$file.' .<br>';
  21. $f ++;
  22. }else{
  23. $i ++;
  24. }
  25. }
  26. }
  27. }
  28. echo '成功处理: '.$i." 个, 失败: ".$f.' 个。';
  29. }
复制代码
上面只是会用到的图片更名函数,下面开始,因为我的淘宝店铺编码和ecshop里面的编码保持一致,所以为了方便,我将图片的名字也按照编码更名了。具体操作:
  1. $db_host = 'localhost';
  2. $db_name = 'test';
  3. $db_user = 'root';
  4. $db_password = 'joarshow.taobao.com';
  5. $db_handle = mysql_connect($db_host,$db_user, $db_password);
  6. if($db_handle){
  7. mysql_select_db($db_name);
  8. }
  9. mysql_query('set names utf8');
  10. $get_id_sql = "select goods_id,goods_sn from ecs_goods order by goods_id asc";
  11. $result = mysql_query($get_id_sql);
  12. $goods_ids = array();
  13. while ($row = mysql_fetch_array($result)) {
  14. $goods_ids[trim($row['goods_sn'])] = $row['goods_id'];
  15. }
  16. $abs_jpg_path = 'D:/xampp/htdocs/pic_rename/images_jpg';//更名的图片目录
  17. $abs_path = 'D:/xampp/htdocs/pic_rename/data.txt';//csv转过来的txt文本文件,列用######分隔开,一行结束用||||||,这个自行定.php操作csv就不多说了。
  18. $new_image_path = 'D:/xampp/htdocs/services';
  19. $file_data = file_get_contents($abs_path);
  20. $list_data = explode('||||||', $file_data);

  21. mysql_query('truncate table ecs_goods_gallery');
  22. mysql_query('alter table ecs_goods_gallery set auto_increment = 1');
  23. mysql_query("update ecs_goods set goods_thumb = '', goods_img = '', original_img = '' ");

  24. foreach ($list_data as $k=>$v){
  25. $items = explode('######', $v);
  26. $goods_sn = trim($items[0]);
  27. $taobao_price = intval(trim($items[1]));
  28. $image_str = substr(trim($items[2]), 0, stripos(trim($items[2]), ':0:0:|'));

  29. $real_img_path = 'images/201008/source_img/'.$goods_sn.'.jpg';
  30. //copy 更名到指定文件
  31. copy($abs_jpg_path.'/'.$image_str.'.jpg', $new_image_path.'/'.$real_img_path);
  32. $goods_desc = mysql_escape_string(trim(trim($items[3]), '"'));

  33. // $sql1 = "update ecs_goods setoriginal_img= '$real_img_path', shop_price= '$taobao_price',goods_desc='$goods_desc' where goods_sn = '$goods_sn'; ";
  34. $sql1 = "update ecs_goods setoriginal_img= '$real_img_path' where trim(goods_sn) = '$goods_sn'; ";
  35. $flag = mysql_query($sql1,$db_handle);
  36. // $sql2 = "insert into ecs_goods_gallery (goods_id, img_url, thumb_url, original_img ) values ('$goods_ids[$goods_sn]', '$real_img_path','$real_img_path','$real_img_path')";
  37. // $flag2 = mysql_query($sql2, $db_handle);
  38. // echo $goods_sn.' done! <br>';

  39. }
  40. mysql_close($db_handle);
  41. echo 'deal_done.';

  42. //操作完成之后,利用后台的图片批量处理生成其他缩略图即可。
  43. //执行图片批量操作之后,然后运行下面的sql语句,将图片导入相册中
  44. /*
  45. insert into ecs_goods_gallery(goods_id, img_url, thumb_url, img_original)
  46. select goods_id, original_img, goods_thumb, original_img from ecs_goods;
  47. */
复制代码
上面的操作针对性很强, 不要照搬,不然后果很严重, 只是提供思路而已,具体自己去完善。

回答:
大侠,请问,怎么把淘宝图片批量搞到ecshop 里面去呢。其他数据都批量了。。就是图片不幸

这个思路我觉得不错。但是我想是否可以将图片名字修改成 货号_G_XXXXXXXX.jpg 直接放在images/201107/source_img 文件夹下面呢。这样可以么