ระบบ Odoo ERP

Odoo Manufacturing BOM: จัดการ BOM หลายระดับ Routing และต้นทุนจริง

คู่มือปฏิบัติจริงเรื่องการสร้าง BOM หลายระดับ routing และ work center ใน Odoo Manufacturing พร้อมวิธีติดตามต้นทุนจริงของใบสั่งผลิตแต่ละใบ

Ravi Shanker Singhผู้ก่อตั้งและที่ปรึกษา Odooเผยแพร่ 10 นาทีในการอ่าน
แชร์
ในหน้านี้

ลูกค้าโรงงานทุกรายที่เราเริ่มงานด้วย มักถามคำถามแรกเหมือนกันว่า Odoo จะจัดการ bill of materials แบบที่สเปรดชีตเดิมทำได้ไหม ทั้งสินค้ากึ่งสำเร็จรูป (sub-assembly) ส่วนประกอบแบบ phantom และขั้นตอนการผลิตนับสิบขั้นในหนึ่ง routing คำตอบตรงไปตรงมาคือทำได้ แต่ต้องวางโครงสร้าง Odoo manufacturing BOM ให้ถูกต้องตั้งแต่วันแรก เพราะถ้า BOM ผิด ตัวเลขทุกอย่างที่ตามมา ไม่ว่าจะเป็นต้นทุน ระยะเวลาผลิต หรือกำลังการผลิต จะผิดตามไปด้วยทั้งหมด

บทความนี้จะพาไล่ดูวิธีที่เราวางระบบ BOM หลายระดับ routing work center และการคิดต้นทุนใบสั่งผลิตในโปรเจกต์จริง รวมถึงจุดที่คนมักพลาด

ทำไม Odoo Manufacturing BOM คือรากฐานของทุกอย่าง

BOM ไม่ใช่แค่รายการชิ้นส่วน แต่ใน Odoo มันคือตัวขับเคลื่อนใบสั่งผลิต การจองวัตถุดิบ routing และสุดท้ายคือต้นทุนที่ไปลงบนสินค้าสำเร็จรูป ถ้า BOM ระบุปริมาณส่วนประกอบผิด ต้นทุนของทุกหน่วยที่ผลิตจะต่ำไปหรือสูงไปอย่างเงียบๆ และมักไม่มีใครสังเกตเห็นจนกว่ารายงานกำไรขั้นต้นจะดูผิดปกติในอีกหลายเดือนต่อมา

เราเริ่มโปรเจกต์ผลิตทุกครั้งด้วยการนั่งคุยกับทีมหน้างานและนักบัญชีต้นทุนพร้อมกัน ไม่ใช่แยกคุยทีละฝ่าย ทีมหน้างานรู้ขั้นตอนการผลิตจริง ส่วนนักบัญชีรู้ว่าต้นทุนต้องรวมไปถึงอะไรบ้าง สองมุมมองนี้มักไม่ตรงกันในวันแรก และการปรับให้สองฝั่งเข้าใจตรงกันก่อนเริ่มตั้งค่าระบบ จะช่วยประหยัดเวลาแก้งานซ้ำได้หลายสัปดาห์ในภายหลัง

BOM หลายระดับ: จัดการ Sub-Assembly ให้ถูกวิธี

สินค้าจริงส่วนใหญ่ไม่ได้มีแค่ระดับเดียว เช่น เก้าอี้สำเร็จรูปตัวหนึ่งมีโครงเก้าอี้เป็น sub-assembly มีเบาะเป็นอีก sub-assembly และมีอุปกรณ์ยึดต่างหาก Odoo รองรับโครงสร้างแบบนี้ได้โดยตรง ส่วนประกอบใน BOM หนึ่งตัวสามารถเป็นสินค้าที่ผลิตเองพร้อม BOM ของตัวเองได้ และ Odoo จะคลี่โครงสร้างออกมาได้ลึกเท่าที่ต้องการ

มีทางเลือกการออกแบบสองแบบที่สำคัญตรงนี้

  • Sub-assembly แบบมีสต็อก — ผลิตแยกเป็นใบสั่งผลิตของตัวเอง เก็บเข้าสต็อก แล้วค่อยถูกเบิกใช้โดย BOM แม่ ใช้วิธีนี้เมื่อ sub-assembly นั้นขายแยกได้เองด้วย ผลิตล่วงหน้าเป็นล็อตก่อนมีออเดอร์ หรือต้องผ่านการตรวจคุณภาพของตัวเอง
  • Kit / Phantom BOM — บรรทัด sub-assembly จะคลี่ออกเป็นส่วนประกอบย่อยโดยตรงในใบสั่งผลิตแม่ โดยไม่มีใบสั่งผลิตแยกหรือสต็อกของสินค้ากึ่งสำเร็จรูปนั้น ใช้วิธีนี้กับชุดบรรจุภัณฑ์หรือการจัดกลุ่มง่ายๆ ที่ไม่เคยมีสถานะเป็นสต็อกด้วยตัวเอง

จุดที่เราเห็นความสับสนมากที่สุดคือการผสมสองวิธีนี้ในต้นไม้สินค้าเดียวกัน ถ้า sub-assembly บางครั้งต้องมี work order ของตัวเอง (เช่น เพื่อกักสินค้าไว้ตรวจคุณภาพ) แต่บางครั้งก็ไม่ต้อง ควรทำเป็น BOM แบบมีสต็อกจริง ไม่ใช่ phantom แม้จะทำให้มีใบสั่งผลิตเพิ่มขึ้นอีกใบในสายงานก็ตาม

ข้อจำกัดหนึ่งที่ควรพูดตรงๆ คือ BOM หลายระดับที่ลึกมากจะทำให้โครงสร้างใบสั่งผลิตอ่านยากขึ้นสำหรับหน้างาน พนักงานที่ต้องเลื่อนดูส่วนประกอบที่ซ้อนกันห้าระดับ อาจหลงทิศว่ากำลังประกอบอะไรอยู่ตรงนี้จริงๆ เราแก้ปัญหานี้ด้วยการทำ routing แต่ละระดับให้กระชับ และฝึกหัวหน้างานให้ทำงานจากหน้าจอ work order ไม่ใช่จากมุมมอง BOM ดิบ

Routing และ Work Center: จุดที่เวลาและต้นทุนเกิดขึ้นจริง

BOM ที่ไม่มี routing บอกได้แค่ว่าสินค้าประกอบด้วยอะไรบ้าง แต่ routing จะบอกว่าสินค้าถูกผลิตขึ้นมาอย่างไร มีขั้นตอนอะไรบ้าง เรียงลำดับแบบไหน ทำที่ work center ไหน และแต่ละขั้นตอนใช้เวลาเท่าไร ตรงนี้เองที่ Odoo Manufacturing แสดงคุณค่าที่เหนือกว่าการตั้งค่าแบบมี BOM อย่างเดียว

work center แต่ละตัวใน Odoo มีอัตราต้นทุนของตัวเอง (ต่อชั่วโมง) มีกำลังการผลิต และสามารถกำหนดปฏิทินเวลาทำงานได้ เมื่อยืนยันใบสั่งผลิต Odoo จะสร้าง work order ตามขั้นตอนใน routing และพนักงานสามารถบันทึกเวลาที่ใช้จริงในแต่ละขั้นตอนผ่านแท็บเล็ตหรือแผงควบคุมหน้างานได้

ตัวอย่าง routing ที่เราตั้งค่าให้ลูกค้าโรงงานขึ้นรูปโลหะขนาดกลางรายหนึ่งมีลักษณะดังนี้

ขั้นตอนWork Centerเวลาที่คาดไว้ตัวขับเคลื่อนต้นทุน
ตัดชิ้นงานCNC-0112 นาทีเวลาเครื่องจักร
เชื่อมWELD-0225 นาทีแรงงาน + เครื่องจักร
พ่นสีPAINT-0115 นาทีแรงงาน + วัสดุสิ้นเปลือง
ตรวจคุณภาพQC-018 นาทีแรงงานเท่านั้น

ส่วนต่างระหว่างเวลาที่คาดไว้กับเวลาจริงเป็นหนึ่งในตัวเลขที่มีประโยชน์ที่สุดในระบบทั้งหมด เมื่อเวลาเชื่อมจริงเกินกว่าค่าประมาณใน routing ถึง 40 เปอร์เซ็นต์อย่างสม่ำเสมอ นั่นอาจหมายถึง routing ที่ไม่เคยถูกปรับหลังเปลี่ยนกระบวนการผลิต หรือ work center ที่ต้องการกำลังการผลิตเพิ่ม ไม่ว่าจะเป็นกรณีไหนก็เป็นเรื่องที่ควรคุยกัน และ Odoo จะแสดงให้เห็นเองโดยอัตโนมัติ เมื่อพนักงานบันทึกเวลาจริงแทนที่จะคลิกผ่าน work order โดยไม่บันทึกระยะเวลา

การติดตามต้นทุนจริงของใบสั่งผลิต

นี่คือส่วนที่ทีมผลิตส่วนใหญ่สนใจจริงๆ และก็เป็นส่วนที่มักตั้งค่าผิดบ่อยที่สุดเช่นกัน ต้นทุนของสินค้าที่ผลิตใน Odoo มาจากสามแหล่ง

  1. ต้นทุนส่วนประกอบ — มูลค่าของวัตถุดิบและ sub-assembly ทุกตัวที่ถูกเบิกใช้ ตามวิธีคิดต้นทุน (FIFO เฉลี่ย หรือมาตรฐาน) ที่ตั้งไว้บนหมวดหมู่สินค้าแต่ละประเภท
  2. ต้นทุนการปฏิบัติงาน — อัตราต้นทุนต่อชั่วโมงของ work center คูณกับระยะเวลาจริง (หรือที่วางแผนไว้ในกรณีใช้ standard costing) ของแต่ละขั้นตอนใน routing
  3. ค่าโสหุ้ย (Overhead) หากต้องการรวมเข้าไป — บางทีมเพิ่มอัตราค่าโสหุ้ยการผลิตต่อชั่วโมงหรือต่อหน่วยเข้าไปจากสองข้อข้างต้น แต่เราแนะนำให้เริ่มแบบเรียบง่ายก่อน แล้วค่อยปรับละเอียดขึ้นเมื่อมีข้อมูลจริงแล้ว

ถ้าใช้ standard costing ใบสั่งผลิตจะลงบัญชีต้นทุนส่วนประกอบและต้นทุนการปฏิบัติงานตามค่ามาตรฐานเมื่อเสร็จสิ้น และส่วนต่างระหว่างค่ามาตรฐานกับค่าจริงจะปรากฏเป็นส่วนต่าง (variance) ที่ตรวจสอบได้ตอนปิดงบประจำเดือน ส่วนถ้าใช้ FIFO หรือเฉลี่ยในฝั่งส่วนประกอบ ต้นทุนส่วนประกอบจริง ณ เวลาที่เบิกใช้ จะไหลเข้าสู่ใบสั่งผลิตโดยตรง ซึ่งให้ตัวเลขที่แม่นยำกว่าต่อแต่ละล็อต แต่จะเคลื่อนไหวมากกว่าระหว่างรอบการผลิตของสินค้าตัวเดียวกัน

เราแนะนำ standard costing ให้กับลูกค้าที่ต้องการต้นทุนสินค้าที่คาดเดาได้แน่นอนสำหรับการเสนอราคา และแนะนำ FIFO หรือเฉลี่ยให้กับลูกค้าที่ราคาวัตถุดิบผันผวนมากพอจนค่ามาตรฐานคงที่จะทำให้ทีมขายเข้าใจผิดได้ ไม่มีวิธีไหนถูกเสมอไป ขึ้นอยู่กับพฤติกรรมการจัดซื้อจริงของแต่ละธุรกิจ

ข้อแลกเปลี่ยนหนึ่งที่ควรรู้ไว้คือ standard costing อ่านง่ายในรายงาน แต่ซ่อนแรงกดดันที่แท้จริงเมื่อราคาวัตถุดิบขึ้น เพราะบัญชี variance จะรับภาระแทนตัวต้นทุนสินค้าเอง ถ้าผู้จัดการจัดซื้อไม่เคยดูบัญชี variance เลย standard costing อาจบดบังปัญหากำไรขั้นต้นไว้ได้นานหลายเดือนโดยไม่รู้ตัว

Backflush การเบิกใช้แบบแมนนวล และสิ่งที่ถูกติดตามจริง

Odoo ให้เลือกตั้งค่าการเบิกใช้ส่วนประกอบแบบ backflush อัตโนมัติเมื่อใบสั่งผลิตเสร็จสิ้น หรือให้ยืนยันการเบิกใช้ด้วยตนเองต่อส่วนประกอบพร้อมติดตามล็อตหรือซีเรียล สำหรับสินค้าที่มีข้อกำหนดกำกับดูแล เช่น อาหาร ยา หรือสินค้าที่ต้องตรวจสอบย้อนกลับได้ การยืนยันแบบแมนนวลพร้อมติดตามล็อตคุ้มค่ากับการคลิกเพิ่มต่อส่วนประกอบ เพราะให้การตรวจสอบย้อนกลับได้ทั้งไปข้างหน้าและย้อนหลังอย่างแท้จริง ตั้งแต่ล็อตวัตถุดิบจนถึงล็อตสินค้าสำเร็จรูป

สำหรับงานประกอบปริมาณมากที่ไม่มีข้อกำกับดูแลเข้มงวด การ backflush อัตโนมัติตามปริมาณใน BOM เร็วกว่าและเพียงพอแล้ว ข้อแลกเปลี่ยนคือ backflush จะสมมติว่าปริมาณที่ใช้จริงเท่ากับปริมาณใน BOM เป๊ะ ถ้าพนักงานหน้างานใช้วัตถุดิบมากกว่าปกติเล็กน้อยเพราะของเสีย backflush จะรายงานของเสียต่ำกว่าความจริง และสต็อกส่วนประกอบจะเริ่มคลาดเคลื่อนจากความเป็นจริงไปเรื่อยๆ จนกว่าจะมีการนับสต็อกจริงครั้งต่อไป

วางโครงสร้าง BOM แรกให้ถูกต้องตั้งแต่ต้น

แนวทางบางอย่างที่เราใช้ซ้ำเกือบทุกโปรเจกต์ผลิต

  • สร้างต้นไม้ BOM บนกระดาษหรือสเปรดชีตร่วมกับหัวหน้าสายการผลิตก่อน ยังไม่ต้องคีย์แม้แต่บรรทัดเดียวลงใน Odoo
  • แยก sub-assembly แบบ "ผลิตเก็บสต็อก" ออกจากแบบ "ผลิตตามออเดอร์" ตั้งแต่ต้น เพราะมีผลต่อว่า Odoo จะสร้างใบสั่งผลิตซ้อนอัตโนมัติ หรือจองสต็อกที่มีอยู่แล้ว
  • กำหนดระยะเวลาแต่ละขั้นตอนใน routing จากการศึกษาเวลาจริง ไม่ใช่การเดา แม้จะเป็นเพียงการจับเวลาคร่าวๆ หน้างานสักหนึ่งวันก็ยังดีกว่า
  • ตัดสินใจวิธีคิดต้นทุนต่อหมวดหมู่สินค้าก่อนใช้งานจริง ไม่ใช่หลังจากปิดงบประจำเดือนแรกไปแล้วด้วยสมมติฐานเดิม
  • อัปเดตปฏิทิน work center ให้ตรงกับความจริงเสมอ work center ที่ตั้งว่าพร้อมใช้งานตลอด 24 ชั่วโมงทุกวัน ทั้งที่จริงเดินแค่กะเดียว จะทำให้การคำนวณกำลังการผลิตและระยะเวลาผลิตทั้งหมดคลาดเคลื่อนตามไปด้วย

ถ้ากำลังย้ายระบบจากระบบ MRP เดิมหรือ BOM แบบสเปรดชีต ควรเตรียมใจว่าการทำความสะอาดข้อมูล BOM เองอาจใช้เวลานานกว่าการตั้งค่า Odoo เสียอีก เราเคยเจอกรณีที่การตรวจสอบข้อมูล BOM ใช้เวลานานกว่าการตั้งค่าโมดูลผลิตถึงสามเท่า เพียงเพราะ BOM เก่าสะสมส่วนประกอบที่เลิกใช้แล้วและปริมาณที่ไม่มีใครตรวจสอบมานานหลายปี ควรแยกงานตรวจสอบนี้เป็นเฟสของโปรเจกต์ของตัวเองพร้อมกรอบเวลาชัดเจน แทนที่จะแอบยัดรวมไว้ใน "สัปดาห์ขึ้นระบบจริง" เฉยๆ

แนวทางทั่วไปของเราสำหรับ การวางระบบ Odoo ทุกโปรเจกต์คือตั้งค่าตามมาตรฐานก่อน และปรับแต่งเฉพาะจุดที่เครื่องมือ routing และ BOM มาตรฐานไม่สามารถสะท้อนกระบวนการจริงได้จริงๆ ซึ่งในงานผลิต กรณีแบบนี้เกิดขึ้นน้อยกว่าที่หลายทีมคิดไว้ล่วงหน้ามาก ถ้ากระบวนการผลิตของคุณจำเป็นต้องมี logic เฉพาะที่เกินกว่า routing และ work order มาตรฐานจะรองรับได้ นั่นคือเรื่องที่ควรคุยกันในขอบเขตของการปรับแต่ง Odoo มากกว่าการหาทางแก้ปัญหาเฉพาะหน้าต่อเข้ากับ BOM มาตรฐาน

ก่อนขึ้นระบบจริงครั้งต่อไป ลองดึงต้นไม้ BOM เต็มและ routing ของสินค้าสำเร็จรูปสักหนึ่งตัว แล้วไล่ดูทีละขั้นตอนร่วมกับคนที่ดูแลสายการผลิตจริง ถ้าลำดับขั้นตอนบนกระดาษไม่ตรงกับสิ่งที่เกิดขึ้นจริงที่ work center ให้แก้ routing ก่อนขึ้นระบบจริง อย่ารอให้รายงาน variance ใบแรกตั้งคำถามที่ไม่มีใครตอบได้

แชร์

คำถามที่พบบ่อย

BOM กับ Routing ใน Odoo ต่างกันอย่างไร

Bill of materials คือรายการส่วนประกอบและปริมาณที่ใช้ผลิตสินค้าหนึ่งหน่วย ส่วน routing คือลำดับขั้นตอนการผลิต work center ที่ใช้ และระยะเวลาที่คาดว่าจะใช้ในแต่ละขั้นตอน ใบสั่งผลิตใน Odoo ใช้ทั้งสองอย่างร่วมกัน คือ BOM สำหรับส่วนประกอบ และ routing สำหรับ work order และการบันทึกเวลา

Odoo รองรับ BOM หลายระดับที่มี sub-assembly ได้หรือไม่

ได้ ส่วนประกอบใน BOM หนึ่งตัวสามารถเป็นสินค้าที่ผลิตเองพร้อม BOM ของตัวเอง และ Odoo จะคลี่โครงสร้างออกไปได้ลึกเท่าที่จำเป็น เลือกได้ระหว่าง sub-assembly แบบมีสต็อกพร้อมใบสั่งผลิตของตัวเอง หรือ phantom BOM ที่คลี่เข้าใบสั่งผลิตแม่โดยตรงโดยไม่มีสต็อกแยก

ควรใช้วิธีคิดต้นทุนแบบไหนสำหรับสินค้าที่ผลิตเอง

Standard costing ให้ต้นทุนสินค้าที่คาดเดาได้และเหมาะกับการเสนอราคา โดยผลักส่วนต่างราคาไปไว้ที่บัญชี variance เหมาะกับราคาวัตถุดิบที่นิ่ง ส่วน FIFO หรือเฉลี่ยสะท้อนต้นทุนจริงต่อล็อตได้แม่นยำกว่าแต่เคลื่อนไหวมากกว่าในแต่ละรอบผลิต วิธีที่เหมาะสมขึ้นอยู่กับความผันผวนของราคาวัตถุดิบจริง

Odoo คำนวณต้นทุนจริงของใบสั่งผลิตอย่างไร

รวมต้นทุนส่วนประกอบตามวิธีคิดต้นทุนของหมวดหมู่สินค้า บวกต้นทุนการปฏิบัติงานจากอัตราต่อชั่วโมงของ work center คูณระยะเวลาจริงหรือที่วางแผนไว้ และอาจรวมอัตราค่าโสหุ้ยที่ตั้งค่าเพิ่มเติม การดูส่วนต่างระหว่างเวลาที่วางแผนกับเวลาจริงต่อ work center เป็นสัญญาณต้นทุนที่มีประโยชน์มากที่สุดอย่างหนึ่ง

การเบิกใช้ส่วนประกอบควรเป็นแบบอัตโนมัติหรือแมนนวล

Backflush อัตโนมัติตามปริมาณใน BOM เร็วกว่าและเหมาะกับงานประกอบปริมาณมากที่ไม่มีข้อกำกับดูแลเข้มงวด แต่อาจรายงานของเสียต่ำกว่าความจริงเมื่อเวลาผ่านไป การเบิกใช้แบบแมนนวลพร้อมติดตามล็อตหรือซีเรียลช้ากว่าต่อรายการ แต่ให้การตรวจสอบย้อนกลับได้จริง ซึ่งสำคัญมากสำหรับสินค้าประเภทอาหาร ยา หรือสินค้าที่ต้องกำกับดูแล

แหล่งข้อมูล

เกี่ยวกับผู้เขียน

Ravi Shanker Singh

ผู้ก่อตั้งและที่ปรึกษา Odoo

ผู้ก่อตั้ง Tech After Me และที่ปรึกษา Odoo ราวีดูแลการติดตั้ง ปรับแต่ง และซัพพอร์ตระบบ Odoo ERP รวมถึงพัฒนาเว็บ แอปมือถือ และระบบข้อมูลให้ธุรกิจในไทย สหรัฐอเมริกา และอินเดีย โดยประจำอยู่ที่กรุงเทพฯ นิวยอร์ก และเดลี (NCR)

บทความอื่นของผู้เขียน

อ่านต่อ

Odoo vs SAP Business One: เลือกแบบไหนเหมาะกิจการขนาดกลางระบบ Odoo ERP

Odoo vs SAP Business One: เลือกแบบไหนเหมาะกิจการขนาดกลาง

เปรียบเทียบ Odoo กับ SAP Business One จากประสบการณ์วางระบบจริง ทั้งเรื่องค่าไลเซนส์ การปรับแต่ง การรองรับกฎหมายไทย และความพยายามจริงในการขึ้นระบบสำหรับกิจการขนาดกลาง

Ravi Shanker Singh10 นาทีในการอ่าน

ตั้งค่า Odoo Multi-Company: กฎ Inter-Company ข้อมูลร่วม รายงานระบบ Odoo ERP

ตั้งค่า Odoo Multi-Company: กฎ Inter-Company ข้อมูลร่วม รายงาน

มุมมองเชิงปฏิบัติสำหรับการบริหารหลายนิติบุคคลในฐานข้อมูล Odoo เดียว ตั้งแต่ธุรกรรมระหว่างบริษัทในเครือ สินค้าที่ใช้ร่วมกัน บัญชีแยกของแต่ละบริษัท ไปจนถึงรายงานรวมที่อ่านง่าย

Ravi Shanker Singh11 นาทีในการอ่าน

ระบบอนุมัติจัดซื้อ Odoo: RFQ วงเงินอนุมัติ และ 3-Way Matchingระบบ Odoo ERP

ระบบอนุมัติจัดซื้อ Odoo: RFQ วงเงินอนุมัติ และ 3-Way Matching

คู่มือปฏิบัติจริงสำหรับวางระบบอนุมัติจัดซื้อใน Odoo ที่ใช้งานได้จริง ตั้งแต่ขั้นตอน RFQ วงเงินอนุมัติ ไปจนถึงการตรวจสอบแบบ 3-Way Matching

Ravi Shanker Singh9 นาทีในการอ่าน

เปลี่ยนสิ่งที่คุณอ่าน ให้เป็นผลลัพธ์จริง

ทีมที่เขียนบทความเหล่านี้คือทีมเดียวกับที่ลงมือทำงานจริง เล่าให้เราฟังว่าคุณกำลังทำโปรเจกต์อะไรอยู่

รับบทความใหม่ทางอีเมล

รับบทความใหม่ทางอีเมล

คู่มือ Odoo และข่าวไอทีที่มีผลต่อธุรกิจของคุณ ไม่เกินสัปดาห์ละหนึ่งฉบับ