# Overview

Source: https://gokarla.io/docs/guides/shops/overview

# Shops

<DocHero
  icon="ShoppingBag"
  eyebrow="Shop integrations"
  title="One API, any storefront"
>
  Karla meets your shop wherever it lives. Native integrations for Shopify,
  Shopware, and WooCommerce cover 95% of merchants in a few clicks — and a clean
  public API lets the other 5% build whatever they want.
</DocHero>

## How the integration works

Karla is the post-purchase layer on top of your storefront. Your shop is the
source of truth for orders; Karla is the source of truth for the journey after
the order is placed — shipments, carrier events, tracking pages, notifications,
resolution flows.

The integration is deliberately boring:

1. Your shop sends us **orders** as they're created, updated, or cancelled.
2. Your shop (or your WMS) sends us **shipments** with a tracking number and
   carrier.
3. Karla takes over from there — polling the carrier, normalizing statuses,
   powering the tracking page, triggering notifications, surfacing anomalies
   for resolution.

That's it. No heavy middleware, no data lake, no re-architecting your stack.

## What we pull from your shop

<FeatureGrid>
  <FeatureCard icon="Package" title="Order data">
    Order number, totals, line items, fulfillment status, currency, and
    customer-facing metadata.
  </FeatureCard>
  <FeatureCard icon="Users" title="Customer profile">
    Name, email, phone (if available), locale preference, and shipping address —
    only what we need to personalize tracking pages and messages.
  </FeatureCard>
  <FeatureCard icon="Truck" title="Shipments & tracking">
    Tracking number(s), carrier identifier, fulfillment line-items. Karla
    handles the rest — carrier polling, status normalization, ETA.
  </FeatureCard>
  <FeatureCard icon="Webhook" title="Real-time updates">
    Webhooks for creation, update, and cancellation. We only ingest what changes
    — no bulk syncing, no nightly jobs.
  </FeatureCard>
</FeatureGrid>

## Pick your path

Most merchants plug Karla in via one of our native integrations — pick the one
that matches your storefront and follow the step-by-step setup.

For teams who want to ship something custom — a proprietary tracking
experience, a mobile app, an agent that surfaces shipment state in Slack —
Karla is also a pure API. Skip the plugins, call the endpoints directly, and
build on top.

## Build your own: Karla as a platform

If you can write code, you can build on Karla. Every integration in this
section is a thin layer over the same public API — there's nothing
Shopify-specific or Shopware-specific under the hood.

That means you can:

- Power a **custom tracking page** on your own domain, styled exactly the way
  you want.
- Embed shipment state into your **mobile app**, an internal dashboard, or a
  Slack channel.
- Orchestrate **automations** off of Karla events — send an email when a
  shipment stalls, trigger a refund flow on a failed delivery.
- Wire Karla into an **AI agent** that handles "where is my order?" without a
  human ever touching it.

We built Karla to be headless-first — every UI we ship (tracking page, portal,
resolve) is just a reference implementation on top of the same API you have
access to. If you'd rather design your own experience, the
[Headless guide](/docs/guides/shops/headless) walks through the full data
model and the endpoints you'll need.

## Where to next

- Got a Shopify store? Start with [Shopify](/docs/guides/shops/shopify).
- On Shopware? Follow the [Shopware](/docs/guides/shops/shopware) setup.
- Running WooCommerce? Set up webhooks in
  [WooCommerce](/docs/guides/shops/woocommerce) — no plugin required.
- Building your own storefront or going fully headless?
  [Headless](/docs/guides/shops/headless) is where you want to be.
