aa-conversion-funnel-a…
Analyzes a multi-step conversion funnel to find where visitors drop off and which steps have…
Manage custom business configuration in an Adobe Commerce app. Use when the user wants to add, modify, or remove merchant-configurable settings (config fields, admin config, store configuration) exposed through Commerce Admin. Creates typed config fields (text, password, email,
$ npx -y skills add adobe/skills --skill commerce-app-business-config --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/commerce-app-business-configContext preview
The summary Claude sees to decide when to auto-load this skill.
Manage custom business configuration in an Adobe Commerce app. Use when the user wants to add, modify, or remove merchant-configurable settings (config fields, admin config, store configuration) exposed through Commerce Admin. Creates typed config fields (text, password, email,
name: commerce-app-business-config description: > Manage custom business configuration in an Adobe Commerce app. Use when the user wants to add, modify, or remove merchant-configurable settings (config fields, admin config, store configuration) exposed through Commerce Admin. Creates typed config fields (text, password, email, url, tel, boolean, list) in businessConfig.schema. Requires a base app initialized with commerce-app-init. license: Apache-2.0 compatibility: > Requires Node.js 22+, aio CLI, and @adobe/aio-commerce-lib-app installed. Requires a base app initialized with commerce-app-init. metadata: author: adobe
Adds or modifies the `businessConfig.schema` array in an existing `app.commerce.config.ts`. Each entry in the schema defines one merchant-configurable setting that Commerce Admin will render as a UI field. Other extensibility domains (webhooks, events) are added separately via their own skills.
For each setting the user wants to expose, gather:
Apply the following per-type validation rules before writing. Surface any issues to the user before proceeding.
| Field | Constraint | | ----------------------- | ----------------------------------------------------------------------------------------------- | | `name` | Required, non-empty string | | `type` | Required; one of `list`, `text`, `password`, `email`, `url`, `tel`, `boolean` | | `label` | Optional string | | `description` | Optional string | | `list.selectionMode` | Required for list fields: `"single"` or `"multiple"` | | `list.options` | Required for list fields; each option needs both `label` and `value` strings | | `list/single` default | Required; must match one of the option `value` strings (non-empty) | | `list/multiple` default | Optional array of strings (defaults to `[]`); each element must match an option value | | `text` default | Optional string (defaults to `""`) | | `password` default | Must be `""` — any non-empty default is rejected to prevent secrets in config | | `email` default | Optional; `""` or a fully valid email address | | `url` default | Optional; `""` or a fully valid absolute URL | | `tel` default | Optional; `""` or matches `/^\+?[0-9\s\-()]+$/` (digits, spaces, hyphens, parens, optional `+`) | | `boolean` default | Optional boolean (defaults to `false`) |
`businessConfig.schema` must contain at least one field — an empty array is rejected at build time.
Add (or merge into) the top-level `businessConfig.schema` array, preserving all other domains. If the config already has a `businessConfig` key, append to `businessConfig.schema` rather than replacing it.
Minimal examples:
businessConfig: {
schema: [
// Password (masked input — API keys, secrets)
{ name: "api_key", type: "password", label: "API Key", default: "" },
// Single-select list
{
name: "region", type: "list", selectionMode: "single",
label: "Region",
options: [{ label: "EU", value: "eu" }, { label: "US", value: "us" }],
default: "eu", // required; must match an option value
},
// Boolean toggle
{ name: "debug_mode", type: "boolean", label: "Enable Debug Mode", default: false },
// Dynamic list — options resolved at runtime via a factory that receives the action's params.
// Required `default` factory for single-select; optional for multiple (falls back to []).
{
name: "paymentMethod", type: "dynamicList", selectionMode: "single",
label: "Default Payment Method",
options: async (params) => {
const methods = await fetchPaymentMethods(params.SOME_API_KEY);
return methods.map((m) => ({ label: m.title, value: m.code }));
},Repo: adobe/skills
Analyzes a multi-step conversion funnel to find where visitors drop off and which steps have…
Generates a concise, executive-ready performance summary covering key metrics, trends, and…
Produces a compact KPI digest showing how key metrics changed over a period and what's…
Compares the performance of two or more audience segments across key metrics side by side.…
Identifies which items (pages, campaigns, products, channels, regions) had the biggest…
Comprehensive dimension analysis and reporting for CJA. Use this skill whenever the user…