Giter Club home page Giter Club logo

lightspeed-sdk's Introduction

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

Import the Retail API and initialize it:

const { LightspeedRetailApi } = import 'lightspeed-sdk';

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

Import the Ecom API and initialize it:

const { LightspeedEcomApi } = import 'lightspeed-sdk';

const ecomApi = new LightspeedEcomApi({ 
  apiKey: 'my_api_key', 
  apiSecret: 'my_api_key', 
  clusterId: 'US1', 
});

Retail API Examples

Post customer information:

const customer = await retailApi.postCustomer(customer);

Update customer information:

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

Retrieve account information:

const account = await retailApi.getAccount();

Retrieve items by id:

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

Retrieve all items:

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

or

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

Retail 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.

Ecom API Examples

Retrieve account information:

const account = await ecomApi.getAccount();

Get orders:

const orders = await ecomApi.getOrders();

Ecom Pagination

Pagination in the ecom api works similarly to the retail api with some minor differences

const orders = await ecomApi.getOrders();
console.log('Number of orders=', orders.getCount());
const iterator = orders.items();
const firstItem = await iterator.next().value;

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.

lightspeed-sdk's People

Contributors

andreadg97 avatar andreadiazrepo avatar bramski avatar ejprismfly avatar jcperez avatar rafaelkoh97 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

lightspeed-sdk's Issues

Feature Request: Lightspeed Ecom

Hello Lightspeed SDK,

This looks like the best library for working with lightspeed API via Node. I have a need to utilize the ecom REST API. I will do this work regardless. Are you interested in my contribution to this project of the ecom portions? I would likely diverge it from the lightspeed API portion and make a separate named export for the ecom API.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.