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
- In WordPress, open Plugins > Add New Plugin > Upload Plugin.
- Choose
seekgist-search-1.0.0.zipand 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.
| Setting | What to put |
|---|---|
| Use SeekGist | On. Off = your store's own search, at once. |
| API address | https://api.seekgist.com (keep the default) |
| Public key / Secret key | Your keys. The secret key is never shown again. |
| Search results | On: SeekGist orders the product search page; your theme shows the products. |
| Suggest box | On: suggestions and products while the shopper types. |
| Click and sales tracking | On: clicks, add-to-cart and orders from searches. No personal data is sent. |
| Product sync | On: products are sent when they change and every 5 minutes. |
| Only in-stock products | Also on when WooCommerce hides out-of-stock items. |
| Search box selector | Empty works for most themes (input[name="s"]). |
| Catalog language | Empty = the site language. |
| Write back translations for | For 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.
4. A steady schedule (recommended)
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/wordpressHow 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 themRemove
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 see | Do this |
|---|---|
| "Public key: not accepted" | Copy the key again from the dashboard; check the API address. |
| Search looks like before | Is "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" grows | SeekGist was slow or down; your store search served. Check the status page. |
| Products missing in SeekGist | Click "Sync all products now" and read the message. Drafts, private and trashed products are not sent. |