Menskalakan Toko WooCommerce Volume Tinggi Dengan Pencarian Perusahaan

Diterbitkan: 2022-04-06

Kami telah mendengar bisikan. “WordPress dan solusi perdagangan seperti WooCommerce tidak dibuat untuk toko besar bervolume tinggi dengan katalog produk yang dalam.”

Tetapi apakah kenyataan itu atau hanya persepsi yang sudah ketinggalan zaman tidak perlu diperhatikan?

Kami percaya itu yang terakhir. Kunci untuk merek dagang yang ingin berinovasi dengan cepat, menghemat waktu dan uang pelanggan, dan membuka solusi perdagangan yang mudah digunakan seperti WooCommerce dalam skala besar—katakanlah, skala stok 1 juta produk— adalah melalui Pencarian Perusahaan, dikembangkan oleh WordPress VIP.

Untuk membuktikannya, kami menerima tantangan di lab VIP WordPress, merancang dan menguji stres toko WooCommerce bervolume tinggi dengan stok di berbagai bahasa, kategori, dan lusinan atribut. Lihat apa yang kami pelajari.

Tantangan toko WooCommerce bervolume tinggi

Dari pengalaman kami, semakin banyak data yang masuk ke database MySQL, semakin sulit untuk mencarinya. Tentu saja, menampilkan katalog lebih dari 1 juta produk—dan memudahkan pelanggan menavigasi—merupakan tantangan serius.

Untuk memulai, kami memutuskan untuk menggunakan metode internal WooCommerce untuk menghasilkan produk dengan taksonomi dan hubungan istilah yang cukup untuk menyerupai toko e-niaga nyata.

Salah satu paket yang membantu adalah WooCommerce Smooth Generator. Ini memungkinkan kami menggunakan arsitektur VIP Cron WordPress yang dapat diskalakan, yang membantu kami mempercepat pembuatan produk WooCommerce sepuluh kali lipat. Kabar baik: hanya dalam 48 jam, kami memiliki toko dengan data volume tinggi—dan 1 juta produk itu—untuk diuji.


Kiat teknis: Agar proses impor awal tetap cepat, kami menonaktifkan proses penghitungan ulang persyaratan dan hanya menjalankannya lagi pada tahap akhir:

 add_filter('woocommerce_product_recount_terms', '__return_false');

Untuk pengujian ini, kami menggunakan WooCommerce terbaru (versi 6.1.1) dan tema Storefront default.

Menilai frontend, kami mulai melihat penundaan besar dalam merender halaman—kueri lambat MySQL adalah akar masalahnya. Area utama yang terkena dampak terkait dengan:

  • Pencarian produk pencarian produk
  • Kategori halaman daftar produk
  • Pencarian yang difilter

Masuk ke Pencarian Perusahaan—cepat, mudah, aman

Jelas bahwa salah satu produk terbaru kami, Penelusuran Perusahaan, akan sangat penting dalam mengatasi masalah ini dengan cara yang skalabel. Kami menemukan bahwa itu membantu fungsi toko WooCommerce volume tinggi kami tanpa perubahan kode utama atau skema basis data.

Pertama, beberapa latar belakang: Pencarian Perusahaan dirancang dari bawah ke atas untuk kebutuhan pelanggan perusahaan. Ini secepat kilat, bahkan sebagai basis data dan skala volume situs. Dibangun di atas Elasticsearch, ini memberikan hasil yang akurat dan hampir instan bahkan di jutaan konten.

Karena terintegrasi langsung dengan VIP Cloud tanpa memerlukan layanan eksternal, Enterprise Search segera mengindeks konten baru, menampilkan hasil terbaru dan paling relevan dengan cepat.

Kami mengaktifkan Pencarian Perusahaan dan menjalankan indeks awal pada data produk yang kami miliki, memungkinkan kami untuk menyimpan data secara horizontal dari database kami.


Kiat teknis: Mengaktifkan Penelusuran Perusahaan semudah:

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

Meringankan beban dengan menurunkan kueri ke Penelusuran Perusahaan

Mengetahui bahwa WP_Query apa pun dapat diturunkan ke Pencarian Perusahaan, kami mulai memeriksa filter yang sesuai yang memungkinkan kami memasukkan es => true ke kueri MySQL lambat yang ditemukan di frontend situs. Alih-alih membuat kueri database, hasil setiap kueri diambil dari mesin Penelusuran Perusahaan menggunakan panggilan API cepat.

Dengan menggunakan metode ini, waktu respons untuk pencarian produk, halaman daftar produk kategori, dan pencarian yang difilter meningkat sepuluh kali lipat. Ya, 10x!

Kode contoh bagaimana kueri frontend produk yang terkait dengan WP_Query diturunkan ke Pencarian Perusahaan ada di bawah ini:

 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 ); }

Hasilnya, dicapai dalam waktu singkat, adalah situs WooCommerce volume tinggi yang cepat dan terukur, yang dikombinasikan dengan arsitektur VIP Cloud yang ada, memungkinkannya menangani lalu lintas dalam jumlah besar.

Selain itu, kecepatan backend WooCommerce juga ditingkatkan dengan memindahkan kueri MySQL yang mahal ke Pencarian Perusahaan, memungkinkan pengalaman yang lebih optimal bagi pemilik toko.


Kiat teknis: Semua kueri yang dikirim ke Penelusuran Perusahaan sepenuhnya dapat disesuaikan karena diterjemahkan ke JSON ElasticSearch Query DSL menggunakan filter berikut:

 ep_pre_request_args

Menjadi besar dalam pemrosesan pesanan

Langkah kami selanjutnya dalam pengujian adalah menghasilkan volume pesanan yang tinggi dan data pelanggan terkait.

Menggunakan langkah serupa seperti yang disebutkan di atas, kami berhasil membuat ~1 juta pesanan dan data pelanggan terkait.

Selama pengujian kami, kami menemukan bahwa sebagian besar pengoptimalan terkait dengan kueri backend MySQL yang lambat. Ini berarti, sekali lagi, memindahkan kueri yang lebih mahal ke Penelusuran Perusahaan dan mengindeks data terkait.

Catatan: Pesanan WooCommerce disimpan sebagai jenis kiriman khusus di WooCommerce, jadi pesanan tersebut harus didaftarkan di jenis kiriman yang diizinkan Pencarian Perusahaan bersama dengan status kiriman khusus mereka. Contoh kode di bawah ini:

 // 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()) ); });

Selain itu, tim WooCommerce bekerja untuk memperkenalkan tabel pesanan khusus baru untuk membantu kueri data terkait lebih cepat dan dengan cara yang lebih skalabel. Ini akan membantu Enterprise Search terus meningkatkan skalabilitas dan kinerja aplikasi e-niaga.

Berbicara tentang opsi multibahasa…

Salah satu pendekatan yang dapat diskalakan dengan baik selama menyiapkan situs e-niaga multibahasa bervolume tinggi adalah membuat situs terpisah dalam instalasi jaringan WordPress dan memungkinkan masing-masing untuk dihubungkan secara terpisah ke Pencarian Perusahaan.

Inpsyde, mitra teknologi WPVIP, misalnya, menawarkan plugin MultilingualPress yang memfasilitasi pembuatan pengaturan jaringan serupa yang mendukung jumlah bahasa yang tidak terbatas di situs volume tinggi.

Namun, ini menciptakan tantangan terkait dengan menyinkronkan stok antar situs. Ada beberapa solusi untuk mengatasi hal ini, termasuk plugin Central Stock untuk WooCommerce, juga dari Inpsyde.

Kata terakhir saat checkout

Selain membongkar kueri MySQL yang lebih mahal, Pencarian Perusahaan juga menawarkan fungsionalitas pencarian baru—termasuk ketidakjelasan istilah pencarian, sinonim, dan pembobotan—yang dapat membantu membuat pencarian toko WooCommerce bervolume tinggi menjadi lebih efisien.

Bisakah Anda memberi tahu kami bahwa kami menyukai Penelusuran Perusahaan? Sejujurnya, ini adalah solusi nyata untuk meningkatkan skalabilitas bisnis Anda, memangkas biaya yang terkait dengan waktu pengembangan dan implementasi, dan membuka jalan menuju implementasi e-niaga baru.

Kami sudah melihat pelanggan WordPress VIP dan WooCommerce yang ada berhasil dan secara menguntungkan mendorong batas-batas e-niaga volume tinggi. Ini untuk masa depan yang lebih terukur!

Pengarang

Ovidiu Liuta, Insinyur Utama, WordPress VIP