ธุรกิจค้าส่ง ค้าปลีก โรงงาน และธุรกิจอาหาร มักพบโจทย์เดียวกันคือ สินค้าเดียวกัน แต่ซื้อ ขาย และจัดเก็บด้วยหลายหน่วย
ตัวอย่างเช่น สินค้า A สามารถขายได้หลายรูปแบบ
- 1 ชิ้น
- 1 โหล = 12 ชิ้น
- 1 Pack = 24 ชิ้น
- 1 กล่อง = 48 ชิ้น
คำถามคือ หากลูกค้าสั่ง 2 โหล + 1 Pack ระบบควรตัด Stock อย่างไร? และฝ่ายคลังควรเห็น Stock เป็น “ชิ้น” หรือ “โหล”?
ด้วยแนวคิด Unit of Measure (UoM) และ Product Packaging ของ Odoo เราสามารถออกแบบให้หน่วยซื้อ หน่วยขาย และหน่วยที่ใช้ควบคุม Stock แตกต่างกันได้ โดยยังอ้างอิงสินค้าตัวเดียวกัน
ปัญหาของธุรกิจที่มีสินค้าหลายหน่วย
ลองสมมติว่า IMOTIF จำหน่ายสินค้า “น้ำดื่ม A” โดยกำหนดว่า
1 Pack = 24 ขวด
ลูกค้าแต่ละกลุ่มอาจซื้อไม่เหมือนกัน
ลูกค้ารายย่อยซื้อ 3 ขวด
ร้านค้าซื้อ 2 Pack
Distributor ซื้อ 50 Pack
ขณะที่ฝ่ายคลังต้องการทราบว่าเหลือสินค้าจริงทั้งหมดกี่ “ขวด”
หากสร้าง Product แยกเป็น
- น้ำดื่ม A – ขวด
- น้ำดื่ม A – Pack
- น้ำดื่ม A – โหล
จะเริ่มเกิดปัญหาว่า Product ไหนคือ Stock จริง และต้อง Transfer Stock ระหว่าง Product หรือไม่
ในหลายกรณี วิธีที่เหมาะสมกว่าคือ เก็บสินค้าเป็น Product เดียว แล้วให้ Odoo จัดการเรื่องหน่วยและ Packaging
1. กำหนดหน่วยพื้นฐานสำหรับการนับ Stock
หัวใจสำคัญคือการกำหนด Reference Unit หรือหน่วยพื้นฐาน ให้ชัดเจน
ตัวอย่างกำหนดเป็น
1 Unit = 1 ชิ้น
ดังนั้นไม่ว่าธุรกิจจะซื้อหรือขายสินค้าเป็นหน่วยใด สุดท้ายจำนวนสินค้าสามารถแปลงกลับมาเป็น “ชิ้น” ได้
ตัวอย่าง Stock ปัจจุบันมี
1,200 ชิ้น
ระบบสามารถนำจำนวนนี้ไปใช้ในการคำนวณการรับเข้า การส่งออก และ Inventory ได้อย่างเป็นระบบ
2. ขาย 1 ชิ้น ก็หัก Stock 1 ชิ้น
กรณีง่ายที่สุด ลูกค้าสั่ง
10 ชิ้น
เมื่อ Delivery เสร็จ Stock จะลดจาก
1,200 → 1,190 ชิ้น
ไม่มีการแปลงหน่วยเพิ่มเติม
3. ขายเป็น “โหล” โดย 1 โหล = 12 ชิ้น
ธุรกิจสามารถกำหนดหน่วยที่สัมพันธ์กับหน่วยพื้นฐาน เช่น
1 โหล = 12 ชิ้น
หาก Sales Order ขาย
5 โหล
จำนวนสินค้าที่เกี่ยวข้องจะเท่ากับ
5 × 12 = 60 ชิ้น
ดังนั้น หากมี Stock เดิม 1,200 ชิ้น หลังส่งสินค้า Stock จะเหลือ
1,140 ชิ้น
ข้อดีคือฝ่ายขายสามารถทำงานด้วยหน่วยที่คุ้นเคย เช่น “โหล” ขณะที่ระบบ Inventory ยังคงสามารถควบคุมปริมาณสินค้าบนฐานเดียวกันได้
4. แล้วถ้า 1 Pack = 24 ชิ้นล่ะ?
อีกกรณีหนึ่งคือสินค้าเดียวกันมีการบรรจุเป็น Pack
ตัวอย่าง
1 Pack = 24 ชิ้น
ลูกค้าสั่ง
10 Pack
เท่ากับ
240 ชิ้น
ในมุมการทำงาน เราจึงสามารถแยกแนวคิดออกเป็น 2 เรื่องได้ คือ
Unit of Measure
ใช้สำหรับการแปลงหน่วย เช่น
1 โหล = 12 Units
และ
Product Packaging
ใช้บอกลักษณะการบรรจุ เช่น
1 Pack บรรจุ 24 Units
การเลือกใช้ UoM หรือ Packaging ควรพิจารณาจาก Business Flow จริง ไม่ควรสร้าง UoM ใหม่ทุกครั้งเพียงเพราะสินค้ามีบรรจุภัณฑ์หลายแบบ
UoM กับ Packaging ต่างกันอย่างไร?
นี่เป็นจุดที่ธุรกิจมักสับสน
Unit of Measure
UoM คือ หน่วยที่ใช้วัดปริมาณสินค้า
เช่น
- ชิ้น
- โหล
- กิโลกรัม
- กรัม
- เมตร
- ลิตร
ตัวอย่าง
1 โหล = 12 ชิ้น
ระบบสามารถใช้ Conversion Ratio เพื่อแปลงจำนวนระหว่างหน่วยที่อยู่ใน UoM Category เดียวกันได้
Packaging
Packaging คือ รูปแบบการบรรจุสินค้า
เช่น
- Pack 6
- Pack 12
- Pack 24
- Carton 48
ดังนั้น Product หนึ่งตัวสามารถมี Packaging ได้หลายรูปแบบโดยไม่จำเป็นต้องสร้าง Product ใหม่ทุกครั้ง
ตัวอย่างโครงสร้างสินค้าที่ใช้งานจริง
สมมติ Product คือ
Sausage Premium 100g
หน่วยพื้นฐานคือ
Unit = 1 ซอง
และธุรกิจมีรูปแบบการขายดังนี้
| รูปแบบ | Conversion |
|---|---|
| 1 Unit | 1 ซอง |
| 1 Dozen | 12 ซอง |
| Pack 24 | 24 ซอง |
| Carton | 48 ซอง |
ถ้า Stock มีอยู่
4,800 ซอง
ฝ่ายขายอาจขาย
20 Dozen
เท่ากับ
20 × 12 = 240 ซอง
หรือขาย
10 Pack 24
เท่ากับ
10 × 24 = 240 ซอง
ไม่ว่าจะขายด้วยรูปแบบใด ปริมาณสินค้าสามารถกลับมาอ้างอิงกับจำนวนสินค้าจริงใน Inventory ได้
แล้วตอนนับ Stock ควรนับเป็นอะไร?
โดยทั่วไป IMOTIF แนะนำให้กำหนด หน่วย Stock ที่เล็กพอและสะท้อน Physical Stock จริง
เช่น
1 Unit = 1 ชิ้น
ดังนั้น Warehouse สามารถตรวจนับได้ว่า
On Hand = 1,248 ชิ้น
แทนที่จะต้องแยกว่า
- 20 กล่อง
- 8 Pack
- 12 ชิ้น
เพราะในความเป็นจริง Pack หรือกล่องอาจถูกเปิดแล้ว ทำให้การใช้ Packaging เป็นฐานในการควบคุม Stock อาจสร้างความซับซ้อนโดยไม่จำเป็น
แต่สามารถมอง Stock เป็นหลายมุมได้หรือไม่?
ได้ แต่ต้องแยกระหว่าง Stock Quantity จริง กับ มุมมองเพื่อการบริหาร
ตัวอย่าง Stock จริงมี
1,248 ชิ้น
สามารถนำไปคำนวณเพื่อให้ผู้ใช้งานเข้าใจในมุมอื่น เช่น
1,248 ชิ้น = 104 โหล
หรือถ้า Pack ละ 24 ชิ้น
1,248 ชิ้น = 52 Pack
หรือถ้า Carton ละ 48 ชิ้น
1,248 ชิ้น = 26 Cartons
อย่างไรก็ตาม ไม่ควรตีความว่าเรามีพร้อมกันทั้ง 1,248 ชิ้น + 104 โหล + 52 Pack เพราะทั้งหมดคือ Stock ก้อนเดียวกันที่แสดงคนละหน่วย
นี่เป็นหลักสำคัญในการออกแบบ ERP เพื่อป้องกัน Stock ซ้ำ
Purchase เป็น Pack แต่ขายเป็นชิ้นได้หรือไม่?
ได้ และเป็น Use Case ที่พบได้บ่อย
ตัวอย่าง Supplier ขายสินค้าให้บริษัทเป็น
1 Carton = 48 ชิ้น
บริษัทสั่งซื้อ
100 Cartons
เท่ากับรับสินค้า
4,800 ชิ้น
จากนั้นฝ่ายขายสามารถขายให้ลูกค้ารายย่อยครั้งละ
1 ชิ้น
6 ชิ้น
12 ชิ้น
หรือขายเป็น Pack ตามรูปแบบธุรกิจ
ทำให้ Purchase, Sales และ Warehouse ไม่จำเป็นต้องใช้หน่วยเดียวกันทั้งหมด แต่ระบบยังสามารถเชื่อมโยงปริมาณสินค้ากลับมายัง Reference Unit เดียวกันได้
ตัวอย่าง Flow ตั้งแต่ซื้อจนถึงขาย
สมมติบริษัทขายสินค้าโดยกำหนดว่า
Base Unit = ชิ้น
Supplier → Purchase Order
100 Cartons × 48 ชิ้น
↓
Goods Receipt
รับเข้า 4,800 ชิ้น
↓
Inventory
On Hand 4,800 ชิ้น
↓
Sales Order #1
ขาย 10 Dozen = 120 ชิ้น
↓
Sales Order #2
ขาย 5 Pack 24 = 120 ชิ้น
↓
Sales Order #3
ขาย 10 ชิ้น
↓
Inventory หลัง Delivery
4,800 – 120 – 120 – 10 = 4,550 ชิ้น
แนวคิดนี้ช่วยให้ทุก Transaction เชื่อมกลับมาที่ Physical Stock เดียวกัน
แล้ว Barcode สามารถแยกตาม Packaging ได้หรือไม่?
สำหรับธุรกิจที่ใช้ Barcode ใน Warehouse หรือ POS เรื่อง Packaging ยิ่งมีประโยชน์
ตัวอย่างสินค้าเดียวกันอาจมี Barcode แตกต่างกันตามรูปแบบบรรจุ เช่น
1 ชิ้น
Barcode: 885000000001
Pack 12
Barcode: 885000000012
Pack 24
Barcode: 885000000024
ทำให้การออกแบบระบบสามารถรองรับกระบวนการ Scan Barcode ตามรูปแบบการบรรจุของสินค้าได้ โดยต้องกำหนด Product, Packaging และ Barcode Flow ให้เหมาะกับกระบวนการจริงของธุรกิจ
อย่าสร้าง Product ใหม่ทุกครั้งที่ Packaging เปลี่ยน
นี่เป็นอีกเรื่องที่ควรวิเคราะห์ก่อน Implement ERP
หากสินค้าจริงคือสินค้าเดียวกัน เพียงแต่ขายต่าง Packaging การสร้าง Product ใหม่เป็น
- Product A – 1 ชิ้น
- Product A – Dozen
- Product A – Pack 24
- Product A – Carton 48
อาจทำให้เกิดความซับซ้อนด้าน
- Inventory
- Reordering
- Cost
- Forecast
- Barcode
- Purchase
- Sales Analysis
แต่หาก Packaging แต่ละแบบถือเป็น SKU จริงที่มี Barcode, Cost, Price, Inventory และกระบวนการจัดเก็บแยกกัน การสร้าง Product/SKU แยกก็อาจเหมาะสมกว่า
ดังนั้นไม่มีคำตอบเดียวสำหรับทุกธุรกิจ ต้องดูว่า “หน่วย” ที่ต่างกันนั้นเป็นเพียง Conversion หรือเป็นสินค้าคนละ SKU ในเชิงธุรกิจ
ตัวอย่างที่ไม่ควรใช้ Conversion อย่างเดียว
สมมติธุรกิจขายกาแฟ
Coffee 250g
Coffee 500g
Coffee 1kg
แม้ทั้งหมดจะเป็นกาแฟชนิดเดียวกัน แต่ถ้ามี Packaging จริงคนละแบบ มี Barcode คนละเลข ราคาต่อหน่วยต่างกัน และต้องควบคุม Stock แยกกัน อาจเหมาะกับการออกแบบเป็น Product Variant หรือ SKU แยก มากกว่าการกำหนดว่า 1 ถุงใหญ่ = 4 ถุงเล็ก
เพราะในโลกจริงเราไม่สามารถเปลี่ยน Coffee 1kg ให้กลายเป็น Coffee 250g จำนวน 4 ถุงได้ทันที หากยังไม่ได้ผ่านกระบวนการ Repack
ก่อน Implement ควรถาม 4 คำถาม
สำหรับแต่ละสินค้า IMOTIF แนะนำให้เริ่มจากคำถามเหล่านี้
1. หน่วยเล็กที่สุดที่ต้องการควบคุม Stock คืออะไร?
เช่น ชิ้น, ขวด, ซอง หรือกิโลกรัม
2. หน่วยซื้อคืออะไร?
Supplier ขายเป็นชิ้น Pack Carton หรือ Pallet?
3. หน่วยขายคืออะไร?
ลูกค้าซื้อเป็นชิ้น โหล Pack หรือกล่อง?
4. Packaging ที่แตกต่างกันถือเป็น SKU คนละตัวหรือไม่?
ถ้าเพียงรวมหลายชิ้นเข้าด้วยกัน อาจใช้ Packaging/UoM ได้ แต่ถ้ามี Stock Identity และกระบวนการผลิตหรือ Repack ของตัวเอง อาจต้องออกแบบ Product Structure เพิ่มเติม
สรุป
Odoo สามารถรองรับธุรกิจที่สินค้าเดียวกันมีหลายหน่วยได้ ตั้งแต่
1 ชิ้น → 1 โหล → Pack 24 → Carton → Pallet
โดยหัวใจไม่ได้อยู่ที่การสร้าง Product จำนวนมาก แต่อยู่ที่การออกแบบ Unit of Measure, Packaging และหน่วยพื้นฐานของ Inventory ให้ถูกต้องตั้งแต่ต้น
แนวทางหนึ่งที่พบได้บ่อยคือ
Stock เก็บด้วยหน่วยพื้นฐานที่เล็กที่สุด
Purchase ใช้หน่วยที่ Supplier ใช้
Sales ใช้หน่วยที่ลูกค้าเข้าใจ
Packaging ใช้สะท้อนรูปแบบการบรรจุจริง
เมื่อออกแบบถูกต้อง ฝ่ายขายสามารถขายเป็น Pack ฝ่ายจัดซื้อสามารถซื้อเป็น Carton และฝ่ายคลังยังสามารถควบคุม Physical Stock เป็น “ชิ้น” ได้จากฐานข้อมูลเดียวกัน
สำหรับธุรกิจที่มีหลายคลัง หลาย Packaging, Barcode, Lot/Serial Number หรือมีขั้นตอน Repack การออกแบบ Product Master และ UoM Structure ตั้งแต่ก่อนเริ่ม Implementation จะช่วยลดปัญหา Stock ผิด หน่วยผิด และข้อมูลซ้ำได้อย่างมาก
IMOTIF – Odoo ERP Solution & Implementation
IMOTIF ให้บริการวิเคราะห์ ออกแบบ และ Implement Odoo ERP สำหรับธุรกิจ Trading, Distribution, Manufacturing และ Retail ตั้งแต่ Sales, Purchase, Inventory, Accounting, Manufacturing ไปจนถึง Barcode และระบบ Integration เพื่อให้กระบวนการทำงานเชื่อมต่ออยู่บนข้อมูลชุดเดียวกัน