ECShop 网上商店系统支持论坛's Archiver

桔子 发表于 2007-9-7 16:13

EC2.1.5 关于商品批量上传的说明

这篇文档为大家说明一下商品批量上传的方法,希望对大家有帮助。 :)

添加商品信息时有几个方面需要注意一下:
需要注意的地方(这块是借用大猪的说明):

步骤:在批量上传以前,需将商品的图片(包括原始图片、商品图片、缩略图)命名好,并上传到空间相应目录,再上传csv文件,上传完成后
1.在批量处理图片以前,说明如下:
原始图片=>不显示 (必须上传原始图片)
商品图片=>显示在商品页面的商品图(如未上传,商品页面商品图片显示为无图片)
缩略图=>显示在分类等页面中的缩略图,以及商品相册中(如未上传,列表及分类显示为无图片,商品相册显示为【x】)

批量处理后(建议使用【新生成图片使用新名称,并删除旧图片 】)此选项
说明如下:
原始图片=>生成缩略图
商品图片=>显示在商品页面的商品图
缩略图=>显示在分类等页面中的缩略图,以及商品相册中,如上传商品时无缩略图,则显示为 【X】

建议:建议在上传商品之前,将商品图片(包括原始图片、商品图片、缩略图)命名好,缺一不可,即使要使用同一图片,也应该复制成三个,并分别命名为001.jpg、002.jpg、003.jpg,不可在csv文件中将原始图片、商品图片、缩略图都指定为同一个图片,然后将所有图片上传到空间相应目录,再上传csv文件即可,因上传以后,缩略图不能自适应大小,则使用图片批量处理功能,处理说明如上,此时则可保证商品缩略图、商品图片、以及相册均显示正常。
PS:此过程会生成大量图片。

还有一个需要注意的地方:如果不是添加的虚拟商品的话一定要将“是否实体商品”这项添为1,否则的话为0。

关于批量上传商品,用excel添加商品信息,请按正确格式添加商品信息。
格式如下图:

[attach]4353[/attach]

最后把编辑好的excel文件的保存类型设为CSV(逗号分隔)(*.csv),保存好文件后就可以执行商品批量上传了。

[attach]4354[/attach]

[b]这里因为文件保存的类型是为CSV(逗号分隔)(*.csv),这种格式的文件是gbk编码的。所以上传csv文件时要选择“简体中文”。[/b]

点击确定后进入信息确认页面。

[attach]4355[/attach]

再次确定后。商品的批量上传成功,如果添加的是虚拟商品的话点击虚拟卡列表就可以查看你所上传的商品信息。如果是实体商品的话直接点击商品列表查看所上传的商品信息。

[b]上面的说明针对是gbk格式的csv文件。下面说一下保存为utf8格式的。也是先在excel里按正确格式添加商品信息,保存后将文件重命名为txt的纯文本文件。再打开txt文件、将txt的纯文本文件的编码格式存为utf-8的。接下来再执行商品的批量上传:[/b]

[attach]4356[/attach]

[font=宋体]点击确定后。

[attach]4355[/attach]
[/font]
[font=宋体]以下的操作同上就省略了。。。。


接下来就是图片的显示,因为批量上传时为了方便在上传图片时都是用了同一张。在前台各个图片为了能自适用各页面的显示,所以还要在后台执行 商品管理->图片批量处理。

[attach]4357[/attach]

[/font][font=宋体]执行完图片批量处理后每个商品图片为了自适应各页面的显示,会生成会生成5张图片,
关于多张图片的说明:
正常情况下上传一张图片。将产生以下几张图片:
原始图片 + 商品相册图片原始图(图片大小为上传图片大小)
商品图片 + 商品相册图片(以200*200 为例,大小约为5k-9k不等)
商品小图 + 商品相册小图(以100*100 为例,大小约为1k-4k不等)
如果你觉得图片太占空间,可以删除商品的相册图片。
生成多张图片是为了每个页面使用合适的图片,加快网页显示和避免用htm控制图片大小产生图片变形。再者图片虽然多,但自动生成的图片大小都不一样大。

做图片批量处理时要注意:如果不选中添加水印的话,只是生成商品的缩略图,而商品详细页面的图片还是保持上传时的原始图片的大小。为了自适应各个页面的显示所以要把生存缩略图和添加水印都选中(如果不需要图片上有水印的话可以在系统设置->商品设置 里将水印的透明度设为0)。
[/font]
[font=宋体]批量上传的样本[attach]4052[/attach]
[/font]

[[i] 本帖最后由 桔子 于 2008-1-29 14:04 编辑 [/i]]

乌龙球 发表于 2007-9-7 16:36

[url=http://bbs.ecshop.com/misc.php?action=viewratings&tid=32285&pid=75781]本帖最近评分记录[/url]
[table][tr][td][url=http://bbs.ecshop.com/space-uid-10663.html]QingHou[/url][/td][td]  2007-9-7 08:58[/td][td]  贡献[/td][td]  [b]+1[/b][/td][td]  好[/td][/tr][tr][td][url=http://bbs.ecshop.com/space-uid-6145.html]dakoumusic[/url][/td][td]  2007-9-6 18:02[/td][td]  体力[/td][td]  [b]+1[/b][/td][td]  顶[/td][/tr][tr][td][url=http://bbs.ecshop.com/space-uid-6145.html]dakoumusic[/url][/td][td]  2007-9-6 18:02[/td][td]  贡献[/td][td]  [b]+1[/b][/td][td]  再顶[/td][/tr][/table]

失落的天空 发表于 2007-9-8 11:21

UTF8格式指上传格式不对

ECSHOP 默认的是  UTF8 的格式, 所以如果[u][b][color=#ff0000]批量[/color][/b][/u]上的文件是[u][b][color=#ff0000]CSV[/color][/b][/u]格式的 ,且用EXCEL编辑的,那就一定不会是UTF8格式的了。因为ECXCL跟本就不支持UTF8格式。。      

但是如果把[u][b][color=#ff0000]CSV[/color][/b][/u]另保存为 TXT格式,再将TXT另存为 UTF8格式的TXT文件,那在[u][b][color=#ff0000]批量[/color][/b][/u]上传的时候 就会出现问题:    所有的列全都传到第一列去了就! (我想可能是 因为    分隔符不一样的关系, [u][b][color=#ff0000]CSV[/color][/b][/u]是 逗号 分隔符,保存后的TXT文件全都是   TAB  分隔符  。  不知道应怎么解决?

[[i] 本帖最后由 hoverlee 于 2007-8-21 09:58 编辑 [/i]]



[url=http://bbs.ecshop.com/member.php?action=credits&view=getattach][img]http://bbs.ecshop.com/images/default/credits_attachlist.gif[/img][/url]
附件
2007-8-21 09:56

[img]http://bbs.ecshop.com/images/attachicons/image.gif[/img] [url=http://bbs.ecshop.com/attachment.php?aid=3114&nothumb=yes]11111.gif[/url] (9.64 KB)
  
[img]http://bbs.ecshop.com/attachments/month_0708/20070821_82aca999f2326e5d5676XobvrKMHWWc8.gif[/img]


[url=http://bbs.ecshop.com/viewthread.php?tid=31540&highlight=csv%2B%C5%FA%C1%BF]http://bbs.ecshop.com/viewthread.php?tid=31540&highlight=csv%2B%C5%FA%C1%BF[/url]
-----------------------------------------------------------------------------------------------------------------------------------------------
关于批量上传的修改


正在调试网店的[u][b][color=#ff0000]批量[/color][/b][/u]上传功能,原[u][b][color=#ff0000]批量[/color][/b][/u]上传功能是[u][b][color=#ff0000]CSV[/color][/b][/u]文件格式的导入,在使用过程发现很多问题,如导入字段不全等。不知道大家有没有遇到过。现将原[u][b][color=#ff0000]CSV[/color][/b][/u]改为Excel  XLS文件格式导入。

具体修改如下:

1、加入lib_excel.php类库文件
将lib_excel.php拷贝入[商店根目录]/admin/includes   目录下
2、修改 [商店根目录]/admin/goods_batch.php 文件
行号 20 require('includes/init.php');
加入require('includes/lib_excel.php');

以下是原代码
行号 79-166

[url=http://bbs.ecshop.com/viewthread.php?tid=29773&highlight=csv%2B%C5%FA%C1%BF###][Copy to clipboard][/url] [url=http://bbs.ecshop.com/viewthread.php?tid=29773&highlight=csv%2B%C5%FA%C1%BF###][ - ][/url]
CODE:
    /* 将文件按行读入数组,逐行进行解析 */
    $line_number = 0;
    $goods_list = array();
    $field_list = array_keys($_LANG['upload_goods']); // 字段列表
    $data = file($_FILES['file']['tmp_name']);
    foreach ($data AS $line)
    {
        // 跳过第一行
        if ($line_number == 0)
        {
            $line_number++;
            continue;
        }
        // 转换编码
        if ($_POST['charset'] != 'UTF8')
        {
            $line = $iconv->convert($_POST['charset'], 'UTF8', $line);
        }

        // 初始化
        $arr    = array();
        $buff   = '';
        $quote  = 0;
        $len    = strlen($line);
        for ($i = 0; $i < $len; $i++)
        {
            $char = $line[$i];
            if ('\\' == $char)
            {
                $i++;
                $char = $line[$i];
                switch ($char)
                {
                    case '"':
                        $buff .= '"';
                        break;
                    case '\'':
                        $buff .= '\'';
                        break;
                    case ',';
                        $buff .= ',';
                        break;
                    default:
                        $buff .= '\\' . $char;
                        break;
                }
            }
            elseif ('"' == $char)
            {
                if (0 == $quote)
                {
                    $quote++;
                }
                else
                {
                    $quote = 0;
                }
            }
            elseif (',' == $char)
            {
                if (0 == $quote)
                {
                    $field_name = $field_list[count($arr)];
                    $arr[$field_name] = trim($buff);
                    $buff = '';
                    $quote = 0;
                }
                else
                {
                    $buff .= $char;
                }
            }
            else
            {
                $buff .= $char;
            }
            if ($i == $len - 1)
            {
                $field_name = $field_list[count($arr)];
                $arr[$field_name] = trim($buff);
            }
        }
        $goods_list[] = $arr;
    }


更改为

[url=http://bbs.ecshop.com/viewthread.php?tid=29773&highlight=csv%2B%C5%FA%C1%BF###][Copy to clipboard][/url] [url=http://bbs.ecshop.com/viewthread.php?tid=29773&highlight=csv%2B%C5%FA%C1%BF###][ - ][/url]
CODE:
    /* 将Excel文件数据导入数据库 */
  $line_number = 0;
  $goods_list = array();
  $field_list = array_keys($_LANG['upload_goods']); // 字段表
  Read_Excel_File($_FILES['file']['tmp_name'],$data); // 将文件数据读入数组
  foreach ($data[goods_list] AS $line) // $data[goods_list]  goods_list 为Excel工作表名
  {
      // 跳过第一行
    if ($line_number == 0)
        {
            $line_number++;
            continue;
        }
   
    // 转换编码
    if ($_POST['charset'] != 'UTF8')
        {
       foreach ($line AS $value)
      {
        $value = $iconv->convert($_POST['charset'], 'UTF8', $value);
      }
        }
   
    // 初始化
    $arr = array();
    foreach ($line AS $field)
    {
      $field_name = $field_list[count($arr)];
     $arr[$field_name] = trim($field);
    }
    $goods_list[] = $arr;
  }


[size=4][color=red]注意:导入的Excel文件格式字段必须和官方的字段顺序和格式一样![/color][/size]
[size=4][color=red]其中Excel的工作表名为:goods_list[/color][/size]

[url=http://bbs.ecshop.com/member.php?action=credits&view=getattach][img]http://bbs.ecshop.com/images/default/credits_attachlist.gif[/img][/url]
附件
2007-7-5 14:13
  下载次数: 21
[img]http://bbs.ecshop.com/images/attachicons/rar.gif[/img] [url=http://bbs.ecshop.com/attachment.php?aid=2535]goods_batch.rar[/url] (11.46 KB)
  


[url=http://bbs.ecshop.com/viewthread.php?tid=29773&highlight=csv%2B%C5%FA%C1%BF]http://bbs.ecshop.com/viewthread.php?tid=29773&highlight=csv%2B%C5%FA%C1%BF[/url]

szg_000 发表于 2007-9-8 16:17

3楼的真是实高手,我测试过了很好用,真是解决了 批量上传的一个大问题,Pfpf:) :victory:

失落的天空 发表于 2007-9-8 22:03

是转的论坛上的一个高手

windf 发表于 2007-9-8 22:25

支持一下,写的不错

lovevfp 发表于 2007-9-9 22:35

能够有助手就好了

zhhsys 发表于 2007-9-16 14:21

分享精神··顶····

zhhsys 发表于 2007-9-16 17:06

lib_execel.php类库文件
在哪里 ?····

啸风 发表于 2007-9-17 10:25

:P :lol 感谢贡献

我来了 发表于 2007-9-22 14:50

请教下修改后上传出现以下错误是什么原因呢?

Script died with reason: Failed to determine file size.
d:\www\dalanren\wwwroot\admin\includes\lib_excel.php(415): _die("Failed to determine file size.")
d:\www\dalanren\wwwroot\admin\includes\lib_excel.php(1445): dataprovider->dataprovider("C:\WINDOWS\TEMP\php2A7B.tmp",2)
d:\www\dalanren\wwwroot\admin\includes\lib_excel.php(1507): excelfileparser->parsefromfile("C:\WINDOWS\TEMP\php2A7B.tmp")
d:\www\dalanren\wwwroot\admin\goods_batch.php(85): read_excel_file("C:\WINDOWS\TEMP\php2A7B.tmp",)

qqf 发表于 2007-9-23 00:59

这么好的帖子,应该加精啊

失落的天空 发表于 2007-9-23 01:02

回复 #13 qqf 的帖子

恩 !听你的@加精:victory:

yinshidx 发表于 2007-9-23 20:34

谢了:lol :lol :lol

奶瓶 发表于 2007-10-4 15:26

:)  很不错的教程。多谢

随风小筑 发表于 2007-11-8 10:07

这个好得很。。。。:lol

vivalinux 发表于 2007-11-27 21:18

好贴,谢谢楼主

jinlink 发表于 2008-1-8 13:14

传上去了,不显示图片。在空间里又找不到删除。。。郁闷~

windas 发表于 2008-1-21 12:15

我批量上传了,只能在后台显示增加的商品,在前台看不到。请问这是什么原因?

zhangxule 发表于 2008-10-26 20:43

ecshop主机300元/

1:网页空间1G,IIS限制200个
2:支持ACCESS,200M,MySQL数据库
3:支持HTML/SHTML/ASP/ASP.NET/PHP/ZEND
4:支持FSO/AspJpeg/AspupLoad/Jmail/动易/新云/侨客
5:零三系列高速论坛型,可放置论坛
6:网通、电信、双线自由选
qq:187001591,187001592

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.