lightspeed-sdk

Unofficial Lightspeed SDK for Node.js

Usage no npm install needed!

<script type="module">
  import lightspeedSdk from 'https://cdn.skypack.dev/lightspeed-sdk';
</script>

README

Lightspeed SDK

Note: This is not a Lightspeed official package.

npm version

Installation

Use your favorite package manager to install any of the packages and save to your package.json:

npm install lightspeed-sdk

Usage

Create an instance of Lightspeed class:

const lightspeed = new Lightspeed({
  clientId: 'CLIENT_ID',
  clientSecret: 'CLIENT_SECRET',
  refreshToken: 'REFRESH_TOKEN',
});

Examples

Post customer information:

const customer = await lightspeed.postCustomer(customer);

Update customer information:

const customer = await lightspeed.putCustomer(customer, customerID);

Retrieve account information:

const account = await lightspeed.getAccount();

Retrieve items by id:

const item = await lightspeed.getItemById('accountNumber', 'id');

Retrieve all items:

const items = await lightspeed.getItems('accountNumber');
for await (const item of items) {
  console.log(item); // { itemID: 'X', ... }
}

or

const items = await lightspeed.getItems('accountNumber').toArray();
console.log(items); // [{ itemID: 'X', ... }, {...}]

Pagination

Pagination is handled by the SDK by returning a cursor when querying:

  • getItems
  • getCategories
  • getManufacturers
  • getSales
  • getSaleLineBySaleID
  • getSalePaymentBySaleID
  • getItemsByMatrixID
  • getCustomers
  • getCustomerTypes

The object has an async iterable so you can do a for await loop to retrieve all the items, or load all at the same time by doing .toArray() on the object. Doing .toArray() could lead to performance issues if the collection is too big.

Requirements

This package supports Node v8 LTS and higher. It's highly recommended to use the latest LTS version of node, and the documentation is written using syntax and features from that version.