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.
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⇧ ShiftD (⌥ Option⇧ ShiftD 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.
Smootify does not start
- The build stops with a
siteIderror. The option is missing, or the environment variableSMOOTIFY_SITE_IDis not set where the build runs. See Install Smootify in Astro. - 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.
- Every stock and sale message shows at once. Smootify’s stylesheet is missing:
runtimeCssUrlisfalse, so the site must ship those rules itself. See Install Smootify in Astro. - An option does nothing. It is not in
userOptionsofsmootify(). Put every option there, not in a script of your own. See Install Smootify in Astro.
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.
- A product is missing. Two products have the same cleaned slug: the first wins. See Content from Shopify.
- A blog, article or page loader fails with
ACCESS_DENIED. The Smootify token has no content scope. Pass your ownstoreandstorefrontToken. See Content from Shopify. - 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.
- Every card shows the same product.
data-idholds a fixed id. Write it from the entry, asdata-id={p.shopifyId}. See 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,collectionsBaseorvendorsBaseinuserOptions. See Install Smootify in Astro. - A metafield stays empty. Its definition in Shopify needs Storefront access, and the loader loads only the metafields you list. See Content from Shopify.
- Customers get no order confirmation email. The project still uses the test token the Smootify app created. See Set up the Shopify store.
Product page
- A picker disappears. The product does not have that option. See Build the 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.
- 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.
- Videos are missing from the gallery. Add
include-mediato theproduct="gallery"element. See Product gallery and media. - The gallery does not move.
gallery="slider"works only on a slider. See Product gallery and media. - Buy now or an add button does nothing. It is a link (
<a>). Use abutton. See Build the product page.
Lists, search and filters
- Only 3 products show. That is the default of a product list. Add
limit. See Product lists. - Related or complementary products disappear.
data-parent-idis empty. Complementary products also need to be set in Shopify’s Search & Discovery app. See Product lists. - Search & discovery shows nothing. It needs a
smootify-productcard inside, and on the live domain the Search & discovery add-on. See Filters, sorting and pagination. - A filter never shows. Its
labelis not written exactly as in Shopify’s Search & Discovery app, or no listed product has a value for it. See Filters, sorting and pagination. - Typing in the search does nothing. The input’s
nameis notquery. See Predictive search.
Cart
- The count stays at 0.
cart="count"is outsidesmootify-cart. See Navbar: cart, search and account. - Only one line shows, or lines you designed disappear. Only the first
cart-itemis the template. See Build the cart. - A close or remove button goes to checkout. It is inside the cart’s Form without
type="button". See Build the cart. - The mini cart does not open after an add.
data-openis missing, or the page has anothersmootify-cartwith no popover. See Build the 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.
- 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.
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.
- Log in does nothing, or the account elements stay empty. The store does not use the new customer accounts, or
newCustomerAccountsPublicKeyis not set. See Customer accounts.
Add-ons and plans
- It works on
*.workers.devbut not on your domain. The add-on is not in your plan, or not turned on in the Smootify dashboard. See Deploy to Cloudflare. - A server add-on works on
*.workers.devbut not on the live site. The domain in the Smootify dashboard differs from the site’s address, often bywww. See Deploy to Cloudflare. - A server add-on does nothing on
*.workers.dev. Server add-ons run only on the licensed domain. See Deploy to Cloudflare. - 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.
- 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.
- The product goes in at its normal price, with no error. The
name-your-priceelement has noinput[type="number"]inside, so it removed itself. See 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.
- 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. - The cookie preferences button disappears. The page has no
smootify-consent: put the banner in a component present on every page. See 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.
Popovers
- The trigger adds to cart or sends the form. It is inside a form without
type="button". See Popovers. - A close button became a value, or disappeared. It is the first button in the popover, so it became the template. See Popovers.
Your scripts and apps
window.Smootifyis undefined in a script. The script ran before Smootify loaded. Call it from awindow.Smootify.pushfunction. See JavaScript API.- An app gets a 404 for
/cart.js. Its snippet ran before Smootify. Change its script type tosmootify-load. See Shopify 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.
Limits
Some things a Smootify store cannot change:
Three options per product
- Why
- Shopify allows up to three options, such as Color, Size and Material.
- For more
- Use Product add-ons or the Product configurator.
Ten results in predictive search
- Why
- That is Shopify's limit.
- For more
- Link to the search results page to show all results.
The checkout
- Why
- Shopify's checkout cannot be designed in Webflow.
- Instead
- Its logo, colors and a few other settings are in your Shopify admin.
CMS items
- Why
- 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. 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.
Check these first
- 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 abutton. - An add-on works on
*.workers.devand 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
userOptionsofsmootify(), once.