แนะโซลูชั่นสร้างเว็บ eCommerce ด้วย Magento Platform ให้ตอบโจทย์ธุรกิจ

22 ธันวาคม 2563
เพราะการสร้างเว็บ eCommerce ด้วย Magento ไม่ใช่แค่การทำเว็บร้านขายของออนไลน์

เมื่อกล่าวถึง eCommerce Platform ที่เป็น open source software ส่วนใหญ่ที่มีให้เลือกใช้งานในปัจจุบันมีคุณสมบัติที่คล้ายกันและมีส่วนที่แตกต่างกันอยู่มากมาย ซึ่งมุ่งเน้นที่จะช่วยให้เราสามารถปรับแต่งเว็บ eCommerce ได้ตามที่เราต้องการ รวมถึงอีกหนึ่งคุณสมบัติที่จำเป็นคือต้องทำให้หน้าสินค้าในเว็บ eCommerce มีความเหมาะสมกับ Search Engine อย่าง Google ด้วย แต่การจะพิจารณาว่าฟังก์ชันเรื่อง SEO ที่มีมาให้ในแต่ละ platform นั้น จริงๆแล้วเกี่ยวข้องกับปัจจัยหลายๆประการเช่น การออกแบบ workflow การใช้งานหรือ UX design, ความเร็วในการดาวน์โหลดหน้าเว็บ, การออกแบบและติดตั้ง meta tag ไว้อย่างเหมาะสมในหน้าเว็บ ฯลฯ ดังนั้นการจะเลือกแพลตฟอร์มให้เหมาะสมที่สุดกับเว็บ eCommerce ของเรานั้น เราจึงคำนึงถึงแพลตฟอร์มที่รองรับการทำงานได้ดีกับทุกสิ่งที่กล่าวมาด้วย

และถึงแม้ว่าจะมี eCommerce platform ที่ได้รับความนิยมมากมาย ไม่ว่าจะ WooCommerce, Shopify, 3DCart, Big Commerce, Magento และแพลตฟอร์มสำหรับการพัฒนาเว็บ eCommerce อื่น ๆ แต่ Magento คือ หนึ่งในแพลตฟอร์มที่ได้รับความนิยมมากที่สุดสำหรับธุรกิจขนาดกลางไปจนถึงธุรกิจขนาดใหญ่ที่รองรับการจัดหน้าร้านแบบมีหลายสโตร์ เช่น แยกหน้าร้านตามแบรนด์ของสินค้า หรือการมีหลายสาขาเพื่อแยกภาษาและสกุลเงินให้เหมาะกับลูกค้าในแต่ละภูมิภาคหรือประเทศ ในแง่ของสถาปัตยกรรม Magento นั้นมีฟังก์ชันที่ครบถ้วนรองรับการขยายตัวของธุรกิจได้เป็นอย่างดี อีกทั้งยังมีความคล้ายกันกับ WooCommerce มากที่สุด มีธีมและ extension ที่เราสามารถกำหนดเลือกใช้งานได้เองเยอะมาก ซึ่งทำให้เราสามารถปรับแต่งเว็บ eCommerce ของเราให้เข้ากับความต้องการทางธุรกิจได้เกือบทุกประเภทและมีคุณสมบัติอีกมากมายที่มีประโยชน์สำหรับร้านค้าทุกประเภท รวมถึงคุณสมบัติที่รองรับการขยายตัวของธุรกิจได้อย่างน่าทึ่งอีกด้วย และอีกหนึ่งในเหตุผลสำคัญที่เราเลือกใช้ Magento เพราะความสามารถในการผสานรวมเข้ากับซอฟต์แวร์ธุรกิจได้อย่างมากมาย อาทิเช่น การจัดส่งสินค้า, การเติมสินค้าเข้าคลัง, ระบบบัญชี และซอฟต์แวร์ของ third party อื่น ๆ ที่สามารถรวมเข้ากับหน้าร้านดิจิทัล (Digital Store fronts) โดยใช้ Magento ได้อย่างง่ายดาย และ Magento ยังมีระบบอัตโนมัติขั้นสูงสำหรับการจัดการโปรโมชั่นที่ซับซ้อนและกรณีการใช้งานอื่น ๆ ได้แทบทุกประเภทโดยที่ eCommerce platform อื่น ๆ ไม่สามารถทำได้

หากเราสร้างเว็บ eCommerce ด้วย Magento เป็นแพลตฟอร์มจะต้องคำนึงถึงอะไรบ้าง...

เพราะ Magento เป็นแพลตฟอร์มที่ไม่ได้ใช้งานได้ง่าย ๆ เลย ยิ่งถ้าคุณเป็นมือใหม่หรือคุณยังไม่เคยมีประสบการณ์ในการวางแผนเพื่อสร้างเว็บ eCommerce ด้วย Magento มาก่อน ขอให้ข้าม Magento ไปได้เลย เพราะมันมีความความยุ่งยากซับซ้อนมากพอสมควรสำหรับการจัดการทรัพยากรระบบเพื่อให้ Magento ทำงานได้สอดคล้องกับความต้องการของธุรกิจ ซึ่งแต่ละธุรกิจก็มีความเฉพาะที่ไม่เหมือนกัน และอีกเหตุผลก็คือ “งบประมาณ” : เพราะการจะสร้างเว็บ eCommerce ด้วย Magento ให้ได้ประสิทธิภาพที่สูงนั้น จัดว่าต้องใช้งบประมาณที่ไม่น้อยเลยทีเดียว หากคุณต้องการเว็บ eCommerce ที่มีประสิทธิภาพสูง คุณก็ต้องอาศัยทักษะ ความเชี่ยวชาญระดับสูงของนักออกแบบและนักพัฒนาเว็บ eCommerce ด้วย Magento ด้วยเช่นกัน

เหตุผลที่เราเลือกใช้ Magento กับเว็บ eCommerce

แล้วทำไมเรายังเลือกใช้ Magento? หนึ่งเหตุผลสำคัญคือ Magento มีความยืดหยุ่นสูง สามารถนำไปเชื่อมข้อมูลกับระบบอื่นๆ ได้อย่างไร้รอยต่อ เช่น ระบบหลังบ้านของธุรกิจไม่ว่าจะเป็น ERP, CRM, Warehouse Management รวมถึง Fulfilment ของ Third party

แต่เรื่องที่คุณควรต้องคำนึงถึงสิ่งแรกเลย คือ คุณจำเป็นต้องสร้างความเข้าใจในขั้นตอนและกระบวนการทำงาน (Workflow) รวมถึงข้อมูลเกี่ยวกับผลิตภัณฑ์ ซึ่งกระบวนการและข้อมูลเหล่านี้จะต้องถูกนำไปตั้งค่าไว้ใน Magento ซึ่งระบบการตั้งค่าของ Magento ก็ค่อนข้างจะเฉพาะเจาะจงมาก ข้อมูลจะถูกกำหนดด้วยคุณสมบัติ รูปแบบ และข้อมูลสำคัญอื่น ๆ นอกจากนี้คุณยังต้องรู้ลึกลงไปอีกว่าจะบริหารจัดการกระบวนการของคำสั่งซื้อ (Order Workflow) ใน Magento ว่าเป็นอย่างไร เพื่อให้คุณสามารถปรับแต่งกระบวนการคำสั่งซื้อให้สามารถสร้างสถานะและแสดงผลออกมาในแบบที่ธุรกิจต้องการได้ เรื่องพวกนี้เป็นสิ่งที่คุณจะต้องจัดการอย่างพิถีพิถัน เพราะมันค่อนข้างที่จะละเอียดและซับซ้อนมากเลยนะ และคุณยังต้องคำนึงด้วยว่ายังมีระบบอื่นๆ อีกหรือไม่ที่ควรจะนำมาจัดการเชื่อมต่อข้อมูลไปพร้อม ๆ กันเลย (เช่นด้านการขายและการตลาด เพราะทั้ง 2 เรื่องนี้มันเกี่ยวกับการกำหนดข้อมูลสินค้า การกำหนดรูปแบบราคา และการทำโปรโมชั่น) และเมื่อนำมาเชื่อมโยงกันแล้วจะมีผลกระทบต่อการทำงานระหว่าง Magento กับระบบงานเหล่านั้นหรือไม่

จากประสบการณ์ตรงของเราซึ่งคลุกคลีกับ Magento มาแล้วหลายโครงการ

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

ข้อดีของการสร้างเว็บ eCommerce ด้วย Magento

  • Open source eCommerce จึงไม่มีค่า License แถมยังมี Community ขนาดใหญ่เพื่อรองรับการแลกเปลี่ยนองค์ความรู้สำหรับนักพัฒนาเว็บไซต์อีคอมเมิร์ซอีกด้วย
  • ลดเวลาการพัฒนาเนื่องจากมี Extension ให้เลือกใช้เยอะ ซึ่งก็มีให้เลือกทั้งแบบฟรีกับแบบที่ต้องเสียเงินซื้อ
  • ติดตั้งง่าย Install แล้วสามารถใช้งานได้เลย เฉพาะกับกรณีที่ ไม่ต้องมีการ Customize หรือ Create Extensionท อะไรใหม่ๆ
  • มีระบบรองรับการจ่ายเงิน สามารถเชื่อมต่อกับ Paypal และให้ลูกค้าทำการชำระเงินได้เลย อันนี้ติดตั้งไม่ยากด้วย
  • รองรับการทำ Multi Store & Multi Language จึงรองรับการขยายร้าน แยกแบรนด์สินค้าออกเป็นแต่ละไซต์ของตัวเองได้เลย รวมถึงการแยกไซต์แยกภาษาเพื่อการขยายตัวของธุรกิจสำหรับการทำตลาดในต่างประเทศด้วย
  • มีระบบหลังบ้าน หรือระบบจัดการข้อมูลสินค้าที่ครบครัน แต่อย่างที่เคยกล่าวปแล้ว ถ้าเซ็ตให้ดีมันจะมีประโยชน์มาก
  • มีระบบ Configurable product ที่สมบูรณ์ แทบไม่ต้องลง module อะไรเสริม ซึ่งถือเป็นจุดแข็งของ Magento เลย
  • ระบบค้นหาสินค้ามีให้เลือกใช้แบบปกติและแบบละเอียด (Advance Search)
  • ระบบ API Magento ค่อนข้างเยอะ จึงเหมาะกับการ integrate กับระบบอื่น เช่น Import Stock, Import Product, หรือ fulfilment อย่างไปรษณีย์ไทย และอื่นๆอีกมากมาย
  • ระบบรองรับการจัดการข้อมูล SEO เป็นเต็มรูปแบบ (ทั้งการจัดการ keyword, url rewrite ค่อนข้างสะดวก เหมาะสำหรับการทำ seo)
  • รองรับระบบ promotion ได้หลากหลายตาม Default Module หรือติดตั้ง extention ก็รองรับ
  • สามารถขยาย Server ในอนาคตได้ในกรณีที่ เมื่อมีคนเข้าใช้งานเว็บไซต์เพิ่มมากขึ้น และมี Transection เพิ่มขึ้นมาก
  • เหมาะสำหรับธุรกิจขนาดกลางจนถึงใหญ่ (ในมุมของเจ้าหน้าที่จัดการดูแลและจำนวนสินค้า)

ข้อจำกัดของการสร้างเว็บ eCommerce ด้วย Magento

  • เว็บ eCommerce ที่สร้างด้วย Magento platform จะประมวลผลช้าลง เมื่อมีการเพิ่มจำนวนสินค้าเข้าไปในระบบเป็นจำนวนมากจนทำให้ฐานข้อมูลมีขนาดใหญ่ หรือเมื่อเว็บไซต์มีจำนวนผู้ใช้งานเป็นจำนวนมาก
  • หากมีผู้ใช้งานในช่วงขณะเวลาเดียวกันพร้อมกันเยอะๆ อาจจะทำให้ server overload
  • การค้นหาสินค้าค่อนข้างช้าหากมีจำนวนสินค้าในระบบมาก
  • ไม่รองรับ PWA (Progressive Web App) หรือเทคโนโลยีที่ทำให้เว็บทำงานคล้ายกับ Mobile App ซึ่ง Google เป็นคนผลักดันเรื่องนี้มานานแล้ว ถ้าใครยังไม่รู้ว่าคืออะไร ลองไปหาอ่านเพิ่มเติมดูนะครับ

ข้อควรระวังของการสร้างเว็บ eCommerce ด้วย Magento

  • ไม่เหมาะกับการที่ Install ทั้งหมดไว้บน server เพียงเครื่องเดียวหรือเป็น Install ทั้ง database + web application ไว้ในเครื่องเดียวกันอย่างยิ่ง
  • บาง Extension ที่มีให้เลือกใน Magento Marketplace อาจไม่ตอบโจทย์ความต้องการของธุรกิจได้ทั้งหมด จำเป็นต้อง Customize เพิ่ม
  • อาจเกิดช่องโหว่ และถูกโจมตีจาก Extension ที่ Install ได้ เนื่องจากเป็น Extension สำเร็จรูปบาง Extension อาจถูกพัฒนามานานแล้วโดยไม่ได้รับการอัพเดทและแก้บัคมีเคยมีอยู่ จนทำให้พวกแฮกเกอร์รู้จักรูรั่วพวกนี้เป็นอย่างดี
  • เวลาแก้ไข Extension ในแต่ละครั้งต้องทำการ bin/magento cache:clean ทุกครั้งทำให้เสียเวลา พบว่าส่วนใหญ่แม้จะทำ bin/margento cache:clean ไปแล้วก็ตาม ในหน้าเว็บบราวเซอร์ก็ยังจำ function เดิมก่อนที่จะแก้ไขอยู่ ซึ่งอาจทำให้เกิดความสับสน และเสียเวลาในการตรวจสอบทั้งฝั่ง Dev และฝั่ง User

ดังนั้น เพื่อแก้ข้อจำกัดดังกล่าว จากประสบการณ์จึงขอแนะนำ Solutions ดังนี้

Solution 1 : Magento กับ Service Elasticsearch , Redis

ตรงจุดนี้สามารถจัดการกับข้อจำกัดได้โดย

  • แก้ปัญหาการประมวลผลช้าของเว็บ eCommerce ที่สร้างด้วย Magento ด้วยการใช้ Elasticsearch เพื่อช่วยในการ index ข้อมูลและควรติดตั้ง redis ด้วยเพื่อสร้าง cache
  • ลดปัญหา Server overload ในกรณีคนเข้าเยอะได้ ด้วยการเพิ่ม Server service ลดภาระการทำงานของ Database
  • แก้ปัญหาการค้นหาสินค้าที่ค่อนข้างช้าเมื่อมีจำนวนสินค้าในระบบเป็นจำนวนมากได้ ด้วย Elasticsearch

คำแนะนำ / ข้อควรระวัง ดังนี้

  • ต้องเพิ่ม Server Service (Elasticsearch และ Redis) จะช่วยในเรื่องเพิ่ม performance ให้เว็บ eCommerce แต่ต้องแยก Server แต่ละ service ออกจากกัน
  • ไม่เหมาะสำหรับผู้ใช้งานที่เข้าใช้แบบ Host share แนะนำให้เป็น VM Server, Cloud server หรือ On premise
  • ต้องมีความรู้ในการ Configue and tuning elasticsearch performance และ Redis เพื่อรองรับการทำงานแบบ High perfromance

ความต้องการของระบบ จำนวน server ที่แนะนำ

  • Magento web server 1 server: WebServer, PHP
  • Service server (elasticsearch) 1 server : Elasticsearch, Redis
  • Database server 1 server : MySQL

Solution 2 : Magento (Service Elasticsearch , Redis ) เพิ่ม VueStorefront

ตรงจุดนี้สามารถจัดการกับข้อจำกัดได้โดย

  • แก้ปัญหาการประมวลผลช้าของเว็บ eCommerce ที่สร้างด้วย Magento ด้วยการใช้ Elasticsearch เพื่อช่วยในการจัดการ index ข้อมูลและควรติดตั้ง redis ด้วย เพื่อสร้าง cache
  • ลดปัญหา Server overload ในกรณีคนเข้าเยอะได้ ด้วยการเพิ่ม Server service ลดภาระการทำงานของ Database
  • แก้ปัญหาการค้นหาสินค้าที่ค่อนข้างช้าเมื่อมีจำนวนสินค้าในระบบเป็นจำนวนมากได้ ด้วย Elasticsearch
  • แก้ปัญหาในเรื่องการไม่รองรับ PWA (Progressive Web App) ของ Magento ในแบบเดิม ๆ ซึ่ง Solution นี้มีตัวช่วย Vue Storefront ที่ทำหน้าที่เป็น Web Front-end ที่รองรับการทำงาน PWA ได้โดยตรง

คำแนะนำ / ข้อควรระวัง ดังนี้

  • ต้องเพิ่ม Server ฝั่ง Web Front-end Service (Vue Storfront, Vue Storfront API, Elasticsearch) จะช่วยในเรื่อง performance แต่ต้องแยก Server แต่ละ service ออกจากกัน
  • ต้องเพิ่ม Server ฝั่ง Backend Service (Elasticsearch และ Redis) จะช่วยในเรื่อง performance แต่ต้องแยก Server แต่ละ service ออกจากกัน
  • วิธีการนี้ไม่เหมาะสำหรับนักพัฒนาที่เข้าใช้ Web hosting แบบ shared hosting แนะนำให้เป็น VM Server, Cloud server หรือ On premise
  • ต้องมีความชำนาญในการ configue and tuning elasticsearch performance และ Redis เพื่อรองรับการทำงานแบบ high perfromance
  • ต้องมีความชำนาญในการ Configure และใช้งาน Vue Storefront
  • หากมีการ เพิ่ม Function หรือ Extension บางอย่างจาก Magento ต้องคำนึงถึงการแสดงผล และทำงานฝั่ง Web Front-end หรือ Vue Storefront
  • เช่นกันหากมีการเพิ่ม Function บางอย่างจากฝั่ง Front-end (Vue Storefront) อาจจะต้องมีการปรับเปลี่ยน Code ในฝั่ง Back-end Magento ด้วย

ความต้องการของระบบ จำนวน server ที่แนะนำ

Frontend (VueStorefront)
  • WebFrontend 1 server : Vue Storefront, nodejs
  • WebFrontend API 1 server : Vue Storefront API, nodejs
  • Front Service 1 server : Elasticsearch, Redis
Backend (Magento)
  • Magento web server 1 server: WebServer, PHP
  • Service server (elasticsearch) 1 server : Elasticsearch, Redis
  • Database server 1 server : MySQL

หากนำ Solution สร้างเว็บ eCommerce ด้วย Magento มาเปรียบเทียบกัน

บทสรุปจากประสบการณ์ในการสร้างเว็บ eCommerce ด้วย Magento

แพลตฟอร์มให้กับโครงการเว็บ eCommerce หลายๆ แห่งที่ผ่านมา ทำให้เราพบว่าไม่มีสูตรสำเร็จตายตัวอะไรที่ทำครั้งเดียวแล้วเว็บจะต้องเจ๋งต้องปัง แต่ความพยายามในการเรียนรู้และปรับจูนของเหล่า developer จะเป็นกุญแจสำคัญที่ช่วยให้โครงการสร้างเว็บ eCommerce ของคุณจะประสบความสำเร็จได้ และหนึ่งในเรื่องที่คุณจำเป็นจะต้องคำนึงให้มาก ๆ คือความต้องการของ USER เพราะหากคุณวาดฝันไว้ว่าจะเติบโตในธุรกิจอีคอมเมิร์ซนี้แล้ว คุณจะต้องเตรียมแผนการลงทุนและแผนการขยายธุรกิจเผื่อไว้ล่วงหน้าเลย เพราะยิ่งระบบใหญ่ขึ้นเท่าใด ก็หมายถึงความต้องการของ USER ที่ยิ่งมากขึ้นและหลากหลายขึ้นด้วยเท่านั้น ดังนั้นการจะ Configue server และระบบให้ทำงานได้อย่างลื่นไหลและตอบโจทย์ USER ได้ครอบคลุมนั้น คุณจำเป็นจะต้องมีเครื่องมือในการ tracking พฤติกรรมของ USER ที่มีประสิทธิภาพด้วย นั่นเท่ากับว่าคุณจะต้องทุ่มเทเวลาและทรัพยากรต่าง ๆ เข้าไปในโครงการเพื่อที่จะได้ศึกษาและเรียนรู้พฤติกรรมของลูกค้าของคุณให้ลึกมากขึ้น ข้อมูลเหล่านี้จะช่วยให้คุณรู้ว่าควรจะปรับจูนระบบให้ตอบสนองความต้องการของพวกเขาได้ครบทุกเรื่องได้อย่างไร

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

« Back to Result