{"id":87251,"plugin_id":"plugin_asdk_app_6accac05de5c81919f8f192011f3a125","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-11-09T12:08:01.732Z","digest":"b717afef8dc41f744eee94ae5d723f9f63ddc48d38df03f6ee5c3acb529554ed","against":null,"payload":{"description":"The Checkout — payment-only mode (integrating Checkout for payments while owning the rest of the flow), full hosted checkout (checkoutFlow), widget integration via @commercetools/checkout-browser-sdk, configuration, PSP connector setup (Stripe, Adyen, Mollie), and webhook handling. Use when integrating Checkout (the product) into a storefront or headless app — not for generic cart-to-order patterns (see commercetools-storefront).","included_files":[{"relative_path":"references/payment-only-mode.md","size_in_bytes":8905},{"relative_path":"scripts/docs-search.mjs","size_in_bytes":26546},{"relative_path":"scripts/graphql-schemata.mjs","size_in_bytes":25248},{"relative_path":"scripts/openApi-schemata.mjs","size_in_bytes":25619}],"name":"commercetools-checkout","skill_md_contents":"---\nname: commercetools-checkout\ndescription: The Checkout — payment-only mode (integrating Checkout for payments while owning the rest of the flow), full hosted checkout (checkoutFlow), widget integration via @commercetools/checkout-browser-sdk, configuration, PSP connector setup (Stripe, Adyen, Mollie), and webhook handling. Use when integrating Checkout (the product) into a storefront or headless app — not for generic cart-to-order patterns (see commercetools-storefront).\nwhen_to_use:\n  - \"Integrating the Checkout into a storefront or headless app\"\n  - \"Setting up payment-only mode while keeping existing address and shipping flows\"\n  - \"Configuring PSP connectors such as Stripe, Adyen, or Mollie\"\n  - \"Handling payment webhooks and order confirmation\"\n  - \"Implementing a spec/plan/tasks.md task annotated [SKILL: commercetools-checkout]\"\n  - \"An implementation-plan step that integrates the Checkout, payment sessions, or PSP connectors\"\nmetadata:\n  contentType: SKILL\n  area:\n    - Foundations\n  docsSearch:\n    products:\n      - Composable Commerce\n      - Checkout\n      - Connect\n      - AI Hub\n---\n\n# Checkout\n\nThe Checkout provides hosted payment and checkout experiences via the Browser SDK.\n\n## Integration Modes\n\nThree modes — choose based on how much of the checkout flow Checkout should own:\n\n- **`paymentFlow`** (payment-only) — keep existing address/shipping UI, replace only the payment step with the Checkout widget. Least invasive.\n- **`checkoutFlow`** (full hosted) — replace the entire multi-step checkout with a single commercetools-hosted page covering address, shipping, and payment.\n- **`expressPayment`** — add Apple Pay / Google Pay express buttons to cart or PDP. Can coexist with either mode above.\n\n## Workflow\n\nWhen this skill is invoked, always follow these steps:\n\n1. <!-- ct:docs-search:begin -->\n   **Docs search (required, run first)** — The first time you use this skill in a session you must run this before answering. It gathers the latest verified documentation as your primary grounding, filtered to the products this skill covers. Use this script for documentation search while working with this skill; the Knowledge MCP covers everything else. Always confirm details against retrieved documentation rather than the skill text alone:\n\n   ```bash\n   node \"<this skill's directory>/scripts/docs-search.mjs\" \\\n     --query \"<extract key terms from user's question>\" \\\n     --app-name \"<host app: claude-code, claude-chat, cursor, codex, copilot — or the host's own name>\" \\\n     --model \"<current-model>\" \\\n     --commercetools-project-key \"<if known>\" \\\n     --commercetools-region \"<if known>\" \\\n     --limit 20\n   ```\n\n   Pass the commercetools project key and region (as in `api.{region}.commercetools.com`) only if already in your context; otherwise omit both. Never search files or ask the user for them.\n   <!-- ct:docs-search:end -->\n\n2. **Combine with skill references** — Cross-reference the analysis output with local references in `./references/` for complete context.\n\n3. **Provide implementation guidance** — Synthesize the documentation with the specific integration mode the user is targeting.\n\n### Optional scripts\n\n**Fetch GraphQL schema** — Run this when you need context about a commercetools GraphQL query or mutation — for example, to inspect a resource's fields, types, and available operations before writing a query, or to verify a GraphQL query/mutation you have just generated against the real schema. It fetches the partial GraphQL SDL for a single commercetools resource:\n   ```bash\n   node scripts/graphql-schemata.mjs \\\n     --resource-name \"<commercetools resource, e.g. Cart, Product, Order>\" \\\n     --app-name \"<host app: claude-code, claude-chat, cursor, codex, copilot — or the host's own name>\" \\\n     --model \"<current-model>\"\n   ```\n   The output is the GraphQL SDL for that resource. If the resource name is not recognized, the script prints the list of valid resource names — pick the correct one and re-run. **Note:** the SDL may contain *stubbed types* — referenced resources rendered as stubs, with their real type name given in a comment. Fetch any you need separately by re-running this script with that type name as `--resource-name`.\n\n**Fetch OpenAPI (REST) schema** — Run this when you need context about a commercetools REST endpoint, request/response payload, or update action — for example, to inspect a resource's REST operations before constructing a request, or to verify a REST request/payload you have just generated against the real specification. It fetches the partial OpenAPI specification for a single commercetools resource:\n   ```bash\n   node scripts/openApi-schemata.mjs \\\n     --resource-name \"<commercetools resource, e.g. api-Cart-write, api-Customer-read, checkout-Application>\" \\\n     --app-name \"<host app: claude-code, claude-chat, cursor, codex, copilot — or the host's own name>\" \\\n     --model \"<current-model>\"\n   ```\n   The output is the OpenAPI specification (YAML) for that resource. REST resources use a read/write-split naming form (e.g. `api-Cart-read`, `api-Cart-write`). If the resource name is not recognized, the script prints the list of valid resource names — pick the correct one and re-run. **Note:** the spec does not include reference-expansion schemas — fetch a referenced resource's schema separately by re-running this script with that resource as `--resource-name`.\n\n## References\n\nSee [payment-only-mode.md](./references/payment-only-mode.md) for:\n- Full architecture diagram (Browser SDK → Checkout service → PSP)\n- Session creation (`/<api>/checkout/session` → commercetools Sessions API)\n- `paymentFlow`, `checkoutFlow`, and `expressPayment` implementation patterns\n- PSP connector setup (Stripe, Adyen, Mollie)\n- Webhook handling and order confirmation\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}