簡單的批量導入功能還可以如何優(yōu)化
編輯導語:很多時候,我們都需要使用批量導入功能。這個功能看似很簡單,但其實設置起來并不容易。本文作者就為我們分析了批量導入功能還可以如何優(yōu)化,希望看后能夠對你有所幫助。
在跨境出口電商業(yè)務中,我們知道當買家購買了某個店鋪的商品時,即創(chuàng)建了一個電商訂單,接下來賣家將為買家揀貨打包;并通過合作的國際出口物流公司獲取包裹的物流單號,回填到電商系統給買家查看——這樣就完成了訂單商品的出庫發(fā)貨。
那么賣家是如何獲取物流單號的呢?
賣家通過物流系統獲取物流單號其實是一個下單的過程,即賣家在第三方物流系統中,創(chuàng)建了一個物流訂單,下單成功后,物流系統會給出物流單號并打印面單。
創(chuàng)建一個出口國際物流訂單,如USPS、UPS快遞等,需要錄入的字段包括但不限于:
發(fā)件人姓名、電話、發(fā)件地址、收件人姓名、電話、收件地址、包裹重量、運輸方式、服務渠道、訂單號、商品中英文品名、數量、單價、海關編碼等多個商品或包裹屬性信息。
以上字段中的收發(fā)件信息,以及商品信息都來自于電商訂單,也就是說賣家需要將電商訂單的相關字段信息錄入到物流系統,才能據此獲取到物流單號。
針對解決賣家將電商訂單信息錄入到物流系統中這一問題,目前市場上有以下一些方式:
- 較大的外貿電商企業(yè)會自研ERP系統,或者企業(yè)自行采購行業(yè)流行的ERP系統,都與主流的物流公司做了系統間的API對接,自動化程度較高;
- 但是還有一部分小賣家由于體量較小,沒有使用ERP做發(fā)貨管理,仍在使用物流公司提供的系統;
- 另外,還存在一部分賣家的ERP系統沒有實現與物流公司API的對接:一方面由于市場上的物流公司比較繁雜,參差不齊,只與主流的物流公司做了API對接;另一方面原因是賣家只是想暫時性短期試用而已,也是在單獨使用物流公司提供的系統。
綜上所述,相對于第一種方式,后兩種方式的自動化程度較低,都需要獨立使用物流系統。
由于Amazon、eBay等跨境電商平臺要求賣家的發(fā)貨時效,而且發(fā)貨訂單量較多(上萬單比較常見),這種情況下賣家根本無法依靠在第三方物流系統中一個個錄入來完成。
因為表單需要提交的字段非常多,人工的方式帶來的是更高的錯誤率和更久的工作時間,一旦錄入錯誤,將嚴重影響包裹的投遞,可能會導致理賠的產生,造成經濟損失。
因此,訂單逐個錄入的方式在降低賣家的工作效率的同時,也嚴重影響店鋪的時效性和買家滿意度,對物流提供商的好感度也隨之降低。
一、定位問題
通過上述場景我們發(fā)現,客戶想尋求短時間內快速將大量的訂單數據錄入到系統中的方式:一方面需要節(jié)省時間;另一方面要避免數據錄入錯誤。
所面臨的問題本質上是提升效率的問題,這包括數據錄入的便捷性和準確性,減少操作時間和操作人員,滿足企業(yè)降本增效的訴求。
如果無法完成大量數據的快速錄入,企業(yè)將無法及時的獲取物流單號,為企業(yè)贏得市場競爭力,降低買家購物滿意度,同時這也會使得我們流失賣家客戶。
二、功能方案
當客戶需要提交大量且多條重復性的數據時,如果要一條條錄入,的確花費大量時間,錯誤率也會提升。
依據經驗,我們知道針對數據的批量錄入,除了通過數據庫間的API自動傳輸方式,更高效的方式就是使用程序來讀取數據文件,實現線下數據到線上的批量導入,可以快速完成數據寫入。
需要導入的線下數據為賣家提供的外貿發(fā)貨訂單數據,此數據需要從外貿平臺中導出Excel表格文件;同時由于Excel文件天生又具有數據存儲和維護的優(yōu)越性,與數據庫字段信息的存儲方式具有高度一致性,因此我們把Excel格式作為線下數據導入文件的格式是比較合適的。
但是,不是任何Excel文件都可以隨意導入,由于創(chuàng)建出口物流訂單需要指定的字段信息,這就對要導入的的Excel文件有一定的要求:一方面要包括這些指定字段信息的名稱,另一方面在導入時可以被程序正確的讀取,并寫入數據庫。
而需要導入的數據可能來自很多外貿電商平臺,字段信息的存儲方式五花八門,沒有統一規(guī)則,因此就必須要統一一份系統要求的模板,規(guī)定需要哪些字段、字段的名稱、字段的格式等。
作為系統之間的數據橋梁,來自任何平臺的訂單數據文件,都要依照模板文件,統一字段名稱和字段格式之后才能被程序正確識別。
而且后續(xù)功能迭代過程中,如果導入規(guī)則發(fā)生變化,涉及到模板文件需要更改,這時候只需要更新一份對外的模板文件即可。
有了批量導入功能,賣家就可以預先把發(fā)貨訂單數據從外貿電商系統中導出,再批量復制字段信息填入系統提供的標準Excel模板文件中;將此文件上傳后,就可以導入所有訂單數據,批量獲取物流發(fā)貨單號了。
那么,簡單的批量導入功能,如何更好的設計使用體驗,才能在提升工作效率的同時,又能降低數據錄入的錯誤率呢?
回到功能的場景中,我們把批量導入功能分成三個環(huán)節(jié)來設計使用體驗。
1. 導入前:設計Excel模板
由于導入數據的模板需要客戶手動維護完整,確保各個字段的格式填寫正確。否則會導致第一步就出現導入失敗的結果,使用者卻很茫然,不知如何修改,反復導入錯誤,帶來工作煩惱。
例如:客戶在從源數據表格中復制“訂單號”這一列值,粘貼到目標模板文件“訂單編號”列的過程中,連同源數據表頭名稱一起復制,導致粘貼操作后,模板文件的表頭名稱“訂單編號”也被修改為“訂單號”;客戶沒有察覺,程序也無法正確識別。
再比如:客戶預報的包裹重量單位,有些平臺導出的是克、有些是千克。如果客戶沒有注意到模板文件的重量單位,模板也沒有對字段值做數據有效性校驗,也將會造成運費計算錯誤的嚴重后果。
因此,一份清晰易維護的模板,可以讓客戶在填寫表格階段加快維護數據的速度,降低后期導入錯誤的發(fā)生率。
設計模板時要依據業(yè)務要求梳理出所有相關字段以及業(yè)務字段的格式要求,將網頁表單輸入的要求映射到Excel單元格中,并著重考慮數據的完整性和規(guī)范性,需要注意以下幾點:
1)字段是否必須填寫
在創(chuàng)建一個物流訂單所需要提交的字段中,有些是必須要填寫,而有些可以選擇性填寫。目的僅僅是為了增加業(yè)務的準確度,但是不填寫并不會影響獲取物流單號。
因此,模板文件中可以使用標識,比如使用*號或者標記顏色,加快客戶完成模板文件的速度,例如收件人信息部分,紅色表頭為必填項:
2)選擇項字段的填寫
由于有些業(yè)務字段有多個規(guī)定值,需要在系統規(guī)定的類型值中選擇一個,無法讓客戶輸入自定義文本值,對于這些字段的錄入,單元格必須采用下拉選擇的方式。
如果采用輸入的方式,會發(fā)生填寫值與規(guī)定值不一致的問題,導入時系統無法正確匹配,就會發(fā)生錯誤。
例如:模板中“包裹商品是否帶電”這一字段,若讓客戶習慣性的填寫“是”或“否”,導入就會失敗,卻不易察覺。因此模板采用下拉列表的方式,要求填寫“Y”或”N”。
3)字段的長度與格式
為了確保寫入數據庫的字段值具備業(yè)務正確性,成功創(chuàng)建物流訂單,起初在模板中就要針對相關字段錄入做出要求與規(guī)定。
例如:美國境內“收件人手機號”字段不能少于10位,字段“商品英文品名”,要求不能含中文字符,字段“申報價格”僅能填寫數值。
4)鎖定表頭字段
模板導入數據有兩種方式,分別為順序匹配和列名匹配,順序匹配即指定模板固定列字段與數據庫中指定字段映射匹配,寫入數據庫,而列名匹配是依據模板中列字段名稱與數據庫字段名稱相同則匹配為原理。
無論哪一種方式,隨意更改模板文件的表頭,都無法按照程序的規(guī)則讀取數據。
例如:前文所提到的案例,模板文件中的“訂單編號”誤被客戶改為“訂單號”,但程序讀取僅識別“訂單編號”。
表頭:即表格的字段所在行,在讀取數據過程中是重要的識別信息,模板中會提前預設。
為了避免客戶誤修改表格的表頭名稱、順序,需要使用Excel功能鎖定表頭,禁止修改,以免導致導入時字段名稱與數據庫字段名稱無法匹配或字段值與數據庫字段匹配錯誤的結果,這種錯誤發(fā)生后是很難被覺察的。
5)友好的輸入引導
對于一些業(yè)務特別要求或者其它事宜,需要在表格中給予明顯的文字提示,引導客戶正確錄入。例如輸入重量,要告知重量單位、輸入收件國家;要使用國家簡稱,如US,最好可以給予一些輸入案例。
6)易辨識的文件名稱
回到功能場景中,當客戶下載完模板文件后,并錄入數據后,需要重新從本地選擇該文件。
如果下載的模板文件名稱難以辨識,如”template.xls”、“RSVp8ApVpZUt.xls”等,選擇文件的時候會產生困擾,也會導致出錯的可能。
例如“CreateParcelTemplate0810”作為文件名稱,其中”CreateParcelTemplate”表示此模板的場景用途是用于創(chuàng)建物流包裹的;類似的有“ImportCustomerTemplate”,表示用途為導入客戶資料模板;“0810”是此模板的下載日期,表示是今天獲取的模板文件,避免和本地的歷史模板文件混淆。
依據場景用途和模板文件日期作為標識,相對來說就比較方便的從本地選擇,否則如果導入了錯誤的文件,會直接得到系統的報錯,客戶卻懷疑是模板數據維護錯誤還是文件選擇錯誤?
7)模板文件的版本
由于業(yè)務變動的原因,模板文件可能會隨之變化,如果客戶仍然使用本地下載的歷史模板錄入數據,會導致導入失敗的情況。
因此模板文件需要支持后臺上傳新版本的模板文件,并在客戶的前端頁面相應位置提醒客戶重新下載模板文件,模板中也要標明文件的版本號,以防用錯。
2. 導入中:讀取寫入
1)寫入前校驗
導入模板文件后,系統首先需要檢查文件格式是否正確,非Excel表格文件禁止讀取。
其次,校驗表格文件的表頭。
表格在導入的過程中,會將表頭字段名與數據庫字段表作校驗匹配,只有只有完全一致才可以成功寫入數據庫,否則程序會報告某個字段名無法匹配的錯誤結果。
另外還需要檢查表格記錄間是否有空行或空列,否則程序在讀取數據的過程中遇到空行記錄認為讀取完全;遇到空列認為字段已經讀取完全,從而終止程序的進行,導致讀取不完整或讀取報錯。
2)忽略問題數據
當程序遇到字段值格式不合法時,直接跳過該行記錄的導入,繼續(xù)執(zhí)行下一行即可,不需要直接報錯。
否則,由于某一行的錯誤會導致其它所有數據都會無法導入,只有當人工找出錯誤行記錄并修正后,才能全部導入,客戶可能會沒有耐心。
更有效率的做法是,程序先寫入絕大部分正確的數據,有問題的記錄在導入結束后統一將導入報告反饋給客戶,修改后重新導入。
3)處理重復導入
考慮到手動維護模板文件過程中難免存在失誤的情況,重復導入就可能會發(fā)生。那什么特征的數據下會被認為是重復導入的數據呢?
——這就需要先了解數據記錄的唯一性。
由于的數據庫中的數據表在存儲信息時,會把某個字段用來標識數據記錄行唯一性,其值不得重復,也稱作主鍵字段或一級索引。
例如導入員工薪水,工號為主鍵字段,表示員工薪水的唯一性;導入外貿訂單,訂單號為主鍵字段表示訂單的唯一性。一旦多條數據記錄之間的主鍵字段值相同,就被程序認定為它們是重復記錄。
例如在導入訂單中中,存在兩行訂單號號均為“20062734325435345”的訂單記錄,第12行導入完成后,第15行條會被認為是重復記錄。
當程序讀取到重復記錄時,是直接覆蓋更新原先已導入的數據,還是直接停止導入,或者交給用戶選擇呢?不同的方式就會導致不同的導入結果,因此我們需要給出相應的處理方案,來確保導入結果的準確性。
回到客戶獲取物流單號的業(yè)務邏輯中,我們先分析一下為什么會導致重復導入的情況發(fā)生?有以下3種原因:
- 標識唯一性的訂單號是相同的,但其它字段值有不同:例如上圖的“運輸方式”,這種情況下由于系統無法判斷第15行的數據是否有效,就需要在導入完成后交給用戶自行選擇:不導入還是覆蓋第12行數據;
- 由于獲取物流單號是需要從客戶賬戶扣除費用的,在第一次導入后由于余額不足,大量外貿訂單即使已經導入物流系統,生成了物流訂單;但扣費不成功,導致獲取物流單號的狀態(tài)都是——獲取失??;充值后又需要再次導入一遍,重新批量獲取單號。因此對于物流單號獲取失敗的訂單記錄,可以允許再次導入重復的記錄;
- 操作失誤導致的,多條記錄行的各個字段值都完全相同。由于上述第二種情況的存在,這種情況可以禁止再次導入重復的記錄,但要求原導入的記錄已經成功獲取物流單號。
綜上,是否重復導入由兩個因素決定:字段是否完全重復和獲取單號狀態(tài),處理方式如下圖所示。
4)導入進度反饋
更重要的是,當客戶在導入成千上萬甚至更大量的數據過程中,加上程序性能、網絡環(huán)境等影響,會花費更多的時間等待;而客戶的心理可能是焦急的,對于當前導入的進度,當前的導入程序是否在正常運行,接下來會不會導入失敗,是渴望知曉的。
因此友好的導入進度反饋必不可少,通過頁面的提示,客戶可以知道當前已導入數量,做到心里有數。
5)異步處理
從技術的角度說,針對較大數據量的導入場景,可以采用異步的處理方式,進一步降低客戶的焦急心理。
所謂異步,就是頁面導入模板后,后端接收請求并執(zhí)行讀取和寫入任務;而此時客戶可以不用停留在原處等待,離開當前頁面去處理其它工作任務,等待片刻后再打開導入頁面查看導入結果。
避免了因采用同步的處理方式導致長時間等待的結果,客戶體驗會更好,工作效率也會更高。
3. 導入后:反饋結果
辛辛苦苦維護數據并完成導入,現在到了查看導入結果的時候了。
導入結果中,主要關心以下幾點:
1)核對數量
由于手動維護的模板文件中,難免會出現字段值填寫不合法、重復數據記錄等錯誤情況發(fā)生,這就會導致無法正確的一次性順利導入所有模板數據。
為便于客戶知曉錯誤發(fā)生的具體情況,就有必要知道導入成功數量、導入失敗數量和導入重復數量,并確保:失敗+重復+成功=總數量。這樣的導入結果反饋才會讓客戶覺得比較清晰、直觀,不會出現漏數據的情況。
如果沒有導入數量的核對,直接告訴客訴”導入成功”或“導入失敗”的結果,會讓人很迷惑;對模板數據的導入結果不清不楚,客戶可能還需要去相關的頁面上通過查詢來判斷哪些數據已經導入成功了,哪些數據沒有導入,容易核對混亂。
2)處理失敗記錄
核對完數量之后,由于數據未導入完全,接下來就需要給出未導入成功的具體原因了——方便客戶快速定位問題、查明原因,可以有目的性的去做相應修改調整,再次導入。
同時,針對失敗原因,我們要給出操作引導:
- 字段格式長度錯誤的數據,提示客戶修改模板后,重新導入即可;
- 扣費失敗的數據,提示客戶重新充值后,再次導入即可;
- 對于上文所說的第一種重復導入情況,需要客戶自行決定導入還是直接跳過;
需要再次導入的數據,可以支持匯總導出為Excel文件,方便直接修改;在導出的文件中對于字段不合法導致的問題,直接標紅數據所在單元格,客戶查找修改也比較方便;
三、總結回顧
批量導入功能在B端產品設計中很常見,是企業(yè)降本增效的重要功能形式。例如:
- 企業(yè)內部系統上線,需要批量導入企業(yè)客戶資料,做數據初始化;
- 企業(yè)財務做賬時,需要批量導入線下賬單,確保系統中財務數據完整性;
- 批量導入外部數據源,對數據源做系統化加工處理,再導出使用;
- ……
上述的解決方案從導入前、導入中和導入后三個階段,解釋了相應設計是如何為客戶帶來效率提升的,要考慮的細節(jié)體驗還是挺多的,稍有疏忽,都可能會導致數據寫入失敗,或者導入結果反饋不夠,但客戶卻不知道問題發(fā)生的原因,如何解決。
無論是導入賬單、訂單、員工資料還是學生成績,處理的方式都大同小異,前提是要明確場景下客戶要解決的根本問題,為客戶提供更好的體驗設計。
本文由 @小樂的產品筆記 原創(chuàng)發(fā)布于人人都是產品經理,未經許可,禁止轉載
題圖來自 Pexels,基于 CC0 協議
全面
我看你的導致重復導入,有3種原因,其實第二種失敗可以避免,只要excel文件格式處理沒問題??蛻粝到y金額不夠,也可以導入,單獨在訂單列表加個tab扣款失敗,客戶充值后,再進行批量扣款。雖然不了解你們物流系統,只是個人建議哈。
學習了,真的很有用!幫助很大
想請問下,選擇文件后立即執(zhí)行上傳操作和 選擇文件后點擊“確認”則執(zhí)行上傳操作,哪一種交互好點呢?各適用于什么場景呢?
個人覺得,如果你選擇附件是最后一步的話,選完附件就執(zhí)行導入沒有問題,如果這個頁面上還有其他操作的話,比如選擇重復時覆蓋,還是重復時跳過等等選項,那就最好有個確認的動作。
寫的好棒
學習了
馬一下
學到很多