Skip to navigation

Settings and privacy

Beta

This page lists every setting, explains how to keep the storefront key safe, and covers what happens to your data when you disconnect or a privacy request arrives.

You’ll need: access to the theme editor for the app embed settings, and the Captain console for the connection.

App embed settings

Find these in the Shopify theme editor, under App embeds, then Captain Search.

SettingWhat it does
Captain search endpointYour tenant URL, such as https://acme.captain.dev. An HTTPS address with no path.
Product indexThe catalog name. Letters, digits, - and _ only.
Public scoped keyThe storefront key. It can’t be empty.
Wait for Captain up toHow long the dropdown waits for Captain on each keystroke before it shows Shopify’s own results. 200 to 1,500 ms. Leave it at 400 ms.
Product item selector (advanced)Leave it empty. Captain finds the theme’s product items itself. Only if a theme shows Shopify’s results instead of Captain’s, enter a CSS selector for one product item in its dropdown and search page, such as .product-item.

If the endpoint, the index or the key is missing or invalid, the embed stays off and the theme keeps Shopify’s own search.

Connection settings

Find these in the Captain console, under Developers, then Integrations, on the Shopify connection.

  • Sync every: how often Captain re-reads the whole catalog. You choose 1, 6, 12 or 24 hours when you connect.
  • Sync now: starts a sync at any time.
  • Manage: shows the connection’s status and creates the storefront key.
  • Disconnect: stops syncing and removes Captain’s access to the store. The catalog stays in Captain until you delete it.

Keep keys safe

  • Never put a write key, an admin key or a search key in a theme. A search key can read analytics, including what shoppers search for. Use a scoped key only.
  • Restrict the storefront key to the store’s catalog and storefront addresses. A request from any other site gets 403 ORIGIN_NOT_ALLOWED.
  • Never put a Shopify access token, API secret or staff credential in a theme setting.

Rotate the storefront key

1

Create a new key

Create a new scoped key the same way as the first. See Create a storefront key.

2

Swap it in the theme

Paste the new key into the app embed and select Save.

3

Revoke the old key

Call DELETE /v1/keys/{key_id} with a write key for every index or the admin key.

Disconnect or uninstall

  • Disconnect in the Captain console stops syncing and removes Captain’s access. The catalog stays in Captain until you delete it.
  • Uninstall the app in Shopify also stops the connection. Shopify revokes Captain’s access, and Captain deletes its stored copy of the token within minutes. The catalog stays.

About 48 hours after an uninstall, Shopify asks Captain to delete the store’s data. See below.

Shopify privacy requests

Captain receives Shopify’s three mandatory privacy requests. It checks each request’s signature, refuses any that fail, and logs the rest.

Shopify sends this about 48 hours after an uninstall. Captain deletes the connection and everything it keeps about it: the sync history, the product map, queued updates and the stored Shopify access. The catalog is your Captain catalog, and it stays until you delete it. If the store has connected again since the uninstall, Captain keeps that new connection.

Captain keeps no customer record. It deletes its record of the orders named in the request and any queued updates for them.

When the catalog’s engine can delete events, Captain also deletes those orders’ purchase events. While the store is still connected, Captain reads each order’s anonymous token from Shopify. For a shopper who consented to analytics, it then deletes everything under that token, including their searches, clicks and other orders. After an uninstall, Captain can’t read the token, so it deletes only the events recorded under the order number.

On an engine that can’t delete events yet, the events stay. Contact the Captain team on Slack to have them removed.

Captain logs the request, and the Captain team answers it by hand.

Questions about a request? Contact the Captain team on Slack.