ซิงค์สต็อกสินค้าข้ามแพลตฟอร์มด้วย n8n
วิธีสร้าง Workflow ใน n8n เพื่อซิงค์สต็อกสินค้าข้าม Shopee, Lazada, WooCommerce แบบอัตโนมัติ ป้องกันการขายเกินสต็อกและลดงาน manual
ปัญหาคลาสสิกของร้านขายหลายแพลตฟอร์ม
ร้านที่ขายทั้ง Shopee, Lazada และเว็บตัวเองพร้อมกันเจอปัญหาเดียวกัน คือสต็อกไม่ sync กัน ลูกค้าสั่งสินค้าตัวเดียวกันพร้อมกันสองออเดอร์จากสองแพลตฟอร์ม แต่มีของจริงอยู่แค่ชิ้นเดียว ผลคือต้องยกเลิกออเดอร์ ทำให้คะแนนร้านลด n8n แก้ปัญหานี้ได้ด้วย Workflow ซิงค์สต็อกอัตโนมัติ
บทความนี้เป็นส่วนหนึ่งของคลัสเตอร์ Automation สำหรับร้านค้าออนไลน์ด้วย n8n
สถาปัตยกรรม: Google Sheets เป็น Master Stock
วิธีที่ได้ผลดีที่สุดสำหรับร้านขนาดเล็กถึงกลาง คือใช้ Google Sheets เป็น single source of truth สำหรับสต็อก
Google Sheets (Master Stock)
↕ ↕ ↕
Shopee Lazada WooCommerce
เมื่อมีการขายที่แพลตฟอร์มใดแพลตฟอร์มหนึ่ง n8n จะ:
- หักสต็อกใน Google Sheets
- อ่านค่าสต็อกใหม่จาก Google Sheets
- อัปเดตสต็อกในทุกแพลตฟอร์มที่เหลือ
โครงสร้าง Google Sheets
สร้าง Sheet ชื่อ “Master Stock” ที่มี columns ดังนี้
| Column | ชื่อ | ตัวอย่าง |
|---|---|---|
| A | sku | SHIRT-RED-L |
| B | product_name | เสื้อยืดสีแดง ไซส์ L |
| C | master_stock | 50 |
| D | shopee_item_id | 123456789 |
| E | shopee_model_id | 987654321 |
| F | lazada_sku_id | TH-SKU-001 |
| G | woo_product_id | 42 |
| H | woo_variation_id | 45 |
| I | min_stock_alert | 5 |
| J | last_updated | 2026-04-10 10:30:00 |
ขั้นตอนที่ 1: Workflow — เมื่อมีออเดอร์ใหม่จาก Shopee
Webhook (Shopee Push Notification)
→ Code node (parse order items)
→ Loop Over Items (สินค้าในออเดอร์)
→ Google Sheets (Lookup sku จาก shopee_item_id)
→ Set node (คำนวณ new_stock = master_stock - qty)
→ Google Sheets (Update master_stock)
→ IF node (new_stock <= min_stock_alert?)
→ YES: LINE Notify (แจ้งเตือนสต็อกต่ำ)
→ HTTP Request (อัปเดตสต็อก Lazada)
→ WooCommerce node (อัปเดตสต็อก WooCommerce)
ขั้นตอนที่ 2: Workflow — เมื่อมีออเดอร์ใหม่จาก Lazada
Logic เหมือนกัน แต่เริ่มจาก Lazada Push Message
Webhook (Lazada Push Message)
→ Code node (parse และ verify signature)
→ HTTP Request (GET /orders/items/get สำหรับ detail)
→ Loop Over Items
→ Google Sheets (Lookup sku จาก lazada_sku_id)
→ Google Sheets (Update master_stock)
→ HTTP Request (อัปเดตสต็อก Shopee)
→ WooCommerce node (อัปเดตสต็อก WooCommerce)
ขั้นตอนที่ 3: Workflow — เมื่อมีออเดอร์จาก WooCommerce
WooCommerce Webhook (order.created, status = processing)
→ Loop Over Line Items
→ Google Sheets (Lookup sku จาก woo_product_id)
→ Google Sheets (Update master_stock)
→ HTTP Request (อัปเดตสต็อก Shopee)
→ HTTP Request (อัปเดตสต็อก Lazada)
ขั้นตอนที่ 4: Workflow — ซิงค์สต็อกรายชั่วโมง (Backup)
Webhook อาจพลาดได้หากเซิร์ฟเวอร์มีปัญหา ควรมี Workflow สำรองที่ sync ทุกชั่วโมง
Schedule Trigger (ทุก 1 ชั่วโมง)
→ Google Sheets (อ่าน Master Stock ทั้งหมด)
→ Loop Over Rows
→ HTTP Request (อัปเดตสต็อก Shopee)
→ HTTP Request (อัปเดตสต็อก Lazada)
→ WooCommerce node (อัปเดตสต็อก WooCommerce)
→ Wait (500ms เพื่อหลีกเลี่ยง Rate Limit)
ขั้นตอนที่ 5: แจ้งเตือนสต็อกต่ำ
เพิ่ม IF node ในทุก Workflow สำหรับตรวจ master_stock <= min_stock_alert
IF node: {{$json.master_stock}} <= {{$json.min_stock_alert}}
→ YES:
LINE Notify:
"⚠️ สต็อกต่ำ: {{$json.product_name}}
เหลือ {{$json.master_stock}} ชิ้น
SKU: {{$json.sku}}"
การจัดการ Race Condition
ปัญหาที่ต้องระวังคือ Race Condition เมื่อมีออเดอร์จาก 2 แพลตฟอร์มพร้อมกัน และ Workflow ทั้งสองอ่านสต็อกก่อนที่อีก Workflow จะอัปเดต
วิธีแก้แบบง่าย: ใช้ Google Sheets formula แทนการอ่าน-คำนวณ-เขียน
แทนที่จะส่ง new_stock = 50 - 1 = 49 ให้ส่ง formula: =C2-1 ซึ่ง Google Sheets จะคำนวณ atomic กว่า
วิธีแก้แบบแน่นกว่า: ใช้ database เช่น PostgreSQL หรือ Supabase ที่รองรับ atomic update แทน Google Sheets
ข้อควรระวัง
API Rate Limit: เมื่อ sync สต็อกหลายร้อย SKU พร้อมกัน ต้องเพิ่ม Wait node ระหว่าง request เพื่อไม่ให้เกิน rate limit ของ Shopee และ Lazada
SKU Mapping ต้องแม่นยำ: หาก SKU ใน Master Stock ไม่ตรงกับ ID ในแต่ละแพลตฟอร์ม การ sync จะผิดพลาด ควรตรวจสอบ mapping ก่อน activate Workflow
Log ทุก transaction: เพิ่ม Google Sheets node บันทึก log ของทุกการ sync เพื่อใช้ debug เมื่อเกิดปัญหา
สรุป
Workflow ซิงค์สต็อกด้วย Google Sheets เป็น Master Stock เป็นวิธีที่ balance ระหว่างความง่ายและความน่าเชื่อถือ เหมาะสำหรับร้านที่มี SKU ไม่เกิน 500 รายการ หากร้านมีสินค้าหลายพันรายการควรพิจารณาใช้ Database เป็น backend แทน
ดูการเชื่อมต่อแต่ละแพลตฟอร์มแบบละเอียดที่ n8n x Shopee, n8n x Lazada และ n8n x WooCommerce
อยากเรียน n8n แบบเป็นระบบ ตั้งแต่เริ่มต้นจนสร้าง Workflow ใช้งานจริงได้ ลองดู คอร์สสอน n8n ที่ aiunlock.co
Related posts
Automation สำหรับร้านค้าออนไลน์ด้วย n8n: คู่มือฉบับเต็ม
คู่มือครบจบสำหรับเจ้าของร้านออนไลน์ที่อยากใช้ n8n จัดการ Shopee, Lazada, WooCommerce, สต็อก, ออเดอร์ และแจ้งเตือนลูกค้าแบบอัตโนมัติ
จัดการรีวิวลูกค้าอัตโนมัติด้วย n8n
ใช้ n8n สร้าง Workflow ขอรีวิวหลังจัดส่ง รับมือรีวิวเชิงลบอย่างรวดเร็ว และเก็บข้อมูล feedback เพื่อปรับปรุงร้านค้าออนไลน์
Email Marketing อัตโนมัติด้วย n8n: ส่งเมลตาม Segment
สร้างระบบ Email Marketing อัตโนมัติด้วย n8n เชื่อม SMTP หรือ SendGrid แบ่ง segment ผู้รับ ส่งเมลตามพฤติกรรม และวัด open rate click rate อัตโนมัติ