Shopify JSON-LD Parser
by @igorganapolsky
Parse JSON-LD structured data from Shopify product pages to extract commerce details like product info, offers (price, currency, availability), and inventory...
clawhub install shopify-jsonld-parserπ About This Skill
name: shopify-jsonld-parser description: > Parse JSON-LD structured data from Shopify product pages to extract commerce details like product info, offers (price, currency, availability), and inventory status from schema.org/Product and Offer. Use when: (1) analyzing Shopify HTML for product offers/pricing/stock, (2) extracting structured commerce data from web pages or local files, (3) querying JSON-LD for availability (InStock/OutOfStock/PreOrder), prices across variants, or offer counts. Handles @graph arrays and multiple scripts.
Shopify JSON-LD Parser
Parse JSON-LD from Shopify product pages (or any schema.org/Product JSON-LD) to extract structured commerce data reliably.
Quick Start
1. Fetch HTML: web_fetch a product page URL.
2. Parse: Run scripts/parse_shopify_jsonld.py input.html (outputs JSON).
3. Query output for offers, availability, etc.
Example:
exec command="python3 skills/shopify-jsonld-parser/scripts/parse_shopify_jsonld.py page.html"
Workflow
1. Input: HTML file/path with JSON-LD (from web_fetch, read, or local).
2. Find JSON-LD: Script extracts all contents.
3. Parse Product: Traverse @graph or root for @type: Product, extract:
- name, description, image, sku, brand
- offers: array of Offer objects β price, priceCurrency, availability, url, itemCondition
- availability (product-level or per-offer): http://schema.org/InStock, OutOfStock, PreOrder, etc.
- Variants: Infer from multiple offers or hasVariant.
4. Output: Clean JSON: {product: {...}, offers: [...], inventory_status: "InStock|OutOfStock|Limited|Unknown"}
Inventory is typically availability enum, not exact quantity (use Shopify API for levels). Map:
Usage Examples
Extract offers from page:
read path="shopify-page.html" β html
write path="tmp.html" content=html
exec command="python3 skills/shopify-jsonld-parser/scripts/parse_shopify_jsonld.py tmp.html" β parsed.json
read path="parsed.json"
Query CLI-style:
Add --query price or --field offers[0].availability flags to script.
Script Reference
scripts/parse_shopify_jsonld.py [input.html] [--query FIELD] [--output json|yaml]
Schema Reference
See references/schema.md for schema.org/Product + Offer properties.
Troubleshooting
{error: "No product JSON-LD found"}π‘ Examples
1. Fetch HTML: web_fetch a product page URL.
2. Parse: Run scripts/parse_shopify_jsonld.py input.html (outputs JSON).
3. Query output for offers, availability, etc.
Example:
exec command="python3 skills/shopify-jsonld-parser/scripts/parse_shopify_jsonld.py page.html"
π Tips & Best Practices
{error: "No product JSON-LD found"}