Skip to content
Menu

WooCommerce

Install the SeekGist plugin on WordPress + WooCommerce.

The SeekGist plugin works with WordPress 6.5+ and WooCommerce 8.0+ on PHP 7.4+ with cURL. It was tested on WordPress 7.1.3, WooCommerce 11.2.1, PHP 7.4.33 and 8.3, with the Storefront theme. It works with any theme that uses WooCommerce's product search page.

1. Get your keys

Create your store in the SeekGist dashboard, then open Settings > API keys. You need:

  • a public key (sg_pub_...): safe in a web page. Search, suggestions and events use it.
  • a secret key (sg_sec_...): server only. Product sync and translations use it.

2. Install the plugin

  1. In WordPress, open Plugins > Add New Plugin > Upload Plugin.
  2. Choose seekgist-search-1.0.0.zip and click Install Now, then Activate Plugin.

The plugin adds four small tables (wp_seekgist_*) and a 5-minute WP-Cron task.

3. Settings

Open WooCommerce > SeekGist.

SettingWhat to put
Use SeekGistOn. Off = your store's own search, at once.
API addresshttps://api.seekgist.com (keep the default)
Public key / Secret keyYour keys. The secret key is never shown again.
Search resultsOn: SeekGist orders the product search page; your theme shows the products.
Suggest boxOn: suggestions and products while the shopper types.
Click and sales trackingOn: clicks, add-to-cart and orders from searches. No personal data is sent.
Product syncOn: products are sent when they change and every 5 minutes.
AI query understandingOff (fastest). AI rarely fits the 300 ms budget of the results page.
Only in-stock productsAlso on when WooCommerce hides out-of-stock items.
Search box selectorEmpty works for most themes (input[name="s"]).
Catalog languageEmpty = the site language.
Write back translations forFor example ar. Leave empty if you do not use SeekGist translations.

You can keep the secret key out of the database. Add it to wp-config.php instead:

define('SEEKGIST_SECRET_KEY', 'sg_sec_...');

Click Save settings, then Test connection. You should see "Public key: OK" and "Secret key: OK", and the store appears in the SeekGist dashboard. Then click Sync all products now.

WP-Cron only runs when the site has visitors. For a steady 5-minute schedule, add one of these to a real cron job (the admin page shows your own address and token):

*/5 * * * * curl -fsS "https://your-shop.example/wp-json/seekgist/v1/cron?token=...&task=all" >/dev/null
*/5 * * * * wp seekgist cron --path=/path/to/wordpress

How it works

  • The search page URL stays the same (/?s=...&post_type=product). SeekGist picks and ranks the products; WooCommerce and your theme show their own product cards, so prices, sale prices, tax display and prices from other plugins stay right.
  • If SeekGist is slow (over 300 ms) or answers with any error, your store's own search answers that search at once. After 5 errors in 60 seconds, SeekGist is skipped for 30 seconds. See Store fallback.
  • With a layered-navigation filter (price, attribute, rating) or a sort SeekGist does not do here (popularity, rating), the store's own search serves.
  • Add-to-cart and orders are counted on your server and sent later by the cron, so the cart and checkout never wait for SeekGist.
  • Translations: with Polylang or WPML, approved Arabic texts go into the Arabic copy of the product (when it exists). Without them, they are saved in product meta (_seekgist_name_ar, _seekgist_description_ar). A text a person typed is never replaced.

WP-CLI

wp seekgist test                       # Test connection
wp seekgist cron --task=full           # full sync now (all | delta | full | outbox | writeback)
wp seekgist status                     # the numbers of the admin page, as JSON
wp seekgist products --ids=12,13       # products exactly as SeekGist receives them

Remove

Deactivate stops the schedule. Delete removes the plugin's tables and settings. Translations it wrote into products stay (they are your store's content now). Products in SeekGist stay until you delete them in the SeekGist dashboard.

Problems

You seeDo this
"Public key: not accepted"Copy the key again from the dashboard; check the API address.
Search looks like beforeIs "Use SeekGist" on and the public key set? The response header X-SeekGist-Search tells why (ok, off, native_filter, fallback_timeout and so on).
"Fallbacks to the store search" growsSeekGist was slow or down; your store search served. Check the status page.
Products missing in SeekGistClick "Sync all products now" and read the message. Drafts, private and trashed products are not sent.