The results page is a normal page with the [search] shortcode, set under Settings → Search. Content types, results per page and autocomplete are configured there as well.
[search] ← settings from Settings
[search types="product" status="1"] ← only products on this page
[search pagperpage="12"]Hooks for the theme
// products only
add_filter('cms39_search_query_params', function ($p) {
$p['search_form_search_types'] = 'product';
return $p;
});
// results as cards
add_filter('cms39_search_results_structure', fn() => '<div class="row g-3">%results$s</div>%pagination$s');
add_filter('cms39_search_result_callback', fn() => function ($id, $o) {
$p = PageDetail($id);
return '<div class="col-6 col-md-3"><a class="card h-100" href="' . $p['url'] . '">' . htmlspecialchars($p['title']) . '</a></div>';
});Every form with role="search" and a name="q" field gets autocomplete automatically. cms39_search_autocomplete_item changes or extends each suggestion, e.g. with a price.
Statistics
Every search is recorded per day and language (no IP). From that history the CMS learns variants of the same word and which results visitors choose, and ranks those higher. Your own search engine can write to the same statistics with cms39_search_stats_log($q, $count, 'shop').
E-MAIL or by phone at (+30) +30.2152151245-8