woocommerce add stock and history stock log plugin

ออกแบบระบบนำเข้าสต็อกและเก็บประวัติสต็อก ( stock log ) สำหรับร้านค้าออฟไลน์หรือออนไลน์ด้วย woocommerce และ pos

ติดต่องาน

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

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

ร้านของลูกค้าเป็นร้านที่มีทั้งหน้าร้านออฟไลน์และออนไลน์ด้วย ซึ่งทางลูกค้าได้ใช้งานปลั๊กอิน woocommerce อยู่แล้ว แต่ต้องการจำกัดการเข้าถึงและหน้าที่ของพนักงานแต่ละคนให้ได้มากกว่าปกติของ shop_manager ใน woocommerce เช่น แคชเชียร์ ( เข้าถึงได้แค่หน้า POS ), คนจัดการคลังหรือนำเข้าสินค้า ( เข้าถึงได้แค่ระบบจัดการสต็อก หรือ เติมสต็อก ), บัญชี ( เข้าถึงได้แค่หน้า woocommerce > orders ), ผู้ดูแลร้าน ( ทำได้เหมือน shop_manager ปกติแต่ไม่สามารจัดการสต็อกได้ ) นอกจากนี้ยังต้องการเก็บประวัติสต็อก( stock log ) และเปลี่ยนแปลงสต็อกทั้งหมด ว่ามาจากอะไร และใครเป็นผู้ดำเนินการ

พอร์ตนี้เป็นส่วนหนึ่งของโปรเจค “สร้างระบบนำเข้าสต็อกและเก็บประวัติสต็อก สำหรับร้านค้าออฟไลน์หรือออนไลน์ด้วย WOOCOMMERCE และ POS”

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

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

ส่วนเขียนปลั๊กอินระบบนำเข้าสต็อก

  • ระบบค้นหาสินค้าด้วย ชื่อสินค้า หรือ sku
  • ระบบค้นหาสินค้าด้วยการยิง barcode ( โดยใช้ sku เป็นค่าเดียวกับ barcode )
  • ระบบค้นหาประวัติสต็อกสินค้าด้วย ฟิลเตอร์ดังนี้
    • ชื่อสินค้า sku หรือ ยิง barcode
    • ช่วงวันที่เริ่มต้น และ สิ้นสุด
  • แบบฟอร์ม Popup สำหรับกรอกจำนวนสต็อก ที่เพิ่มขึ้น หรือ ลดลง พร้อมทั้งสามารถกรอกหมายเหตุได้
  • ข้อมูลในแต่ละ log
    • ข้อมูลสินค้า เช่น ชื่อสินค้า, รูปสินค้า, ลิงก์สินค้า, จำนวนสต็อกปัจจุบัน
    • ผู้แก้ไขสต็อก
    • หมายเลขออเดอร์ ( หากเกิดจากการเปลี่ยนสถานะออเดอร์ )
    • หมายเหตุ
    • จำนวนสต็อก ก่อนและหลัง
    • วันเวลา
  • เงื่อนไขเพิ่มเติม
    • สินค้าทุกชิ้นจะต้องตั้งค่าเป็น manager_stock = "yes"
    • ต้อง activate ปลั๊กอิน woocommerce pos ก่อน

ส่วนจัดการ User roles ต่างๆ

  • แคชเชียร์ : สร้าง user role ชนิด cashier ขึ้นมาโดยไม่สามารถเข้าจัดการระบบต่างๆ ที่หลังบ้านได้ แต่สามารถเข้าถึงได้เพียงระบบ POS เท่านั้น แต่ก็ไม่สามารถเข้าถึงการจัดการสินค้าในระบบ POS ได้
  • คนจัดการคลังหรือนำเข้าสินค้า : สร้าง user role ชนิด stock manager ขึ้นมาโดยไม่สามารถเข้าจัดการระบบต่างๆ ที่หลังบ้านได้ แต่สามารถเข้าถึงได้เพียงระบบนำเข้าสต็อกเท่านั้น
  • บัญชี : สร้าง user role ชนิด account ขึ้นมาเพื่อให้เข้าถึงได้เพียงหน้า woocommerce > order เพื่อปริ้นหรือดาวน์โหลดเอกสาร ชนิดใบเสร็จ หรือใบเสนอราคาเท่านั้น รวมทั้งไม่สามารถแก้ไขสถานะออเดอร์ได้
  • ผู้ดูแลร้าน หรือ shop manager : ทำทุกอย่างได้เหมือนปกติของ woocommerce และสามารถจัดการสต็อกได้

ส่วนเก็บประวัติสต็อก( stock log ) และเปลี่ยนแปลงสต็อกทั้งหมด

  • เก็บประวัติการเปลี่ยนแปลงสต็อกของสินค้าใน order ที่ถูก checkout จากหน้าร้านออนไลน์
  • เก็บประวัติการเปลี่ยนแปลงสต็อกของสินค้าใน order ที่ถูก checkout จากหน้าร้านออฟไลน์ ( ระบบ POS )
  • เก็บประวัติการเปลี่ยนแปลงสต็อกของสินค้าใน order ที่ถูกเปลี่ยนสถานะเป็น cancel
  • เก็บประวัติการเปลี่ยนแปลงสต็อกของสินค้าใน order ที่ถูกเปลี่ยนสถานะกลับจาก cancel มาเป็น on-hold, processing หรือ completed
  • เก็บประวัติการเปลี่ยนแปลงสต็อกของสินค้าจากระบบนำเข้าสต็อก

ส่วนจัดการสินค้า

  • เมื่อโพสสินค้าครั้งแรก สินค้าทุกชิ้นจะถูกตั้งค่าเป็น manager stock และมี stock = 0
  • Disable ส่วนที่จัดการสต็อกจาก woocommerce บางส่วนเพื่อให้มาจัดการสต็อกด้วยปลั๊กอินแทน ป้องกันการผิดพลาดของจำนวนสต็อก และอนุญาติเพียง stock manager เท่านั้น
    • ปิดฟิลด์จัดการจำนวนสต็อกในหน้า new product
    • ปิดฟิลด์จัดการจำนวนสต็อกในหน้า edit product
    • ปิดฟิลด์จัดการจำนวนสต็อกส่วน quick edit ในตารางสินค้า
    • ปิดฟิลด์จัดการจำนวนสต็อกส่วน bulk edit ในตารางสินค้า
    • ปิดฟิลด์ refund ในหน้า edit order
    • Disable การแก้ไข line item ในหน้า edit order
    • Disable การลบ order ให้ทำได้แค่ cancel เท่านั้น
    • ปิดการเข้าถึงการจัดการ products ในระบบ POS