ปรับขนาดร้านค้า WooCommerce ที่มีปริมาณมากด้วยการค้นหาระดับองค์กร

เผยแพร่แล้ว: 2022-04-06

เราได้ยินเสียงกระซิบ “WordPress และโซลูชั่นการค้าอย่าง WooCommerce ไม่ได้สร้างขึ้นสำหรับร้านค้าขนาดใหญ่ที่มีปริมาณมากพร้อมแคตตาล็อกผลิตภัณฑ์เชิงลึก”

แต่ความเป็นจริงหรือการรับรู้ที่ล้าสมัยนั้นไม่คุ้มค่าที่จะให้ความสนใจหรือไม่?

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

เพื่อพิสูจน์สิ่งนี้ เราใช้ความท้าทายในห้องปฏิบัติการ WordPress VIP ออกแบบและทดสอบร้านค้า WooCommerce ที่มีปริมาณมากพร้อมสต็อกในหลายภาษา หมวดหมู่ และคุณสมบัติมากมาย ตรวจสอบสิ่งที่เราได้เรียนรู้

ความท้าทายของร้านค้า WooCommerce ที่มีปริมาณมาก

จากประสบการณ์ของเรา ยิ่งข้อมูลที่เข้าสู่ฐานข้อมูล MySQL ยิ่งค้นหาได้ยากขึ้น แน่นอนว่าการแสดงแค็ตตาล็อกของผลิตภัณฑ์มากกว่า 1 ล้านรายการ—และทำให้ลูกค้านำทางได้ง่าย—เป็นความท้าทายที่ร้ายแรง

ในการเริ่มต้น เราตัดสินใจใช้วิธีการภายในของ WooCommerce เพื่อสร้างผลิตภัณฑ์ที่มีความสัมพันธ์แบบอนุกรมวิธานและข้อกำหนดเพียงพอที่จะคล้ายกับร้านค้าอีคอมเมิร์ซจริง

แพ็คเกจหนึ่งที่ช่วยคือ WooCommerce Smooth Generator ช่วยให้เราใช้สถาปัตยกรรม WordPress VIP Cron ที่ปรับขนาดได้ ซึ่งช่วยให้เราเร่งสร้างผลิตภัณฑ์ WooCommerce ได้สิบเท่า ข่าวดี: ในเวลาเพียง 48 ชั่วโมง เรามีร้านค้าที่มีข้อมูลจำนวนมาก—และผลิตภัณฑ์ 1 ล้านรายการ—เพื่อทดสอบ


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

 add_filter('woocommerce_product_recount_terms', '__return_false');

สำหรับการทดสอบนี้ เราใช้ WooCommerce ล่าสุด (เวอร์ชัน 6.1.1) และธีมหน้าร้านเริ่มต้น

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

  • ค้นหาสินค้า ค้นหาสินค้า
  • หมวดหมู่หน้ารายการสินค้า
  • กรองการค้นหา

เข้าสู่ Enterprise Search—รวดเร็ว ง่าย ปลอดภัย

ชัดเจนว่าหนึ่งในผลิตภัณฑ์ใหม่ล่าสุดของเรา นั่นคือ Enterprise Search จะมีความสำคัญในการแก้ไขปัญหาเหล่านี้ด้วยวิธีที่ปรับขนาดได้ เราพบว่ามันช่วยให้ฟังก์ชั่นร้านค้า WooCommerce จำนวนมากของเราไม่มีการเปลี่ยนแปลงรหัสหรือสคีมาฐานข้อมูลที่สำคัญ

ประการแรก ภูมิหลังบางประการ: Enterprise Search ได้รับการออกแบบมาตั้งแต่ต้นเพื่อตอบสนองความต้องการของลูกค้าองค์กร รวดเร็วปานสายฟ้าแลบ แม้จะเป็นฐานข้อมูลและขนาดปริมาณไซต์ สร้างขึ้นบน Elasticsearch ให้ผลลัพธ์ที่แม่นยำและเกือบจะในทันที แม้กระทั่งในเนื้อหาหลายล้านชิ้น

เนื่องจากมีการผสานรวมกับ VIP Cloud โดยตรงโดยไม่จำเป็นต้องมีบริการภายนอก Enterprise Search จึงจัดทำดัชนีเนื้อหาใหม่ทันที แสดงผลลัพธ์ใหม่ล่าสุดและมีความเกี่ยวข้องมากที่สุดอย่างรวดเร็ว

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


เคล็ดลับทางเทคนิค: การเปิดใช้งาน Enterprise Search ทำได้ง่ายดายเพียง:

 define( 'VIP_ENABLE_VIP_SEARCH', true ); // Enables Enterprise Search. define( 'VIP_ENABLE_VIP_SEARCH_QUERY_INTEGRATION', true ); // Integrates search queries with Enterprise Search.

แบ่งเบาภาระด้วยการลดภาระการสืบค้นไปยัง Enterprise Search

เมื่อรู้ว่า WP_Query ใดๆ สามารถออฟโหลดไปยัง Enterprise Search ได้ เราจึงเริ่มตรวจสอบตัวกรองที่เหมาะสมที่อนุญาตให้เราฉีด es => true ให้กับการสืบค้น MySQL ที่ช้าที่พบในส่วนหน้าของไซต์ แทนที่จะทำการสืบค้นฐานข้อมูล ผลลัพธ์ของการสืบค้นแต่ละครั้งจะถูกดึงมาจาก Enterprise Search engine โดยใช้การเรียก API ที่รวดเร็ว

เมื่อใช้วิธีนี้ เวลาตอบสนองสำหรับการค้นหาผลิตภัณฑ์ หน้ารายการผลิตภัณฑ์ตามหมวดหมู่ และการค้นหาที่กรองแล้วดีขึ้นสิบเท่า ใช่ 10 เท่า!

โค้ดตัวอย่างสำหรับการสอบถามส่วนหน้าของผลิตภัณฑ์ที่เกี่ยวข้องกับ WP_Query ถูกถ่ายโอนไปยัง Enterprise Search อยู่ด้านล่าง:

 add_action( 'pre_get_posts', 'offload_query_to_ES' ); function offload_query_to_ES( $query ) { // Avoid unintentional query offloading for backend queries. if ( is_admin() ) { return; } if ( ! $query->is_main_query() ) { return; } if( 'product' !== $query->get( 'post_type' ) ) { return; } // Offloading query to Enterprise Search. $query->set( 'es', true ); }

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

นอกจากนี้ ความเร็วแบ็กเอนด์ของ WooCommerce ยังได้รับการปรับปรุงด้วยการลดภาระการสืบค้น MySQL ที่มีราคาแพงไปยัง Enterprise Search ซึ่งช่วยให้เจ้าของร้านค้าได้รับประสบการณ์ที่ดีที่สุด


เคล็ดลับทางเทคนิค: ข้อความค้นหาทั้งหมดที่ส่งไปยัง Enterprise Search สามารถปรับแต่งได้อย่างเต็มที่ เนื่องจากจะแปลเป็น JSON ElasticSearch Query DSL โดยใช้ตัวกรองต่อไปนี้:

 ep_pre_request_args

กำลังดำเนินการคำสั่งซื้อจำนวนมาก

ขั้นตอนต่อไปในการทดสอบของเราคือการสร้างคำสั่งซื้อและข้อมูลลูกค้าที่เกี่ยวข้องในปริมาณมาก

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

ในระหว่างการทดสอบ เราพบว่าการเพิ่มประสิทธิภาพส่วนใหญ่เกี่ยวข้องกับการสืบค้นแบ็กเอนด์ MySQL ที่ช้า ซึ่งหมายความว่าจะลดภาระการสืบค้นที่มีราคาแพงกว่าไปยัง Enterprise Search และจัดทำดัชนีข้อมูลที่เกี่ยวข้อง

หมายเหตุ: คำสั่งซื้อของ WooCommerce จะถูกจัดเก็บเป็นประเภทโพสต์ที่กำหนดเองใน WooCommerce ดังนั้นพวกเขาจึงต้องลงทะเบียนในประเภทโพสต์ที่อนุญาตของ Enterprise Search พร้อมกับสถานะโพสต์ที่กำหนดเอง รหัสตัวอย่างอยู่ด้านล่าง:

 // The `shop_order` post type is not public, so we need to add this to get them to index. add_filter( 'ep_indexable_post_types', function( $post_types ) { $post_types['shop_order'] = 'shop_order'; return $post_types; } ); // Adding the custom order statuses to the index. add_filter( 'ep_indexable_post_status', function( $statuses ) { return array_merge( $statuses, array_keys(wc_get_order_statuses()) ); });

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

พูดถึงตัวเลือกหลายภาษา...

แนวทางหนึ่งที่ปรับขนาดได้ดีระหว่างการตั้งค่าไซต์อีคอมเมิร์ซหลายภาษาที่มีปริมาณมากคือการสร้างไซต์แยกต่างหากภายในเครือข่าย WordPress ที่ติดตั้ง และอนุญาตให้แต่ละไซต์สามารถเชื่อมต่อกับ Enterprise Search แยกกันได้

ตัวอย่างเช่น Inpsyde ซึ่งเป็นพันธมิตรด้านเทคโนโลยี WPVIP เสนอปลั๊กอิน MultilingualPress ที่อำนวยความสะดวกในการสร้างการตั้งค่าเครือข่ายที่คล้ายคลึงกันซึ่งรองรับภาษาได้ไม่จำกัดจำนวนบนไซต์ที่มีปริมาณมาก

อย่างไรก็ตาม สิ่งนี้สร้างความท้าทายที่เกี่ยวข้องกับการซิงค์สต็อกระหว่างไซต์ต่างๆ มีโซลูชันมากมายเพื่อแก้ไขปัญหานี้ รวมถึง Central Stock for WooCommerce plugin จาก Inpsyde ด้วย

คำสุดท้ายที่จุดชำระเงิน

นอกจากการขนถ่ายข้อความค้นหา MySQL ที่มีราคาแพงกว่าแล้ว Enterprise Search ยังมีฟังก์ชันการค้นหาใหม่ๆ ซึ่งรวมถึงข้อความค้นหาที่คลุมเครือ คำพ้องความหมาย และการถ่วงน้ำหนัก ซึ่งสามารถช่วยทำให้การค้นหาร้านค้า WooCommerce ที่มีปริมาณมากมีประสิทธิภาพมากขึ้น

คุณบอกได้ไหมว่าเรารัก Enterprise Search? ตรงไปตรงมา เป็นโซลูชันที่แท้จริงในการเพิ่มความสามารถในการปรับขนาดของธุรกิจของคุณ ลดค่าใช้จ่ายที่เกี่ยวข้องกับการพัฒนาและใช้เวลาดำเนินการ และเปิดเส้นทางสู่การใช้งานอีคอมเมิร์ซรูปแบบใหม่

เราเห็นลูกค้า WordPress VIP และ WooCommerce ที่มีอยู่แล้วและประสบความสำเร็จในการผลักดันขอบเขตของอีคอมเมิร์ซที่มีปริมาณมาก นี่คืออนาคตที่ปรับขนาดได้มากขึ้น!

ผู้เขียน

Ovidiu Liuta วิศวกรระดับพรีเมียร์ WordPress VIP