From shopify-design
Debug Shopify theme issues — Liquid errors, JavaScript console errors, rendering problems, cart issues, variant selection bugs, and theme customizer problems. Use when troubleshooting Shopify issues, fixing Liquid errors, debugging theme customizer settings not saving, investigating cart problems, or diagnosing display issues. Triggers: "shopify bug", "liquid error", "theme not working", "debug shopify", "shopify issue", "section not showing".
How this skill is triggered — by the user, by Claude, or both
Slash command
/shopify-design:shopify-debuggingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Systematic debugging for Liquid template errors, JavaScript issues, and theme customizer problems.
Systematic debugging for Liquid template errors, JavaScript issues, and theme customizer problems.
{# Print any variable to see its value #}
{{ product | json }}
{{ section.settings | json }}
{{ cart | json }}
{# Check object type #}
{{ product | class_name }}
UndefinedError: nil is not a string
{# Problem — accessing property of nil object #}
{{ product.featured_image.src }}
{# Fix — check if object exists first #}
{% if product.featured_image %}
{{ product.featured_image.src }}
{% endif %}
Liquid Syntax Error: Expected tag
{% end... %} tags{% if %} have {% endif %}{% for %} have {% endfor %}Variable Not Showing
{# Debug: check what's in section settings #}
<pre>{{ section.settings | json }}</pre>
<pre>{{ block.settings | json }}</pre>
// Check cart state
fetch('/cart.js').then(r => r.json()).then(console.log)
// Check variant data on product page
console.log(window.meta.product)
// Check theme settings accessible in JS
console.log(Shopify.theme)
// Monitor cart updates
document.addEventListener('cart:updated', (e) => console.log(e.detail))
Variant selector not updating price
product_options JSON is being loadedproduct:variantChangedAdd to cart failing silently
// Debug cart form submission
document.querySelector('[data-cart-form]').addEventListener('submit', (e) => {
console.log('Form data:', new FormData(e.target));
});
Settings not saving
settings_schema.json for JSON syntax errorsid values are unique across all settingstype in the JSON templateBlock not showing
block.shopify_attributes is on the block's root elementSection not appearing in customizer
presets in schema to appear in "Add section".json file (not .liquid) for section draggingItems not persisting in cart
routes.cart_add_url is defined and not hardcoded{{ routes.cart_add_url }} in Liquid (outputs /cart/add)Wrong prices
| money filter{{ product.price }} = 1499 (for $14.99){{ product.price | money }} = $14.99App section not rendering
// Measure render time
performance.mark('start-render');
// ... code ...
performance.mark('end-render');
performance.measure('render-time', 'start-render', 'end-render');
console.log(performance.getEntriesByName('render-time'));
{# Add to layout/theme.liquid for JS error tracking #}
<script>
window.addEventListener('error', function(e) {
console.error('Theme error:', e.message, 'at', e.filename, ':', e.lineno);
});
</script>
Creates bite-sized, testable implementation plans from specs or requirements, with file structure and task decomposition. Activates before coding multi-step tasks.
npx claudepluginhub vincent-laroche/hairsolutionsco-ai-toolkit --plugin shopify-design