n8n Thai
by n8n Thai

ซิงค์สต็อกสินค้าข้ามแพลตฟอร์มด้วย n8n

วิธีสร้าง Workflow ใน n8n เพื่อซิงค์สต็อกสินค้าข้าม Shopee, Lazada, WooCommerce แบบอัตโนมัติ ป้องกันการขายเกินสต็อกและลดงาน manual

ซิงค์สต็อกสินค้าข้ามแพลตฟอร์มด้วย n8n

ปัญหาคลาสสิกของร้านขายหลายแพลตฟอร์ม

ร้านที่ขายทั้ง 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 จะ:

  1. หักสต็อกใน Google Sheets
  2. อ่านค่าสต็อกใหม่จาก Google Sheets
  3. อัปเดตสต็อกในทุกแพลตฟอร์มที่เหลือ

โครงสร้าง Google Sheets

สร้าง Sheet ชื่อ “Master Stock” ที่มี columns ดังนี้

Columnชื่อตัวอย่าง
AskuSHIRT-RED-L
Bproduct_nameเสื้อยืดสีแดง ไซส์ L
Cmaster_stock50
Dshopee_item_id123456789
Eshopee_model_id987654321
Flazada_sku_idTH-SKU-001
Gwoo_product_id42
Hwoo_variation_id45
Imin_stock_alert5
Jlast_updated2026-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