Integrations
Connect Litestore to the services it depends on and to the other systems your business already uses.
Litestore needs four external services to run a store, and it connects to many more. Check the integrations settings when you set up a new store or connect Litestore to your other tools.
Everything beyond the four required services is optional, and Litestore hides an optional service until you configure it.
Navigation
Settings → Integrations
Settings → DeveloperYou connect external platforms under Settings → Integrations. API keys, webhooks and their deliveries, and import runs are managed under Settings → Developer.
Setup
Services
After that, add only the optional services you actually use. Litestore hides integrations you haven't configured, so there's no downside to leaving them out.
Catalog
If you're moving from Shopify, connect over OAuth and check the run's error report afterwards. The skipped and failed counts show how complete the migration was.
API keys and webhooks
Give the key the narrowest scope that works, and subscribe a webhook endpoint to the events you need.
Required services
Without Resend nobody can sign in
Everyone signs in with a magic link sent by email, so in production, without Resend nobody can sign in, including you, and the store refuses to start without it. On a development copy, no email is sent and the sign-in link is printed in the server's terminal instead.
Outbound webhooks
When you subscribe an endpoint to store events, Litestore sends each event to that endpoint. Litestore signs every delivery with HMAC-SHA256 and logs each one with its status code and response body, so when an integration breaks, the delivery log shows the exact request that failed and the response it received.
Litestore retries a failed delivery up to five times. If an endpoint keeps failing, Litestore disables it:
last 15 completed deliveries all failed → endpoint disabled
one success in that window → endpoint stays aliveLitestore records this in the activity log, so the log shows why the integration stopped. Fifteen consecutive failures usually indicate that the endpoint is down rather than temporarily unreliable, and a single success among those fifteen deliveries keeps the endpoint enabled, so an unreliable receiver isn't disabled because of one short outage.
These are the events an endpoint can subscribe to:
/api/webhooks/eventsLitestore sends events and writes activity after it has responded, outside the database transaction that changed the data. Idempotency keys prevent a retried handler from doing its work twice, but they don't guarantee delivery. Event delivery is best-effort, so don't build a process that assumes every event arrives.
Service API keys
You issue keys for your own systems, and each key gets one or more of six scopes.
| Scope | What it allows |
|---|---|
| Read | Reading store data. |
| Cart read | Reading carts. |
| Cart write | Changing carts. |
| Order write | Changing orders. |
| Webhook write | Managing webhooks. |
| Operator MCP | Calling the admin MCP endpoint (admin:mcp). |
Litestore only offers scopes that are actually checked somewhere in the code, which is why the list is short.
Litestore stores keys hashed, so the admin can't show a key again after it has been issued.
Only a super admin can create or revoke a key, although other people can view the page. This lets someone check which keys exist without being able to create new ones.
MCP for AI assistants
Litestore has two MCP endpoints, and they're intended for different users.
/api/mcp is public, and Litestore advertises it at /.well-known/ucp. It gives a shopper's AI assistant eight tools:
- Store info
- Product search
- Product details
- Create cart
- Add to cart
- View cart
- Checkout link
- Order status
None of these tools take payment. The checkout tool returns a link, and a person opens it and pays through the normal storefront checkout, under the store's policies. The assistant can build a cart, but a human has to complete the purchase.
A developer on your team connects MCP servers when they set up the store.
Platform connections
Three platforms connect from Settings → Integrations. Ad and social tracking and analytics forwarding don't need a connection there.
Litestore stores each platform's credentials encrypted and records its last successful sync. Each connection shows whether it's connected, stale, expiring or in error.
The out-of-date warning is the more important of the two. A failing connection reports an error, but a connection that has stopped syncing without an error looks the same as one that simply had nothing new to sync.
Catalog import
Litestore connects to a Shopify store and imports its products and customers. You start the import from the import dialog on the Products page.
Litestore records each import run. The run shows its scope and mode, along with live counts of rows imported, updated, skipped and failed, and offers an error report to download. Litestore also saves a checkpoint, so a stopped run can resume where it left off.
Each imported record stores its Shopify id. When you run the import again, Litestore updates the records the first run created instead of creating duplicates.
Newsletter providers
Newsletter signups go to one of seven places:
Klaviyo
Mailchimp
ConvertKit
Buttondown
Loops
Beehiiv
a plain webhookLitestore uses the first one it finds configured. Providers are configured with environment variables by whoever runs the store, and there's no priority setting, so you should only configure one.
Self-hosting
You run Postgres, Redis and S3 yourself. The store answers at /api/health with whether the database and Redis respond, which an uptime monitor can poll. The admin home's setup guide checks the store's own setup: a first product, payments, shipping, taxes, store details and email sending.
Check both first when something goes wrong on a new deployment. A missing environment variable can cause many different errors elsewhere in the app.
Besides the four required services, Litestore supports Stripe, the Shopify import, PostHog, Plausible (in the browser), GA4, Meta, TikTok (in the browser), the AI providers (Google, Anthropic, OpenAI) and newsletters.
Data model
If you read the data directly, these are the tables involved:
Webhook
WebhookDeliveryLog
ServiceApiKey
ImportRun
ImportSourceRecord
Integration (encrypted platform credentials)