iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 24
1
自我挑戰組

SQL Server 資料庫程式設計/管理/經驗筆記系列 第 24

使用 rowversion 來判斷要更新庫存的商品

說明前先描述環境

  • ERP 系統
  • 門市
  • 電子商務網站
  • 第三方電子商務網站 A
  • 第三方電子商務網站 B

第三方電子商務網站 A,B 的庫存更新由 API 串接執行

庫存皆已 ERP 系統之庫存量為準
且是共用倉庫

門市會在消費者結帳後將庫存進行扣除
但電子商務網站與第三方電子商網站的庫存
會等到訂單進入 ERP 系統後才進行扣除

問題

該如何設計第三方平台庫存更新的架構減少超賣情況

一段時間進行全部商品庫存更新/與 ERP 相符

假設 A 商品在 ERP 庫存量是 16 個
若 A 商品在「第三方平台」已經被下訂 6 個
A 商品的庫存在「第三方平台」就會 10 個

但訂單因為還沒建立到 ERP
故進行商品同步時

「第三方平台」的數量就會被補齊上 6 個與 ERP 庫存相符

在「第三方平台」埋程式碼當消費者點選時進行庫存更新作業

此方法會遇到與上述方法相同的問題
尚未匯入的訂單購買的商品還是會被補庫存

只是變成不會一次所有庫存都進行更新

僅更新 ERP 庫存量有異動的商品

庫存資料表中建立 rowversion 欄位
並依照不同平台儲存最新存取版本的 rowversion

取得要更新版本的庫存清單後
再更新到第三方平台

這樣需要更新庫存的時間點就變成

  • 匯入第三方平台訂單
  • 門市販售商品
  • 商品進貨

當第三方平台建立訂單
在訂單尚未匯入 ERP 前
第三方平台的庫存會維持在扣除訂購數量的情況

直到第三方平台訂單匯入 ERP 系統

結論

此情境的最佳解還是在
依不同賣場進行倉庫區分作業


上一篇
資料匯入系統的經驗談
下一篇
用 StoredProc 進行資料表的篩選內容
系列文
SQL Server 資料庫程式設計/管理/經驗筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言