Getting Started
Basic Concepts
Tutorials
Advanced Concepts
How-to Guides
Building integration flows
Data transformation
Integration patterns
Developing Components
Tenant Management
Components
CRM components
ERP components
E-Commerce components
Marketing-related components
Finance-related components
Office components
Protocol components
Service components
Database components
Utility components
References
Sailor
Component Descriptor
Covered in this article

Lightspeed-ecom component

Description

Lightspeed ECom API component for elastic.io iPaaS.

Authentication

You should request API keys for your shop (api_key & api_secret) via ticket to support.

Authentication is managed via HTTP authentication. There are several clusters which your app can be installed on. During the installation you should get the cluster_id. Please make sure you specify API requests to the correct cluster URL.

Cluster URLs There are two clusters which your app can be installed on. During the installation we send you the cluster_id. Please make sure you send API requests to the correct cluster.

CLUSTERS

  • eu1: https://api.webshopapp.com/
  • us1: https://api.shoplightspeed.com/

Credentials

image

Environment URL

Url of the Lightspeed eCom cluster. Fro example,

  • for EU: api.webshopapp.com
  • for US: api.shoplightspeed.com

Environment language

Lightspeed eCom shop language.

Client ID

API Key which you received from support during configuration a shop.

Client Secret

API Secret which you received from support during configuration a shop.

Triggers

Polling entity

This trigger polls for existing and updated objects where you can select object type.

image

Input fields description

  • Object Type - you should select the type of object which updates you want to get.
  • Polling Field - you can use any field existing at current object, which has datatype like DATE, DATETIME or TIMESTAMP.
  • Batch Size for request pagination - count of entries which you will get by one request ().

Supported entities:

  • attributes
  • blogs
  • brands
  • catalog
  • categories
  • contacts
  • countries
  • customers
  • dashboard
  • deliverydates
  • discounts
  • events
  • external_services
  • filters
  • groups
  • invoices
  • languages
  • metafields
  • orders
  • paymentmethods
  • products
  • quotes
  • redirects
  • returns
  • reviews
  • sets
  • shipments
  • shippingmethods
  • shop
  • subscriptions
  • suppliers
  • tags
  • taxes
  • textpages
  • tickets
  • time
  • types
  • variants

Webhook subscription

image

Input fields description

  • Object Type - you should select the type of object to make a subscription.

Supported entities:

  • contacts
  • customers
  • invoices
  • orders
  • products
  • quotes
  • returns
  • reviews
  • shipments
  • shop
  • subscriptions
  • tickets
  • variants

Actions

Create Object

Action creates a new record/object. This action is supported by limited list of entities.

image

Input fields description

  • Object type - you should select the type of object which updates you want to get.

Supported entities:

  • attributes
  • blogs
  • brands
  • categories
  • customers
  • deliverydates
  • discounts
  • external_services
  • filters
  • groups
  • metafields
  • products
  • quotes
  • redirects
  • returns
  • reviews
  • sets
  • subscriptions
  • suppliers
  • tags
  • taxes
  • textpages
  • tickets
  • types
  • variants

Upsert Object

Action creates a new object or updates object which already exists by provided ID. This action is supported by limited list of entities.

image

Input fields description

  • Object type - you should select the type of object which updates you want to get.

Supported entities:

  • attributes
  • blogs
  • brands
  • categories
  • customers
  • deliverydates
  • discounts
  • external_services
  • filters
  • groups
  • invoices
  • metafields
  • orders
  • products
  • quotes
  • redirects
  • returns
  • reviews
  • sets
  • shipments
  • subscriptions
  • suppliers
  • tags
  • taxes
  • textpages
  • tickets
  • types
  • variants

Update Object

Action updates object which already exists by provided ID. This action is supported by limited list of entities.

image

Supported entities:

  • attributes
  • blogs
  • brands
  • categories
  • customers
  • deliverydates
  • discounts
  • external_services
  • filters
  • groups
  • invoices
  • metafields
  • orders
  • products
  • quotes
  • redirects
  • returns
  • reviews
  • sets
  • shipments
  • subscriptions
  • suppliers
  • tags
  • textpages
  • tickets
  • types
  • variants

Input fields description

  • Object type - you should select the type of object which updates you want to get.

Supported entities:

Lookup Object By ID

Action gets a list of objects by filters or specific object by provided ID.

image

Input fields description

  • Object type - you should select the type of object which updates you want to get.

Supported entities:

  • attributes
  • blogs
  • brands
  • catalog
  • categories
  • contacts
  • countries
  • customers
  • dashboard
  • deliverydates
  • discounts
  • events
  • external_services
  • filters
  • groups
  • invoices
  • languages
  • metafields
  • orders
  • paymentmethods
  • products
  • quotes
  • redirects
  • returns
  • reviews
  • sets
  • shipments
  • shippingmethods
  • shop
  • subscriptions
  • suppliers
  • tags
  • taxes
  • textpages
  • tickets
  • time
  • types
  • variants

Delete Object By ID

Action removes object which already exists by provided ID.

image

Input fields description

  • Object type - you should select the type of object which updates you want to get.

Supported entities:

  • attributes
  • blogs
  • brands
  • categories
  • customers
  • deliverydates
  • discounts
  • external_services
  • filters
  • groups
  • metafields
  • products
  • redirects
  • reviews
  • sets
  • subscriptions
  • suppliers
  • tags
  • taxes
  • textpages
  • tickets
  • types
  • variants
  • webhooks

Additional info

Pagination

The component is providing request of a whole list of an entity by iterative API requests without user intervention.

A bit of theory:

Lightspeed eCom API limits the number of returned objects to 50 by default and 250 as max. When requesting large data sets it may be necessary to send multiple requests to retrieve all of the data. The meta-dictionary that’s returned tells the current page, and if there’s another page of results after this one, the next entry gives you the URL where it can be fetched. Depending on the structure of your data, it’s possible that the API may not be able to return the number of resources requested before a HTTP 504 (Gateway Timeout) happens. For example, if your first 100 orders have 1,000 line items each, you might hit a 429 when trying to fetch them. You can control the page size for a GET request with the limit parameter.

Coming back to the component:

In the component, at the Polling Trigger configuration you can configure count of fetching results per page by an appropriate configuration field. If you notice that 429s are coming back, you should reduce the limit until you start getting 200s. A sensible strategy for this is probably to iteratively halve the page size until you stop getting 429s.

Known limitations

The current version of the component doesn’t support next list of entities:

Lightspeed eCom API Documentation