design the member discount lever for customer woocommerec by total paid amount

ออกแบบระบบแสดงราคาสินค้าตามระดับของลูกค้า ( Member Level )

ติดต่องาน

ความต้องการของลูกค้า ( Requirement )

พอร์ตนี้จะเป็นการออกแบบระบบ ทั้งแบบที่ต้องเขียนปลั๊กอินเพิ่มเติม หรือ แบบที่หาจุดที่ต้องโม ให้กับทางลูกค้า

เว็บของลูกค้าใช้ปลั๊กอิน WooCommerce เป็นระบบขายสินค้าออนไลน์ โดยลูกค้าต้องการให้แบ่งระดับราคาสินค้าออกเป็น 3 ระดับตามยอดประวัติการสั่งซื้อรวม เช่น

  1. ระดับ A มีประวัติการสั่งซื้อรวม 1,000,000 บาท สินค้าจะแสดงราคาลดลง 20%
  2. ระดับ B มีประวัติการสั่งซื้อรวม 500,000 บาท สินค้าจะแสดงราคาลดลง 10%
  3. ระดับ C มีประวัติการสั่งซื้อรวม 50,000 บาท สินค้าจะแสดงราคาลดลง 5%

เงื่อนไขเพิ่มเติม

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

พอร์ตนี้เป็นส่วนหนึ่งของโปรเจค “เขียนปลั๊กอินระบบแสดงราคาสินค้าตามระดับของลูกค้า ( Member Level )”

ผลลัพธ์การโม (Modified)

หลังจากดำเนินการแบ่งส่วนงานต่างๆ ได้ดังนี้

ส่วนการตั้งค่า Woocommerce

  • เพิ่มแถบการตั้งค่าส่วนลดภายในเมนู Woocommerce > Setting ในแถบ Product
  • การตั้งค่าแบ่งเป็น 3 ระดับ โดยแต่ละระดับมีฟิลด์กรอกข้อมูล ดังนี้
    • ชื่อระดับ
    • ยอดประวัติการสั่งซื้อรวม
    • ส่วนลด ( % )
  • Checkbox สำหรับเปิดหรือปิดการใช้งานปลั๊กอิน

ส่วนการประมวลผลระดับสมาชิก

  • ระดับสมาชิกจะถูกเก็บใน User meta โดย หากยอดประวัติการสั่งซื้อผ่านเกณฑ์ในระดับใด จะถูกบันทึกเป็น ลูกค้าระดับนั้น พร้อมได้ส่วนลดตามที่ได้ตั้งค่าไว้สำหรับลูกค้าระดับนั้นๆ
  • การประมวลผลจะทำเมื่อ
    • สถานะออเดอร์ถูกเปลี่ยนเป็น "ส่งของเรียบร้อยแล้ว" หรือ "Completed"
    • สถานะออเดอร์ถูกเปลี่ยนจาก "ส่งของเรียบร้อยแล้ว" หรือ "Completed" ไปเป็นสถานะอื่นๆ รวมถึงถูกลบ
    • เมื่อมีการปรับแก้ไข WooCommerce setting ในส่วนการตั้งค่าระดับสมาชิก

ส่วนหน้าเว็บ และระบบ Add to cart

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

ส่วนการแสดงข้อมูลระดับลูกค้า

    • เพิ่มคอลัมน์ "ระดับลูกค้า" ในตาราง users ที่ส่วนของหลังบ้าน โดยแสดงข้อมูลระดับปัจจุบัน และยอดการสั่งซื้อรวม