Order to Cash flow 是所有 ERP 最基礎的功能,主要用來表現從公司開立銷售訂單到公司收到款項之中的所有流程,本文會用 NetSuite 操作畫面做詳細介紹。
Table of Contents
Order to Cash flow

這個流程大致可以分為:
- Customer enter Sales Order
- Fulfill Sales Order
- Invoice Sales Order
- Account Receivable
銷貨訂單 – Sales Order
建立 Sales Order 之前
- Validate Customer,可以建立 Sales Order 的顧客
- At least 1 item,至少有一個 Item
- Date,Sales Order 的日期,日期預設為今天,但可以根據實際情況不同進行調整
建立顧客 Create a Customer
| 1. 從首頁中 Lists -> Relationships -> Customers -> New | ![]() |
| 2. 在顧客主檔中,填入顧客資訊 *注意 Subsidiary 設定後,表示客戶僅能夠看到該 Subsidiary 底下的 Item,須根據實際使用情況進行調整 Example: 1. A 顧客在 Subsidiary-1 底下,此時在 Subsidiary – 2 底下建立一個 Item – 50% off,A 顧客是無法看到的 2. Subsidiary – 1 為父階層,底下包含 Subsidiary – 1.1 及 Subsidiary – 1.2。 A 顧客處在 Subsidiary – 1,在這個情況下,即便 Item 建立在 Subsidiary – 1.2,A 顧客仍然能夠購買 3. 儲存顧客主檔 *注意 此顧客位於 Germany Subsidiary | ![]() ![]() |
建立商品 Create an Item
| 1. 從首頁中 Lists -> Accounting -> Items -> New | ![]() |
| 2. NetSuite 支援的商品種類, 在這邊我們使用 Inventory item | ![]() |
| 3. 輸入商品資訊 | ![]() 注意 此商品所在 Subsidiary 是 Germany |
| 4. 確認商品所對應的會計科目(Account) *為什麼需要確認? 對會計而言, 每一個商品的買入/賣出都應有相對應的會計科目. 用來記錄商品賣出的金額/購入成本等 | ![]() |
| 5. 儲存商品主檔 | ![]() |
| 6. 為了方便測試, 再用同樣的步驟, 建立一個商品在 Subsidiary – Test Sub 底下 | ![]() |
建立 Sales Order
| 1. 從首頁中, Transactions -> Sales -> Enter Sales Orders | ![]() |
| 2. 於 Customer 欄位中選擇剛剛建立的 測試客戶 | ![]() |
| 3. 在 Subsidiary fields 內, NetSuite 會自動帶入 Customer 的 Subsidiary | ![]() |
| 4. 選擇 Item, 可以看到在這個情況下, 並不會出現 Subsidiary – Test Sub 的商品 | ![]() |
| 5. 儲存 Sales Order | ![]() |
對日記帳的影響 General Ledger Impact
| 1. 在 Sales Order 上,Actions -> GL Impact | ![]() |
| 2. GL Impact 畫面 | ![]() |
| 3. 可以看到雖然有兩筆紀錄,但 Posting 顯示為 No,表示並不會影響日記帳 *對 NetSuite 而言,Create Sales Order 的動作對日記帳並不會有任何影響。因為訂單成立到出貨前,商品庫存並沒有任何的變動,依照預設邏輯,也不應該會有任何的收入。 以台灣為例,網拍購買商品後,若用信用卡扣款,信用卡的額度是被保留在信用卡公司,並不會直接進入公司帳戶,所以也不會對日記帳有任何影響。 | ![]() |
出貨單 – Item Fulfillment
滿足一筆訂單的方式, 就是透過出貨這個動作, 將商品寄送給收貨方. 這樣在 NetSuite 稱為Fulfilled.
Fulfilled 這個動作包含:
- Pick(撿貨) – 將貨物從庫存中拉出.
- Pack(包裝) – 將貨物打包.
- Ship(寄出) – 將貨物透過承運商(Shipping carrier)寄出
- Pick – Pack – Ship, 就是最簡單的出貨流程。
- 這其中還會牽涉到很多關於倉儲的操作,例如:要從哪一個貨架檢貨、需要多大的箱子包裝、要如何選擇適合的承運商、承運商有沒有體積/重量/尺寸的限制, 諸如此類。
更詳細複雜的設定及操作,通常會透過 Warehouse Management System(WMS) 來管理。
NetSuite 也有 WMS feature 可以使用。
建立 Item Fulfillment 之前
回顧 Sales Order
| 這是我們剛剛創建的 Sales Order,預設情況下,NetSuite 是不允許負庫存出貨的,所謂的負庫存表示在 NetSuite 裡面沒有任何 Inventory 的情況下,是無法建立出貨單的。 | ![]() |
| 我們可以注意 Item list 裡面有一個 BackOrdered column。 這邊的數字就表示,客戶訂購數量 > NetSuite 內庫存的數量,NetSuite 目前還不足 1 個測試商品能夠出貨。 所以要能夠讓 NetSUite 順利出貨,我們需要先讓 NetSuite 裡面 測試商品-Germany 有庫存才行。 | ![]() |
為什麼會沒有庫存
沒有庫存的原因很多,最常見的就是:
- 就是真的沒有,還沒來得及採購,或是還在製造等…
- 使用者剛導入 NetSuite,還在清理歷史資料,實體倉庫有庫存,但 NetSuite 庫存沒有正確顯示
- 庫存遺失/誤差/破損/etc..
根據不同的情境,會有不同的方式來增價庫存,比方說
- 建立採購單
- 透過 CSV Import 等方式導入歷史資料
- 直接改庫存數量
在這次的範例中,我們會直接修改庫存的數量,此方式較為直接,但在實務操作上此方式較為少用,因為會直接影響庫存數量與日記帳。
直接修改庫存數量 – Inventory Adjustment
| 1. 選擇 Transactions -> Inventory -> Adjust Inventory | ![]() |
| 2. Inventory Adjustment 主檔如圖 | ![]() |
| 3. 輸入以下資訊 Posting period – 簿記期間 Subsidiary – 要調整的 Item 位在 Germany Adjustment Account – 因為調整 Item 的數量會影響到庫存,也就會影響會計帳,需要指定此筆調整要入哪一個會計科目 輸入要調整的 Item – 測試商品 Adjust Qty By – 調整的數量 | ![]() |
| 4. 儲存後,回去 Sales Order 重新整理後,可以看到 back ordered 數量變為 0,而 commit 數量變為 1 對 NetSuite 而言,可用的庫存 = on hand(100) – commited(1),所以我們的測試商品目前在 NetSuite 僅存 99 個 | ![]() |
建立 Item Fulfillment
| 1. 在 Item 足夠的情況下,可以看到在 Sales Order 主檔上方可以看到一個 Fulfill 的按鈕 | ![]() |
| 2. 點選 Fulfill 按鈕之後會帶到 Item Fulfillment 主檔,並且將商品及必要資訊帶入 | ![]() |
| 3. 在 Status 的部分,可以依照公司的實際情況選擇 (Pick/Pack/Ship) | ![]() |
| 4. 確認無誤,點選 Save 後,回到 Sales Order 主檔,可以看到 Sales Order 的狀態變成 Pending Billing | ![]() |
| 5. 並且在商品列表會出現測試商品已經被 Picked & Packed & Fulfilled | ![]() |
對日記帳的影響 General Ledger Impact?
| 回到 Item Fulfillment,滑鼠移到 Actions -> GL Impact | ![]() |
| 可以看到 出現兩筆資料 並且 Posting = yes,因為當商品出貨後,公司的 資產(asset) 減少,應收帳款 (AR) 變多 與 Sales Order 不同的是,Sales Order 僅為建立訂單,並沒有出貨/收款的事實發生,所以即便有 GL Impact 的資料,但是 Posting = No,因為並沒有會影響會計帳的事實 | ![]() |
收據, 發票, 小票 – Invoice
Invoice 主要用來記錄銷售給顧客的紀錄,Invoice 通常被用在商品或是服務提供時,顧客還沒有付款的情況,比方說網路費帳單,對於種花電信而言,他提供的網路服務但是顧客在月底收到帳單才給錢。
Invoice 透過新增出售的商品清單來記錄銷售。每一個 Invoice 的商品應該與 Sales order ㄧ致。Invoice 的總和即為所有商品 Amount 的總和。
建立 Invoice
| 1. 在 Sales Order 上面,可以看到 Next Billing 的按鈕 | ![]() |
| 2. 點選後會進入 Invoice 主檔 | ![]() |
| 3. 並且商品列表會自動帶入尚未 Inovie的商品,如果一張 Sales Order 開了兩張 Invoice,第二張 Invoice 在建立時僅會帶如除了不在第一張 Invoice 內的商品及數量 | ![]() |
| 4. 確認無誤後,選擇 Save,建立 Invoice 可以看到,此時的 Invoce 是處於Open的狀態,表示尚未有任何 Payment,也就是客人尚未付款的意思 | ![]() |
GL Impact
在 Invoice 的 GL Impact 我們可以看到,借 AR,貸 Sales Revenue。
付款紀錄 – Payment
當客戶付款時,記錄付款這個後,apply 到適當的 Invoice or Cash Sale(Cash Sale 表示倉庫不用出貨, 銷售成立時, 顧客直接拿走商品, 例如: 便利商店)。
當 apply Payment 時, 會減少顧客的應付金額並增加公司收入。
除了透過 Payment 這個方式支付 Invoice,使用者也可以根據不同的使用情境,利用顧客的押金(Deposit)或是信用額度(Credit memo)來支付顧客的應付金額。
Payment 的流程大致可以參考下圖(From NetSuite help)
如果 Payment applied 到 Invoice 後,
- 該筆 Invoice 的應付金額 = 所有 Payment 的總和,invoice 狀態為 Paid in full
- 該筆 Invoice的應付金額 > 所有 Payment 的總和,Invoice 狀態仍為 Open
建立 Payment
| 1. 通過 invoice 點選 Accept Payment | ![]() |
| 2. 會帶到 Payment 主檔頁面 | ![]() |
| 3. 在下方可以看到該使用者所有狀態為 Open 的 Invoice, 在我們的範例中, 這個客人只有一個 | ![]() |
| 4. 在同一 row 的後方可以看到,此筆 Payment 會支付該 Invoice 多少金額,預設是所有金額. | ![]() |
| 5. 在 Payment method subtab 底下可以依據實際情況選擇,在這邊為了方便可以選 Cash | ![]() |
| 6. 都確認無誤後,按 Save 保存 回到 Invoice,由於我們剛剛支付全額,該 Invoice 已無應付金額,所以可以看到狀態已經變成 Paid in full | ![]() |
相關網站
NetSuite 文章 | Order-to-Cash Defined
本站文章 | NetSuite 是什麼?基本流程/功能介紹
專注於系統客製化、系統維運與系統優化領域的團隊。致力於讓使用者系統變好用!
NetSuite Record Export 已在Google Chrome Web Store上架,歡迎任何反饋。
合作: info@inzaghi-corp.com








































