Install
openclaw skills install @tonywangcn/shopify-researchResearches independent Shopify-powered storefronts — products, collections, pages, sitemaps, search suggestions, and product recommendations — using the Crawlora API, returning clean JSON for any store by domain. Use when the user asks to audit a Shopify store's catalog, crawl its sitemap, look up a product or collection, or pull search/recommendation data — instead of scraping the store's pages directly.
openclaw skills install @tonywangcn/shopify-researchLook up and crawl independent Shopify-powered storefronts — products,
collections, pages, sitemaps, predictive search, and product recommendations
— all as normalized JSON from the Crawlora API, with no HTML scraping. Works
against any Shopify store by domain (not Shop.app; see the separate
shop-app-research skill for that).
/pages/about page?"export CRAWLORA_API_KEY=sk_your_key_herex-api-key: $CRAWLORA_API_KEY against
https://api.crawlora.net/api/v1. Missing/invalid key → 401.Every call takes the storefront's url (the store's public domain, e.g.
https://example.myshopify.com or a custom domain like
https://example.com) plus endpoint-specific params:
/shopify/store returns normalized storefront
metadata; if the vanity domain blocks /products.json, it falls back to
the store's public *.myshopify.com domain./shopify/collections and /shopify/products
(paginated, limit up to 250) list collections and products; drill into
one collection's products with /shopify/collections/{handle}/products./shopify/products/{handle} for a single product's full
detail./shopify/products/{handle}/recommendations
(intent=related|complementary) for cross-sell/upsell data./shopify/pages and /shopify/pages/{handle} for
the store's static pages (body HTML returned as cleaned text)./shopify/sitemaps lists the child sitemaps;
/shopify/sitemap/urls (type=products|collections|pages|blogs|...)
returns capped URL entries from them, useful for enumerating a whole
store without paginating every list endpoint./shopify/search/suggest (q=, optional types=) returns
predictive-search products, collections, and query suggestions.Full endpoint list, methods, and params: reference/endpoints.md.
# Resolve store metadata:
scripts/crawlora.sh /shopify/store url="https://example.myshopify.com" | jq '.'
# List products / collections (paginated):
scripts/crawlora.sh /shopify/products url="https://example.myshopify.com" limit=100 page=1 | jq '.'
scripts/crawlora.sh /shopify/collections url="https://example.myshopify.com" | jq '.'
# Crawl the sitemap for every product URL:
scripts/crawlora.sh /shopify/sitemap/urls url="https://example.myshopify.com" type=products limit=250 | jq '.'
Raw curl fallback:
curl -fsS -H "x-api-key: $CRAWLORA_API_KEY" \
"https://api.crawlora.net/api/v1/shopify/products?url=https://example.myshopify.com" | jq '.'
See reference/endpoints.md for every Shopify
endpoint this skill uses (method, path, params, description).
/shopify/products (paginate with page/limit) to
list a store's full catalog with prices and variants, then flag gaps or
outliers./shopify/sitemaps to find the child
sitemaps, then /shopify/sitemap/urls?type=products to enumerate every
product URL without walking paginated list endpoints./shopify/search/suggest for a
query to see what a store's predictive search surfaces, then
/shopify/products/{handle}/recommendations to map cross-sell links
between products.2xx; free tier 2,000 credits/mo.
Key at https://crawlora.net.CRAWLORA_API_KEY only — never hardcode, query-param, or commit it.url is required on every call — the store's public domain
(*.myshopify.com or custom domain); there's no default store.page (and limit where supported, up to
250) to walk collections, products, and pages.handle, not a numeric ID —
discover handles via the list endpoints or sitemap crawl first.200 with an empty array rather than an error —
check the array length to know when to stop paginating.