Odoo ERP

เชื่อม TikTok Shop กับ Odoo: สต็อกเดียว ไม่มีขายเกิน

คู่มือปฏิบัติจริงสำหรับการเชื่อมต่อ TikTok Shop กับ Odoo เพื่อให้ออเดอร์จากไลฟ์ สต็อกสินค้า และรายการบัญชีตรงกันตลอดเวลา ไม่เกิดปัญหาขายเกินสต็อก

Ravi Shanker Singhผู้ก่อตั้งและที่ปรึกษา Odooเผยแพร่ 10 นาทีในการอ่าน
แชร์
ในหน้านี้

เชื่อม TikTok Shop กับ Odoo: สต็อกเดียว ไม่มีขายเกิน

TikTok Shop ทำงานต่างจากร้านค้าออนไลน์ทั่วไป ไลฟ์สตรีมครั้งเดียวสร้างออเดอร์ได้หลายร้อยรายการภายในยี่สิบนาที แล้วก็เงียบไปหลายชั่วโมง ถ้าระบบคลังสินค้าของคุณอัปเดตตามรอบเวลาแทนที่จะเป็นแบบเรียลไทม์ คุณจะขายเกินสต็อกทันทีที่ยอดขายพุ่งขึ้น เช้าวันถัดไปต้องมานั่งขอโทษลูกค้าและยกเลิกออเดอร์กัน

เราวางระบบเชื่อมต่อ TikTok Shop กับ Odoo ให้ผู้ขายทั้งในไทยและสหรัฐฯ มาหลายโปรเจกต์ รูปแบบที่ใช้ได้ผลจริงมักเหมือนกันเสมอ คือแหล่งข้อมูลสต็อกที่จริงเพียงจุดเดียว การซิงก์ออเดอร์ที่ตอบสนองภายในไม่กี่นาที ไม่ใช่เป็นชั่วโมง และการปิดบัญชีที่ไม่ต้องให้ใครมานั่งคีย์รายงานการชำระเงินของ TikTok ด้วยมือ

บทความนี้พาไปดูวิธีที่เราวางระบบเชื่อมต่อ TikTok Shop กับ Odoo จริงในหน้างาน รวมถึงส่วนที่ทำยากจริง เช่น ออเดอร์ที่พุ่งขึ้นช่วงไลฟ์ เงินที่แพลตฟอร์มกักไว้ก่อนจ่าย และค่าคอมมิชชันที่ TikTok หักก่อนโอนเงินให้คุณ

ทำไม TikTok Shop ถึงทำให้การซิงก์สต็อกแบบธรรมดาพัง

ตัวเชื่อมต่อมาร์เก็ตเพลสส่วนใหญ่ถูกออกแบบด้วยโมเดลแบบ polling คือตรวจสอบออเดอร์ใหม่ทุก 15 หรือ 30 นาที แล้วดึงเข้า ERP และปรับสต็อก วิธีนี้ใช้ได้ดีกับร้านที่มีออเดอร์ไหลเข้ามาสม่ำเสมอ แต่จะพังทันทีช่วงไลฟ์ของ TikTok เพราะครีเอเตอร์ขาย SKU หนึ่งหมดสต็อกได้ภายในเวลาเดียวกับที่ระบบเชื่อมต่อกำลังรอรอบถัดไป

พฤติกรรมสามอย่างที่สำคัญกว่าช่องทางอื่น

มีพฤติกรรมของ TikTok Shop สามอย่างที่สำคัญกว่าช่องทางอื่นมาก

  • ออเดอร์พุ่งเป็นกลุ่มก้อน ไลฟ์ครั้งเดียวอาจสร้างยอดขายรวมของทั้งสัปดาห์ได้ภายในชั่วโมงเดียว
  • การกันสต็อกเกิดขึ้นที่ระดับแพลตฟอร์มด้วย TikTok จะกันสต็อกตามจำนวนที่คุณประกาศขาย โดยไม่ขึ้นกับว่า Odoo คิดว่ามีสต็อกเหลือเท่าไร ตัวเลขสองฝั่งอาจคลาดเคลื่อนกันเร็วมากถ้าการซิงก์ล่าช้า
  • การยกเลิกและการคืนสินค้ามักมาเป็นคลื่นหลังไลฟ์จบ บางครั้งช้าไป 24 ถึง 72 ชั่วโมง ระบบสต็อกของคุณต้องปลดล็อกการกันสต็อกให้ถูกต้อง ไม่ใช่แค่บวกสต็อกกลับเข้าไปแบบไม่ตรวจสอบ

ถ้างานซิงก์ทำงานตามตัวจับเวลา คุณกำลังเดิมพันว่าจะไม่มีไลฟ์เกิดขึ้นในช่วงเวลาระหว่างรอบ เราเลือกใช้การอัปเดตแบบ webhook เมื่อ API ของ TikTok รองรับ พร้อมสำรองด้วยการ polling แบบรอบสั้น ออเดอร์ใหม่จึงเข้ามาใน Odoo ภายในไม่กี่นาทีในสภาวะปกติ

การวางระบบเชื่อมต่อ TikTok Shop กับ Odoo

ระบบเชื่อมต่อที่ใช้งานได้จริงต้องแตะถึงสี่ส่วนใน Odoo คือ Sales, Inventory, Accounting และชั้น mapping ที่แปลงโมเดลข้อมูลของ TikTok ให้เข้ากับโครงสร้างของ Odoo

1. การ mapping SKU และสินค้าที่ลงขาย รายการสินค้าใน TikTok Shop ไม่ได้จับคู่กับสินค้าใน Odoo แบบหนึ่งต่อหนึ่งเสมอไป โดยเฉพาะเมื่อมีตัวเลือกย่อยอย่างสีหรือขนาดที่ขายเป็น SKU แยกกันบนแพลตฟอร์ม เราสร้างตาราง mapping ที่ระบุชัดเจน แทนที่จะพึ่งการจับคู่ด้วยสตริง SKU เพราะการพิมพ์ชื่อสินค้าผิดเพียงนิดเดียวไม่ควรทำให้เกิดสินค้าซ้ำใน Odoo โดยไม่มีใครรู้ตัว

2. การนำออเดอร์เข้าสู่ Sales ออเดอร์ที่ยืนยันแล้วบน TikTok แต่ละรายการจะกลายเป็นใบสั่งขายใน Odoo พร้อมแท็กหมายเลขออเดอร์ TikTok และชื่อร้าน เรายังเก็บ timestamp และสถานะออเดอร์เดิมของ TikTok ไว้คู่กับสถานะของ Odoo เอง เพราะทีมซัพพอร์ตต้องตอบได้ว่า "TikTok บอกว่าออเดอร์นี้เป็นอย่างไร" โดยไม่ต้องล็อกอินเข้าระบบที่สอง

3. การกันสต็อกที่เคารพทั้งสองระบบ นี่คือส่วนที่ตัวเชื่อมต่อส่วนใหญ่ทำพลาด เมื่อออเดอร์ถูกยืนยันใน Odoo ระบบควรกันสต็อกทันทีให้กับใบจัดส่ง การส่งข้อมูลสต็อกกลับไป TikTok ครั้งถัดไปควรสะท้อนจำนวนที่พร้อมขายจริง ไม่ใช่จำนวนคงเหลือทั้งหมด มิฉะนั้น TikTok จะยังขายสต็อกที่ Odoo ได้ผูกไว้กับออเดอร์ก่อนหน้าแล้ว

4. การซิงก์การจัดส่งและเลขพัสดุ เมื่อใบจัดส่งใน Odoo ถูกยืนยันแล้ว เลขพัสดุจะถูกส่งกลับไปที่ TikTok เพื่อให้ออเดอร์เปลี่ยนสถานะเป็นจัดส่งแล้วบนแพลตฟอร์ม ผู้ขายที่ข้ามขั้นตอนนี้มักเจอปัญหา TikTok ขึ้นแจ้งเตือนร้านว่าจัดส่งล่าช้า ทั้งที่คลังสินค้าส่งสินค้าตรงเวลาจริง

สำหรับผู้ขายที่ดำเนินงานหลายช่องทาง เรามักจับคู่การเชื่อมต่อนี้เข้ากับบริการเชื่อมต่อ API ของ Odoo ที่ครอบคลุมกว่า เพื่อให้ TikTok อยู่ร่วมกับ Shopee, Lazada หรือหน้าร้านออนไลน์ของตัวเอง บนตรรกะสต็อกและราคาเดียวกัน แทนที่แต่ละช่องทางจะมีกฎของตัวเองแยกกันโดยไม่เชื่อมโยงกัน

ป้องกันการขายเกินสต็อก: ปัญหา available-to-promise

การขายเกินสต็อกเกือบทั้งหมดย้อนกลับไปที่สาเหตุใดสาเหตุหนึ่งในสามข้อนี้ แต่ละข้อมีวิธีแก้ต่างกัน

สาเหตุสิ่งที่เกิดขึ้นวิธีแก้
การซิงก์ล่าช้าส่งข้อมูลสต็อกไป TikTok ตามรอบเวลา 15-30 นาทีเปลี่ยนเป็นส่งแบบใกล้เคียงเรียลไทม์ โดยทริกเกอร์เมื่อยืนยันออเดอร์หรือมีการปรับสต็อก
สต็อกใช้ร่วมกัน ไม่มีบัฟเฟอร์คลังเดียวกันขายบน TikTok, Shopee และหน้าร้านพร้อมกันกันสต็อกสำรองแยกตามช่องทางใน Odoo ไม่ใช่ใช้ตัวเลขรวมเดียว
ไม่เคารพการกันสต็อกOdoo แสดงสต็อกคงเหลือทั้งหมดแทนที่จะเป็นจำนวนพร้อมขายจริงส่งค่า (คงเหลือ ลบ กันไว้ ลบ สต็อกสำรองความปลอดภัย) ไม่ใช่สต็อกคงเหลือดิบ

บัฟเฟอร์สำรองความปลอดภัยสำคัญกว่าที่หลายคนคิด ถ้าคุณขาย SKU เดียวกันทั้งในหน้าร้านและบน TikTok ลูกค้าที่หน้าเคาน์เตอร์อาจหยิบสินค้าชิ้นสุดท้ายไปในจังหวะเดียวกับที่ไลฟ์กำลังเปลี่ยนผู้ชมให้กลายเป็นผู้ซื้อพอดี บัฟเฟอร์สำรองเล็กน้อย แม้เพียงห้าถึงสิบชิ้นสำหรับ SKU ที่ขายดี ก็ช่วยรองรับสถานการณ์แย่งชิงแบบนี้ได้โดยไม่บล็อกการขายที่ถูกต้องในกรณีส่วนใหญ่

มีข้อจำกัดหนึ่งที่ต้องพูดตรง ๆ ไม่มีการซิงก์ใดที่เกิดขึ้นทันทีจริง ยังมีช่วงเวลาหนึ่งเสมอ โดยทั่วไปตั้งแต่ไม่กี่วินาทีถึงสองสามนาที ขึ้นอยู่กับข้อจำกัดอัตราเรียก API การขายเกินสต็อกยังมีโอกาสเกิดขึ้นได้ในทางทฤษฎี เป้าหมายของระบบเชื่อมต่อที่ดีคือการย่อช่วงเวลานี้ให้สั้นที่สุด ไม่ใช่การแสร้งทำเป็นว่าช่วงเวลานี้เป็นศูนย์ จับการขายเกินสต็อกที่เกิดขึ้นได้เร็วด้วยขั้นตอนยกเลิกและคืนเงินอัตโนมัติ

ปิดวงจรบัญชีให้ครบ

TikTok Shop ไม่ได้จ่ายเงินเต็มมูลค่าออเดอร์ให้คุณ ก่อนโอนยอดชำระ TikTok จะหักค่าคอมมิชชันที่คำนวณจากราคาสินค้าเท่านั้น ไม่รวมค่าขนส่ง และคำนวณบนฐานที่ไม่รวมภาษีมูลค่าเพิ่ม ไม่ใช่จากยอดรวมทั้งออเดอร์ ส่วนค่าขนส่งนั้นแยกคิดต่างหากจากค่าคอมมิชชัน และถูกจัดการต่างกันไปตามรูปแบบการจัดส่งที่คุณตั้งไว้ โปรโมชันที่ใช้งานอยู่ และการตั้งค่าของผู้ขายเอง ถ้าคุณยิงโฆษณาในแพลตฟอร์มก็ต้องบวกค่าโฆษณาเข้าไปอีก แล้ว TikTok จึงโอนยอดสุทธิให้ตามรอบของตัวเอง ซึ่งมักเป็นรายสัปดาห์

ถ้าระบบบัญชีของคุณบันทึกแค่ยอดขายรวม บัญชีจะไม่ตรงกับเงินที่เข้าบัญชีธนาคารจริง การปิดบัญชีสิ้นเดือนจะกลายเป็นงานกระทบยอดที่ปวดหัว

วิธีที่เราบันทึกการชำระเงินแต่ละรอบ

เราจัดการเรื่องนี้ด้วยการบันทึกการชำระเงินแต่ละรอบของ TikTok เป็นเอกสารแยกต่างหากในระบบบัญชีของ Odoo โดยไม่ปนกับใบแจ้งหนี้ขาย

  • ใบสั่งขายและใบแจ้งหนี้ลูกค้าบันทึกยอดรวมที่ผู้ซื้อจ่ายจริง
  • บิลผู้ขาย (หรือรายการบันทึกบัญชีเฉพาะ) บันทึกค่าคอมมิชชันและค่าธรรมเนียมของ TikTok เป็นต้นทุนขาย
  • รายการในใบแจ้งยอดธนาคารสำหรับยอดโอนจะกระทบยอดกับ (ใบแจ้งหนี้ ลบ ค่าธรรมเนียม) เพื่อให้ตัวเลขตรงกันพอดี

สำหรับนิติบุคคลไทยยังมีอีกชั้นหนึ่ง คือเรื่องภาษีหัก ณ ที่จ่ายของค่าคอมมิชชันมาร์เก็ตเพลส และข้อกำหนดการออกใบกำกับภาษีอิเล็กทรอนิกส์ให้ถูกต้องในกรณีที่เข้าเงื่อนไข ค่าธรรมเนียมมาร์เก็ตเพลสต้องมีวิธีจัดการภาษีของตัวเองที่ชัดเจนตั้งแต่ต้น ไม่ใช่มาเสริมทีหลังในวันใกล้ปิดยื่นแบบภาษีมูลค่าเพิ่ม การวางระบบเรื่องนี้ให้ถูกต้องตั้งแต่ต้นเป็นส่วนหนึ่งของงานวางระบบบัญชีและภาษีไทยใน Odoo ที่เราทำควบคู่ไปด้วย แทนที่จะปล่อยให้เป็นงานเสริมที่มาทีหลังจากฝั่งขายเปิดใช้งานไปแล้ว

ขั้นตอนการขึ้นระบบจริงโดยทั่วไป

เราไม่แนะนำให้เชื่อมต่อ TikTok Shop เข้ากับฐานข้อมูลที่ใช้งานจริงโดยตรงตั้งแต่วันแรก ขั้นตอนที่เราใช้มีดังนี้

  1. mapping SKU และตรวจสอบการจัดการตัวเลือกสินค้าย่อยในสภาพแวดล้อม staging
  2. รันการซิงก์ออเดอร์แบบทางเดียวจาก TikTok เข้า Odoo สักสองสามวัน โดยยังส่งสต็อกด้วยมือ เพื่อยืนยันข้อมูลก่อนให้ระบบเขียนกลับไปที่แพลตฟอร์ม
  3. เปิดการส่งสต็อกแบบใกล้เคียงเรียลไทม์ โดยเริ่มด้วยบัฟเฟอร์สำรองที่ระมัดระวัง
  4. เชื่อมต่อการจัดส่งและการซิงก์เลขพัสดุ
  5. สร้างขั้นตอนกระทบยอดการชำระเงิน รันทดสอบให้ครบหนึ่งรอบการจ่ายเงินเต็มของ TikTok ก่อนจะถือว่างานเสร็จ
  6. อยู่ดูแลต่อจนผ่านการปิดบัญชีสิ้นเดือนครั้งแรก เพราะนั่นคือช่วงที่รายการค่าธรรมเนียมที่หายไปหรือการจัดหมวดภาษีผิดจะปรากฏให้เห็นจริง

ขั้นตอนสุดท้ายนี้สำคัญกว่าที่ฟังดู งาน "แก้บั๊กระบบเชื่อมต่อ" ส่วนใหญ่ที่เราถูกเรียกเข้าไปแก้ไม่ใช่ปัญหา API ล้มเหลว แต่เป็นรายการบัญชีที่ไม่เคยถูกสร้างไว้ตั้งแต่แรก มาถูกค้นพบสามสัปดาห์ให้หลัง ตอนที่ทีมการเงินอธิบายไม่ได้ว่าทำไมยอดเงินในธนาคารไม่ตรงกับบัญชีแยกประเภทการขาย สำหรับผู้ขายที่มีแคตตาล็อกหลากหลายช่องทางอยู่แล้ว ทีมพัฒนาอีคอมเมิร์ซ ของเรามักเข้ามาช่วยในจุดนี้ด้วย เพราะหน้าร้านออนไลน์และฟีดมาร์เก็ตเพลสต้องใช้ตัวเลขสต็อกชุดเดียวกัน

ถ้าคุณกำลังพิจารณาเชื่อมต่อ TikTok Shop กับ Odoo และมีการเชื่อมต่อ Shopee หรือ Lazada อยู่แล้ว เริ่มจากตรวจสอบว่าบัฟเฟอร์สำรองความปลอดภัยปัจจุบันของแต่ละช่องทางตั้งไว้เท่าไร การตรวจสอบจุดเดียวนี้มักจะเผยให้เห็นความเสี่ยงขายเกินสต็อกก่อนที่จะทำให้คุณต้องยกเลิกออเดอร์ในไลฟ์ครั้งถัดไป

แชร์

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

ระบบเชื่อมต่อ TikTok Shop กับ Odoo ใช้ได้กับ Odoo Community edition หรือไม่

ใช้ได้ ตัวระบบเชื่อมต่อทำงานผ่านชั้น API ของ Odoo ซึ่งมีให้ใช้ทั้งใน Community และ Enterprise ความแตกต่างอยู่ที่เครื่องมือบัญชีและรายงานในตัวที่มีให้ใช้เพิ่มเติม ไม่ใช่เรื่องที่ว่าออเดอร์ TikTok จะซิงก์ได้หรือไม่

หลังขายของใน Odoo สต็อกบน TikTok จะอัปเดตเร็วแค่ไหน

ถ้าใช้ระบบแบบ webhook ร่วมกับ polling รอบสั้นเป็นระบบสำรอง การอัปเดตมักเข้าภายในไม่กี่นาที ไม่มีระบบเชื่อมต่อใด รวมถึงของเราด้วย ที่รับประกันการซิงก์แบบไม่มีดีเลย์เลย จึงควรเผื่อบัฟเฟอร์สำรองเล็กน้อยต่อ SKU ไว้เสมอ

ฐานข้อมูล Odoo เดียวรองรับ TikTok Shop พร้อมกับ Shopee และ Lazada ได้หรือไม่

ได้ นี่เป็นหนึ่งในรูปแบบที่เราวางระบบให้บ่อยที่สุด แต่ละช่องทางมี mapping และบัฟเฟอร์สำรองของตัวเอง แต่ทั้งสามช่องทางดึงจากสต็อกคงเหลือชุดเดียวกัน และบันทึกลงผังบัญชีเดียวกัน

ถ้าพลาดช่วงเวลาซิงก์แล้วเกิดขายเกินสต็อก จะเกิดอะไรขึ้นกับออเดอร์นั้น

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

ต้องปรับผังบัญชีใหม่หรือไม่เพื่อรองรับยอดชำระจาก TikTok

ส่วนใหญ่แค่เพิ่มบัญชีใหม่หนึ่งหรือสองบัญชีสำหรับค่าคอมมิชชันและค่าธรรมเนียมแพลตฟอร์ม บวกกับบัญชีย่อยธนาคารถ้า TikTok จ่ายเข้ากระเป๋าเงินก่อนโอนเข้าบัญชีหลัก เป็นการปรับเปลี่ยนเล็กน้อย ไม่ใช่การปรับโครงสร้างใหญ่

ค่าคอมมิชชันของ TikTok คิดจากยอดรวมออเดอร์ทั้งหมดรวมค่าขนส่งหรือไม่

ไม่ใช่ TikTok คำนวณค่าคอมมิชชันจากราคาสินค้าเท่านั้น ไม่รวมค่าขนส่ง และคำนวณบนฐานที่ไม่รวมภาษีมูลค่าเพิ่ม ค่าขนส่งถูกคิดแยกต่างหากและจัดการต่างกันไปตามรูปแบบการจัดส่งและโปรโมชันที่ใช้ ดังนั้นการกระทบยอดต้องแยกสองรายการนี้ออกจากกัน ไม่ใช่มองเป็นค่าธรรมเนียมก้อนเดียว

แหล่งข้อมูล

เกี่ยวกับผู้เขียน

Ravi Shanker Singh

ผู้ก่อตั้งและที่ปรึกษา Odoo

ผู้ก่อตั้ง Tech After Me และที่ปรึกษา Odoo ราวีดูแลการติดตั้ง ปรับแต่ง และซัพพอร์ตระบบ Odoo ERP รวมถึงพัฒนาเว็บ แอปมือถือ และระบบข้อมูลให้ธุรกิจในไทย สหรัฐอเมริกา และอินเดีย โดยประจำอยู่ที่กรุงเทพฯ นิวยอร์ก และเดลี (NCR)

บทความอื่นของผู้เขียน

อ่านต่อ

เชื่อมต่อ Lazada กับ Odoo: แมป SKU และกระทบยอดสต็อกOdoo ERP

เชื่อมต่อ Lazada กับ Odoo: แมป SKU และกระทบยอดสต็อก

คู่มือปฏิบัติจริงสำหรับเชื่อมต่อ Lazada กับ Odoo ให้สต็อกเป็นบัญชีเดียวทั้งช่องทางออนไลน์และหน้าร้าน พร้อมกระทบยอดรายงานการจ่ายเงิน (settlement) ให้ตรงกับบัญชี

Ravi Shanker Singh10 นาทีในการอ่าน

เชื่อมต่อ Shopee กับ Odoo: ออเดอร์ สต็อก ค่าธรรมเนียม และการคืนสินค้าOdoo ERP

เชื่อมต่อ Shopee กับ Odoo: ออเดอร์ สต็อก ค่าธรรมเนียม และการคืนสินค้า

คู่มือปฏิบัติจริงสำหรับ Shopee Odoo integration ตั้งแต่ดึงออเดอร์อัตโนมัติ ซิงก์สต็อกข้ามร้าน บันทึกค่าธรรมเนียมมาร์เก็ตเพลสเป็นรายการบัญชี ไปจนถึงการจัดการคืนสินค้าอย่างเป็นระบบ

Ravi Shanker Singh11 นาทีในการอ่าน

วางระบบ VAT 7% ใน Odoo: ใบกำกับภาษี และรายงานปิดงวดOdoo ERP

วางระบบ VAT 7% ใน Odoo: ใบกำกับภาษี และรายงานปิดงวด

คู่มือปฏิบัติจริงสำหรับการตั้งค่า VAT 7% ใน Odoo ตั้งแต่ภาษีซื้อ-ภาษีขาย ใบกำกับภาษีกับใบเสร็จ ไปจนถึงรายงานที่ฝ่ายบัญชีต้องใช้ตอนปิดงวด

Ravi Shanker Singh9 นาทีในการอ่าน

เปลี่ยนสิ่งที่คุณอ่าน ให้เป็นผลลัพธ์จริง

ทีมที่เขียนบทความเหล่านี้คือทีมเดียวกับที่ลงมือทำงานจริง เล่าให้เราฟังว่าคุณกำลังทำโปรเจกต์อะไรอยู่

รับบทความใหม่ทางอีเมล

รับบทความใหม่ทางอีเมล

คู่มือ Odoo และข่าวไอทีที่มีผลต่อธุรกิจของคุณ ไม่เกินสัปดาห์ละหนึ่งฉบับ