文章彙整

Magento2 可售庫存的計算

Astral WebBy Astral Web 2 weeks agoNo Comments
首頁  /  Magento  /  Magento-2  /  Magento2 可售庫存的計算

不知各位是否遇過,明明設定產品的庫存量為正數,但前台卻顯示無庫存,或者下單時被告知無庫存的情況呢?如果對這種情況感到棘手,今天剛好一起來了解庫存可售量,在訂單流程中的增減邏輯吧!

我們先從後台新增了一個簡單商品,給定初始庫存量 5。

從產品列表,可確認當前庫存量與可售量皆為5。

接著,由前台下單該商品,並從後台開發票,讓訂單正式成立進入 processing 狀態。

此時再觀察當前庫存,會發現可售量已變成 4,但庫存量仍然維持在 5。

若前台嘗試再次下單,則該商品數量最多只能訂購 4 個。

那麼被扣住的那一個庫存,何時會真正從實際庫存減除呢?

我們繼續為該訂單出貨,待出貨單建立成功,可以發現當前庫存正式被變更為 4。

由此可知,這裡有個保留庫的概念,從訂單下訂,會先扣留數量不讓其他人購買,一直到訂單出了貨,才從實際庫存量扣除。

那麼,系統是如何紀錄保留數量的?

現在進到資料庫查看 inventory_reservation 這張資料表,用產品的sku作為條件進行搜尋:

可以搜索到兩筆資料,一筆為下單時扣留庫存,quantity -1:{“event_type”:”order_placed”,”object_type”:”order”,”object_id”:””,”object_increment_id”:”SA000000612U1″}

另一筆則為出貨扣除實際庫存時,釋放了被扣留的庫存,quantity + 1:

{“event_type”:”shipment_created”,”object_type”:”order”,”object_id”:”862″,”object_increment_id”:”SA000000612U1″}

這張表儲存了保留庫進出的「數量」、「事件」、「關聯類型」與「關聯鍵值」。因此當發現實際庫存與可售庫存數量不ㄧ致時,可以透過它探尋可能原因。

另外,除了保留庫會影響可售量,還有一個設定也會影響,就是安全庫存量。

我們進到該產品進階庫存設定,將  Out-of-Stock Threshold 設定為 3。

接著再度查看產品列表,則可售數量由4降為1。

綜合以上要素,可以推算公式如下:

可售庫存量 = 實際庫存量 – 安全庫存量 + 保留庫總和(正負數量加總)

若有使用多庫存功能,則可售數量會依照各自的來源做以上公式的計算:

以上圖為例,新增銷售管道 Stock-a&b ,庫存來源為Source ASource B,其可售數量計算方式為:

Stock-a&b 可售數量 = Source A 實際庫存量 + Source B 實際庫存量  – 安全庫存量 + 保留庫總和

9 = 5 + 7 – 3 + 0

這裡也可以看出一個細節,每個產品的安全庫存量只能設定一個通用值。

了解至此,對於庫存邏輯應該有了概念上的理解,下次遇到無法下單但有實際庫存的商品,便可依循這個公式查找庫存卡在哪囉!希望今天的分享,幫助到各位精確的管理庫存。我們下次見!

 

如果有您有更多疑問可以詢問我們,未來會撰寫更多電商網站相關文章,您想知道什麼嗎?歡迎在下方留言給我們。或追蹤我們的粉絲專頁IG,也別忘了訂閱電子報,就不錯過最新文章喔!

想學習更多Magento設定嗎?請見:Magento教學導覽

 000

推薦文章

Categories:
  Magento-2Magento

留下回應

你的電子郵件地址不會被公開.