จัดการ Stock และ Inventory ใน WooCommerce อย่างมืออาชีพ

ตั้งค่า Stock Management, Low Stock Notification, Backorder และ Import CSV เพื่อบริหาร Inventory ได้อย่างแม่นยำ

จัดการ Inventory WooCommerce WooCommerce

การบริหาร Stock และ Inventory อย่างถูกต้องคือหัวใจสำคัญของร้านออนไลน์ที่ประสบความสำเร็จ WooCommerce มีระบบ Stock Management ในตัวที่ทรงพลัง ช่วยให้คุณติดตามจำนวนสินค้าคงเหลือ ตั้งค่าการแจ้งเตือนเมื่อสินค้าใกล้หมด และกำหนดพฤติกรรมเมื่อสินค้าหมด Stock ได้อย่างละเอียด บทความนี้จะพาคุณตั้งค่าทุกอย่างตั้งแต่ต้นจนจบ เพื่อให้ร้านของคุณทำงานได้อัตโนมัติและลดปัญหาการขายเกิน Stock

เปิดใช้งาน WooCommerce Stock Management

ก่อนจะเริ่มตั้งค่าสินค้าแต่ละชิ้น คุณต้องเปิดใช้งาน Stock Management ในระดับ Global ก่อน โดยไปที่ WooCommerce > Settings > Products > Inventory แล้วติ๊กถูกที่ช่อง "Enable stock management" ซึ่งเป็นการเปิดระบบนับสต็อกสำหรับทุกสินค้าในร้าน

หลังจากเปิดใช้งานแล้ว WooCommerce จะเพิ่มตัวเลือก Inventory ในหน้าแก้ไขสินค้าทุกชิ้น คุณสามารถกำหนดได้ว่าแต่ละสินค้าจะใช้ระบบ Stock Management หรือไม่ก็ได้ ทำให้มีความยืดหยุ่นสูง เหมาะกับร้านที่มีทั้งสินค้าที่ต้องนับสต็อกและสินค้าที่ไม่มีการจำกัดจำนวน เช่น สินค้า Digital Download

ในหน้า Inventory Settings มีตัวเลือกสำคัญที่ควรตั้งค่าตั้งแต่แรก ได้แก่ Hold Stock (นาที) ซึ่งกำหนดว่าระบบจะจอง Stock ไว้กี่นาทีสำหรับออร์เดอร์ที่ยังไม่ชำระเงิน โดยค่า Default คือ 60 นาที เมื่อครบเวลาและยังไม่ชำระ ออร์เดอร์จะถูกยกเลิกและ Stock จะถูกคืนโดยอัตโนมัติ

ตั้งค่า Stock Quantity ต่อสินค้า

เมื่อเปิด Stock Management ระดับ Global แล้ว ให้ไปที่สินค้าแต่ละชิ้น คลิก Products > All Products แล้วเลือกสินค้าที่ต้องการแก้ไข จากนั้นเลื่อนลงไปที่แถบ Product Data แล้วคลิกแท็บ Inventory ซึ่งจะมีตัวเลือกให้ตั้งค่า Stock แบบละเอียด

ในแท็บ Inventory ของสินค้า ให้ติ๊กถูกที่ "Track stock quantity for this product" เพื่อเปิดการนับ Stock สำหรับสินค้าชิ้นนี้โดยเฉพาะ จากนั้นกรอกจำนวน Stock ปัจจุบันในช่อง Quantity หมายเลขที่ใส่ควรตรงกับสินค้าที่มีจริงในคลัง เพื่อป้องกันปัญหาขายเกิน Stock

คุณยังสามารถกำหนด Low Stock Threshold เฉพาะสินค้าชิ้นนั้นได้ด้วย ซึ่งจะ Override ค่า Global ที่ตั้งไว้ในหน้า Settings ตัวอย่างเช่น หากสินค้า Global ตั้งไว้ที่ 5 ชิ้น แต่สินค้าบางอย่างหายากและต้องการแจ้งเตือนที่ 10 ชิ้น ก็สามารถตั้งค่าเฉพาะสินค้านั้นได้

ตัวเลือก Inventory คำอธิบาย แนะนำ
Track stock quantity เปิดการนับ Stock สำหรับสินค้านี้ เปิดเสมอ
Quantity จำนวน Stock ปัจจุบัน ใส่ตามจริง
Low stock threshold จุดแจ้งเตือนใกล้หมด ตามประเภทสินค้า
Allow backorders อนุญาตสั่งซื้อเมื่อ Stock หมด พิจารณาตามกรณี
Sold individually จำกัด 1 ชิ้นต่อออร์เดอร์ สำหรับสินค้าพิเศษ

ตั้งค่า Low Stock Threshold Alert

ระบบแจ้งเตือน Low Stock ของ WooCommerce จะส่ง Email ให้คุณโดยอัตโนมัติเมื่อสินค้าใกล้หมด ช่วยให้คุณสั่งของเพิ่มได้ทันเวลาก่อนที่สินค้าจะหมด Stock จนขายไม่ได้ การตั้งค่าอยู่ที่ WooCommerce > Settings > Emails > Low stock

ในหน้า Email Settings สำหรับ Low Stock คุณสามารถเปิด/ปิดการแจ้งเตือน กำหนด Email ที่รับการแจ้งเตือน (ไม่จำเป็นต้องเป็น Admin เดียวกัน) และปรับแต่ง Subject ของ Email ได้ แนะนำให้ตั้ง Email นี้เป็น Email คนที่รับผิดชอบจัดซื้อสินค้าโดยตรง เพื่อให้การทำงานคล่องตัว

นอกจาก Low Stock แล้ว WooCommerce ยังมี Out of Stock Notification แยกต่างหาก ซึ่งจะแจ้งเตือนเมื่อสินค้าหมดไปเลย ทั้งสองแจ้งเตือนสามารถส่งไปยัง Email ต่างกันได้ และคุณควรทดสอบทั้งสองระบบด้วยการซื้อสินค้าทดสอบก่อน Go Live เสมอ

จัดการ Backorder และสินค้าหมด Stock

Backorder คือการอนุญาตให้ลูกค้าสั่งซื้อสินค้าแม้ Stock จะเป็น 0 หรือติดลบ เหมาะสำหรับสินค้าที่สามารถสั่งผลิตหรือนำเข้าเพิ่มได้ WooCommerce มีตัวเลือก Backorder สามแบบให้เลือก ได้แก่ Do not allow (ไม่อนุญาต), Allow but notify customer (อนุญาตแต่แจ้งลูกค้า) และ Allow (อนุญาตโดยไม่แจ้ง)

สำหรับร้านส่วนใหญ่ แนะนำให้ใช้ "Allow but notify customer" เพราะลูกค้าจะได้รู้ว่าสินค้าอยู่ในสถานะ Backorder และต้องรอเพิ่มเติม ช่วยลดปัญหาการร้องเรียนได้มาก WooCommerce จะแสดงข้อความ "Available on backorder" บนหน้าสินค้าและในอีเมลยืนยันออร์เดอร์โดยอัตโนมัติ

เมื่อสินค้า Out of Stock และคุณไม่เปิด Backorder WooCommerce จะแสดงข้อความ "Out of stock" และปุ่ม Add to Cart จะหายไป นอกจากนี้คุณยังสามารถตั้งค่าให้ซ่อนสินค้าหมด Stock ออกจากหน้าร้านได้เลย โดยเปิดตัวเลือก "Out of stock visibility" ในหน้า Inventory Settings ซึ่งจะช่วยให้หน้าร้านดูสะอาดและไม่สร้างความสับสนให้ลูกค้า

  1. ไปที่สินค้าที่ต้องการ แล้วเลือกแท็บ Inventory
  2. ในส่วน "Allow backorders?" เลือกตัวเลือกที่เหมาะสม
  3. Do not allow — ปิดการสั่งซื้อทันทีที่ Stock เป็น 0
  4. Allow, but notify customer — รับออร์เดอร์แต่แจ้งลูกค้าว่าต้องรอ
  5. Allow — รับออร์เดอร์โดยไม่มีข้อความพิเศษ
  6. บันทึกการเปลี่ยนแปลงและทดสอบการสั่งซื้อ

Variable Products: จัดการ Stock แยก Variation

Variable Product เช่น เสื้อที่มีหลายไซส์ หรือโทรศัพท์ที่มีหลายสี จำเป็นต้องจัดการ Stock แยกตาม Variation เพราะแต่ละขนาดหรือสีมีจำนวนสินค้าคงเหลือที่แตกต่างกัน WooCommerce รองรับการตั้งค่านี้ได้ในแท็บ Variations ของสินค้า

ในแท็บ Variations คุณสามารถ Expand แต่ละ Variation แล้วเปิดการ Track Stock แยกต่างหากได้ โดยติ๊กถูกที่ "Manage stock?" ภายใน Variation นั้น จากนั้นกรอกจำนวน Stock และตั้งค่า Backorder สำหรับ Variation นั้นได้อิสระ ทำให้คุณสามารถกำหนดได้ว่าไซส์ S มี 10 ชิ้น แต่ไซส์ XL มีเพียง 2 ชิ้น เป็นต้น

กรณีที่มี Variation จำนวนมาก WooCommerce มีฟีเจอร์ Bulk Edit ที่ช่วยได้ โดยคลิกที่ "Select all" หรือเลือก Variation ที่ต้องการ แล้วใช้ตัวเลือก "Set stock" จาก Dropdown เพื่ออัพเดท Stock ของหลาย Variation พร้อมกันในครั้งเดียว ประหยัดเวลาได้มากสำหรับร้านที่มีสินค้าหลาย Variant

Import/Export Stock ด้วย CSV

เมื่อร้านมีสินค้าจำนวนมาก การอัพเดท Stock ทีละชิ้นจะเสียเวลามาก WooCommerce รองรับการ Import และ Export สินค้าด้วยไฟล์ CSV ซึ่งช่วยให้คุณอัพเดท Stock ของสินค้าหลายร้อยชิ้นได้ในครั้งเดียว โดยไปที่ Products > All Products > Import หรือ Export

ขั้นตอนการ Import Stock ด้วย CSV เริ่มจากการ Export สินค้าออกมาก่อนเพื่อให้ได้ Template ที่มี Column Header ถูกต้อง จากนั้นแก้ไขค่าในคอลัมน์ "Stock" (หรือ "stock_quantity") ด้วย Excel หรือ Google Sheets แล้วบันทึกเป็น CSV Format (UTF-8) ก่อน Import กลับเข้าไปใหม่ สำคัญมากที่ Column Header ต้องตรงกับที่ WooCommerce กำหนด

WooCommerce Import จะมี Option ให้เลือกว่าต้องการ Update existing products หรือ Create new products ถ้าต้องการอัพเดท Stock เฉพาะ ให้เลือก "Update existing products" แล้วทำการ Map column ระหว่างไฟล์ CSV กับ Field ใน WooCommerce ในขั้นตอน Column mapping จากนั้น WooCommerce จะอัพเดทเฉพาะ Field ที่มีข้อมูลใน CSV โดยไม่แตะ Field อื่น

  1. ไปที่ Products > All Products คลิกปุ่ม Export
  2. เลือก Export เฉพาะ Column ที่ต้องการ หรือ Export ทั้งหมด
  3. เปิดไฟล์ CSV ด้วย Google Sheets หรือ Excel
  4. แก้ไขค่าในคอลัมน์ Stock ตามจำนวนสินค้าจริง
  5. บันทึกเป็น CSV UTF-8 (ไม่ใช่ Excel format)
  6. ไปที่ Products > All Products คลิกปุ่ม Import
  7. Upload ไฟล์ CSV แล้วทำการ Map columns ให้ถูกต้อง
  8. เลือก "Update existing products" แล้วคลิก Run the importer

ตรวจสอบว่า Stock Management ทำงานถูกต้อง

ก่อน Go Live หรือหลังตั้งค่าใหม่ทุกครั้ง ควรตรวจสอบให้แน่ใจว่าระบบ Stock Management ทำงานถูกต้อง ด้วยการทดสอบตั้งแต่ต้นจนจบกระบวนการ ตั้งแต่การสั่งซื้อไปจนถึงการลด Stock ตัวอย่างด้านล่างแสดง Code Snippet และ Query ที่ใช้ตรวจสอบได้

# 1. ตรวจสอบ Stock ของสินค้าผ่าน WooCommerce REST API
GET /wp-json/wc/v3/products/{product_id}
# ดู field: "stock_quantity", "stock_status", "manage_stock"

# 2. ตรวจสอบ Stock ด้วย WP-CLI (ถ้า Hosting รองรับ)
wp wc product get {product_id} --fields=stock_quantity,stock_status --allow-root

# 3. ตรวจสอบ Stock ผ่าน MySQL Query (Database)
SELECT post_meta.meta_key, post_meta.meta_value
FROM wp_postmeta AS post_meta
WHERE post_meta.post_id = {product_id}
  AND post_meta.meta_key IN ('_stock', '_stock_status', '_manage_stock', '_backorders')
ORDER BY post_meta.meta_key;

# 4. ตรวจสอบ Low Stock Threshold ของสินค้า
SELECT meta_value FROM wp_postmeta
WHERE post_id = {product_id} AND meta_key = '_low_stock_amount';

# 5. ดูประวัติการเปลี่ยนแปลง Stock ใน Order Notes
SELECT comment_content, comment_date
FROM wp_comments
WHERE comment_post_ID = {order_id}
  AND comment_type = 'order_note'
  AND comment_content LIKE '%stock%'
ORDER BY comment_date DESC LIMIT 10;
Tip: สั่งซื้อสินค้าทดสอบแล้วดูว่า Stock ลดลงถูกต้อง และเมื่อสั่งซื้อเกิน Stock ระบบแจ้งเตือนหรือไม่แล้วแต่ตั้งค่า Backorder

แก้ปัญหาที่พบบ่อย

Stock ไม่ลดหลังลูกค้า Order — Payment Status ยังเป็น Pending

WooCommerce จะลด Stock เมื่อออร์เดอร์เปลี่ยนสถานะเป็น Processing หรือ Completed เท่านั้น ถ้า Payment Status ยังเป็น "Pending payment" หมายความว่าลูกค้ายังไม่ได้ชำระเงิน ระบบจะจอง Stock ไว้ตามเวลา Hold Stock ที่ตั้งไว้ แต่ยังไม่ลดออกจาก Count ถ้าคุณใช้ช่องทางชำระเงินที่ต้องยืนยันด้วยตนเอง เช่น Bank Transfer ให้ Update สถานะออร์เดอร์เป็น Processing หลังยืนยันได้รับเงิน

Email แจ้งเตือน Low Stock ไม่มา — Email Settings ไม่ถูกต้องใน WooCommerce

ให้ตรวจสอบที่ WooCommerce > Settings > Emails > Low stock ว่าเปิดใช้งานอยู่หรือไม่ และ Email Recipient ถูกต้องหรือเปล่า นอกจากนี้ให้ตรวจสอบว่า WordPress สามารถส่ง Email ได้โดยทั่วไปด้วยการใช้ Plugin เช่น WP Mail SMTP ในการส่ง Test Email ถ้า Hosting ของคุณบล็อก PHP mail() ให้ใช้ SMTP ของ Google Workspace หรือ SendGrid แทน และอย่าลืมตรวจสอบในโฟลเดอร์ Spam/Junk ของ Email ด้วย

สินค้า Out of Stock ยังถูกสั่งซื้อได้ — Backorder ถูกเปิดอยู่

ให้ไปตรวจสอบที่แท็บ Inventory ของสินค้านั้น ในส่วน "Allow backorders?" ถ้าตั้งเป็น "Allow" หรือ "Allow, but notify customer" ลูกค้าจะยังสั่งซื้อได้แม้ Stock จะเป็น 0 ถ้าไม่ต้องการให้สั่งซื้อได้เมื่อหมด Stock ให้เปลี่ยนเป็น "Do not allow" แล้วบันทึก อย่าลืมตรวจสอบ Variable Product ด้วยว่า Variation แต่ละตัวก็ต้องปิด Backorder เช่นกัน

Import CSV แล้ว Stock ไม่อัพเดท — Column Header ไม่ตรง Format

WooCommerce Import ต้องการ Column Header ที่เป็น "Stock" (ภาษาอังกฤษ ไม่ใช่ภาษาไทย) และ "SKU" สำหรับระบุสินค้า วิธีที่ปลอดภัยที่สุดคือ Export สินค้าจาก WooCommerce ก่อน แล้วใช้ Template ที่ได้มาเป็นพื้นฐาน อย่าเปลี่ยน Column Header เอง นอกจากนี้ให้บันทึก CSV เป็น UTF-8 ไม่ใช่ UTF-16 หรือ Windows encoding อื่น และตรวจสอบว่าตัวเลข Stock ในไฟล์ไม่มีเครื่องหมายจุลภาค (เช่น 1,000 ต้องเป็น 1000)

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

WooCommerce นับ Stock เมื่อ Order เข้า หรือเมื่อชำระเงินแล้ว?
WooCommerce จะลด Stock (Reduce) เมื่อออร์เดอร์เปลี่ยนสถานะเป็น Processing หรือ On-Hold ไม่ใช่เมื่อแค่สร้างออร์เดอร์ อย่างไรก็ตามระบบจะ "จอง" Stock ตามเวลา Hold Stock (ค่า Default 60 นาที) ระหว่างที่ออร์เดอร์ยัง Pending ดังนั้นถ้ามีลูกค้าหลายคนเพิ่มสินค้าลงตะกร้าพร้อมกัน จะมีเพียงคนแรกที่ Check out สำเร็จเท่านั้นที่ได้ Stock ในกรณีสินค้าเหลือน้อย
ถ้าขายสินค้าหลายช่องทาง จะ Sync Stock กับ WooCommerce อย่างไร?
WooCommerce เองไม่มีระบบ Multi-channel Sync ในตัว แต่มี Plugin และ Integration ที่ช่วยได้ เช่น Square for WooCommerce (สำหรับหน้าร้าน), WooCommerce Multichannel, หรือใช้ Platform อย่าง Linnworks หรือ Vend ที่เชื่อมต่อ WooCommerce กับ Marketplace อื่นๆ อีกทางเลือกคือใช้ WooCommerce REST API เพื่อสร้าง Custom Sync สำหรับร้านที่มี Developer อยู่ในทีม แนะนำให้ใช้ Master System เก็บ Stock จริงแล้ว Sync ออกไปยังช่องทางต่างๆ แทนที่จะให้แต่ละช่องทางจัดการแยกกัน
Variable Product ควรจัดการ Stock ระดับ Product หรือ Variation?
แนะนำให้จัดการ Stock ระดับ Variation เสมอสำหรับ Variable Product เพราะแต่ละ Variation (เช่น ไซส์ S, M, L) มักมีจำนวนสินค้าแตกต่างกัน การจัดการระดับ Product จะทำให้ดูแล Stock ไม่ได้เลย เช่น ไซส์ S หมดแล้วแต่ระบบยังบอกว่ามีสินค้าอยู่เพราะนับรวมทุก Variation ถ้าจัดการ Stock ที่ระดับ Variation ลูกค้าจะเห็น "Out of stock" เฉพาะ Variation ที่หมดเท่านั้น ส่วน Variation อื่นยังซื้อได้ปกติ