Skip to content

labd/commercetools-utilities-javascript

Repository files navigation

Lab Digital Commercetools Utilities

CommercetoolsClient

This is a more straight-forward helper to create a commercetools client for interacting with Commercetools.

const client = CommercetoolsClient({
  host: 'https://api.europe-west1.gcp.commercetools.com/',
  projectKey: 'my-project',
  auth: {
    host: 'https://auth.europe-west1.gcp.commercetools.com/',
    credentials: {
      clientId: 'my-client-id',
      clientSecret: 'my-client-secret',
    },
    scopes: ['view_orders:my-project', 'view_products:my-project'],
  },
});

const projectApi = await client.getProjectApi();
projectApi.products().get().execute()

When the options are not passed it will read it from the ENV vars:

  • CT_PROJECT_KEY
  • CT_API_URL
  • CT_AUTH_URL
  • CT_CLIENT_ID
  • CT_CLIENT_SECRET
  • CT_SCOPES
const client = CommercetoolsClient();
client.getProjectApi();

You can also pass a callable to auth which returns a token to be used.

const client = createClient({
  host: process.env.CT_API_URL,
  projectKey,
  auth: async () => {
    return 'mytoken';
  },
});

client.getProjectApi();

Note that the ApiRoot object is cached on the client instance for 900 seconds

Pass custom middleware to the Commercetools client

const client = CommercetoolsClient({
  host: 'https://api.europe-west1.gcp.commercetools.com/',
  projectKey: 'my-project',
  auth: {
    host: 'https://auth.europe-west1.gcp.commercetools.com/',
    credentials: {
      clientId: 'my-client-id',
      clientSecret: 'my-client-secret',
    },
    scopes: ['view_orders:my-project', 'view_products:my-project'],
  },
  middlewares: [yourMiddleware]
});

See the commercetools sdk docs for an example of custom middleware or check the tests in client.test.ts.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 6