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
Basic Components
Utility Components
References
Sailor
Component Descriptor
Covered in this article
Related articles
Contracts and Workspaces Understanding credentials Data Sample Overview Creating your first integration flow Getting Started What is an integration component? What is an integration flow? What is a tenant? Take a tour of the product Creating a webhook flow Building a component in Java Building a component in Node.js Content-Based Routing Deploying a component How-to Guides Managing flow history Managing OAuth Clients Managing user roles in a tenant Managing Workspaces Mapping data Building real-time flows Sending data to a list of recipients REST API component Managing your SSH keys Managing your Teams/Components Allmysms component Amazon MWS component AMQP component AppDirect Component AWS Lambda component AWS SNS component Bazaarvoice component ChannelAdvisor component Code component Configuration component CSV component Docusign component Dun-and-bradstreet component Ebay component Edifact-parser component Email component Exact Online component Filter component Google PubSub component Google-shopping component Google-translate component Goto-webinar component Google Spreadsheets component Components JDBC Component JDBC Component JDBC Component Jsonata component Key-value-component component Ldap component Lightspeed-retail component Lionbridge-translation component Magento1 component Magento2 component Mailchimp component Mandrillapp component Mapper component Microsoft Dynamics CRM component MsSQL component NetSuite component ODATA component Outlook component Petstore-nodejs component Pipedrive component Postgresql component Quickbooks-component component Request-reply component Rest API component Router component Salesforce-cpq component Salesfoce Component Sdl-translate component Sftp component Shopify-admin component Shopware component Simple-trigger component Smarty-streets component Soap component Splitter component Stripe component Sugar-crm component Timer component Twitter component Webhook component Xml component Component Descriptor Structure References Sailor compatibility matrix View Classes

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