01 อัพโหลดสินค้า (Products)

01-05 การอัพโหลดสินค้าแบบ Bulk ผ่าน Plugin YMF Import

YMF Product Import Export

คู่มือการใช้งาน  |  User Manual

Version 1.0.3  ·  WooCommerce Plugin

  ปลั๊กอินนี้ออกแบบมาเพื่อความปลอดภัย — ระบบจะอัปเดตเฉพาะ field ที่คุณเลือกเท่านั้น
column อื่นทั้งหมดใน CSV จะถูก ignore โดยอัตโนมัติ ไม่ว่าจะมีข้อมูลอะไรอยู่ก็ตาม

1. ภาพรวมปลั๊กอิน (Overview)

YMF Product Import Export เป็น WooCommerce plugin สำหรับ import/export ข้อมูลสินค้าผ่านไฟล์ CSV โดยมีระบบ allowlist ที่ป้องกันไม่ให้ field ใดถูกอัปเดตโดยไม่ตั้งใจ

ความต้องการระบบ

รายการเวอร์ชั่นขั้นต่ำ
WordPress5.8 ขึ้นไป
WooCommerce6.0 ขึ้นไป
PHP7.4 ขึ้นไป
ขนาดไฟล์ CSV สูงสุด20 MB
EncodingUTF-8 (รองรับ BOM)
DelimiterComma (,) หรือ Semicolon (;) — ระบบ detect อัตโนมัติ

ติดตั้งปลั๊กอิน

1. แตก zip ได้โฟลเดอร์ ymf-product-import-export/

2. อัปโหลดโฟลเดอร์ไปที่ /wp-content/plugins/

3. เข้า WordPress Admin → Plugins → Activate

4. เมนูจะปรากฏที่ WooCommerce → Safe Import Export

  ปลั๊กอินสร้าง table wp_ymf_pie_logs ในฐานข้อมูลอัตโนมัติเมื่อ activate

2. หน้าจอหลัก

หน้าจอแบ่งเป็น 3 แท็บ:

แท็บหน้าที่
⬆ Importนำเข้าข้อมูลสินค้าจาก CSV — มี wizard 4 ขั้นตอน
⬇ Exportส่งออกข้อมูลสินค้าเป็น CSV พร้อม filter
📋 Logsดูประวัติการ import ทั้งหมด และ rollback ย้อนกลับได้

3. การ Export สินค้า

คลิกแท็บ ⬇ Export เลือก filter ที่ต้องการ แล้วกด Export to CSV ไฟล์จะ download อัตโนมัติ

Filter ที่ใช้ได้

Filterตัวเลือกหมายเหตุ
Publish StatusAll / Published only / Draft onlyกรองตามสถานะการเผยแพร่
Product TypeAll / Simple / Variable / Variationกรองตามประเภทสินค้า
CategoryAll / เลือก categoryแสดงเฉพาะ category ที่มีสินค้าอยู่
Stock StatusAll / In stock / Out of stock / On backorderกรองตามสถานะสต็อก

Columns ใน CSV ที่ Export ได้

Columnความหมายตัวอย่างค่าImport ได้?
idWooCommerce Product ID (ตัวเลข unique)8137✅ ใช้ระบุสินค้า
skuStock Keeping Unit — รหัสสินค้าBL-1023783✅ ใช้ระบุสินค้า
nameชื่อสินค้าSS24 Lady Blouse❌ อ่านอย่างเดียว
typeประเภทสินค้าsimple / variable / variation❌ อ่านอย่างเดียว
parent_idID ของสินค้าแม่ (0 = ไม่มีแม่)8137 หรือ 0❌ อ่านอย่างเดียว
stock_qtyจำนวนสต็อกปัจจุบัน50✅ อัปเดตได้
statusสถานะการเผยแพร่publish / draft✅ อัปเดตได้
manage_stockเปิด/ปิดการนับสต็อกyes / no✅ อัปเดตได้
backordersอนุญาต backorderno / notify / yes✅ อัปเดตได้
stock_statusสถานะสต็อก (คำนวณโดย WC)instock / outofstock / onbackorder❌ ห้าม import

  stock_status ใน CSV เป็น reference เท่านั้น — WooCommerce คำนวณค่านี้อัตโนมัติจาก stock_qty ห้าม import กลับโดยตรง

4. ประเภทสินค้า (Product Type)

Typeความหมายตัวอย่างparent_id
simpleสินค้าธรรมดา มี 1 variantเสื้อยืด ไซส์เดียว0
variableสินค้าแม่ที่มีหลาย variation
(ไม่มี stock ของตัวเอง)
เสื้อยืด (มีหลายไซส์)0
variationสินค้าลูกของ variable
(มี stock แยกแต่ละตัว)
เสื้อยืด ไซส์ SID ของ variable

  สำคัญ: สินค้า type=variable (ตัวแม่) ไม่ควรตั้ง manage_stock=yes และห้ามใส่ stock_qty — ให้จัดการ stock ที่ variation ลูกแต่ละตัวแทน
ถ้า variable มี manage_stock=yes + stock=0 จะทำให้สินค้าทั้งหมดขึ้น Out of stock

กฎพิเศษสำหรับ Variable Product (ตัวแม่)

Fieldควรเป็นค่าเหตุผล
manage_stocknoให้ WC รวม stock จาก variation ลูกอัตโนมัติ
stock_qty0 หรือว่างเปล่าไม่มีผล (ปลั๊กอินจะ skip ให้อัตโนมัติ)
backordersnoตั้งค่าที่ variation ลูกแทน

5. การ Import สินค้า

การ import แบ่งเป็น 4 ขั้นตอน: อัปโหลดไฟล์ → ดู Preview → Confirm → ดูผลลัพธ์

ขั้นตอนที่ 1 — อัปโหลดไฟล์และเลือก Mode

เลือก Import Mode ก่อนกด Upload & Preview:

ModeField ที่อัปเดตเหมาะกับ
Stock only
(Default — Safest)
stock_qty เท่านั้น
สถานะสินค้าไม่เปลี่ยน
งานประจำ อัปเดตยอดสต็อกรายวัน
ปลอดภัยที่สุด
Stock + Publish statusstock_qty + status
(publish/draft)
ต้องการเปิด/ปิดสินค้าพร้อมกับอัปเดตสต็อก
Custom fieldsเลือกเองว่าจะอัปเดต field ไหน
จาก 4 ตัวเลือก
งาน bulk อัปเดต manage_stock
หรือ backorders

Custom Mode — Field ที่เลือกได้

Fieldค่าที่ยอมรับหมายเหตุ
Stock quantityตัวเลข ≥ 0จำนวนสต็อก — skip อัตโนมัติสำหรับ variable (ตัวแม่)
Publish statuspublish หรือ draftเปิด/ปิดการมองเห็นสินค้า
Manage stockyes หรือ noเปิด/ปิดการนับสต็อก — ใช้ WC product object จึง safe
Backordersno, notify, หรือ yesno=ไม่อนุญาต, notify=แจ้งลูกค้า, yes=อนุญาต

ตัวเลือกเสริม — Dry Run

ติ๊ก Dry run ก่อนกด Upload & Preview เพื่อดูตัวอย่างผลลัพธ์โดยไม่บันทึกข้อมูลจริง ผลลัพธ์จะขึ้นว่า DRY RUN และไม่มีการบันทึก log

  ถ้าติ๊ก Dry run — ไม่มีข้อมูลใดถูกเปลี่ยนแปลง ต้อง untick ออกก่อนจึงจะ import จริง

ขั้นตอนที่ 2 — Preview Import

ระบบแสดงตารางสรุปก่อน confirm — อ่านทุก column ให้ครบก่อนกด Confirm:

Column ใน Previewความหมาย
SKUรหัสสินค้าจาก CSV
IDWooCommerce Product ID
Product Nameชื่อสินค้าปัจจุบันใน WooCommerce
Stock (current → new)สต็อกปัจจุบัน → ค่าใหม่จาก CSV
(unchanged) = field นี้ไม่ได้เลือกไว้
(skipped — variable) = ตัวแม่ variable ถูก skip อัตโนมัติ
Status (current → new)สถานะปัจจุบัน → ค่าใหม่
(unchanged) = ไม่ได้เลือก field นี้
Fieldsรายการ field ที่จะถูกอัปเดตในรอบนี้
ResultUPDATE = จะอัปเดต
SKIPPED = ข้ามไป
ERROR = มีปัญหา
WARNING = มี duplicate SKU
DRY_RUN = dry run mode

ขั้นตอนที่ 3 — Confirm และ Processing

กด Confirm Import ระบบประมวลผลทีละ 50 rows พร้อม progress bar ห้ามปิดหน้าจนกว่าจะครบ 100%

ขั้นตอนที่ 4 — ดูผลลัพธ์

ผลลัพธ์ความหมาย
Updatedจำนวน row ที่อัปเดตสำเร็จ
Skippedข้ามไป — เพราะไม่มีค่าที่ต้องเปลี่ยน หรือ ไม่พบสินค้า
Errorsrow ที่มีปัญหา — ข้อมูลไม่ถูกต้องหรือ SKU ไม่พบ
Totalจำนวน row ทั้งหมดในไฟล์

หลัง import เสร็จมีปุ่ม:

  • ↩ Rollback This Import — ย้อนกลับค่าทุกอย่างเป็นก่อน import
  • ⬇ Download Error Rows — download CSV เฉพาะ row ที่ error

6. กฎ Validation

ระบบตรวจสอบทุก row ก่อน import — row ที่ผิดจะถูก skip โดยไม่หยุดทั้ง job

Fieldกฎตัวอย่าง Error
SKU / IDต้องมีอย่างใดอย่างหนึ่ง“Missing or invalid SKU / ID”
stock_qtyต้องเป็นตัวเลข ≥ 0 (ถ้ามี column)“Stock must be a non-negative number”
statusต้องเป็น publish หรือ draft เท่านั้น“Status must be publish or draft”
manage_stockต้องเป็น yes หรือ no เท่านั้น“manage_stock must be yes or no”
backordersต้องเป็น no, notify, หรือ yes“backorders must be no, notify, or yes”
SKU ซ้ำในไฟล์แจ้งเตือน WARNING — ใช้ row สุดท้ายDuplicate SKU in file
SKU ไม่พบใน WCข้าม row นั้นProduct not found

7. กฎความปลอดภัย (Safety Rules)

#กฎรายละเอียด
1Allowlist เท่านั้นอัปเดตเฉพาะ field ที่เลือกไว้ — column อื่นใน CSV ถูก ignore ทั้งหมด
2stock_status ห้าม importWooCommerce คำนวณเองจาก stock_qty — ห้าม import โดยตรง
3Draft ยังคง Draftถ้าไม่ได้เลือก field status — สินค้า draft จะไม่ถูกเปิดโดยไม่ตั้งใจ
4Variable ตัวแม่ skip stockstock_qty ของ type=variable ถูก skip อัตโนมัติ — ป้องกัน Out of stock ทั้งหมด
5Variation ไม่กระทบแม่อัปเดต variation ลูกโดยตรง — parent product ไม่โดนแตะ
6Per-row error isolationrow ที่ผิดถูก skip — งานต่อไปโดยไม่หยุดทั้ง batch
7Batch processingประมวลผลทีละ 50 rows — ป้องกัน server timeout ไฟล์ใหญ่
8WC product objectmanage_stock/backorders ใช้ WC data store — cache และ hooks ถูกต้อง

8. Import Logs

แท็บ 📋 Logs บันทึกทุก import ที่ไม่ใช่ dry run ไว้ครบถ้วน

Column ใน Logsความหมาย
#Log ID — ใช้สำหรับ rollback
Date / Timeวันเวลาที่ import
Userชื่อ user ที่ทำ import
Fileชื่อไฟล์ CSV ที่อัปโหลด
ModeImport mode ที่เลือก (stock_only / stock_status / custom)
FieldsField ที่อัปเดตในรอบนั้น
Totalจำนวน row ทั้งหมดในไฟล์
Updatedจำนวน row ที่อัปเดตสำเร็จ
Skippedจำนวน row ที่ข้ามไป
Errorsจำนวน row ที่มีข้อผิดพลาด
Actionsปุ่ม ↩ Rollback — กดเพื่อย้อนค่ากลับเป็นก่อน import

9. Rollback (ย้อนกลับ)

ปลั๊กอินบันทึก before-state ของทุก product ที่อัปเดต ทำให้สามารถย้อนกลับได้

วิธี Rollback

วิธีที่ 1 — หลัง import เสร็จ กดปุ่ม ↩ Rollback This Import บนหน้าผลลัพธ์ทันที

วิธีที่ 2 — เข้าแท็บ 📋 Logs → หา import ที่ต้องการ → กดปุ่ม ↩ Rollback

สิ่งที่ Rollback ได้

FieldRollback ได้?
stock_qty✅ คืนค่า stock กลับเป็นก่อน import
status✅ คืนค่า publish/draft กลับเป็นเดิม
manage_stock✅ คืนค่า yes/no กลับเป็นเดิม
backorders✅ คืนค่ากลับเป็นเดิม

  Rollback ใช้ before-state ที่เก็บไว้ก่อน import — ถ้ามีการแก้ไขค่าหลัง import ไปแล้ว Rollback จะย้อนกลับเป็นค่า “ก่อน import” นั้น ไม่ใช่ค่าล่าสุด

10. รูปแบบไฟล์ CSV สำหรับ Import

ไฟล์ CSV ที่จะ import ต้องมีรูปแบบดังนี้:

กฎพื้นฐาน

  • ต้องมี header row (บรรทัดแรก) เสมอ — ชื่อ column ต้องตรงตามตารางด้านล่าง
  • แต่ละ row ต้องมีอย่างน้อย sku หรือ id อย่างใดอย่างหนึ่ง
  • ไม่จำเป็นต้องมีสินค้าทั้งหมด — ใส่เฉพาะ row ที่ต้องการอัปเดต
  • ไม่จำเป็นต้องมี column ครบทุกอัน — มีแค่ column ที่ต้องการก็พอ

ตัวอย่าง CSV สำหรับแต่ละ Use Case

Case 1: อัปเดต Stock อย่างเดียว

sku,stock_qty
BL-1023783-DP-N-0300-C-2405,15
BL-1023784-DP-2-9103-C-2405,8
MUG-LOGO,100

→ ใช้ Mode: Stock only | ไม่ต้องมี column อื่น

Case 2: เปิด/ปิดสินค้าพร้อมกับอัปเดต Stock

sku,stock_qty,status
BL-1023783-DP-N-0300-C-2405,0,draft
BL-1023784-DP-2-9103-C-2405,20,publish

→ ใช้ Mode: Stock + Publish status

Case 3: อัปเดต Manage Stock + Backorders เท่านั้น (ไม่แตะ stock)

sku,manage_stock,backorders
BL-1023783,yes,no
BL-1023784,yes,notify

→ ใช้ Mode: Custom | tick เฉพาะ Manage stock + Backorders

Case 4: แก้ Variable ตัวแม่ให้ manage_stock=no (แก้ปัญหา Out of stock)

sku,manage_stock
BL-1023783,no
BL-1023784,no
BL-1510872,no

→ ใช้ Mode: Custom | tick เฉพาะ Manage stock

11. คำถามที่พบบ่อย (FAQ)

Q: ใส่แค่บาง SKU ได้ไหม ไม่ต้องใส่ทั้งหมด?

ได้เลย — ใส่เฉพาะ SKU ที่ต้องการอัปเดต สินค้าที่ไม่อยู่ในไฟล์จะไม่ถูกแตะต้อง

Q: Import เสร็จแล้วค่าไม่เปลี่ยน ทำไม?

  • ตรวจสอบว่าไม่ได้ติ๊ก Dry run
  • ตรวจสอบว่า column name ในไฟล์ตรงกับที่ปลั๊กอินรองรับ
  • ดูผลลัพธ์ใน Results — ถ้า row ขึ้น Skipped หรือ Error มักเป็นเพราะ SKU ไม่พบ หรือค่าไม่ถูกรูปแบบ

Q: Variable ตัวแม่ขึ้น Out of stock หมด แก้ยังไง?

สร้าง CSV ที่มีแค่ column sku, manage_stock แล้วตั้งทุก variable เป็น manage_stock=no จากนั้น import ด้วย Custom mode เลือกแค่ Manage stock

Q: ไฟล์ใหญ่มาก import นาน server timeout ไหม?

ปลั๊กอินใช้ batch processing 50 rows/request — ไม่ timeout แม้ไฟล์ใหญ่ แต่ห้ามปิดหน้าจนกว่า progress จะครบ 100%

Q: อัปเดตแล้วอยากย้อนกลับ ทำได้ไหม?

ทำได้ — เข้าแท็บ Logs กดปุ่ม ↩ Rollback บน import นั้น ระบบจะคืนค่าทุกสินค้ากลับเป็นก่อน import

Q: ไฟล์ export ที่ได้มี column stock_status ด้วย ใส่กลับได้ไหม?

ห้ามเด็ดขาด — stock_status คำนวณโดย WooCommerce อัตโนมัติ ถ้า import โดยตรงอาจทำให้ค่าไม่ตรงกับความเป็นจริง ปลั๊กอินจะ ignore column นี้เสมอ

Share this Doc

01-05 การอัพโหลดสินค้าแบบ Bulk ผ่าน Plugin YMF Import

Or copy link

Scroll to Top