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-ecom 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-retail component

Description

Lightspeed Retail API component for elastic.io iPaaS.

Authentication

Lightspeed uses the OAuth2 protocol to authenticate integrations and grant access to the API. See the section on Authentication for more details.

Credentials

image

Environment URL

Url of the Lightspeed Retail environment. Optional. By default: api.lightspeedapp.com

Account ID

Lightspeed Retail account ID.

Client ID

Consumer Key which you received during API client configuration step.

Client Secret

Consumer Secret which you received during API client configuration step.

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 ().

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:

  • Category
  • CreditAccount
  • Customer
  • CustomerCustomField
  • CustomerType
  • Discount
  • EmployeeHours
  • InventoryTransfer
  • InventoryCount
  • InventoryCountItem
  • Item
  • ItemCustomField
  • ItemMatrix
  • Manufacturer
  • Order
  • OrderCustomField
  • OrderLine
  • PaymentType
  • Quote
  • RegisterClose
  • RegisterOpen
  • RegisterWithdraw
  • Sale
  • SaleEmailReceipt
  • Season
  • Serialized
  • Tag
  • TaxCategory
  • TaxClass
  • Vendor

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:

  • Category
  • CreditAccount
  • Customer
  • CustomerCustomField
  • CustomerType
  • Discount
  • Employee
  • EmployeeHours
  • Industry
  • InventoryTransfer
  • InventoryCount
  • InventoryCountItem
  • Item
  • ItemCustomField
  • ItemMatrix
  • Manufacturer
  • Order
  • OrderCustomField
  • OrderLine
  • PaymentType
  • PriceLevel
  • Quote
  • RegisterClose
  • RegisterOpen
  • RegisterWithdraw
  • Sale
  • SaleEmailReceipt
  • SaleLine
  • Season
  • Serialized
  • Shop
  • Tag
  • TaxCategory
  • TaxClass
  • Vendor

Update Object

Action 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:

  • Category
  • CreditAccount
  • Customer
  • CustomerCustomField
  • CustomerType
  • Discount
  • Employee
  • EmployeeHours
  • Industry
  • InventoryTransfer
  • InventoryCount
  • InventoryCountItem
  • Item
  • ItemCustomField
  • ItemMatrix
  • Manufacturer
  • Order
  • OrderCustomField
  • OrderLine
  • PaymentType
  • PriceLevel
  • Quote
  • Sale
  • SaleLine
  • Season
  • Serialized
  • Shop
  • Tag
  • TaxCategory
  • TaxClass
  • Vendor

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:

  • Account
  • CatalogVendorItem
  • Category
  • CCCharge
  • CreditAccount
  • Customer
  • CustomerCustomField
  • CustomerType
  • Discount
  • Employee
  • EmployeeHours
  • Industry
  • InventoryTransfer
  • InventoryCount
  • InventoryCountCalc
  • InventoryCountItem
  • Item
  • ItemCustomField
  • ItemAttributeSet
  • ItemMatrix
  • Locale
  • Manufacturer
  • Option
  • Order
  • OrderCustomField
  • OrderLine
  • PaymentType
  • PriceLevel
  • Quote
  • Register
  • RegisterCalculated
  • RegisterCount
  • RegisterCountAmount
  • RegisterWithdraw
  • Sale
  • SaleLine
  • SalePayment
  • SaleVoid
  • Season
  • Serialized
  • Session
  • ShipTo
  • Shop
  • SpecialOrder
  • Tag
  • TaxCategory
  • TaxClass
  • Transfer
  • TransferItem
  • Vendor
  • Workorder
  • WorkorderItem
  • WorkorderLine
  • WorkorderStatus

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:

  • Category
  • CreditAccount
  • Customer
  • CustomerCustomField
  • CustomerType
  • Discount
  • Employee
  • EmployeeHours
  • InventoryCount
  • InventoryCountItem
  • Item
  • ItemCustomField
  • ItemMatrix
  • Order
  • OrderCustomField
  • OrderLine
  • PaymentType
  • Quote
  • Sale
  • SaleLine
  • Season
  • Serialized
  • Tag
  • TaxCategory
  • TaxClass
  • Vendor

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 Retail API limits the number of returned objects to 100. 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 Retail API Documentation