Create and manage Shopify store content — pages, blog posts, navigation menus, and SEO metadata. Produces live content in the store via the Admin API or browser automation.
Works with
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionshopify-contentExecute the skills CLI command in your project's root directory to begin installation:
Fetches shopify-content from jezweb/claude-skills and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate shopify-content. Access via /shopify-content in your agent's command palette.
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Submit your Claude Code skill and start earning
Automate repetitive workflows and reduce manual effort
Example
Generate reports, summarize documents, draft communications
Save 3-5 hours per week on routine tasks
Learn new skills, understand complex topics, get expert guidance
Example
Explain concepts, provide examples, suggest learning resources
Accelerate learning and skill development by 2x
Enhance output quality through reviews, suggestions, and refinements
Example
Review drafts, suggest improvements, catch errors
Improve work quality by 30-40% with less effort
0
total installs
0
this week
697
GitHub stars
0
upvotes
Run in your terminal
0
installs
0
this week
697
stars
Create and manage Shopify store content — pages, blog posts, navigation menus, and SEO metadata. Produces live content in the store via the Admin API or browser automation.
read_content, write_content scopes (use shopify-setup skill)read_online_store_navigation, write_online_store_navigation scopes| Content Type | API Support | Method |
|---|---|---|
| Pages | Full | GraphQL Admin API |
| Blog posts | Full | GraphQL Admin API |
| Navigation menus | Limited | Browser automation preferred |
| Redirects | Full | REST Admin API |
| SEO metadata | Per-resource | GraphQL on the resource |
| Metaobjects | Full | GraphQL Admin API |
curl -s https://{store}/admin/api/2025-01/graphql.json \
-H "Content-Type: application/json" \
-H "X-Shopify-Access-Token: {token}" \
-d '{
"query": "mutation pageCreate($page: PageCreateInput!) { pageCreate(page: $page) { page { id title handle } userErrors { field message } } }",
"variables": {
"page": {
"title": "About Us",
"handle": "about",
"body": "<h2>Our Story</h2><p>Content here...</p>",
"isPublished": true,
"seo": {
"title": "About Us | Store Name",
"description": "Learn about our story and mission."
}
}
}
}'
Page body accepts HTML. Keep it semantic:
<h2> through <h6> for headings (the page title is <h1>)<p>, <ul>, <ol> for body text<a href="..."> for linksShopify blogs have a two-level structure: Blog (container) > Article (post).
Find or create a blog:
{
blogs(first: 10) {
edges {
node { id title handle }
}
}
}
Most stores have a default blog called "News". Create articles in it:
mutation {
articleCreate(article: {
blogId: "gid://shopify/Blog/123"
title: "New Product Launch"
handle: "new-product-launch"
contentHtml: "<p>We're excited to announce...</p>"
author: { name: "Store Team" }
tags: ["news", "products"]
isPublished: true
publishDate: "2026-02-22T00:00:00Z"
seo: {
title: "New Product Launch | Store Name"
description: "Announcing our latest product range."
}
image: {
src: "https://example.com/blog-image.jpg"
altText: "New product collection"
}
}) {
article { id title handle }
userErrors { field message }
}
}
Navigation menus have limited API support. Use browser automation:
https://{store}.myshopify.com/admin/menusAlternatively, use the GraphQL menuUpdate mutation if the API version supports it:
mutation menuUpdate($id: ID!, $items: [MenuItemInput!]!) {
menuUpdate(id: $id, items: $items) {
menu { id title }
userErrors { field message }
}
}
URL redirects use the REST API:
curl -s https://{store}/admin/api/2025-01/redirects.json \
-H "Content-Type: application/json" \
-H "X-Shopify-Access-Token: {token}" \
-d '{
"redirect": {
"path": "/old-page",
"target": "/new-page"
}
}'
SEO fields are on each resource (product, page, article). Update via the resource's mutation:
mutation {
pageUpdate(page: {
id: "gid://shopify/Page/123"
seo: {
title: "Updated SEO Title"
description: "Updated meta description under 160 chars."
}
}) {
page { id title }
userErrors { field message }
}
}
Query back the content to confirm:
{
pages(first: 10, reverse: true) {
edges {
node { id title handle isPublished createdAt }
}
}
}
Provide the admin URL and the live URL for the user to review:
https://{store}.myshopify.com/admin/pageshttps://{store}.myshopify.com/pages/{handle}For simple content (About, Contact, FAQ), use pages. For structured, repeatable content (team members, testimonials, locations), use metaobjects — they have typed fields and can be queried programmatically.
Every blog post should have:
Use publishDate on articles for scheduled publishing. Pages publish immediately when isPublished: true.
For many pages (e.g. location pages, service pages), use a loop with rate limiting:
for page in pages_data:
create_page(page)
sleep(0.5) # Respect rate limits
references/content-types.md — API endpoints, metaobject patterns, and browser-only operationsPrerequisites
Time Estimate
15-45 minutes depending on use case complexity
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
✗ Avoid when
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
jezweb/claude-skills
jezweb/claude-skills
jezweb/claude-skills
sickn33/antigravity-awesome-skills
aaron-he-zhu/seo-geo-claude-skills
hvpandya/stop-slop
Registry listing for shopify-content matched our evaluation — installs cleanly and behaves as described in the markdown.
Solid pick for teams standardizing on skills: shopify-content is focused, and the summary matches what you get after install.
Useful defaults in shopify-content — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
I recommend shopify-content for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
We added shopify-content from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
Solid pick for teams standardizing on skills: shopify-content is focused, and the summary matches what you get after install.
Useful defaults in shopify-content — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
shopify-content reduced setup friction for our internal harness; good balance of opinion and flexibility.
Registry listing for shopify-content matched our evaluation — installs cleanly and behaves as described in the markdown.
Solid pick for teams standardizing on skills: shopify-content is focused, and the summary matches what you get after install.
showing 1-10 of 73