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

13 评论 2.3万 浏览 122 收藏 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协议。

给作者打赏,鼓励TA抓紧创作!
更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 现在就有个需求,订单导入的,但不同的订单类型字段是不一样的,如果设计成一个模板,就会有很多空字段,并且要加很多字段说明,如果按订单类型分拆成多个模板,模板又会很多,像这种情况怎么设计会比较好?

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

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

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

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

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

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

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

    回复
    1. 谢谢提出建议~

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

      回复
  5. 不错

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

      回复
  6. 整理输出是个好习惯

    回复