Skip to main content

Troubleshooting

Debug tools

ToolHowWhat you get
Debug modeAppend ?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 inspectorFPD.func.fpdDebug() in the console (product page)Table + on-page highlight of every resolved theme-abstraction selector
Cart inspectorFPD.generalPage.debugCart() in the consoleLogs every /cart.js line item with its properties
Cache bypassAppend ?no_cacheBypasses 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.Shopify errors — the app embed must be enabled in the theme editor.
  • On product pages the element #ProductJson-FPD must 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 corresponding shopify_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:cartChanged on document (or call FPD.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 override shopify_ta_product_page_price. Without a match, FPD renders a separate .fpd-total-extra block above the ATC form instead.

Settings changes don't take effect

  • Shop options and languages are cached; reload the page with ?no_cache to verify a change before assuming it didn't work.
  • Inline FPD.shopOptions in 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:

  1. The storefront URL (product page) and, if relevant, the cart state.
  2. Console output with ?debug enabled.
  3. The output of FPD.func.fpdDebug() (product page) or FPD.generalPage.debugCart() (cart issues).
  4. Theme name/version and whether the theme was recently changed.