B端產(chǎn)品經(jīng)理必知:如何將第三方錯(cuò)誤信息轉(zhuǎn)化為友好型提示?

4 評(píng)論 6522 瀏覽 39 收藏 20 分鐘

在日常工作中對(duì)接第三方系統(tǒng)的時(shí)候,常見(jiàn)的小困擾是第三方系統(tǒng)返回的錯(cuò)誤信息的處理。為了方便理解,我們需要將錯(cuò)誤信息轉(zhuǎn)化為友好型提示,如何轉(zhuǎn)化呢?一起來(lái)學(xué)習(xí)一下吧。

作為一個(gè)B端或者SaaS產(chǎn)品經(jīng)理,在日常的工作中經(jīng)常需要對(duì)接第三方的系統(tǒng)。在對(duì)接第三方的系統(tǒng)的時(shí)候,比較常見(jiàn)的小困擾就是第三方系統(tǒng)返回的錯(cuò)誤信息的處理。

有一些研發(fā)能力比較強(qiáng)或者說(shuō)接口做的比較完善的第三方,他們返回的錯(cuò)誤信息會(huì)比較的齊全,會(huì)包含錯(cuò)誤碼,錯(cuò)誤信息和其他內(nèi)容等,我們可以通過(guò)這些信息知道發(fā)生了什么錯(cuò)誤,應(yīng)該要怎么解決。

B端產(chǎn)品經(jīng)理必知:如何將第三方錯(cuò)誤信息轉(zhuǎn)化為友好型提示?

截圖出自:Aftership的API文檔

同時(shí)第三方的API文檔中也會(huì)有一個(gè)公共的錯(cuò)誤碼查詢頁(yè)面,當(dāng)我們遇到了一些問(wèn)題之后,可以查看這些文檔去嘗試自己解決問(wèn)題。

B端產(chǎn)品經(jīng)理必知:如何將第三方錯(cuò)誤信息轉(zhuǎn)化為友好型提示?

截圖出自:速賣通的API文檔

但是在實(shí)際的工作中,我們也會(huì)發(fā)現(xiàn)有一些第三方的API其實(shí)做得很不完善。有一些錯(cuò)誤信息沒(méi)有規(guī)范處理,可能沒(méi)有錯(cuò)誤碼,也可能錯(cuò)誤信息都是一些偏術(shù)語(yǔ)性的程序錯(cuò)誤,導(dǎo)致我們拿到了錯(cuò)誤信息之后并不知道錯(cuò)誤信息到底是怎么產(chǎn)生的,應(yīng)該要怎么解決。類似于下圖的錯(cuò)誤,是在對(duì)接一些國(guó)際物流渠道的時(shí)候經(jīng)常會(huì)遇到的問(wèn)題:

B端產(chǎn)品經(jīng)理必知:如何將第三方錯(cuò)誤信息轉(zhuǎn)化為友好型提示?

DHL返回的錯(cuò)誤,即使翻譯了也看不太懂原因是啥

在跨境電商SaaS ERP或者SaaS WMS/TMS這一類系統(tǒng)中,以上問(wèn)題出現(xiàn)的頻率很高。尤其是SaaS ERP,因?yàn)樗枰獙?duì)接很多外部的第三方系統(tǒng),例如說(shuō):

  1. 對(duì)接電商平臺(tái),Amazon,eBay,Walmart,Shopify等;
  2. 對(duì)接物流商,國(guó)際物流(DHL,F(xiàn)edEx,UPS),跨境物流(云途,燕文,4PX)等;
  3. 對(duì)接海外倉(cāng),谷倉(cāng),萬(wàn)邑通,4PX,其他SaaS WMS等;
  4. 對(duì)接一些工具服務(wù)商,圖片翻譯,圖片編輯,支付收款,選品分析等;

這些第三方系統(tǒng),有一些是有比較專業(yè)的研發(fā)團(tuán)隊(duì),有一些則是不太專業(yè)的研發(fā)團(tuán)隊(duì),所以就會(huì)導(dǎo)致在對(duì)接完成了之后,用戶在使用的過(guò)程中如果遇到了問(wèn)題或者錯(cuò)誤,反饋回來(lái)的原始錯(cuò)誤信息有可能是不太好閱讀的,甚至是壓根對(duì)不上的錯(cuò)誤信息。

除此之外,由于要對(duì)接很多國(guó)外的系統(tǒng)(國(guó)際物流商),這些系統(tǒng)返回的錯(cuò)誤信息還有一些語(yǔ)言上的差異,例如說(shuō)德國(guó)的物流渠道會(huì)返回的錯(cuò)誤是德語(yǔ),法貨的物流渠道返回的錯(cuò)誤是法語(yǔ),即使是比較通用的英語(yǔ),有一些錯(cuò)誤信息還是需要借助翻譯工具才能理解其中的意思。

B端產(chǎn)品經(jīng)理必知:如何將第三方錯(cuò)誤信息轉(zhuǎn)化為友好型提示?

DHL Packet返回的錯(cuò)誤是德語(yǔ)

基于以上的背景,當(dāng)我們對(duì)接了大量的第三方系統(tǒng),而第三方系統(tǒng)返回的錯(cuò)誤信息可能是千差萬(wàn)別,甚至非常不利于客戶理解的時(shí)候,我們就需要考慮去對(duì)第三方系統(tǒng)返回的錯(cuò)誤信息做一個(gè)轉(zhuǎn)換處理,這個(gè)處理過(guò)程我稱之為:錯(cuò)誤信息轉(zhuǎn)化為友好型提示的過(guò)程。

一、什么是友好型提示?

當(dāng)用戶在使用系統(tǒng)的過(guò)程中,用戶并不關(guān)心系統(tǒng)背后對(duì)接了多少家第三方系統(tǒng),用戶甚至也不擔(dān)心在使用的過(guò)程中遇到報(bào)錯(cuò),用戶擔(dān)心的是報(bào)錯(cuò)看不懂,報(bào)錯(cuò)有誤,這種不確定性會(huì)很容易消耗掉用戶的耐心,從而讓用戶對(duì)系統(tǒng)產(chǎn)生一些負(fù)面的看法。

作為一款信息系統(tǒng)的設(shè)計(jì)者(產(chǎn)品經(jīng)理),我們都知道系統(tǒng)運(yùn)行發(fā)生錯(cuò)誤,提示錯(cuò)誤信息是不可避免的。但是我們期待的是,當(dāng)系統(tǒng)出現(xiàn)了錯(cuò)誤時(shí),呈現(xiàn)給用戶看到的東西是“友好型的提示”,也就是讓用戶容易理解,最好是能能讓用戶自主排查問(wèn)題、自行解決問(wèn)題的一種提示。

B端產(chǎn)品經(jīng)理必知:如何將第三方錯(cuò)誤信息轉(zhuǎn)化為友好型提示?

友好型提示案例1

如上圖所示,我在刊登產(chǎn)品到Shopify的時(shí)候報(bào)錯(cuò)了,系統(tǒng)告訴了我錯(cuò)誤原因是“Unavaliable Shop”,同時(shí)還告訴了我解決方案,是因?yàn)槲业牡赇伈豢捎?,需要重新授?quán),點(diǎn)擊就可以查看具體的授權(quán)操作幫助指引。

這種錯(cuò)誤提示對(duì)用戶來(lái)說(shuō)就是“友好型提示”,除了告訴我出錯(cuò)了,還告訴了我錯(cuò)誤原因是啥,我應(yīng)該怎么去解決這個(gè)錯(cuò)誤。

B端產(chǎn)品經(jīng)理必知:如何將第三方錯(cuò)誤信息轉(zhuǎn)化為友好型提示?

友好型提示案例2

上面這張圖反饋的也算是“友好型提示”,先告訴了我遇到了錯(cuò)誤,同時(shí)也告訴了我錯(cuò)誤原因是“account numer must be of the legth 14”,所以我要做的就是查看我的account number是否有超長(zhǎng)。

并不是說(shuō)“友好型提示”就一定要翻譯成中文或者一定要帶上解決方案,只要能讓用戶快速知道問(wèn)題所在,并知道怎么解決這個(gè)問(wèn)題,那么這種錯(cuò)誤提示都可以稱之為“友好型提示”

二、錯(cuò)誤信息如何轉(zhuǎn)化為友好型提示?

當(dāng)我們請(qǐng)求第三方系統(tǒng)的時(shí)候,從結(jié)果上來(lái)看,要么是成功的,要么是失敗的。如果只看失敗的情況下,失敗的提示也就分成兩種,要么是能看得懂的(友好型),要么是看不太懂的(非友好型)。

所以,當(dāng)我們討論怎么將錯(cuò)誤信息轉(zhuǎn)化為友好型提示時(shí),其實(shí)前提是將“非友好型”的錯(cuò)誤信息轉(zhuǎn)化為“友好型”的提示。因?yàn)?,有一些第三方系統(tǒng)是會(huì)對(duì)錯(cuò)誤信息處理好后才拋給請(qǐng)求方,這樣的錯(cuò)誤信息一般情況下都是友好型的,而有一些第三方系統(tǒng)則是因?yàn)榉N種原因,所以就直接將非友好型的錯(cuò)誤信息回傳給請(qǐng)求方了。

如果第三方回傳的是友好型提示,那么后端接收到了錯(cuò)誤信息之后,無(wú)需處理,直接傳給前端去展示對(duì)應(yīng)的錯(cuò)誤即可;如果第三方回傳的是非友好型提示,那么后端接收到了之后就需要額外處理、轉(zhuǎn)化加工之后再傳給前端,去展示處理后的友好型提示。

那么,后端怎么判斷第三方系統(tǒng)返回的錯(cuò)誤信息是友好型提示還是非友好型呢?

B端產(chǎn)品經(jīng)理必知:如何將第三方錯(cuò)誤信息轉(zhuǎn)化為友好型提示?

錯(cuò)誤信息轉(zhuǎn)化為友好型提示的示意圖

最簡(jiǎn)單的辦法就是在“錯(cuò)誤信息”和“友好型提示”之間,加上一個(gè)過(guò)濾器,也稱之為處理規(guī)則或映射機(jī)制。

當(dāng)系統(tǒng)接收到了第三方返回的錯(cuò)誤信息之后,將錯(cuò)誤信息推給處理規(guī)則,如果命中了處理規(guī)則,則返回處理后的數(shù)據(jù),即友好型提示;如果沒(méi)有命中規(guī)則,則返回原始的錯(cuò)誤信息。

系統(tǒng)增加一個(gè)“處理規(guī)則”的維護(hù)模塊,可以手動(dòng)創(chuàng)建多個(gè)處理規(guī)則,然后所有的錯(cuò)誤信息進(jìn)入系統(tǒng)之后,都去輪詢跑所有的處理規(guī)則,看是否命中了對(duì)應(yīng)的規(guī)則,如果命中了則按規(guī)則的配置進(jìn)行處理,如果沒(méi)有命中在,則循環(huán)下一個(gè)規(guī)則,直到所有的規(guī)則都循環(huán)處理完成。

B端產(chǎn)品經(jīng)理必知:如何將第三方錯(cuò)誤信息轉(zhuǎn)化為友好型提示?

處理規(guī)則其實(shí)也很簡(jiǎn)單,分成三部分,一個(gè)是規(guī)則基礎(chǔ)信息,一個(gè)是規(guī)則的匹配邏輯,另一個(gè)就是處理后的友好型提示。

基礎(chǔ)信息模塊,可以定義規(guī)則的名稱,規(guī)則適用于什么第三方物流服務(wù)商,以及規(guī)則的優(yōu)先級(jí)等,下圖的示意圖沒(méi)有設(shè)置優(yōu)先級(jí),是以對(duì)接的物流服務(wù)來(lái)舉例的,大家實(shí)際在設(shè)計(jì)的時(shí)候可以靈活的調(diào)整。

規(guī)則的匹配邏輯模塊,可以被匹配的原始錯(cuò)誤數(shù)據(jù)有兩類,一個(gè)是錯(cuò)誤碼,一個(gè)是錯(cuò)誤信息,而匹配的方式有三種,所以組合之后一共是最多6種匹配邏輯,這些匹配邏輯可以采用或的關(guān)系,也可以采用且的關(guān)系。

B端產(chǎn)品經(jīng)理必知:如何將第三方錯(cuò)誤信息轉(zhuǎn)化為友好型提示?

舉個(gè)例子,如果某第三方物流商的錯(cuò)誤碼和錯(cuò)誤信息如下圖所示,當(dāng)系統(tǒng)需要?jiǎng)?chuàng)建處理規(guī)則來(lái)匹配其返回的錯(cuò)誤碼或者錯(cuò)誤信息的時(shí)候,可以有很多種配置方式。

B端產(chǎn)品經(jīng)理必知:如何將第三方錯(cuò)誤信息轉(zhuǎn)化為友好型提示?

第三方錯(cuò)誤碼示意圖

針對(duì)錯(cuò)誤碼設(shè)置匹配邏輯,可以有“完全匹配”,“模糊匹配”,“正則匹配”,如下圖所示:

B端產(chǎn)品經(jīng)理必知:如何將第三方錯(cuò)誤信息轉(zhuǎn)化為友好型提示?

如果是針對(duì)錯(cuò)誤信息設(shè)置匹配邏輯,可以有“完全匹配”,“模糊匹配”,“正則匹配”,如下圖所示:

B端產(chǎn)品經(jīng)理必知:如何將第三方錯(cuò)誤信息轉(zhuǎn)化為友好型提示?

除此之外,還可以設(shè)置多條匹配規(guī)則,然后采用且或者或的關(guān)系進(jìn)行組合,有非常多的組合方式,很是靈活。

處理后的友好型提示模塊,必須要填寫的內(nèi)容是“友好型提示”,而“解決方案”是非必填的。當(dāng)?shù)谌皆嫉腻e(cuò)誤信息匹配了該條處理規(guī)則之后,系統(tǒng)會(huì)將“友好型提示”和“解決方案”的內(nèi)容傳給用戶展示。這樣用戶就可以看到處理后的提示,能更容易理解遇到了什么問(wèn)題,將要怎么處理。

B端產(chǎn)品經(jīng)理必知:如何將第三方錯(cuò)誤信息轉(zhuǎn)化為友好型提示?

同時(shí)也要注意一下,為了帶來(lái)更好的體驗(yàn),“解決方案”這個(gè)字段還可以支持維護(hù)超鏈接的文字,這樣用戶還可以直接點(diǎn)擊就跳轉(zhuǎn)到對(duì)應(yīng)的幫助手冊(cè)中。

B端產(chǎn)品經(jīng)理必知:如何將第三方錯(cuò)誤信息轉(zhuǎn)化為友好型提示?

用戶在前端界面看到的友好型提示

三、一些設(shè)計(jì)背后的思考

截止到寫這篇文章之前,我陸續(xù)做過(guò)2次的錯(cuò)誤碼映射轉(zhuǎn)化的需求,但是之前的方案感覺(jué)建模的過(guò)程搞混了,所以有一些邏輯沒(méi)有想清楚,就總覺(jué)得這個(gè)方案不太好,是不是還有什么更優(yōu)解之類的。

當(dāng)時(shí)設(shè)計(jì)方案的時(shí)候,一直把焦點(diǎn)放在了歷史的錯(cuò)誤信息上。期望的是當(dāng)一個(gè)新的錯(cuò)誤信息進(jìn)來(lái)后,先在歷史的錯(cuò)誤信息池中找一遍,看是否能找到對(duì)應(yīng)的錯(cuò)誤,也就意味著這個(gè)錯(cuò)誤曾經(jīng)發(fā)生過(guò),然后把之前的錯(cuò)誤信息對(duì)應(yīng)的處理方式賦值給新的錯(cuò)誤信息,相當(dāng)于就直接得出了這條新錯(cuò)誤的處理方式。

但是實(shí)際上,這樣的設(shè)計(jì)就是因?yàn)榻?duì)象搞錯(cuò)了,把重心放在了錯(cuò)誤信息池上,每次進(jìn)來(lái)的新錯(cuò)誤都要插入到錯(cuò)誤信息池中,同時(shí)還要標(biāo)記上對(duì)應(yīng)的處理規(guī)則,而這個(gè)處理規(guī)則是從歷史的錯(cuò)誤信息的處理規(guī)則復(fù)制過(guò)來(lái)的。這樣就會(huì)導(dǎo)致每次去匹配歷史的錯(cuò)誤信息都要花費(fèi)很多時(shí)間,因?yàn)殄e(cuò)誤信息池肯定是會(huì)無(wú)限膨脹,逐步增加的。

B端產(chǎn)品經(jīng)理必知:如何將第三方錯(cuò)誤信息轉(zhuǎn)化為友好型提示?

當(dāng)我為了寫這一篇文章,重新去對(duì)這些業(yè)務(wù)對(duì)象梳理、建模之后,發(fā)現(xiàn)只要把建模的核心放在處理規(guī)則上,其實(shí)這個(gè)事情就沒(méi)有想象中的復(fù)雜。因?yàn)樘幚硪?guī)則是少量的,是可控,也是相對(duì)來(lái)說(shuō)固定的,只要預(yù)設(shè)好處理規(guī)則,把它當(dāng)做一個(gè)管道,原始錯(cuò)誤進(jìn)入管道,能處理的就會(huì)變成友好型提示,不能處理的就會(huì)用原始錯(cuò)誤信息展示。只需要不斷地對(duì)這個(gè)管道升級(jí)和維護(hù),未來(lái)它能處理的消息數(shù)量、類型、種類等都會(huì)隨之提升。

B端產(chǎn)品經(jīng)理必知:如何將第三方錯(cuò)誤信息轉(zhuǎn)化為友好型提示?

在此,我分享一個(gè)之前看到的聚水潭ERP的處理方式,當(dāng)時(shí)單看這張圖的時(shí)候,我也想了挺久也搞不明白,但是結(jié)合我上面的分析之后,我發(fā)現(xiàn)看懂這張圖就不難了。

B端產(chǎn)品經(jīng)理必知:如何將第三方錯(cuò)誤信息轉(zhuǎn)化為友好型提示?

聚水潭ERP apiErrorMapping

四、總結(jié)

剛好最近在體驗(yàn)ERP的刊登功能,就發(fā)現(xiàn)了原來(lái)除了物流系統(tǒng)之外,其實(shí)很多系統(tǒng)都會(huì)需要與第三方系統(tǒng)對(duì)接,而且都會(huì)遇到這種錯(cuò)誤信息不利于用戶理解的場(chǎng)景,所以設(shè)計(jì)一套錯(cuò)誤信息的轉(zhuǎn)化規(guī)則還是挺有價(jià)值的。適用于不同的行業(yè),也適用于不同的系統(tǒng),學(xué)會(huì)之后可復(fù)用性很高。

我在寫這篇文章的時(shí)候,在網(wǎng)上找了一下,發(fā)現(xiàn)幾乎沒(méi)有看到什么相關(guān)的問(wèn)題,我猜測(cè)一方面是因?yàn)楫a(chǎn)品經(jīng)理可能沒(méi)有意識(shí)到這些錯(cuò)誤信息對(duì)用戶來(lái)說(shuō)體驗(yàn)可能不太好,或者意識(shí)到了但是不太懂技術(shù)也不知道這個(gè)東西還可以優(yōu)化;還有一方面就是來(lái)自第三方的錯(cuò)誤信息實(shí)在是太多了,這個(gè)工程量還是蠻大的,綜合考慮來(lái)看,這些優(yōu)先級(jí)可能會(huì)排的比較后;還是就是寫這種細(xì)節(jié)類、實(shí)操類總結(jié)文章太費(fèi)時(shí)間,而且不是大家愛(ài)看的選題……

在我日常的調(diào)研和體驗(yàn)多個(gè)SaaS/B端系統(tǒng)的過(guò)程中,我發(fā)現(xiàn)只有一些比較知名或者說(shuō)重視用戶體驗(yàn)的產(chǎn)品才會(huì)在這一塊投入較多的資源去優(yōu)化解決,其他同類型的競(jìng)品做了類似的優(yōu)化的比較少見(jiàn)。

對(duì)于跨境電商領(lǐng)域的SaaS產(chǎn)品來(lái)說(shuō),這一塊的優(yōu)化尤為重要,尤其是SaaS ERP。畢竟一款成熟的ERP對(duì)接的第三方系統(tǒng)實(shí)在是太多了,很難保證諸多第三方的API體驗(yàn)在及格線之上,既然如此,那還是選擇自己去做兜底的事情吧!

希望我的一些小小的思考能夠幫助大家,給大家一些啟發(fā),如果你們有更好的解決方案的話,也歡迎留言與我交流。

為我投票

我在參加人人都是產(chǎn)品經(jīng)理2022年度作者評(píng)選,希望喜歡我的文章的朋友都能來(lái)支持我一下~

點(diǎn)擊下方鏈接進(jìn)入我的個(gè)人參選頁(yè)面,點(diǎn)擊紅心即可為我投票。

每人每天最多可投35票,投票即可獲得抽獎(jiǎng)機(jī)會(huì),抽取書籍、人人都是產(chǎn)品經(jīng)理紀(jì)念周邊和起點(diǎn)課堂會(huì)員等好禮哦!

投票傳送門:https://996.pm/7V69p

專欄作家

我叫維他命(Vitamin),微信公眾號(hào):PM維他命,人人都是產(chǎn)品經(jīng)理專欄作家。前PHPer,做過(guò)在線教育類產(chǎn)品,也做過(guò)5年多的跨境供應(yīng)鏈方向的產(chǎn)品,現(xiàn)任某跨境電商ERP的產(chǎn)品負(fù)責(zé)人。主要專注于WMS/OMS/TMS/BMS/ERP等領(lǐng)域,分享跨境和供應(yīng)鏈相關(guān)的產(chǎn)品知識(shí)。

本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。

題圖來(lái)自Unsplash,基于 CC0 協(xié)議。

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 我來(lái)給TMS加上這塊功能。現(xiàn)在市面上datahub,估計(jì)那上面有相似功能.

    來(lái)自安徽 回復(fù)
  2. 有個(gè)問(wèn)題,這個(gè)規(guī)則庫(kù)是不是等于是被動(dòng)創(chuàng)建?就是當(dāng)報(bào)錯(cuò)代碼從未出現(xiàn)過(guò)的時(shí)候,就去創(chuàng)建一次?同一個(gè)接口可能有很多錯(cuò)誤代碼可能一開(kāi)始并不知道有具體多少,這樣的話是不是等于發(fā)現(xiàn)一個(gè)處理一個(gè)?

    來(lái)自河南 回復(fù)
    1. 對(duì)的,因?yàn)槟銦o(wú)法窮舉所有的錯(cuò)誤,只能通過(guò)發(fā)生的一些錯(cuò)誤去找規(guī)律,然后設(shè)置命中規(guī)則

      來(lái)自廣東 回復(fù)
  3. 很喜歡你的文章,能出一個(gè)跨境電商erp調(diào)研分享嗎哈哈哈

    來(lái)自福建 回復(fù)