@bettercms-ai/mcp 0.83.0 → 0.83.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +86 -86
  2. package/SKILL.md +160 -160
  3. package/dist/index.js +38 -9
  4. package/dist/index.js.map +1 -1
  5. package/dist/kit-catalog.json +1509 -1509
  6. package/dist/skills/bettercms/SKILL.md +206 -206
  7. package/dist/skills/bettercms/references/accessibility.md +171 -171
  8. package/dist/skills/bettercms/references/animation.md +296 -296
  9. package/dist/skills/bettercms/references/astro.md +148 -148
  10. package/dist/skills/bettercms/references/bindings.md +366 -366
  11. package/dist/skills/bettercms/references/componentize.md +185 -185
  12. package/dist/skills/bettercms/references/components.md +415 -415
  13. package/dist/skills/bettercms/references/content-experiments.md +62 -62
  14. package/dist/skills/bettercms/references/content-modeling.md +382 -382
  15. package/dist/skills/bettercms/references/detection.md +465 -465
  16. package/dist/skills/bettercms/references/dock-input.md +121 -121
  17. package/dist/skills/bettercms/references/editor-chrome.md +92 -92
  18. package/dist/skills/bettercms/references/external-content.md +78 -78
  19. package/dist/skills/bettercms/references/finish-site.md +377 -377
  20. package/dist/skills/bettercms/references/forms-and-interactions.md +245 -245
  21. package/dist/skills/bettercms/references/frameworks.md +159 -159
  22. package/dist/skills/bettercms/references/getting-started.md +156 -156
  23. package/dist/skills/bettercms/references/integrations.md +364 -364
  24. package/dist/skills/bettercms/references/kit-catalog.md +3259 -3259
  25. package/dist/skills/bettercms/references/kit-scenarios.md +712 -712
  26. package/dist/skills/bettercms/references/localization.md +85 -85
  27. package/dist/skills/bettercms/references/media-and-brand.md +181 -181
  28. package/dist/skills/bettercms/references/next.md +189 -189
  29. package/dist/skills/bettercms/references/other-frameworks.md +85 -85
  30. package/dist/skills/bettercms/references/portable-text.md +213 -213
  31. package/dist/skills/bettercms/references/programmatic-seo.md +98 -98
  32. package/dist/skills/bettercms/references/publishing.md +289 -289
  33. package/dist/skills/bettercms/references/seo.md +357 -357
  34. package/dist/skills/bettercms/references/shopify-headless.md +52 -52
  35. package/dist/skills/bettercms/references/site-blueprints.md +895 -895
  36. package/dist/skills/bettercms/references/site-review.md +74 -74
  37. package/dist/skills/bettercms/references/worked-examples-advanced.md +509 -509
  38. package/dist/skills/bettercms/references/worked-examples.md +885 -885
  39. package/dist/skills/bettercms/references/write-limits.md +217 -217
  40. package/package.json +1 -1
@@ -1,52 +1,52 @@
1
- ---
2
- title: "Headless Shopify"
3
- description: "Shopify owns commerce, BetterCMS the editorial: ownership split, product references, cart, freshness and SEO."
4
- ---
5
-
6
- # Headless Shopify with BetterCMS
7
-
8
- **Outcome.** Let editors shape the storefront in BetterCMS while Shopify remains authoritative for saleable products and the buyer transaction. The integration may use Hydrogen/Oxygen or another frontend; inspect the existing stack before choosing code paths.
9
-
10
- This complements the [large ecommerce blueprint](site-blueprints.md#large-ecommerce-website), [bindings](bindings.md) and [publishing](publishing.md). Do not assume a BetterCMS Shopify connector or native product picker exists; unless the connected project's tools show one, model product links as validated external ids (below).
11
-
12
- ## Ownership contract
13
-
14
- | Concern | Default owner | BetterCMS treatment |
15
- |---|---|---|
16
- | Products, variants, SKUs, price, availability, collections, markets | Shopify | Stable references and optional editorial overlays |
17
- | Cart, discounts, checkout, orders, customer identity | Shopify | Functional UI and handoff; no copy of private transaction records |
18
- | Campaign pages, category stories, buying guides, banners, content sections | BetterCMS | Pages, collections, global components, instance overrides |
19
- | Brand tokens, page composition, nav/footer copy, SEO editorial fields | BetterCMS or frontend design system as established | Bind to rendered leaves; verify publication |
20
- | Product SEO facts and structured data | Rendered commerce data plus editorial fields | Merge with an explicit field precedence and current price/availability |
21
-
22
- Before writing, identify Shopify store and sales channel, Storefront API version, authentication approach, existing frontend, checkout/account flow, market and currency behavior, product handle policy, BetterCMS project/hosting mode, and where current canonical/SEO metadata comes from. Shopify's [Storefront API](https://shopify.dev/docs/api/storefront/latest) provides public catalog, cart, and checkout operations; it does not turn BetterCMS into an order platform.
23
-
24
- ## Reference and rendering model
25
-
26
- Use a stable Shopify product or collection ID as the key in BetterCMS references; store the handle only as a display/routing snapshot. Handles can change. A BetterCMS `ProductEditorial` or `CollectionEditorial` entry can hold hero copy, story sections, buying advice, FAQs, related guides, or campaign placement. A missing editorial overlay must fall back to a valid Shopify-only product or collection page if the merchant intends it to be public.
27
-
28
- Use one product template and one collection template unless genuine layout families differ. Render price, compare-at price, availability, variant options, and cart eligibility from a current Shopify response. Do not allow an editor field to override these transactional values. Use a product reference picker only if its existence and ID contract are confirmed; otherwise a validated external-ID field plus preview lookup is safer than a fake internal collection.
29
-
30
- Model global promotion bars, nav/footer, category hero, product detail editorial slots, recommendations, and buying guides as BetterCMS components where the editor can see their effects. Define fallback behavior when an overlay is unpublished, a product is not published to the headless channel, a Shopify query fails, or a referenced product was deleted.
31
-
32
- ## Buyer flow and privacy
33
-
34
- The variant selected in the UI must be the exact merchandise ID added to the Shopify cart. Check invalid/expired variants, sold-out changes, quantity limits, discounts, market/currency context, cart persistence, checkout return URLs, and error recovery. Customer accounts and order history use Shopify's current account APIs and authentication, not public BetterCMS content fields. [Shopify cart guidance](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/cart) · [Customer Account API](https://shopify.dev/docs/storefronts/headless/building-with-the-customer-account-api)
35
-
36
- Keep private Shopify tokens and customer data server-side. Verify the configured token type and exposure boundary rather than treating every Storefront token as a secret. Never put Admin API credentials in browser code.
37
-
38
- ## Freshness and publication
39
-
40
- Content and commerce can publish independently. Define which events revalidate a product or collection route: BetterCMS editorial publish, Shopify product/collection change, handle change, inventory/price change, or market change. Decide cache TTL by data volatility and verify the host's invalidation mechanism. Never put a personalized cart, account page, or customer response in a shared cache. Shopify's [Hydrogen caching guide](https://shopify.dev/docs/storefronts/headless/hydrogen/caching) documents the risk for customer-scoped data.
41
-
42
- Deploy a headless frontend through its actual host (SKILL.md invariant 6). For the on-publish refresh, BetterCMS sends a signed revalidation webhook (header `X-BetterCMS-Signature`) to the URL configured on the project; the Next adapter's revalidate route verifies it ([frameworks.md](frameworks.md) Revalidation). A Shopify webhook or polling job may be needed for catalog freshness; verify subscriptions, idempotent processing, and deleted-product handling before relying on it.
43
-
44
- ## SEO and sitemap contract
45
-
46
- Give product and collection routes a single public canonical form. Resolve Shopify handles and BetterCMS editorial slugs without collisions. If variants have selectable URLs, choose one-page versus multi-page variant policy and validate rendered product/variant metadata accordingly. Product JSON-LD must reflect the current purchasable variant, price/currency, and availability; don't publish stale CMS copies. [Google product variant guide](https://developers.google.com/search/docs/appearance/structured-data/product-variants)
47
-
48
- Generate sitemap entries for eligible, live product and collection routes plus BetterCMS editorial pages, with no duplicate URLs across providers. Exclude cart, checkout, account, internal search, unpublished overlay-only landing pages, and unwanted filter combinations; a live Shopify product can remain eligible without an editorial overlay. Hydrogen has its own [SEO/sitemap/robots routes](https://shopify.dev/docs/storefronts/headless/hydrogen/seo); if using Hydrogen, reconcile them with BetterCMS page URLs rather than exposing two competing sitemap inventories. Handle `/robots.txt` and sitemap at the actual public host.
49
-
50
- ## Verification matrix
51
-
52
- Test: product with and without editorial overlay; multiple variants; sold-out and unpublished products; handle rename; missing Shopify ID; empty collection; discount and currency/market change; add-to-cart and checkout; account privacy; CMS preview; CMS publish; Shopify update; stale cache; product removal; canonical, schema, sitemap, and redirects. Verify public HTML and a full purchase flow in a safe test environment. Report which systems were live-tested and which assumptions remain unverified.
1
+ ---
2
+ title: "Headless Shopify"
3
+ description: "Shopify owns commerce, BetterCMS the editorial: ownership split, product references, cart, freshness and SEO."
4
+ ---
5
+
6
+ # Headless Shopify with BetterCMS
7
+
8
+ **Outcome.** Let editors shape the storefront in BetterCMS while Shopify remains authoritative for saleable products and the buyer transaction. The integration may use Hydrogen/Oxygen or another frontend; inspect the existing stack before choosing code paths.
9
+
10
+ This complements the [large ecommerce blueprint](site-blueprints.md#large-ecommerce-website), [bindings](bindings.md) and [publishing](publishing.md). Do not assume a BetterCMS Shopify connector or native product picker exists; unless the connected project's tools show one, model product links as validated external ids (below).
11
+
12
+ ## Ownership contract
13
+
14
+ | Concern | Default owner | BetterCMS treatment |
15
+ |---|---|---|
16
+ | Products, variants, SKUs, price, availability, collections, markets | Shopify | Stable references and optional editorial overlays |
17
+ | Cart, discounts, checkout, orders, customer identity | Shopify | Functional UI and handoff; no copy of private transaction records |
18
+ | Campaign pages, category stories, buying guides, banners, content sections | BetterCMS | Pages, collections, global components, instance overrides |
19
+ | Brand tokens, page composition, nav/footer copy, SEO editorial fields | BetterCMS or frontend design system as established | Bind to rendered leaves; verify publication |
20
+ | Product SEO facts and structured data | Rendered commerce data plus editorial fields | Merge with an explicit field precedence and current price/availability |
21
+
22
+ Before writing, identify Shopify store and sales channel, Storefront API version, authentication approach, existing frontend, checkout/account flow, market and currency behavior, product handle policy, BetterCMS project/hosting mode, and where current canonical/SEO metadata comes from. Shopify's [Storefront API](https://shopify.dev/docs/api/storefront/latest) provides public catalog, cart, and checkout operations; it does not turn BetterCMS into an order platform.
23
+
24
+ ## Reference and rendering model
25
+
26
+ Use a stable Shopify product or collection ID as the key in BetterCMS references; store the handle only as a display/routing snapshot. Handles can change. A BetterCMS `ProductEditorial` or `CollectionEditorial` entry can hold hero copy, story sections, buying advice, FAQs, related guides, or campaign placement. A missing editorial overlay must fall back to a valid Shopify-only product or collection page if the merchant intends it to be public.
27
+
28
+ Use one product template and one collection template unless genuine layout families differ. Render price, compare-at price, availability, variant options, and cart eligibility from a current Shopify response. Do not allow an editor field to override these transactional values. Use a product reference picker only if its existence and ID contract are confirmed; otherwise a validated external-ID field plus preview lookup is safer than a fake internal collection.
29
+
30
+ Model global promotion bars, nav/footer, category hero, product detail editorial slots, recommendations, and buying guides as BetterCMS components where the editor can see their effects. Define fallback behavior when an overlay is unpublished, a product is not published to the headless channel, a Shopify query fails, or a referenced product was deleted.
31
+
32
+ ## Buyer flow and privacy
33
+
34
+ The variant selected in the UI must be the exact merchandise ID added to the Shopify cart. Check invalid/expired variants, sold-out changes, quantity limits, discounts, market/currency context, cart persistence, checkout return URLs, and error recovery. Customer accounts and order history use Shopify's current account APIs and authentication, not public BetterCMS content fields. [Shopify cart guidance](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/cart) · [Customer Account API](https://shopify.dev/docs/storefronts/headless/building-with-the-customer-account-api)
35
+
36
+ Keep private Shopify tokens and customer data server-side. Verify the configured token type and exposure boundary rather than treating every Storefront token as a secret. Never put Admin API credentials in browser code.
37
+
38
+ ## Freshness and publication
39
+
40
+ Content and commerce can publish independently. Define which events revalidate a product or collection route: BetterCMS editorial publish, Shopify product/collection change, handle change, inventory/price change, or market change. Decide cache TTL by data volatility and verify the host's invalidation mechanism. Never put a personalized cart, account page, or customer response in a shared cache. Shopify's [Hydrogen caching guide](https://shopify.dev/docs/storefronts/headless/hydrogen/caching) documents the risk for customer-scoped data.
41
+
42
+ Deploy a headless frontend through its actual host (SKILL.md invariant 6). For the on-publish refresh, BetterCMS sends a signed revalidation webhook (header `X-BetterCMS-Signature`) to the URL configured on the project; the Next adapter's revalidate route verifies it ([frameworks.md](frameworks.md) Revalidation). A Shopify webhook or polling job may be needed for catalog freshness; verify subscriptions, idempotent processing, and deleted-product handling before relying on it.
43
+
44
+ ## SEO and sitemap contract
45
+
46
+ Give product and collection routes a single public canonical form. Resolve Shopify handles and BetterCMS editorial slugs without collisions. If variants have selectable URLs, choose one-page versus multi-page variant policy and validate rendered product/variant metadata accordingly. Product JSON-LD must reflect the current purchasable variant, price/currency, and availability; don't publish stale CMS copies. [Google product variant guide](https://developers.google.com/search/docs/appearance/structured-data/product-variants)
47
+
48
+ Generate sitemap entries for eligible, live product and collection routes plus BetterCMS editorial pages, with no duplicate URLs across providers. Exclude cart, checkout, account, internal search, unpublished overlay-only landing pages, and unwanted filter combinations; a live Shopify product can remain eligible without an editorial overlay. Hydrogen has its own [SEO/sitemap/robots routes](https://shopify.dev/docs/storefronts/headless/hydrogen/seo); if using Hydrogen, reconcile them with BetterCMS page URLs rather than exposing two competing sitemap inventories. Handle `/robots.txt` and sitemap at the actual public host.
49
+
50
+ ## Verification matrix
51
+
52
+ Test: product with and without editorial overlay; multiple variants; sold-out and unpublished products; handle rename; missing Shopify ID; empty collection; discount and currency/market change; add-to-cart and checkout; account privacy; CMS preview; CMS publish; Shopify update; stale cache; product removal; canonical, schema, sitemap, and redirects. Verify public HTML and a full purchase flow in a safe test environment. Report which systems were live-tested and which assumptions remain unverified.