What is Adobe App Builder?
Adobe Developer App Builder — serverless extensibility for Adobe Commerce and the Experience Cloud.
Sources: Introduction to App Builder (opens in new tab), App Builder docs (opens in new tab)
What is Adobe App Builder?
A complete slide deck on Adobe Developer App Builder — out-of-process extensibility for Adobe Commerce, architecture, use cases, and when to use it vs PHP.
Adobe Developer App Builder — serverless extensibility for Adobe Commerce and the Experience Cloud.
Sources: Introduction to App Builder (opens in new tab), App Builder docs (opens in new tab)
←→navigateFpresenter mode· click slide edges
Adobe Developer App Builder — serverless extensibility for Adobe Commerce and the Experience Cloud.
Sources: Introduction to App Builder (opens in new tab), App Builder docs (opens in new tab)
Traditional Adobe Commerce development runs inside the PHP application:
| In-process (PHP) | Out-of-process (App Builder) |
|---|---|
| Runs on Commerce server | Runs on Adobe I/O Runtime (serverless) |
| Upgrade & compatibility risk | Decoupled from Commerce core |
| Synchronous by default | Actions + event-driven workflows |
| Best for cart/checkout internals | Best for integrations, async logic, custom UIs |
A cloud-based, serverless extensibility platform for:
It is a unified framework on Adobe infrastructure — globally distributed and auto-scaling.
Adobe defines three primary patterns:
| Component | Role |
|---|---|
| Adobe Developer Console | Create projects, manage APIs, credentials, workspaces |
| I/O Runtime | Serverless hosting for backend actions (Node.js) |
| I/O Events | Event-driven integrations from Commerce → App Builder |
| web-src | React + React Spectrum UI (optional frontend) |
| app.config.yaml | Wires actions, static sites, and runtime config |
| Experience Cloud Org | Publish & manage approved extensions |
my-app/
├── app.config.yaml # Action definitions, bindings
├── .env # Runtime secrets (never commit)
├── actions/ # Serverless backend (Node.js)
│ ├── commerce/ # Commerce REST / OAuth helpers
│ └── oauth1a.js
├── web-src/ # React UI (optional)
│ └── src/components/
└── test/ # Unit testsAfter aio app deploy, actions get a public runtime URL.
Actions are serverless functions deployed to Adobe I/O Runtime.
@adobe/aio-sdk for logging and runtime APIsCOMMERCE_BASE_URL, consumer key/secret, access tokens)statusCode, body)Not every app needs a frontend. Background integrations (inventory sync, event handlers) often use actions only.
When you do need UI:
web-src/ holds a React app using React Spectrum (Adobe's design system)Commerce emits events (e.g. observer.sales_order_place_after) configured in io_events.xml.
Flow:
App Builder actions authenticate to Commerce using Integration credentials:
COMMERCE_BASE_URLCOMMERCE_CONSUMER_KEY / COMMERCE_CONSUMER_SECRETCOMMERCE_ACCESS_TOKEN / COMMERCE_ACCESS_TOKEN_SECRETActions call REST endpoints: /rest/V1/orders, /rest/V1/products, custom modules, etc.
From Adobe's split-payment architecture guidance:
If it must run synchronously in the Commerce request cycle, or invoke internal APIs with no clean external surface — keep it in PHP. Everything else can move to App Builder.
| Keep in Commerce (PHP) | Move to App Builder |
|---|---|
| Cart/checkout plugins | Post-order orchestration |
| Synchronous validation at payment step | ERP / webhook notifications |
| Internal invoice/shipment services | Operator dashboards |
| Extension attributes on quote/order | Event-driven audits |
Checkout threshold ($100 minimum) — must block the customer before Place Order:
Customer → [CheckoutPlugin in PHP] → blocks immediately
→ (if bypassed) → Order placed → I/O Event → App Builder auditCommerce owns the user-facing guard; App Builder owns the post-placement audit.
Store credit must be applied while the cart is still active:
❌ Order placed → Event → App Builder → apply store credit (cart is inactive — fails)
✅ PlaceOrderPlugin → BalanceManagementInterface::apply() → place order → EventApp Builder receives the event after credit is already applied.
Adobe and partners ship production patterns you can study:
No custom code required for off-the-shelf extensions.
@adobe/aio-cli)aio app init or clone app-builder-samples (opens in new tab)aio app deploy → test runtime URL| Resource | URL |
|---|---|
| App Builder docs | developer.adobe.com/app-builder (opens in new tab) |
| Getting started | First App guide (opens in new tab) |
| Commerce I/O Events | developer.adobe.com/commerce/events (opens in new tab) |
| Experience League tutorials | Introduction to App Builder (opens in new tab) |
| Sample code | github.com/magento/app-builder-samples (opens in new tab) |
| Video playlist | App Builder on YouTube (opens in new tab) |
Adobe App Builder = serverless, out-of-process extensibility for Commerce.
Start small: one event, one action, one REST call — then grow into composable integrations.
Questions? Explore the tutorials on Experience League or clone the sample apps.
Jigar Karangiya