# Shopify

The WarpSearch app for Shopify syncs your products into a WarpSearch collection and serves storefront search from it through a theme block. Coming soon: the app is awaiting Shopify App Store review. The theme extension is open source on [GitHub](https://github.com/warpsearchio/warpsearch-shopify).

## How it works

- Installing the app starts a bulk sync of your products. Webhooks then keep the index current, including inventory changes.
- Storefront searches go through Shopify's app proxy at `/apps/warpsearch/search`. The request is signature-verified and filtered to your shop on the server, and the WarpSearch key never reaches the browser.
- Shoppers can filter by vendor, product type, tag, collection, price and availability, and sort by relevance, price, newest or title.

## Add search to your theme

1. Once enabled, open **Console > Integrations**, enter your `myshopify.com` domain and authorize the app.
2. Sign into WarpSearch and confirm the organization as an organization admin. A dedicated collection and server-held key are provisioned automatically.
3. In the theme editor, add the **WarpSearch** block to your search or collection page.
4. Save. The block calls `/apps/warpsearch/search?q=...`.

WarpSearch deploys and operates the backend and extension. Merchants do not need to host an app.
The console shows sync status and offers manual resync and disconnect. The connection uses the
organization's existing plan and collection limits. Disconnect removes the indexed catalog and
credentials; the empty collection remains.

Search parameters are `q`, `vendor`, `product_type`, `tag`, `collection` (repeatable), `min_price`, `max_price`, `available=1`, `sort` (`relevance`, `price_asc`, `price_desc`, `newest`, `title`), `from` and `size`.

## Running it yourself

The repository also includes a standalone Node 24 development server and theme app extension.
It uses local credential storage and lacks the managed service's durable queue and organization
onboarding. To run it you need the [shared setup](integrations.md), a Shopify app with scopes
`read_products`, `read_inventory`, `write_app_proxy`, and these settings:

- `SHOPIFY_API_KEY`, `SHOPIFY_API_SECRET`, `SHOPIFY_SCOPES`, `SHOPIFY_API_VERSION`, `APP_URL`
- `WARPSEARCH_COLLECTION`, `WARPSEARCH_WRITER_KEY`, and optionally `WARPSEARCH_READ_KEY`, `WARPSEARCH_TEXT_ANALYSIS`, `WARPSEARCH_BATCH_SIZE`, `WARPSEARCH_MAX_HITS`

Run `shopify app deploy` to publish the app configuration and extension, then install on a development store at `https://APP_URL/auth/install?shop=your-store.myshopify.com`.

The CLI publishes configuration and extensions; the Node backend needs its own deployment.
Markets/localized catalogs, metafields and customer-specific prices are not supported by this connector.
