---
title: Setup Shopify
description: Install and configure the Shopify Headless channel and the apps your storefront needs.
url: "https://shop-docs.labs.vercel.dev/docs/getting-started/shopify-setup"
docs_index: /llms.txt
lastUpdated: 2026-10-13
type: guide
prerequisites:
  - /docs/getting-started
---

> For an index of all documentation, see [/llms.txt](/llms.txt).

All stores require the Shopify [Headless sales channel](https://apps.shopify.com/headless). Install and set it up first. Install the other Shopify apps only when your store needs their storefront features.

> **Stores from the Vercel Marketplace:**
>
> If you created your store through the [Vercel Marketplace Shopify
> integration](https://vercel.com/marketplace/shopify), you have the **Vercel Storefronts** channel
> instead of **Headless**. Manage the storefront and its access token there.

## Publish products to your Storefront

Install Shopify's [Headless sales channel](https://apps.shopify.com/headless). In your Shopify admin, open the **Headless** app under **Sales channels**, then click **Add storefront** to create a storefront.

Grant the storefront's Storefront API token the required permissions:

| Scope                                   | Enables                                                          |
| --------------------------------------- | ---------------------------------------------------------------- |
| `unauthenticated_read_product_listings` | Products, collections, search, and recommendations               |
| `unauthenticated_read_selling_plans`    | Subscription and selling-plan options on products and cart lines |
| `unauthenticated_write_checkouts`       | Cart operations and checkout                                     |
| `unauthenticated_read_content`          | Pages, blogs, and articles                                       |

For optional scopes and details, see [Storefront API permissions](/docs/reference/storefront-api-permissions).

Publish the products and collections you want to show to the **Headless** channel. See Shopify's guide [here](https://help.shopify.com/en/manual/products/add-update-products#product-availability). Content published only to the **Online Store** channel does not appear in your storefront.

## Set the storefront ID to enable server-side analytics

Set the `NEXT_PUBLIC_SHOPIFY_STOREFRONT_ID` environment variable to attribute server-side cart activity to this storefront. Find the numeric ID in the storefront's URL in the Headless app, after `/headless/`. For example, `https://admin.shopify.com/store/your-store/headless/330461` uses the ID `330461`. Server-side attribution gives you more reliable analytics and funnel metrics that do not depend on the shopper's browser.

## Configure search, filters, and recommendations

Install [Shopify Search & Discovery](https://apps.shopify.com/search-and-discovery) to configure collection and search filters. You can also assign complementary products, which appear as “Pairs Well With” on product pages. Shopify supplies related product recommendations automatically.

## Optional Shopify features and apps

> **Enable more with skills:**
>
> Use [skills](/docs/skills) to enable additional Shopify features on your store with a coding
> agent.

### Enable kitting and bundling

Install [Shopify Bundles](https://apps.shopify.com/shopify-bundles) if you sell fixed bundles. Publish the bundle and its component products to **Headless**. The storefront displays bundle relationships when `pdp.bundles.isEnabled` is on in your [shop configuration](/docs/reference/shop-config), which is the default.

### Enable customer login

> **Customer login needs more setup:**
>
> Customer accounts require additional credentials and configuration. See
> [Authentication](/docs/anatomy/authentication) before enabling sign-in.

## Related links

#### [Product Setup](/docs/shopify/pdp)

Configure variants, swatches, recommendations, bundles, and product SEO.

#### [Shopify Integration](/docs/shopify)

See how Shopify concepts map to storefront routes and features.

#### [Webhooks](/docs/anatomy/webhooks)

Keep cached storefront data in sync with Shopify Admin changes.

---

For a semantic overview of all documentation, see [/sitemap.md](/sitemap.md)

For an index of all available documentation, see [/llms.txt](/llms.txt)

For agent-facing discovery, including API and MCP surfaces, see [/agents.md](/agents.md)