Serverless Commercetools Plugin

Serverless framework plugin that registers the deployed function as a commercetools API Extension or attaches it to a Subscription.

commercetools Serverless Plugin

commercetools's plugin for the Serverless Framework allows you to seamlessly integrate your serverless functions with commercetools' extensibility options.



  • Attach a newly deployed serverless function as a commercetools' API extension.
  • Create a new serverless function to process events from a commercetools' subscription.
  • Supports AWS and GCP


npm i --save-dev serverless-commercetools-plugin
# or
yarn add --dev serverless-commercetools-plugin

Add the following plugin to your serverless.yml:

  - serverless-commercetools-plugin

With the serverless CLI

serverless plugin install --name serverless-commercetools-plugin


Add your commercetools' project settings to the serverless.yaml file. Add these values under the provider section:

    CTP_PROJECT_KEY: "your_key"
    CTP_CLIENT_SECRET: "your_secret"
    CTP_CLIENT_ID: "your_clientid"
    CTP_AUTH_URL: "your_authurl"
    CTP_API_URL: "your_apiUrl"
    CTP_SCOPES: "your_scopes"

API Extension

Add environment vars for the deploy type ("extension") and your body configuration for the Extension.

    CTP_DEPLOY_TYPE: "extension"
        "destination": {
          "type": "AWSLambda",
          "accessKey": "your_aws_key",
          "accessSecret": "your_aws_secret"
        "triggers": [{
          "resourceTypeId": "cart",
          "actions": ["Create", "Update"]

Note: The Lambda ARN is determined by the plugin. You do not need to include it in the configuration.

Note: Please note that you can set a key on extensions and subscriptions. The key prevents the same extension or subscription from being deployed twice from CI/CD and manually deploys. One can modify the code from this Opensource repo to customize your deploys for setup in CI/CD and multiply runs.

For Google Cloud Platform functions set the CTP_POST_BODY to use the HTTP destination as outlined in the commercetools API Extension documentation.


Add environment vars for the deploy type ("subscription") and your body configuration for the Subscription.

    CTP_DEPLOY_TYPE: "extension"
        "destination": {
          "type": "AWSLambda",
          "accessKey": "your_aws_key",
          "accessSecret": "your_aws_secret"
        "triggers": [{
          "resourceTypeId": "cart",
          "actions": ["Create", "Update"]


To build your cloud resources and configure the commercetools' project run:

serverless deploy

To remove all cloud resources and commercetools' configuration run:

serverless remove


If you have any issues, please don't hesitate to:

When opening a new issue, please provide as much information as possible including:

  • Plugin version
  • node version
  • cloud environment
  • A reproducible code example

The GitHub issues are intended for bug reports and feature requests specifically related to the serverless plugin.


Create a local serverless function or copy the code from the examples folder. Add the plugin code to a folder named .serverless_plugins at the root of your serverless project.


Released as-is under the MIT license. See LICENSE for details.

view on Github

Latest commit b2f54ec on Sep 24, 2017

New to serverless?

To get started, pop open your terminal & run:

npm install serverless -g