บทความทั้งหมด

เชื่อมสต็อกสินค้ากับสถานะการชำระเงินไม่ให้ขายเกิน

อ่าน 1 นาที

ไม่มีรูปภาพ
เชื่อมสต็อกสินค้ากับสถานะการชำระเงินไม่ให้ขายเกิน

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

สามสถานะของสต็อกที่ควรแยกให้ชัด

แทนที่จะมีตัวเลขสต็อกตัวเดียว ลองแยกเป็นสามค่า

  • คงเหลือพร้อมขาย: จำนวนที่ลูกค้าใหม่สั่งได้จริง
  • จองไว้ (รอชำระ): ออเดอร์ที่สร้างแล้วแต่ยังไม่จ่าย
  • ขายแล้ว (ชำระแล้ว): ออเดอร์ที่ตรวจเงินแล้ว รอแพ็กหรือส่ง

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

ตารางสถานะออเดอร์กับการเปลี่ยนสต็อก

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

ตั้งเวลาหมดอายุการจองให้เหมาะสม

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

เงินเข้าต้องเป็นตัวสั่ง ไม่ใช่คำบอกเล่า

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

ใน PPay เมื่อใบแจ้งหนี้ชำระสำเร็จ ระบบมีเหตุการณ์ webhook ชื่อ invoice.paid ส่งไปยังระบบของคุณได้ ทำให้ฝั่งสต็อกอัปเดตอัตโนมัติเมื่อได้รับเหตุการณ์นี้ รายละเอียดอยู่ใน เอกสาร API และแนวคิดพื้นฐานของ webhook อยู่ที่ webhook สำหรับการชำระเงิน ที่สำคัญคือฝั่งรับต้องรองรับกรณีได้รับเหตุการณ์ซ้ำโดยไม่ตัดสต็อกสองครั้ง

กรณีขอบที่ต้องวางกติกา

สินค้าหมดระหว่างที่ลูกค้ากำลังโอน

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

โอนไม่ครบ

ถ้าลูกค้าโอนไม่ครบ ไม่ควรตัดสต็อกเป็นขายแล้ว ดูแนวทางที่ จัดการการโอนไม่ครบ

โอนซ้ำ

ออเดอร์เดียวแต่เงินเข้าสองรอบ ต้องไม่เพิ่มจำนวนที่ขาย ดู การจัดการโอนซ้ำ

เช็กลิสต์สรุป

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

หากใช้ WooCommerce, WHMCS หรือ Magento 2 ดูปลั๊กอินที่รองรับได้ที่ หน้าปลั๊กอิน ซึ่งช่วยให้สถานะชำระเงินและออเดอร์ในร้านเชื่อมกันได้สะดวกขึ้น

ลองตรวจสลิปอัตโนมัติกับร้านของคุณ

สมัครแล้วเริ่มใช้งานได้ภายในไม่กี่นาที

บทความอื่น ๆ