Skip to content

atoms-studio/commercelayer-sdk

Repository files navigation

Commercelayer SDK

npm (scoped)  npm  Build Status  codecov

A lightweight, opinionated CommerceLayer SDK built for fast delivery of e-commerce functionalities.


Docs

Go to the documentation website


Why

The official CommerceLayer SDK is a great multi-purpose library, however we realized that it was missing a few functionalities that we had to reimplement in every project we worked on.
This library aims to speed development up by creating a thinner and easier interface with the CommerceLayer API and provide utilities to deal with the most common scenerios.


Features


Strongly typed

All supported resources are strongly typed and provide code autocompletion for attributes and relationships, decreasing time spent reading the CommerceLayer API documentation.


Automatic token refresh

Combining Authentication and Resource API into a single library allows for automatic refresh of tokens when a request fails due to an expired token.


Token caching

Tokens are cached by their scope and expiration date, avoiding rate limiting errors when generating static pages or making a lot of concurrent requests.


Seamless multi-market switching

Switch between multiple markets and automatically create new auth tokens for that market.


Installation

npm i @atoms-studio/commercelayer-sdk
yarn add @atoms-studio/commercelayer-sdk

Quick start

import { init, Auth, Orders, Skus } from '@atoms-studio/commercelayer-sdk'

init({
  host: 'https://<your cl domain>.commercelayer.io',
  clientId: '<your cl client id>',
})

await Auth.setMarket(1234)

const order = await Orders.create()

const sku = await Skus.findBy({
  code: '12345678',
  include: ['prices'],
})

await LineItems.create({
  attributes: {
    sku_code: sku.code,
    quantity: 1,
  },
  relationships: {
    order
  }
})

License

MIT