{"id":52037153,"url":"https://github.com/adobe/commerce-integration-starter-kit","last_synced_at":"2026-08-01T21:01:49.678Z","repository":{"id":239966427,"uuid":"801120891","full_name":"adobe/commerce-integration-starter-kit","owner":"adobe","description":"Adobe's integration starter kit uses Adobe Developer App Builder to improve real-time connection reliability and reduce the time-to-market for integrations between Adobe Commerce and other back-office systems, such as ERPs, CRMs, and PIMs.","archived":false,"fork":false,"pushed_at":"2026-07-24T09:23:28.000Z","size":11125,"stargazers_count":40,"open_issues_count":6,"forks_count":22,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-07-24T11:07:47.419Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adobe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":"COPYRIGHT","agents":null,"dco":null,"cla":null}},"created_at":"2024-05-15T16:23:20.000Z","updated_at":"2026-07-24T09:22:52.000Z","dependencies_parsed_at":"2026-01-01T04:09:20.693Z","dependency_job_id":null,"html_url":"https://github.com/adobe/commerce-integration-starter-kit","commit_stats":null,"previous_names":["adobe/commerce-integration-starter-kit"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/adobe/commerce-integration-starter-kit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adobe%2Fcommerce-integration-starter-kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adobe%2Fcommerce-integration-starter-kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adobe%2Fcommerce-integration-starter-kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adobe%2Fcommerce-integration-starter-kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adobe","download_url":"https://codeload.github.com/adobe/commerce-integration-starter-kit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adobe%2Fcommerce-integration-starter-kit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36170392,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-08-01T02:00:05.789Z","response_time":100,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-08-01T21:01:49.037Z","updated_at":"2026-08-01T21:01:49.666Z","avatar_url":"https://github.com/adobe.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Commerce Integration Starter Kit\n\n[![Node.js CI](https://github.com/adobe/commerce-integration-starter-kit/actions/workflows/deploy_node_stage.yml/badge.svg)](https://github.com/adobe/commerce-integration-starter-kit/actions/workflows/deploy_node_stage.yml)\n\n_Table of contents_:\n\n- [**Commerce Integration Starter Kit**](#commerce--integration-starter-kit)\n  - [**Prerequisites**](#prerequisites)\n  - [**App Management Setup**](#app-management-setup)\n  - [**Development**](#development)\n  - [**Log management and forwarding**](#log-management-and-forwarding)\n  - [**Integrating OpenTelemetry**](#integrating-opentelemetry)\n  - [**Included actions documentation**](#included-actions-documentation)\n  - [**References**](#references)\n\nWelcome to Adobe Commerce Integration Starter Kit.\n\nIntegrating an e-commerce platform with your ERP, OMS, or CRM is a mission-critical requirement. Companies can spend tens of thousands of dollars building these integrations. To reduce the cost of integrating with Enterprise Resource Planning (ERP) solutions and to improve the reliability of real-time connections, Adobe is introducing an integration starter kit for back-office integrations using Adobe Developer App Builder. The kit includes reference integrations for commonly used commerce data like orders, products, and customers. It also includes a standardized architecture for developers to build on following best practices.\n\n![Architecture Diagram](architecture.png \"Architecture Diagram\")\n\n## Prerequisites\n\n### Install Commerce Eventing module (only required when running Adobe Commerce versions 2.4.4 or 2.4.5)\n\nInstall Adobe I/O Events for Adobe Commerce module in your commerce instance following this [documentation](https://developer.adobe.com/commerce/extensibility/events/installation/)\n\n\u003e [!TIP]\n\u003e\n\u003e By upgrading the Adobe I/O Events for Adobe Commerce module to version 1.6.0 or greater, you will benefit from some additional automated steps during onboarding.\n\n## App Management Setup\n\nThis starter kit uses [App Management](https://developer.adobe.com/commerce/extensibility/app-management/) to install, configure, and deploy the application. Event subscriptions, installation, and authentication are declared in `app.commerce.config.ts` and managed by App Management, so the manual onboarding scripts are no longer needed.\n\nTo deploy the starter kit, follow the official documentation:\n\n- [Initialize your app](https://developer.adobe.com/commerce/extensibility/app-management/initialize-app/) installs dependencies and generates the extension structure under `src/`.\n- [Define your app](https://developer.adobe.com/commerce/extensibility/app-management/define-app/) explains the metadata and event subscriptions declared in `app.commerce.config.ts`.\n- [Build and deploy](https://developer.adobe.com/commerce/extensibility/app-management/build-deploy/) generates the runtime actions and deploys the app with `aio app deploy`.\n\nCommerce and external event subscriptions live in the `eventing` section of `app.commerce.config.ts`. To add or change an event, edit that file and redeploy. See [How to subscribe to a new event](#how-to-subscribe-to-a-new-event).\n\n## Development\n\n- [Project source code structure](#project-source-code-structure)\n- [Different types of actions included in the starter kit](#different-types-of-actions-included-in-the-starter-kit)\n- [Testing](#testing)\n- [How to subscribe to a new event](#how-to-subscribe-to-a-new-event)\n\n### Project source code structure\n\nThe starter kit provides boilerplate code for the synchronization across systems of the following entities:\n\n- Product\n- Customer\n- Customer Group\n- Stock\n- Order\n- Shipment\n\nThe synchronization is bidirectional by default: changes in Commerce are propagated to the external back-office application and the other way around.\n\n#### `actions` folder structure\n\nThe action source lives under `src/commerce-extensibility-1/actions/`. Within the project it's importable through the `#src` alias (declared in `package.json`), so an action can reference shared code as `#src/constants` instead of a deep relative path. The `actions` folder contains:\n\n- an `ingestion` folder containing the source code for an alternative events ingestion endpoint.\n\n- a `webhook` folder containing the source for synchronous webhooks that could be called from Commerce.\n\n- a folder named after each entity being synchronized (e.g. `customer`, `order`, `product`).\n\n#### `entity` folder structure\n\nEach `entity` folder follows a similar structure, and it contains folders named after each system being integrated, namely:\n\n- a `commerce` folder.\n\n  This folder contains the runtime actions responsible for handling incoming events from Commerce and synchronizing the data with the 3rd-party external system.\n\n- an `external` folder.\n\n  This folder contains the runtime actions responsible for handling incoming events from the 3rd-party external system and updating the data accordingly in Commerce.\n\n#### `commerce` and `external` folders structure\n\nThe `commerce` and `external` folders follow a similar structure:\n\n- one or more folders named after an action (e.g. `created`, `deleted`, etc.)\n\n  Each of these folders contains the code for the runtime action responsible for handling one particular event.\n\n- an `actions.config.yaml`.\n\n  This file declares the runtime actions responsible for handling the events for an entity originating in a particular system.\n\n#### Individual `action` folder structure\n\nEach individual `action` folder contains the following files:\n\n- an `index.js` file.\n\n  It contains the `main` method that gets invoked when handling an event and is responsible for coordinating the different activities involved in that handling, such as validating the incoming payload, transforming the payload to the target API, and interacting with the target API.\n\n- a `validator.js` file.\n\n  It implements the logic to validate the incoming event payload.\n\n  Actions in the `external` folder provide a sample implementation based on a JSON schema specified in the `schema.json` file.\n\n- a `transformer.js` file.\n\n  It implements the logic to transform the incoming event payload to make it suitable for the target API being called to propagate the changes.\n\n- a `sender.js` file.\n\n  It implements the logic to interact with the target API in order to get the changes propagated.\n\n  The target API will be the Commerce API for actions in the `external` folder and the 3rd-party external API for actions in the `commerce` folder.\n\n- `pre.js` and `post.js` files\n\n  These files provide convenient extension points to introduce custom business logic before and after interacting with the target API.\n\n#### Pass `env` params to an `action`\n\nYou can pass values from the environment to the action`params` object following:\nAdd your parameter to .env file:\n\n```bash\nHERE_YOUR_PARAM=any value\n```\n\nPass the required parameters to the action by configuring them in the `src/commerce-extensibility-1/actions/{entity}/{flow}/actions.config.yaml` under `{action name} -\u003e inputs` as follows:\n\n```yaml\n{ action name }:\n  function: commerce/{action name}/index.js\n  web: \"no\"\n  runtime: nodejs:22\n  inputs:\n    HERE_YOUR_PARAM: $HERE_YOUR_PARAM_ENV\n  annotations:\n    require-adobe-auth: true\n    final: true\n```\n\nThis parameter should be accessible on the params object\n\n```javascript\nasync function main(params) {\n  params.HERE_YOUR_PARAM;\n}\n```\n\n### Different types of actions included in the starter kit\n\n- [event handler](#event-handler-action)\n- [event ingestion](#event-ingestion-action)\n- [synchronous webhook](#synchronous-webhook-actions)\n\n`event handler` actions are the main type of action defined by the starter kit to implement the business logic needed to synchronize data between the different systems being integrated.\n\nAdditionally, boilerplate code and samples for `event ingestion` and `synchronous webhook` actions are provided.\n\n#### `event handler` action\n\nThis action implements the business logic to manage an individual event notifying about a change in one\nof the systems being integrated. Typically, its business logic includes an API call to propagate the changes\nto the other system being integrated.\n\nAn `event handler` action is activated directly by the event provider it's registered to when a matching event is received. This registration is declared with `runtimeActions` in the `eventing` section of `app.commerce.config.ts`, which maps each event to the handler that processes it.\n\nThe response returned by an `event handler` action is expected to include a `statusCode` attribute so it properly reflects on the event registration `Debug Tracing` tab on the Adobe Developer Console.\n\nBy default, the response of the `event handler` actions is the following:\n\n- success\n\n  ```javascript\n  // ./src/commerce-extensibility-1/lib/responses.js#actionSuccessResponse\n  return {\n    statusCode: 200,\n    body: {\n      success: true,\n      message: \"YOUR SUCCESS MESSAGE\",\n    },\n  };\n  ```\n\n- failure\n  ```javascript\n  // ./src/commerce-extensibility-1/lib/responses.js#actionErrorResponse\n  return {\n    statusCode: 400, // 404, 500, etc\n    body: {\n      success: false,\n      error: \"YOUR ERROR MESSAGE\",\n    },\n  };\n  ```\n\n#### `event ingestion` action\n\nThe source code for this action can be found at [./src/commerce-extensibility-1/actions/ingestion](./src/commerce-extensibility-1/actions/ingestion).\n\nThis runtime action is provided as an alternative approach to deliver events to the integration\nif the 3rd-party back-office application cannot fulfill the [Events Publishing API](https://developer.adobe.com/events/docs/guides/api/eventsingress_api/) requirements.\n\nAdditional details can be found at this [README](src/commerce-extensibility-1/actions/ingestion/webhook/docs/README.md)\n\nTo get the URL of the webhook, run the following command:\n\n```bash\naio runtime action get ingestion/webhook --url\n```\n\nBy default, the response of the `event ingestion` actions is the following:\n\n- success\n\n  ```javascript\n  // ./src/commerce-extensibility-1/lib/responses.js#successResponse\n  return {\n    statusCode: 200,\n    body: {\n      type: \"EVENT TYPE\",\n      response: {\n        success: true,\n        message: \"Event published successfully\",\n      },\n    },\n  };\n  ```\n\n- failure\n  ```javascript\n  // ./src/commerce-extensibility-1/lib/responses.js#errorResponse\n  return {\n    error: {\n      statusCode: 400, // 404, 500, etc,\n      body: {\n        error: \"YOUR ERROR MESSAGE\",\n      },\n    },\n  };\n  ```\n\n#### `synchronous webhook` actions\n\nThe source code for these actions can be found at [./src/commerce-extensibility-1/actions/webhook](./src/commerce-extensibility-1/actions/webhook).\n\nThese runtime actions are meant to expose a webhook that can be invoked synchronously from Commerce\nin order to affect the behavior of a particular business flow.\n\nThe [./src/commerce-extensibility-1/actions/webhook/check-stock](./src/commerce-extensibility-1/actions/webhook/check-stock) folder provides a sample implementation\nof a `synchronous webhook` action. Additional details can be found at this [README](src/commerce-extensibility-1/actions/webhook/check-stock/docs/README.md)\n\nTo get the URL of the webhook, run the following command:\n\n```bash\naio runtime action get webhook/check-stock --url\n```\n\nBy default, the response of the `synchronous webhook` actions is the following:\n\n- success\n\n  ```javascript\n  // ./src/commerce-extensibility-1/lib/responses.js#webhookSuccessResponse\n  return {\n    statusCode: 200,\n    body: {\n      op: \"success\",\n    },\n  };\n  ```\n\n- failure\n  ```javascript\n  // ./src/commerce-extensibility-1/lib/responses.js#webhookSuccessResponse\n  return {\n    error: {\n      statusCode: 200,\n      body: {\n        op: \"exception\",\n      },\n    },\n  };\n  ```\n\nRemember, these responses are adapted to [Commerce webhook module](https://developer.adobe.com/commerce/extensibility/webhooks/); in case you want to use a different approach, you can change the response implementation in the code as you need.\n\n### Testing\n\nThe starter kit provides unit tests for most of the runtime actions it includes. These tests live in the `./test/commerce-extensibility-1/actions` folder, mirroring the source layout under `src/`.\n\nTests run on [Vitest](https://vitest.dev/). Run them with `npm test`, or use `npm run test:coverage` to generate a coverage report in the `./test/test-coverage` folder.\n\n### How to subscribe to a new event\n\nThe starter kit comes with predefined events for each entity. Sometimes, you may need to add a new event to an entity, e.g., a customer. To do this, follow the next steps:\n\n\u003e [!TIP]\n\u003e Before adding a new event, check [`EVENTS_SCHEMA.json`](./EVENTS_SCHEMA.json) to understand the schema structure and available fields for similar events. This will help you properly handle the event payload in your action handlers.\n\n- Add the event to the `eventing` section of `app.commerce.config.ts`, under the provider that receives it (`commerce` for events from Commerce, `external` for events from a back-office system). Map it directly to the handler action with `runtimeActions`. For example, to handle a new Commerce customer event:\n  ```typescript\n  {\n    name: \"observer.THE_NEW_CUSTOMER_EVENT\",\n    label: \"The new customer event\",\n    description: \"The new customer event\",\n    fields: [field(\"id\")],\n    runtimeActions: [\"customer-commerce/new-operation\"],\n  }\n  ```\n- In the `src/commerce-extensibility-1/actions/{entity}/{flow}` directory, add the action that will handle this event, e.g., `src/commerce-extensibility-1/actions/customer/commerce/new-operation/index.js`\n- Configure the newly created handler action in the `actions.config.yaml` file inside the `{entity}/{flow}` folder, e.g.:\n  ```yaml\n  new-operation:\n    function: new-operation/index.js\n    web: \"no\"\n    runtime: nodejs:22\n    annotations:\n      final: true\n  ```\n- Deploy the changes: `aio app deploy`\n- Reinstall the application in App Management so the new event is wired up.\n\nWith these steps, you can consume the new event you added to the project.\nIf you want to change an existing event, make the changes in the same places:\n\n- Edit the event in the `eventing` section of `app.commerce.config.ts`\n- Make changes to the handler action mapped by its `runtimeActions`\n- Deploy your changes\n\n## Log management and forwarding\n\n\u003e [!WARNING]\n\u003e Log forwarding and OpenTelemetry logs (described one section below) are two separate ways to ship logs off Adobe I/O Runtime. If you enable both and point them at the same observability platform, your log data will be duplicated. Stick with one method for logs.\n\nApplication logs allow developers to debug an application in development as well as monitor it in production.\n\nBy default, the starter kit uses the [AIO SDK](https://github.com/adobe/aio-sdk) to store logs in Adobe I/O Runtime.\nYou can find additional details on this topic in [Managing Application Logs](https://developer.adobe.com/app-builder/docs/guides/application_logging/).\n\nThe application logs can alternatively be forwarded to a **customer-owned** log management solution (such as Splunk, Azure, or New Relic).\nUse the comparison in [When to use Log Forwarding](https://developer.adobe.com/app-builder/docs/guides/application_logging/#when-to-use-log-forwarding)\nto decide when to store logs in Adobe I/O Runtime and when to forward them to a log management platform.\n\nIf you are running your Adobe Commerce instance in the cloud, you already have a New Relic instance provisioned for you.\nThe [Forwarding Logs to New Relic](https://developer.adobe.com/app-builder/docs/guides/application_logging/new_relic/)\npage describes the steps to set up the starter kit to forward logs to New Relic.\n\n### Prevent secrets from leaking in logs.\n\nThe `stringParameters` in the `./src/commerce-extensibility-1/lib/utils.js` file can be used to avoid secrets leaking when logging the parameters received by a runtime action.\nIt will replace\n\n- the `authorization` header value with `\u003chidden\u003e`, and\n- any parameters containing a term present in the `hidden` array with `\u003chidden\u003e`\n\nThe default parameters to be hidden are:\n\n```javascript\nconst hidden = [\"secret\", \"token\"];\n```\n\nAdjust these values to hide secrets passed as params to your runtime actions if needed.\n\n## Integrating OpenTelemetry\n\n\u003e [!NOTE]\n\u003e The starter kit includes the `@adobe/aio-lib-telemetry` package by default. Find it on NPM [here](https://www.npmjs.com/package/@adobe/aio-lib-telemetry).\n\nThis package enables easy instrumentation of your actions with OpenTelemetry to collect comprehensive telemetry data:\n\n- Traces (with distributed tracing capabilities)\n- Metrics (for monitoring)\n- Logs (for debugging)\n\nSee the [package usage guide](https://github.com/adobe/aio-lib-telemetry/blob/main/docs/usage.md) for more information about guides and examples for instrumenting your Adobe App Builder actions.\n\n### Usage Example\n\n\u003e [!TIP]\n\u003e Check the [How To Use](https://github.com/adobe/aio-lib-telemetry/blob/main/docs/usage.md#how-to-use) section in the `@adobe/aio-lib-telemetry` usage guide for comprehensive integration instructions.\n\nThe starter kit ships with a sample implementation: the `customer/commerce` `created` action is instrumented out of the box. This example uses the telemetry configuration in `src/commerce-extensibility-1/telemetry.js`.\n\nThe instrumentation is designed to be minimally invasive and won't disrupt existing functionality. However, telemetry requires explicit opt-in configuration: you must instrument each runtime action individually, configure exporters in the `telemetry.js` file, and set the `ENABLE_TELEMETRY` environment variable to `true` in each action's `inputs` section. While we've implemented this setup for the aforementioned actions, to fully enable telemetry, you need to complete your configuration in the `telemetry.js` file.\n\n\u003e [!IMPORTANT]\n\u003e `ENABLE_TELEMETRY` must be set to `true` in the `inputs` of **every** instrumented action (any action that uses `@adobe/aio-lib-telemetry` through `instrumentEntrypoint` or `instrument`). An instrumented action that is missing this input can behave inconsistently, so keep the flag in sync with your instrumentation.\n\nThe integration within the `customer/commerce` workflow facilitates three key signals: **traces**, **metrics**, and **logs**, while also adding automatic context propagation. This means that when a matching event triggers the instrumented `created` handler, it generates a unified trace that spans the entire execution flow.\n\n### Local Telemetry Stack\n\nWe provide a Docker Compose configuration out of the box for running a local telemetry stack, which follows the [**Grafana** use case](https://github.com/adobe/aio-lib-telemetry/blob/main/docs/use-cases/grafana.md#), documented within the `@adobe/aio-lib-telemetry` package.\n\nTo spin up the telemetry stack, run the following command:\n\n```bash\ndocker compose up\n```\n\nOnce running, the stack will collect and forward telemetry signals from all your instrumented actions (such as `customer/commerce/created`) to the local telemetry infrastructure.\n\nCheck out the linked guide to learn how to set up Grafana for visualizing your telemetry data. The guide also covers how to use the included cloudflared service to tunnel telemetry data from your deployed App Builder runtime actions in the cloud back to your local environment.\n\n## Included actions documentation\n\n### External back-office ingestion webhook\n\n- [Ingestion webhook](src/commerce-extensibility-1/actions/ingestion/webhook/docs/README.md)\n\n### Product entity\n\n#### Commerce to third party\n\n- [Product created in commerce](src/commerce-extensibility-1/actions/product/commerce/created/docs/README.md)\n- [Product updated in commerce](src/commerce-extensibility-1/actions/product/commerce/updated/docs/README.md)\n- [Product deleted in commerce](src/commerce-extensibility-1/actions/product/commerce/deleted/docs/README.md)\n- [Product full sync in commerce](src/commerce-extensibility-1/actions/product/commerce/full-sync/docs/README.md)\n\n#### Third party to Commerce\n\n- [Product created in third party](src/commerce-extensibility-1/actions/product/external/created/docs/README.md)\n- [Product updated in third party](src/commerce-extensibility-1/actions/product/external/updated/docs/README.md)\n- [Product deleted in third party](src/commerce-extensibility-1/actions/product/external/deleted/docs/README.md)\n\n### Customer entity\n\n#### Commerce to third party\n\n- [Customer created in commerce](src/commerce-extensibility-1/actions/customer/commerce/created/docs/README.md)\n- [Customer updated in commerce](src/commerce-extensibility-1/actions/customer/commerce/updated/docs/README.md)\n- [Customer deleted in commerce](src/commerce-extensibility-1/actions/customer/commerce/deleted/docs/README.md)\n- [Customer group updated in commerce](src/commerce-extensibility-1/actions/customer/commerce/group-updated/docs/README.md)\n- [Customer group deleted in commerce](src/commerce-extensibility-1/actions/customer/commerce/group-deleted/docs/README.md)\n\n#### Third party to Commerce\n\n- [Customer created in third party](src/commerce-extensibility-1/actions/customer/external/created/docs/README.md)\n- [Customer updated in third party](src/commerce-extensibility-1/actions/customer/external/updated/docs/README.md)\n- [Customer deleted in third party](src/commerce-extensibility-1/actions/customer/external/deleted/docs/README.md)\n- [Customer group created in third party](src/commerce-extensibility-1/actions/customer/external/group-created/docs/README.md)\n- [Customer group updated in third party](src/commerce-extensibility-1/actions/customer/external/group-updated/docs/README.md)\n- [Customer group deleted in third party](src/commerce-extensibility-1/actions/customer/external/group-deleted/docs/README.md)\n\n### Order entity\n\n#### Commerce to third party\n\n- [Order created in commerce](src/commerce-extensibility-1/actions/order/commerce/created/docs/README.md)\n- [Order updated in commerce](src/commerce-extensibility-1/actions/order/commerce/updated/docs/README.md)\n\n#### Third party to Commerce\n\n- [Order updated in third party](src/commerce-extensibility-1/actions/order/external/updated/docs/README.md)\n\n### Stock entity\n\n#### Commerce to third party\n\n- [Stock updated in commerce](src/commerce-extensibility-1/actions/stock/commerce/updated/docs/README.md)\n\n#### Third party to Commerce\n\n- [Stock updated in third party](src/commerce-extensibility-1/actions/stock/external/updated/docs/README.md)\n\n## References\n\n- [Adobe Commerce Extensibility](https://developer.adobe.com/commerce/extensibility/)\n- [Adobe developer console](https://developer.adobe.com/developer-console/docs/guides/)\n- [Adobe App Builder](https://developer.adobe.com/app-builder/docs/overview/)\n- [Adobe I/O Events](https://developer.adobe.com/events/docs/)\n- [Adobe I/O Events for Adobe Commerce](https://developer.adobe.com/commerce/extensibility/events/)\n- [Adobe I/O Runtime](https://developer.adobe.com/runtime/docs/)\n- [Commerce Web APIs](https://developer.adobe.com/commerce/webapi/)\n\n### Contributing\n\nContributions are welcomed! Read the [Contributing Guide](./.github/CONTRIBUTING.md) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadobe%2Fcommerce-integration-starter-kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadobe%2Fcommerce-integration-starter-kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadobe%2Fcommerce-integration-starter-kit/lists"}