SearchWP Documentation

Consultez le guide d’installation, parcourez la base de connaissances, découvrez les nombreux hooks de SearchWP

Trier les résultats de produits par ventes totales

SearchWP classe les résultats de recherche en fonction de leur correspondance avec les termes de recherche. Ce classement utilise les paramètres de poids que vous configurez dans les paramètres de votre moteur pour les différents champs de contenu. Cependant, pour les boutiques WooCommerce, vous pourriez vouloir afficher les produits en fonction du nombre de fois où ils ont été vendus, plutôt que de simplement faire correspondre le contenu.

Trier les produits par ventes totales peut aider à augmenter les revenus en affichant d'abord vos produits les plus populaires. Cette stratégie place les produits que les clients aiment déjà en haut des résultats de recherche.

Trier les résultats par ventes totales

Si vous souhaitez afficher les résultats de produits triés par nombre de ventes, vous pouvez utiliser le code ci-dessous. Cette méthode ignore la correspondance du contenu et affiche vos produits les plus vendus en premier, quelle que soit la qualité de leur correspondance avec les termes de recherche.

<?php
// Order product search results by total sales
add_filter( 'searchwp\query\mods', function( $mods, $query ) {
global $wpdb;
$mod = new \SearchWP\Mod();
$alias = \SearchWP::$index->get_alias();
$meta_alias = 'my_searchwp_sort_products';
$meta_key = 'total_sales';
$mod->column_as( $wpdb->prepare( "(
SELECT meta_value
FROM {$wpdb->postmeta}
WHERE
{$wpdb->postmeta}.post_id = {$alias}.id
AND {$wpdb->postmeta}.meta_key = %s
)", $meta_key ),
$meta_alias );
$mod->order_by( "{$meta_alias} + 0", 'DESC', 5 );
$mods[] = $mod;
return $mods;
}, 30, 2 );

Ce code trie vos résultats de recherche par nombre de ventes dans l'ordre décroissant (du plus élevé au plus bas). L'implémentation a une priorité totale sur l'algorithme de pertinence de SearchWP, ce qui signifie que les produits seront toujours classés par volume de ventes, quelle que soit la qualité de la correspondance de leur contenu avec la requête de recherche.

Note : Si deux produits ou plus ont le même nombre de ventes, leur ordre sera déterminé par un tri secondaire basé sur la pertinence.

Booster les produits populaires tout en conservant la pertinence

Si vous souhaitez conserver le classement normal de SearchWP mais donner des points supplémentaires aux produits qui se vendent bien, vous pouvez utiliser une approche différente. Cette méthode conserve la correspondance du contenu tout en plaçant les produits populaires plus haut dans les résultats.

<?php
// Boost relevance for WooCommerce products with high total sales
add_filter( 'searchwp\query\mods', function( $mods, $query ) {
global $wpdb;
// Adjustable variables
$min_total_sales = 100; // Minimum sales required to qualify
$bonus_weight = 99999; // Base relevance weight
$sales_multiplier = 100; // Extra relevance per sale
$search_term = trim( $query->get_keywords() );
if ( empty( $search_term ) ) {
return $mods;
}
$mod = new \SearchWP\Mod();
$mod->set_local_table( $wpdb->posts );
$mod->on( 'ID', [ 'column' => 'id' ] );
$mod->relevance( function( $runtime ) use ( $wpdb, $min_total_sales, $bonus_weight, $sales_multiplier ) {
$alias = $runtime->get_local_table_alias();
return "
CASE
WHEN {$alias}.post_type = 'product'
AND (
SELECT CAST(pm.meta_value AS UNSIGNED)
FROM {$wpdb->postmeta} pm
WHERE pm.post_id = {$alias}.ID
AND pm.meta_key = '_total_sales'
LIMIT 1
) >= {$min_total_sales}
THEN
{$bonus_weight} +
(
SELECT CAST(pm.meta_value AS UNSIGNED)
FROM {$wpdb->postmeta} pm
WHERE pm.post_id = {$alias}.ID
AND pm.meta_key = '_total_sales'
LIMIT 1
) * {$sales_multiplier}
ELSE 0
END
";
});
$mods[] = $mod;
return $mods;
}, 20, 2 );

Ce code ajoute des points bonus aux produits qui se sont vendus un certain nombre de fois. Le bonus comprend un score de base plus des points supplémentaires basés sur les ventes totales. Cela signifie que les produits populaires obtiennent des classements plus élevés tandis que SearchWP prend toujours en compte la correspondance des produits avec les termes de recherche.

Ajustement des paramètres

Le code comprend trois paramètres que vous pouvez modifier pour contrôler le fonctionnement du boost :

Ventes totales minimales ($min_total_sales) : Défini sur 100 par défaut. C'est le nombre de ventes qu'un produit doit avoir avant de bénéficier du boost. Modifiez ce nombre en fonction des ventes typiques de votre boutique.

Poids du bonus ($bonus_weight) : Défini sur 99999 par défaut. C'est le score de base ajouté aux produits qui se qualifient. Des nombres plus élevés donnent un plus grand avantage aux produits populaires.

Multiplicateur de ventes ($sales_multiplier) : Défini sur 100 par défaut. Ce nombre est multiplié par les ventes totales du produit pour ajouter des points supplémentaires. Des nombres plus élevés créent une plus grande différence entre les produits modérément populaires et très populaires.

Ajout du code

Vous pouvez ajouter les hooks personnalisés en utilisant un plugin d'extraits de code comme WPCode, ou en créant un plugin de personnalisation SearchWP comme expliqué dans cette documentation SearchWP.

Une fois que vous ajoutez et activez le code, SearchWP commencera immédiatement à utiliser votre nouvelle stratégie de tri. Avec la méthode de boost, les produits ayant suffisamment de ventes apparaîtront en haut des résultats, suivis des autres produits correspondants.

Suivez les résultats avec les métriques SearchWP

Après avoir ajouté une stratégie de tri basée sur les ventes, utilisez l'extension SearchWP Metrics pour voir ses performances au fil du temps. Les métriques vous montrent le nombre de clics que vos produits les plus vendus obtiennent par rapport aux autres résultats. Cela vous aide à comprendre si le nouveau tri fonctionne bien.

En examinant les données de clics dans Metrics, vous pouvez voir si les clients trouvent plus rapidement ce qu'ils veulent, ou s'ils ignorent de bons produits qui ne se vendent pas autant. Utilisez ces informations pour ajuster votre stratégie, modifier les paramètres du code, ou essayer différentes approches pour trouver ce qui fonctionne le mieux pour votre boutique.

Créez dès aujourd'hui une meilleure expérience de recherche WordPress

Ne perdez plus jamais de visiteurs à cause de résultats de recherche inutiles. SearchWP rend la création de votre propre recherche WordPress intelligente rapide et facile.

Get SearchWP Now
Icône de moteurs de recherche multiples