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 จะถูกคืนโดยอัตโนมัติ
- Enable stock management — เปิดระบบนับ Stock ทั้งร้าน
- Hold stock (minutes) — กำหนดเวลาจอง Stock สำหรับออร์เดอร์รอชำระ (แนะนำ 60 นาที)
- Notifications — Email ที่รับแจ้งเตือน Low Stock และ Out of Stock
- Low stock threshold — จำนวน Stock ที่ถือว่า "ใกล้หมด" ระดับ Global
- Out of stock threshold — จำนวน Stock ที่ถือว่า "หมดแล้ว" (ปกติคือ 0)
- Out of stock visibility — ซ่อนสินค้าหมด Stock ออกจากหน้าร้านหรือไม่
- Stock display format — รูปแบบแสดงจำนวน 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 เสมอ
- ไปที่ WooCommerce > Settings > Products > Inventory
- กรอก Email ที่ต้องการรับแจ้งเตือนในช่อง "Notification recipient(s)"
- ตั้งค่า "Low stock threshold" เป็นจำนวนที่เหมาะสม เช่น 5 ชิ้น
- ไปที่ WooCommerce > Settings > Emails เพื่อ Customize รูปแบบ Email
- เปิดใช้งาน "Low stock" และ "No stock" Email ให้ครบทั้งคู่
- คลิก "Save changes" แล้วทดสอบโดยลด Stock สินค้าทดสอบให้ต่ำกว่า Threshold
จัดการ 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 ซึ่งจะช่วยให้หน้าร้านดูสะอาดและไม่สร้างความสับสนให้ลูกค้า
- ไปที่สินค้าที่ต้องการ แล้วเลือกแท็บ Inventory
- ในส่วน "Allow backorders?" เลือกตัวเลือกที่เหมาะสม
- Do not allow — ปิดการสั่งซื้อทันทีที่ Stock เป็น 0
- Allow, but notify customer — รับออร์เดอร์แต่แจ้งลูกค้าว่าต้องรอ
- Allow — รับออร์เดอร์โดยไม่มีข้อความพิเศษ
- บันทึกการเปลี่ยนแปลงและทดสอบการสั่งซื้อ
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
- แท็บ Variations ใน Product Data มีตัวเลือก Stock แยกต่างหากสำหรับแต่ละ Variation
- เปิด "Manage stock?" ใน Variation เพื่อนับ Stock แยกจาก Parent Product
- ถ้าไม่เปิดใน Variation ระบบจะดึง Stock จาก Parent Product แทน
- ใช้ Bulk Action เพื่ออัพเดท Stock หลาย Variation พร้อมกัน
- Stock ของ Parent Product จะแสดงผลรวมของ Variation ทั้งหมดโดยอัตโนมัติ
- Backorder ของแต่ละ Variation ก็สามารถตั้งค่าแยกได้เช่นกัน
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 อื่น
- ไปที่ Products > All Products คลิกปุ่ม Export
- เลือก Export เฉพาะ Column ที่ต้องการ หรือ Export ทั้งหมด
- เปิดไฟล์ CSV ด้วย Google Sheets หรือ Excel
- แก้ไขค่าในคอลัมน์
Stockตามจำนวนสินค้าจริง - บันทึกเป็น CSV UTF-8 (ไม่ใช่ Excel format)
- ไปที่ Products > All Products คลิกปุ่ม Import
- Upload ไฟล์ CSV แล้วทำการ Map columns ให้ถูกต้อง
- เลือก "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;
แก้ปัญหาที่พบบ่อย
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)