從兩個不同的視角,拆解ERP和WMS的對接
這篇文章,作者通過兩個不同的案例,用“兩個不同的視角”來給大家拆解一下ERP和WMS的對接背后,有哪些業(yè)務(wù)知識、產(chǎn)品知識,技術(shù)知識和可借鑒學(xué)習(xí)的經(jīng)驗之談。
之前我寫過一篇文章“不懂技術(shù)的產(chǎn)品經(jīng)理,怎么搭建OpenAPI平臺的項目?”,主要是以一個海外倉WMS產(chǎn)品經(jīng)理的視角來闡述如何搭建海外倉WMS的OpenAPI平臺,這種主動去搭建對外的OpenAPI平臺的機會在B端產(chǎn)品經(jīng)理的日常工作中并不多見,反而是自己作為需求方 然后去對接外部的系統(tǒng)接口這種活會做的更多一些。
很多沒怎么做過相關(guān)類似工作的產(chǎn)品經(jīng)理,同時自己可能又不太懂技術(shù),就會在這件事上有點犯怵,有點困惑。不知道怎么去整理接口文檔的核心邏輯,怎么去輸出產(chǎn)品需求文檔, 怎么去和研發(fā)交付、評審需求等。
本篇文章,我就用“兩個不同的視角”來給大家拆解一下,關(guān)于常見的ERP和WMS的對接,這背后有哪些業(yè)務(wù)知識、產(chǎn)品知識,技術(shù)知識和可借鑒學(xué)習(xí)的經(jīng)驗之談。
為什么說是“兩個不同的視角”呢?因為在日常的工作中,我們往往要么只負責(zé)ERP項目,要么只負責(zé)WMS項目,很少會有機會同時負責(zé)ERP,又負責(zé)WMS。所以這里提到的兩個視角,其實就是ERP的視角和WMS的視角。
- 作為ERP的視角:我是電商ERP或者內(nèi)部ERP,需要對接外部三方倉庫,然后把相關(guān)的單據(jù)指令推送到倉庫,讓倉庫按指令去完成收貨、出庫等。
- 作為WMS的視角:我是對外提供服務(wù)的倉儲服務(wù)商,有一個或者多個實體倉庫,也有一套相關(guān)的WMS系統(tǒng),我需要對外開放自己的OpenAPI,讓相關(guān)的客戶接入到WMS中,可以通過接口給WMS下發(fā)作業(yè)指令。
一、作為電商ERP,對接外部WMS
維他零售公司,之前都是做線下的批發(fā)和零售業(yè)務(wù),對接的都是一些主要做B2B業(yè)務(wù)的倉庫。最近根據(jù)業(yè)務(wù)的規(guī)劃要開拓電商業(yè)務(wù),所以想要對接B2C的電商相關(guān)的倉庫,目前已經(jīng)找好了一家意向的倉庫,對方用的是萬里牛WMS,所以需要對接萬里牛WMS的接口。https://open.hupun.com/api-doc/wms/open/oms/bill/cancelbill/v2
1. 調(diào)研業(yè)務(wù)需求,梳理當(dāng)前訴求
既然要搞B2C的電商業(yè)務(wù),那么就要先自己內(nèi)部把相關(guān)的需求給調(diào)研清楚,明確清楚,可能會涉及到電商運營部門,倉儲物流部門,采購和計劃部門等,都需要拉通。
2. 閱讀接口文檔,提取有效信息
上述的相關(guān)分析,和正常做一些業(yè)務(wù)需求是一樣的,不會因為需要接口對接就有什么特別不太一樣的,所以按正常的需求分析和需求澄清的方式方法來執(zhí)行即可。
當(dāng)背景信息和原始需求都搞清楚了之后,接下來就可以去閱讀接口文檔,提取接口文檔中的一些關(guān)鍵信息了。
- 獲取接口文檔的地址或者文件附件;
- 查看對接指引,了解大概的對接流程和步驟,按對方的要求執(zhí)行即可;
- 閱讀具體的API文檔,了解對方提供了哪些接口(API EndPoint),不同的接口有什么作用;
- 結(jié)合需求調(diào)研,再加上自己對接口文檔的理解,可以梳理出要大概對接哪些EndPoint;
萬里牛接口文檔示意圖
經(jīng)過相關(guān)的調(diào)研和確認之后,產(chǎn)品經(jīng)理就可以整理出自己要對接哪些接口了。
- 接口認證、授權(quán)、鑒權(quán)等;
- 商品同步,即從ERP推送商品資料到WMS中;
- 入庫單創(chuàng)建,即從ERP推送采購訂單到WMS中;
- 退貨入庫單創(chuàng)建,即從ERP推送退貨入庫單到WMS中,如果電商倉沒有退貨業(yè)務(wù),則不需要對接;
- 發(fā)貨單創(chuàng)建接口,即從ERP推送銷售訂單到WMS中;
- 單據(jù)取消,即從ERP發(fā)起單據(jù)的取消,可以取消入庫單,退貨入庫單,發(fā)貨單等;
- 入庫單確認接口,即WMS入庫之后,更新狀態(tài)和數(shù)據(jù),反向推送給ERP;(Webhook-回調(diào))
- 退貨入庫單確認接口,即WMS退貨入庫之后,更新狀態(tài)和數(shù)據(jù),反向推送給ERP;(Webhook-回調(diào))
- 發(fā)貨單確認接口,即WMS發(fā)貨出庫之后,更新狀態(tài)和數(shù)據(jù),反向推送給ERP;(Webhook-回調(diào))
3. 對接口文檔的內(nèi)容做詳細的批注和分析
WMS方提供的接口文檔,可能非常豐富,文檔介紹非常詳實,也有可能接口文檔內(nèi)容簡陋,表達的也不好,所以很有可能會有很多內(nèi)容需要產(chǎn)品經(jīng)理去確認,去落實。
這是產(chǎn)品經(jīng)理在做對接類需求需要花費比較多時間和精力的方面,如果對方的接口文檔做得好,做得充分,那么對接流程就會很順暢,執(zhí)行起來就會很簡單;但是如果對方的接口文檔做得很爛,很多不全,那么對接過程就會很漫長,需要反復(fù)確認,修改等。
對接口文檔的批注和分析,也取決于產(chǎn)品經(jīng)理的經(jīng)驗積累和認知水平。你懂得越多,很多東西你就一眼能看懂,就無需過多的求證和確認,所以批注的內(nèi)容就少了。
即使自己懂得比較少也沒關(guān)系,坦誠地承認,然后把自己不知道的東西記錄下來,再通過會議或者群聊的方式確認相關(guān)的事項即可。關(guān)鍵是要提出一個好問題,同時自己也要提前做好一些鋪墊知識的攝取。
4. 根據(jù)接口文檔,輸出接口對接的需求文檔
接口對接的需求文檔和日常業(yè)務(wù)需求的需求文檔基本上沒什么區(qū)別,這里以維他命自定義的需求文檔模板為例,給展示一下和接口對接相關(guān)的需求文檔該怎么寫。
需求文檔大綱示意圖
多系統(tǒng)之間的交互示意圖
整理接口清單列表
對每個單獨的接口做字段解析和說明
接口對接的部分內(nèi)容寫完了之后,就可以正常去寫系統(tǒng)相關(guān)的功能模塊的需求描述了,主要是說明一下要改動什么模塊,什么頁面,什么功能,然后這個改動會要去請求什么接口,觸發(fā)什么邏輯等??傮w還是和日常的業(yè)務(wù)需求沒什么區(qū)別的。
類似日常的業(yè)務(wù)需求描述
二、作為WMS,提供對外的接口讓ERP對接
維他海外倉是一家專注于服務(wù)歐美市場,為3C類品牌賣家提供精細化倉儲服務(wù)的海外倉公司,最近剛好自研上線了自己的WMS系統(tǒng)。剛好最近接入了一些KA型客戶,這些客戶希望維他海外倉能提供一套對外的OpenAPI,然后通過接口可以實現(xiàn)從客戶的ERP或者后臺管理系統(tǒng)直接推送商品數(shù)據(jù)、業(yè)務(wù)單據(jù)到WMS中,而不是每次都登錄海外倉OMS去手動處理單據(jù)。
1. 調(diào)研業(yè)務(wù)需求,梳理當(dāng)前訴求
WMS要對外提供接口,必然是希望能做成通用的,這樣的話每個外部客戶要接入WMS都可以走這一套標(biāo)準(zhǔn)。但是通用的API接口,也是有發(fā)展路線的,不是一蹴而就可以達到通用、標(biāo)準(zhǔn)、規(guī)范、體驗棒的。
產(chǎn)品經(jīng)理去調(diào)研業(yè)務(wù)需求,主要是了解一下目前的客戶量級,客戶訴求,客戶需要接入什么功能和模塊,還有當(dāng)前WMS功能的發(fā)展情況,然后制定對應(yīng)的方案。
2. 研發(fā)和產(chǎn)品各自負責(zé)OpenAPI的不同模塊
當(dāng)確定了要對外提供WMS的接口文檔后,產(chǎn)品經(jīng)理和研發(fā)需要分工協(xié)作來輸出相關(guān)的接口文檔。研發(fā)關(guān)注和技術(shù)有關(guān)的內(nèi)容,而產(chǎn)品則關(guān)注和業(yè)務(wù)邏輯、應(yīng)用參數(shù)相關(guān)的內(nèi)容。
接口文檔主要內(nèi)容以及產(chǎn)品、研發(fā)負責(zé)的內(nèi)容項
作為WMS方,是否要搭建OpenAPI平臺得要結(jié)合實際的業(yè)務(wù)來定,如果想要了解相關(guān)的一些技術(shù)知識和產(chǎn)品知識,可以去看我之前寫的文章“不懂技術(shù)的產(chǎn)品經(jīng)理,怎么搭建OpenAPI平臺的項目?”。
3. 產(chǎn)品經(jīng)理定義對外的接口,然后通過內(nèi)部評審
搭建OpenAPI其實和做業(yè)務(wù)是一樣的,需要逐步迭代,逐步豐富。所以產(chǎn)品經(jīng)理也不可能一次性就把所有要提供的接口都定義出來,都是逐步迭代,逐步完善的。作為一個“后追型”產(chǎn)品,最快的方式就是對標(biāo)競品,看一下別人是怎么做的,提供了哪些接口,然后借鑒模仿即可。這里以Wingsing海外倉的OpenAPI為例,給大家展示一下,一般海外倉WMS會對外提供什么哪些接口,哪些服務(wù)。
API接口參考列表
很多產(chǎn)品經(jīng)理因為自己不懂技術(shù),所以會對接口文檔天然就有一種抵觸或者畏懼情緒。其實把接口文檔換成是“簡配版”的原型或者產(chǎn)品信息結(jié)構(gòu),你就會發(fā)現(xiàn)提供接口中的字段和畫一個表單提交的原型的一樣的意思。
當(dāng)完成了接口文檔的編寫和對外的接口功能之后,要怎么內(nèi)部評審或者走查呢?
一般來說,研發(fā)自己走查(自測)一遍,產(chǎn)品再走查(主要是文檔)一遍,最后測試再去驗證一遍就可以完成相關(guān)的評審了。接口文檔在后續(xù)如果需要改動或者優(yōu)化,需要考慮是否會對歷史接入的客戶有影響。如果有影響,那么改動之后的接口,就要用新的版本號來區(qū)分;如果沒有影響,那就可以在之前的版本號上迭代。
接口的版本號定義,需要研發(fā)來評估,如果加了某些必填字段或者結(jié)構(gòu)發(fā)生了變化,那么會導(dǎo)致“歷史用戶”請求報錯,那這種改動就需要用不同的版本號來劃分。如果沒有這種影響,那就可以不用新的版本號了。
4. 對外發(fā)布上線,并持續(xù)迭代完善
接口定義好,同時也測試驗證通過之后,就可以發(fā)布上線了,這個和普通業(yè)務(wù)需求發(fā)布版本是一樣的。接口發(fā)布之后就可以讓外部客戶來對接使用了,在對接過程中,如果遇到了某些問題再及時解決,并持續(xù)迭代完善接口文檔即可。
三、總結(jié)
接口對接實際涉及到的技術(shù)名詞和技術(shù)知識挺多的,對于沒怎么接觸過技術(shù)的產(chǎn)品經(jīng)理來說初次上手肯定是會有一定的難度,但是這并不代表說這件事就只能讓懂技術(shù)的產(chǎn)品經(jīng)來做。
因為這些技術(shù)名詞和知識,其實花點時間查一下,然后學(xué)習(xí)一下,基本上能搞懂大概意思就可以了。因為對產(chǎn)品經(jīng)理來說,無論是接口文檔的對接,還是接口文檔/平臺的搭建,更核心的東西還是去梳理業(yè)務(wù),明確需求,最后整理成開發(fā)任務(wù)。
而這些業(yè)務(wù)的需求,業(yè)務(wù)的知識,業(yè)務(wù)的流程,基本上能看懂接口文檔的作用及其字段的說明等就夠了,產(chǎn)品經(jīng)理可以用通俗易懂的自然語言去表達,到時候再讓研發(fā)進行轉(zhuǎn)化即可。
專欄作家
我叫維他命(Vitamin),微信公眾號:PM維他命。前PHPer,做過在線教育類產(chǎn)品,也做過4年多的跨境倉儲物流方向的產(chǎn)品,目前是一位外貿(mào)SaaS領(lǐng)域的供應(yīng)鏈產(chǎn)品經(jīng)理。主要專注于WMS/OMS/TMS/BMS/ERP等領(lǐng)域,分享供應(yīng)鏈相關(guān)的產(chǎn)品知識。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于 CC0 協(xié)議。
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。
大佬你好,想問下那我在erp上的庫存數(shù)據(jù)和wms上的庫存數(shù)據(jù)是用的同一個嗎?就是在erp上顯示的庫存值是不是就是直接查詢wms里的庫存值; 還是說erp上有自己的庫存數(shù)據(jù),wms上也有自己的庫存數(shù)據(jù),相互之間有關(guān)聯(lián)而已?
ERP的庫存是自己的記錄的,和WMS的庫存是兩份數(shù)據(jù),一般都是這種做法