marco-pm/zencart-typesense

Typesense integration for Zen Cart (Instant Search plugin add-on).

dev-main 2023-07-30 14:34 UTC

This package is auto-updated.

Last update: 2024-05-30 01:00:09 UTC


README

Sync the Zen Cart catalog with a Typesense server and use Typesense as Instant Search engine.

Features

This plugin is an add-on for the Instant Search plugin and allows to use Typesense as search engine (in place of MySQL).

  • Faster searches and more accurate results than MySQL, including typo tolerance and synonyms.
  • Automatic synchronization of the Zen Cart catalog (products, categories and brands) with Typesense.
  • Includes a basic dashboard in the Zen Cart admin to monitor the sync status, view Typesense server status and collections, and manage synonyms.
  • Automatic fallback to MySQL if the Typesense server is not available.

Admin dashboard

Prerequisites

  • Zen Cart 1.5.7 or 1.5.8
  • PHP 7.4 through 8.2
  • Instant Search plugin 4.0.0 or later
  • Typesense server 0.24.0 or later

Installation, use and FAQs

See the readme.html.

Troubleshooting

Zen Cart Forum Support Thread

See also the FAQS & troubleshooting section in the readme.html.

Development

Typesense PHP client

The Typesense PHP client is a dependency of this plugin and is not included in the repo. To install it:

  • copy the vendor files (attached to the GitHub release) in the plugin's directory
  • OR, install composer, copy composer.json and composer.lock in the plugin's directory and run:
    composer install
    

Admin dashboard

To build the .js files from the .tsx sources, install Node.js and NPM, then run:

npm install

npm run build-typesense_dashboard

TODO

  • Consider implementing an optional "frontend search" mode, i.e. sending the search request directly to the Typesense server with JavaScript, without going through the Zen Cart backend.
  • Add more features to the admin dashboard, e.g. manage curations.
  • Make some low-level search settings configurable in the admin, e.g. num_typos.

Testing

Integration tests use the Test Framework of Zen Cart 1.5.8. Place the content of the tests directory of this repo under /not_for_release/testFramework.

Run the tests with:

php phpunit --configuration phpunit_typesense.xml