@atoms-studio/commercelayer-sdk
v1.5.0
Published
![npm (scoped)](https://img.shields.io/npm/v/@atoms-studio/commercelayer-sdk) ![npm](https://img.shields.io/npm/dm/@atoms-studio/commercelayer-sdk) [![Build Status](https://github.com//atoms-studio/commercelayer-sdk/workflows/Node.js%20CI/bad
Downloads
107
Keywords
Readme
Commercelayer SDK
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
}
})