# Troubleshooting

> The usual reasons why something does not show or does not work on a Smootify site, grouped by area, each with the page that fixes it.

Status: Ready (Smootify 2.0)  
URL: https://www.smootify.io/docs/astro/start/troubleshooting  
Updated: 2026-10-21

When a Smootify element shows nothing or does not react, the cause is usually one of a few: a setting in Shopify, the plan, or a detail of the markup. This page lists the common ones by area. Each line says what you see, why, and which page fixes it.

## Start with the debugger

On a `*.workers.dev` address or the dev server, press Alt+Shift+D (Option+Shift+D on a Mac), or add `?smootify-debug` to the address on a phone. The **Elements** tab says which elements are “not found” (Shopify did not return the product) or “not running” (their add-on is not active). The **Checks** tab lists the markup and settings Smootify does not read. See [The debugger](https://www.smootify.io/docs/astro/start/debugger).

## Smootify does not start

- **The build stops with a `siteId` error.** The option is missing, or the environment variable `SMOOTIFY_SITE_ID` is not set where the build runs. See [Install Smootify in Astro](https://www.smootify.io/docs/astro/start/install).
- **Smootify does not load full features on your domain.** The domain is not set in the Smootify dashboard, or the plan is Free: a registered domain needs Lite. See [Deploy to Cloudflare](https://www.smootify.io/docs/astro/start/deploy#3-add-your-domain).
- **Every stock and sale message shows at once.** Smootify’s stylesheet is missing: `runtimeCssUrl` is `false`, so the site must ship those rules itself. See [Install Smootify in Astro](https://www.smootify.io/docs/astro/start/install).
- **An option does nothing.** It is not in `userOptions` of `smootify()`. Put every option there, not in a script of your own. See [Install Smootify in Astro](https://www.smootify.io/docs/astro/start/install).

## Products and the content

- **Products are missing after the build.** They are not published to the sales channel of your Headless storefront, or not available in your markets. See [Set up the Shopify store](https://www.smootify.io/docs/astro/start/shopify-store).
- **A product is missing.** Two products have the same cleaned slug: the first wins. See [Content from Shopify](https://www.smootify.io/docs/astro/start/content).
- **A blog, article or page loader fails with `ACCESS_DENIED`.** The Smootify token has no content scope. Pass your own `store` and `storefrontToken`. See [Content from Shopify](https://www.smootify.io/docs/astro/start/content).
- **A product block stays empty.** Shopify did not return the product: it is not published to the channel, or not sold in the visitor’s market. See [Build the product page](https://www.smootify.io/docs/astro/build/product-page).
- **Every card shows the same product.** `data-id` holds a fixed id. Write it from the entry, as `data-id={p.shopifyId}`. See [Product cards](https://www.smootify.io/docs/astro/build/product-cards).
- **Links in the cart or the search results open a 404 page.** The folder of a page is not the one Smootify expects: set `productsBase`, `collectionsBase` or `vendorsBase` in `userOptions`. See [Install Smootify in Astro](https://www.smootify.io/docs/astro/start/install).
- **A metafield stays empty.** Its definition in Shopify needs Storefront access, and the loader loads only the metafields you list. See [Content from Shopify](https://www.smootify.io/docs/astro/start/content).
- **Customers get no order confirmation email.** The project still uses the test token the Smootify app created. See [Set up the Shopify store](https://www.smootify.io/docs/astro/start/shopify-store).

## Product page

- **A picker disappears.** The product does not have that option. See [Build the product page](https://www.smootify.io/docs/astro/build/product-page).
- **Attributes on a swatch do nothing.** They are on the second button: only the first one is the template. See [Build the product page](https://www.smootify.io/docs/astro/build/product-page).
- **The swatches of a Color option have no colour.** The option was linked to the Color metafield after it was created. See [Swatch colours and images](https://www.smootify.io/docs/astro/build/swatches).
- **Videos are missing from the gallery.** Add `include-media` to the `product="gallery"` element. See [Product gallery and media](https://www.smootify.io/docs/astro/build/product-gallery).
- **The gallery does not move.** `gallery="slider"` works only on a slider. See [Product gallery and media](https://www.smootify.io/docs/astro/build/product-gallery).
- **Buy now or an add button does nothing.** It is a link (`<a>`). Use a `button`. See [Build the product page](https://www.smootify.io/docs/astro/build/product-page).

## Lists, search and filters

- **Only 3 products show.** That is the default of a product list. Add `limit`. See [Product lists](https://www.smootify.io/docs/astro/build/product-lists).
- **Related or complementary products disappear.** `data-parent-id` is empty. Complementary products also need to be set in Shopify’s Search & Discovery app. See [Product lists](https://www.smootify.io/docs/astro/build/product-lists).
- **Search & discovery shows nothing.** It needs a `smootify-product` card inside, and on the live domain the Search & discovery add-on. See [Filters, sorting and pagination](https://www.smootify.io/docs/astro/build/filters).
- **A filter never shows.** Its `label` is not written exactly as in Shopify’s Search & Discovery app, or no listed product has a value for it. See [Filters, sorting and pagination](https://www.smootify.io/docs/astro/build/filters).
- **Typing in the search does nothing.** The input’s `name` is not `query`. See [Predictive search](https://www.smootify.io/docs/astro/build/predictive-search).

## Cart

- **The count stays at 0.** `cart="count"` is outside `smootify-cart`. See [Navbar: cart, search and account](https://www.smootify.io/docs/astro/build/navbar).
- **Only one line shows, or lines you designed disappear.** Only the first `cart-item` is the template. See [Build the cart](https://www.smootify.io/docs/astro/build/cart).
- **A close or remove button goes to checkout.** It is inside the cart’s Form without `type="button"`. See [Build the cart](https://www.smootify.io/docs/astro/build/cart).
- **The mini cart does not open after an add.** `data-open` is missing, or the page has another `smootify-cart` with no popover. See [Build the cart](https://www.smootify.io/docs/astro/build/cart).
- **The crossed-out total is missing.** It shows only when it is above the total: nothing in the cart is on sale or discounted. See [Build the cart](https://www.smootify.io/docs/astro/build/cart).
- **A discount code seems ignored.** Shopify did not apply it to this cart, and the cart lists only the codes that apply. See [Discounts, notes and progress bars](https://www.smootify.io/docs/astro/build/cart-extras).

## Accounts

- **The login and register forms disappear.** They are the forms of the classic accounts, which Shopify has deprecated: 2.0 removes them. See [Customer accounts](https://www.smootify.io/docs/astro/build/account).
- **Log in does nothing, or the account elements stay empty.** The store does not use the new customer accounts, or `newCustomerAccountsPublicKey` is not set. See [Customer accounts](https://www.smootify.io/docs/astro/build/account).

## Add-ons and plans

- **It works on `*.workers.dev` but not on your domain.** The add-on is not in your plan, or not turned on in the Smootify dashboard. See [Deploy to Cloudflare](https://www.smootify.io/docs/astro/start/deploy#3-add-your-domain).
- **A server add-on works on `*.workers.dev` but not on the live site.** The domain in the Smootify dashboard differs from the site’s address, often by `www`. See [Deploy to Cloudflare](https://www.smootify.io/docs/astro/start/deploy#3-add-your-domain).
- **A server add-on does nothing on `*.workers.dev`.** Server add-ons run only on the licensed domain. See [Deploy to Cloudflare](https://www.smootify.io/docs/astro/start/deploy#3-add-your-domain).
- **Products go into the cart one at a time instead of into a box.** Magic Box is not turned on in the Smootify dashboard. See [Magic Box](https://www.smootify.io/docs/astro/features/magic-box).
- **No dynamic property shows.** The add-on is not turned on, or the metafield or the metaobject definition has no Storefront access. See [Dynamic properties](https://www.smootify.io/docs/astro/features/dynamic-properties).
- **The product goes in at its normal price, with no error.** The `name-your-price` element has no `input[type="number"]` inside, so it removed itself. See [Name your price](https://www.smootify.io/docs/astro/features/name-your-price).

## Markets, consent and analytics

- **The country switcher is empty.** The store has only its primary market. Set up the markets in Shopify first. See [Markets, currencies and languages](https://www.smootify.io/docs/astro/features/markets).
- **Analytics shows no visits from Europe.** Analytics ids are set but the page has no `smootify-consent`, so those visitors never give consent. See [Analytics and pixels](https://www.smootify.io/docs/astro/features/analytics).
- **The cookie preferences button disappears.** The page has no `smootify-consent`: put the banner in a component present on every page. See [Cookie consent](https://www.smootify.io/docs/astro/features/cookie-consent).
- **A pixel tracks before consent.** A second copy of it is on the page, from another script or custom code. Remove it. See [Analytics and pixels](https://www.smootify.io/docs/astro/features/analytics).

## Popovers

- **The trigger adds to cart or sends the form.** It is inside a form without `type="button"`. See [Popovers](https://www.smootify.io/docs/astro/build/popovers).
- **A close button became a value, or disappeared.** It is the first button in the popover, so it became the template. See [Popovers](https://www.smootify.io/docs/astro/build/popovers).

## Your scripts and apps

- **`window.Smootify` is undefined in a script.** The script ran before Smootify loaded. Call it from a `window.Smootify.push` function. See [JavaScript API](https://www.smootify.io/docs/astro/developers/javascript-api).
- **An app gets a 404 for `/cart.js`.** Its snippet ran before Smootify. Change its script type to `smootify-load`. See [Shopify AJAX API](https://www.smootify.io/docs/astro/developers/ajax-api).
- **An app calls `/apps/…` and fails.** Those paths need Shopify’s online store, and the site does not answer them. See [Shopify apps](https://www.smootify.io/docs/astro/features/theme-apps).

## Limits

Some things a Smootify store cannot change:

- **Three options per product.** Shopify allows up to three options, such as Color, Size and Material. For more choices, use [Product add-ons](https://www.smootify.io/docs/features/add-ons) or the [Product configurator](https://www.smootify.io/docs/features/product-configurator).
- **Ten results in predictive search.** That is Shopify's limit. Link to the [search results page](https://www.smootify.io/docs/build/search-page) to show all results.
- **The checkout.** Shopify's checkout cannot be designed in Webflow. Its logo, colors and a few other settings are in your Shopify admin.
- **CMS items.** Your Webflow site plan limits the number of CMS items, for all collections together, so it limits the products you can sync.

## Get help

When the debugger and this page do not solve it, ask on the Smootify Discord, where the team and other builders answer. Projects with a paid plan also get premium support: open a ticket from the chat in the bottom-right corner of the Smootify dashboard. See [Contact](https://www.smootify.io/contact). Say what you expected, what happens instead, and the address of the page.

## Where people get stuck

Most reports come down to one of these.

> [!STUCK]
> - **A product never shows.** It is not published to the Headless channel, or not sold in the visitor's market.
> - **A metafield or metaobject stays empty.** Its definition in Shopify needs Storefront access, and the loader loads only the metafields you list.
> - **Attributes on a copy do nothing.** Swatches, cart lines, gallery slides and search results use the first element you design as the template. Put the attributes on the first one.
> - **A button does nothing.** It is a link (`<a>`). Use a `button`.
> - **An add-on works on `*.workers.dev` and not on your domain.** It is not in your plan, or not turned on in the Smootify dashboard.
> - **An option does nothing.** Set it in `userOptions` of `smootify()`, once.
