Troubleshooting
Debug tools
| Tool | How | What you get |
|---|---|---|
| Debug mode | Append ?debug to any URL (or set FPD.debug = true before load) | Verbose console output: option loading, selector resolution, plugin-option overwrites, translation lookups, draft/cart handling |
| Selector inspector | FPD.func.fpdDebug() in the console (product page) | Table + on-page highlight of every resolved theme-abstraction selector |
| Cart inspector | FPD.generalPage.debugCart() in the console | Logs every /cart.js line item with its properties |
| Cache bypass | Append ?no_cache | Bypasses the API cache for options, designs, and languages — use after changing settings in the admin |
Common issues
The designer doesn't appear
- Check the console for
window.FPD/window.Shopifyerrors — the app embed must be enabled in the theme editor. - On product pages the element
#ProductJson-FPDmust exist (injected by the app embed). The error "No Shopify product could be found." means it's missing. - Run
FPD.func.fpdDebug()— if the designer container selector matches nothing, the designer has nowhere to mount.
Add-to-cart adds the product without customization data
- The add-to-cart form or button selector doesn't match your theme — verify with
FPD.func.fpdDebug()and override the correspondingshopify_ta_product_page_*option. - Another script replaces the ATC button after FPD wired it. FPD must intercept the button; re-check load order.
- A cart app or theme feature rewrites line item properties and drops the
_fpd*keys — they must be passed through by prefix (see Cart page).
Cart thumbnails don't show the design
- The cart row selector (
shopify_ta_cart_page_row) must match exactly one element per line item, in the same order as the items in/cart.js. - The image selector must resolve to an
<img>or<a>inside the row. - In AJAX carts/drawers that your theme re-renders itself: dispatch
fpd:cartChangedondocument(or callFPD.func.updateCartJSImages()) after rendering.
Prices don't update
- The price element selector (default
.fpd-shopify-price) doesn't match — either add the class to your price element or overrideshopify_ta_product_page_price. Without a match, FPD renders a separate.fpd-total-extrablock above the ATC form instead.
Settings changes don't take effect
- Shop options and languages are cached; reload the page with
?no_cacheto verify a change before assuming it didn't work. - Inline
FPD.shopOptionsin the theme override admin settings — check the theme isn't pinning an old value.
Theme editor looks different from the live page
That's expected: in Shopify's design mode the modules render a static preview and don't connect to a live designer instance.
Error reporting
Set FPD.errorReporting = true to enable automatic error tracking (Honeybadger) for the frontend, tagged with your shop domain. It also enables a consistency check that flags cart items missing their design reference.
When reporting a problem
Please include:
- The storefront URL (product page) and, if relevant, the cart state.
- Console output with
?debugenabled. - The output of
FPD.func.fpdDebug()(product page) orFPD.generalPage.debugCart()(cart issues). - Theme name/version and whether the theme was recently changed.