Agent skill
shopify-liquid
Guide for using the Liquid template language within Shopify Theme App Extensions and Themes. Use this skill when building App Embed Blocks, App Blocks, or modifying Shopify Themes.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/shopify-liquid
SKILL.md
Shopify Liquid Skill
Liquid is the template language used by Shopify to load dynamic content on storefronts.
1. Core Syntax
- Output:
{{ ... }}- Prints content to the page. - Tags:
{% ... %}- Logic (if, for, assign). - Filters:
{{ value | filter }}- Modifies output.
2. Theme App Extensions (App Blocks)
Modern apps inject code into themes using App Blocks, avoiding direct legacy code edits.
schema Tag
Defines settings available in the Theme Editor.
{% schema %}
{
"name": "Star Rating",
"target": "section",
"settings": [
{
"type": "color",
"id": "star_color",
"label": "Star Color",
"default": "#ff0000"
}
]
}
{% endschema %}
Accessing Settings
Use block.settings.id to access values defined in schema.
<div style="color: {{ block.settings.star_color }}">
★★★★★
</div>
App Embed Blocks
Scripts that run globally (e.g., analytics, chat bubbles).
{% schema %}
{
"name": "Chat Bubble",
"target": "body",
"javascript": "chat.js",
"settings": []
}
{% endschema %}
3. Common Objects
product:{{ product.title }}{{ product.variants.first.id }}{{ product.featured_image | image_url: width: 400 }}
cart:{{ cart.item_count }}{{ cart.currency.iso_code }}
customer:{% if customer %}checks if logged in.
shop:{{ shop.name }}{{ shop.permanent_domain }}
4. Useful Filters
- Money:
{{ product.price | money }}->$10.00 - Asset URL:
{{ 'style.css' | asset_url }}(Reference assets inassets/folder) - JSON:
{{ product | json }}(Useful for passing data to JS)
5. Using with JavaScript
Pass Liquid data to JavaScript using data attributes or global variables.
Pattern: Data Attributes (Preferred)
<div id="my-app" data-product-id="{{ product.id }}" data-shop="{{ shop.permanent_domain }}"></div>
<script>
const app = document.getElementById('my-app');
const productId = app.dataset.productId;
</script>
Pattern: Global Object (Legacy)
<script>
window.ShopifyData = {
product: {{ product | json }},
cart: {{ cart | json }}
};
</script>
6. App Proxies
When the request comes from an App Proxy, liquid renders the response before sending it to the layout.
- If you return
Content-Type: application/liquid, Shopify will parse the Liquid in your response.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?