Litestore · Help center
Commerce

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.

Google Merchant CenterProduct feed
Meta CommerceProduct feed
AI shopping agentsCatalog feed
Your catalog
EmailWith consent tracking
SearchSitemap and structured data
ReviewsRatings on product pages
Litestore sends the catalog to the platforms you connect.

Everything beyond the four required services is optional, and Litestore hides an optional service until you configure it.

Settings → Integrations
Settings → Developer

You 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

PostgreSQL 15+
Litestore keeps all store data here.
Redis / Upstash
Litestore uses Redis alongside the database.
S3-compatible storage
Litestore stores product images and other media files here.
Resend
Litestore sends every email through Resend, including sign-in links.

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 alive

Litestore 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/events

Litestore 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.

ScopeWhat it allows
ReadReading store data.
Cart readReading carts.
Cart writeChanging carts.
Order writeChanging orders.
Webhook writeManaging webhooks.
Operator MCPCalling 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:

  1. Store info
  2. Product search
  3. Product details
  4. Create cart
  5. Add to cart
  6. View cart
  7. Checkout link
  8. 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.

Google Merchant Center
Litestore sends the product feed.
Meta Commerce
Litestore keeps the store's Facebook and Instagram catalog in sync.
Shopify
You import your products and customers from Shopify.
Ad clicks
Litestore credits orders from Google, Meta, TikTok and Microsoft ads to the platform that sent them.
Social posts
Litestore records Social as the source when a visitor comes from the store's tagged links.
Analytics forwarding
The store's server sends events to PostHog, Google Analytics and Meta.

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.

Shopify
CSV
Reviews
Collabs
Importing Shopify
Your store
You connect a Shopify store and Litestore imports its products and customers.

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 webhook

Litestore 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)

On this page