B端产品设计——批量导入

35 评论 56496 浏览 425 收藏 9 分钟

编辑导读:批量导入是用户在工作中经常需要用到的功能,如何优化这个功能提升用户体验呢?本文将从两个方面展开分析,希望对你有帮助。

最近工作过程中,涉及到两次批量上传文件的设计,也存在一些异常情况等的困惑,参考了一切B端产品进行总结。

本次总结,参考了:钉钉、有赞、草料二维码、企业微信等产品和部分文章进行输出。

一、使用场景

    1. 一次性需填写的字段数量多,在excel中复制填写速度快;
    2. 数据多,重复提交浪费时间。

二、批量导入

1. 如何降低导入时错误概率?

1)提供下载模板

在列表页同时出现下载模板和批量上传按钮:

只出现批量上传按钮,在批量上传弹窗提供下载模板:

此处推荐第二种方式。第一种方式在点击批量上传时没有模板,需重新关闭点击下载模板。且下载模板的这一动作仅存在需批量导入时执行,一直置于列表页的话,本身操作就多的列表页又增加了一个按钮。

2)模板最好由产品/交互进行设计,重点要写清填写规则,避免规则不清晰导致用户填写错误

钉钉-批量导入:

企业微信-批量导入:

有赞-批量导入商品:

草料-批量导入:

模板设计要点:

  • 标明必填、选填
  • 对不可修改字段进行强调,避免用户随意输入
  • 时间格式的规范,2020-07-19,还是2020/07/19,还是2020.07.19,虽然后端可以几种格式都进行识别,但用户的输入可能远远不止三种,设计/后端无法对每种情况都进行排查,所以还是进行提示较好
  • 特殊符号的限制,例如中文和英文的逗号、括号在代码中不同的,如果没有进行双重识别,最好还是提示用户按什么语言输入
  • 在模板中根据标准,填写一行“较为真实”的数据,提供用户“抄写/模仿”

3)对于固定选项的字段,提供选择,而非输入(在模板设计时进行)

2. 上传情况有哪些?如何进行设计?

1)文件类型、大小

  1. 一般仅支持.xls 和 .xlxs 格式
  2. 文件大小看校验能力以及等待时长。为了节省服务器的空间和提高文件传输的速度,需要限制上传文件的大小。建议不要过大,目前我设置为2M的大小(这一点我不是很确定,与研发同事进行沟通,由于部分字段需进行校验判断,数据量大的时候会导致传输速度非常慢,因此2M是合理的范围)

2)部分成功、部分失败

对于部分成功、部分失败的数据而言,有两种方式。一为支持错误信息在平台上直接修改后保存,另一种为提供错误清单,重新上传。

前者开发较繁杂,一旦涉及数据量大时,修改起来比较耗时,且容易再次出错。

设计要点:

  • 提示成功上传n条,失败m条,提供<错误清单.xls>
  • 错误清单除了包括错误的数据,还需包括错误原因,例如:必填项漏填、填写错误、号码已存在、编号重复等。如果一条数据存在多处错误,通常程序只显示第一个错误原因,再次上传,再次提示另外的错误,直至正确为止。也可以一次性提示多个错误,开发同事拿着刀在等着而已。
  • 除了错误清单外,系统也可以直接在上传后显示错误的行数、信息。用户可以直接在原本的文件上进行修改,不需要进行下载<错误清单.xls>操作

3)列名与模板不一致/列的顺序不一致?

钉钉:钉钉是默认第几行是什么字段,与字段名无关。

例如第二行与第三行列名换了,但内容是对的,仍会上传失败。若手机号那一列写的是姓名,则会上传成功。

其它为识别列名,若列名错误,则提示错误。

无论哪一种都可以,但比较推荐识别列名。比较符合认知,及时列的顺序反了,仍能识别正确。

4)顶部填写须知去除后,是否支持上传成功?

  1. 钉钉:提示:文件列名不能被修改或删除,请重新导出模板
  2. 企业微信:上传成功

5)错误表单怎么设计?

提供每一条错误数据的错误原因。

6)数据重复,选择覆盖/跳过/上传失败?

根据不同场景,进行选择:

  • 若没有提供错误清单,则直接上传失败。避免用户得将表里面正确的数据去除,再修改错误的数据,不如一次性不上传;
  • 若是覆盖后不会造成影响,可以进行覆盖。例如员工的信息等;
  • 若是数据编号重复,会造成各种影响,或者直接不能编号重复的数据,则进行跳过,最后在错误清单中提示:编号错误即可。

例如,本次工作中,导入的数据会传到第三方的平台,数据一直都是不变的,正确即可上传第三方平台。那么就不存在去覆盖旧数据的可能。

虽然在B端产品中处处可见导入导出,但细究起来,仍还有很多点没有涉及到。目前仅是针对工作内容进行的拓展学习,可能还有部分坑没有躺过,可以进行交流。

B端的其中一个价值为提高效率,让导入导出更好用,更人性化、智能,才能提高使用效率。

 

本文由 @weag 原创发布于人人都是产品经理,未经作者许可,禁止转载。

题图来自Unsplash,基于CC0协议。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 若批量导入一对多的关系,如何处理,导入模板等应如何设置。比如:一个组下包含多名成员

    来自北京 回复
    1. 针对楼主这个问题我也想了解,期盼作者大大回复。

      来自广东 回复
    2. 直接传入多行,不校验组的重复
      例如A组下包含J、K、L三个人,可以传入三行:A-J A-K A-L,不去校验A的重复

      来自北京 回复
  2. 很有帮助,期待新的文章!

    来自上海 回复
  3. 看到一个公众号抄了这个

    来自北京 回复
    1. 诶?方便告知哪一个吗

      来自浙江 回复
  4. 你好,我想问一下,假如在导入时,可能会出现一种情况就是,导入字段会因为某个分类不同而改变,分类信息和这个字段都是必填项,这时候如果根据分类进行模板划分,会造成导入模板很多,导致最后用户的体验很不好,请问这个情况该怎么解决呢

    来自四川 回复
    1. 就比如说一个耗材当选择了规格类型为设备时,这个耗材对应的规格字段是设备,选择其他,对应规格是颜色+规格,这里面规格类型,规格字段都是必填项哈,这种情况如何处理呢

      来自四川 回复
    2. 这个得取决于场景。一张表格中,分类存在不同的场景多呢?还是分类只有1个的场景多。 如果是后者的话,考虑把分类前置是ok的,可参考有赞的导入商品。如果更多是一次上传就可以多种分类,那么在表格上的设计多花点心思。在程序解析上,如果为设备,则忽略到部分字段也是可以的。

      来自广东 回复
    3. 好的,分类不会存在多种场景,然后我的思路就是有两种,一种就是模板中填写所有字段信息,然后导入的时候由后端判断,根据规格型号与规格参数是否匹配来决定;第二种就是因为通用情况也就是大部分情况规格参数就只有规格,所有我建了三个模板,一个通用的,两个非通用,这样在最开始人为划分了

      来自四川 回复
  5. 太强了,正好需要!

    来自浙江 回复
  6. 你好,想请问下,如果需要导入带有合并单元格的EXCEL,同时希望导入后页面展示的也是带有合并单元格的,能实现吗?

    来自湖北 回复
  7. 请教一下,用哪种方式批量导入图片,比较高效呢?

    来自广东 回复
    1. 批量导入图片的话,我们现阶段是这样做的:假设商品A、B各有5张主图,现在有个场景是,我需要批量更新A、B商品的主图。
      功能的设计:
      1.用户上传rar格式的压缩包,压缩包中是商品A、B的主图,图片文件采用(商品ID+序号)的方式命名。商品ID用于确认该图片是归属于A还是归属于B,序号是确定该图片在商品主图中的顺序。
      2.压缩包上传成功,系统开始解析读取压缩包的文件。
      3.解析成功之后,执行替换更新操作,通过商品ID和序号,替换对应位置下的商品主图!

      回复
  8. 若导入的时候错误,怎样提示好一点,以及如何处理错误数据,覆盖还是新增,用户可以选择的话如何选择体验最好

    来自福建 回复
    1. 错误的场景有很多,需要一个一个整理出来如网络崩溃、格式错误

      来自山东 回复
  9. 电商后台商品分类

    回复
  10. 谢谢!!很有帮助!!!

    来自四川 回复
  11. 其实还有一个问题,导入过程刷新页面如何处理

    来自广东 回复
    1. 不知道你有什么好的思路。
      之前考虑过这个异常case。问过我司开发,回复是,导入表格后,客户端刷新了,服务端仍会执行代码。只是说用户无法知道执行结果。基于此,在前端加了个刷新的判断,如果监听到刷新事件,就弹窗告知。

      来自广东 回复
    2. 搞个导入任务列表就行了,告知用户当前有任务正在执行,可以看是什么文件以及目前执行进度

      来自广东 回复
  12. 现在就有个需求,订单导入的,但不同的订单类型字段是不一样的,如果设计成一个模板,就会有很多空字段,并且要加很多字段说明,如果按订单类型分拆成多个模板,模板又会很多,像这种情况怎么设计会比较好?

    来自广东 回复
    1. 暂不了解具体需求和场景,输出是如何显示的,输入也保持一致即可。
      同时考虑,是单种订单类型导入的场景多,还是存在多种订单类型导入的场景多。
      Q1:订单为什么需要导入?
      Q2:字段的数量是如何的?不同模板之间的差别是如何的?
      Q3:订单类型模板很多是多少?

      来自广东 回复
  13. 是否需要考虑限制每次批量导入的行数量?多少为宜,或者有没技术限制?

    来自广东 回复
    1. 根据使用场景来,若场景需要数据量级比较大/数据判断复杂时,可以与研发同事进行讨论。从技术层面能一次性上传多少数据量级以及用户的等待时间。或者让测试同学压力测下,是否符合产品方的需求
      目前我还没多大接触过极限值的情况,无法给出很好的答复

      来自广东 回复
    2. 要考虑实际的业务情况,如果实际应用场景确实需要一次导入超大量级的数据,可以考虑异步处理,通过消息等方式返回处理结果通知。这样用户就不需要在操作页面等待太久。

      来自北京 回复
  14. 如何更好的解决导入的模板里面有些选择内容不固定的问题呢

    回复
    1. 选择内容不固定指的是?文中写的提供的选项,是取值固定时才用的选择。如果不固定的自然还是以输入为主

      来自广东 回复
  15. 我最近做了两个批量导入功能,上传文件后校验成功的数据可以直接导入,不必再点一次确认导入(正确的数据不会也不必显示出来让用户确认),只要提供一个校验失败数据的下载按钮即可。这样做的好处是节省了一次点击

    回复
    1. 谢谢提出建议~

      来自广东 回复
    2. 得看数据的重要程度,如果是特别重要的数据。建议增加上传后的预览功能,并且让用户再次确认,避免误操作。

      来自北京 回复
    3. 今天评审完了,我发现一次就行了,因为已经校验过了,用户也没必要再去确认一下。也对用户上传之前的核对提出了要求。

      来自山东 回复
  16. 不错

    回复
    1. 谢谢。持续学习,持续输出。

      来自广东 回复
  17. 整理输出是个好习惯

    来自浙江 回复