Channel Integration Overview

If you are looking to create a channel integration the best solution is to use our Channel integration application type. This will enable your channel integration to work like a native Linnworks channel integration. Details can be found with our API endpoint documentation.

What is an external channel

External channels is a way for external developers to create apps that create a bridge between communication between Linnworks and the actual channel. Linnworks sends and receives data from the external channel application and the external channel applications job is to “translate” this data into data that the channel or Linnworks needs.

Things an external channel can do:

  • Create integration wizard with custom settings (within Linnworks)
  • Create custom settings displayed in channel config (within Linnworks)
  • Download Orders Update Orders as dispatched
  • Update Prices (if price sync is enabled)
  • Update Stock levels (if inventory sync is enabled)
    Download channel products (for mapping screen)
  • Map Shipping methods (within Linnworks channel shipping method window)
  • Map Payment methods (within Linnworks channel payment method window)
  • Create and Update Listings (via GLT if IsListingSupported is set to true)
  • Delete Listings (via GLT if IsListingSupported is set to true)

How to create an external channel?

When a developer creates an external channel, he creates a manifest via the Linnworks dev portal (https://developer.linnworks.com/), that contains all endpoints required to make the above calls. The listing endpoints are only required to be set if IsListingSupported is set to true. If the channel application is public, any Linnworks customer can integrate this external channel, just like any other channel. If the channel application is private, only customers who have access to the application installation link can install the application and therefore integrate the external channel. Once the channel is integrated, the endpoints on the manifest are stored inside System_Channel_Setting_Property table and loaded as part of the External Config. If the manifest is updated, e.g. with new endpoints, any person who has this app installed, will be asked if they would like to update the application. During the update all integrated external channels related to this application will have the data in System_Channel_Setting_Property table updated.

How do we communicate with external channels?

When an external channel is integrated via the channel integration screen, it starts the process of creating a new user for the specific external channel application. This user is specific for each integration and Linnworks user and is identifiable via an AuthorisationToken, that the external channel application returns when the new user is created. All customer settings and channel details, e.g. channel url, username and password, will be stored on the external application side under the AuthorisationToken.

Error handling

All responses are expected to return 200 success even in the case of an error. Instead any errors are expected to be placed within the the appropriate error fields on the response. This way consistent feedback can be provided back to the user.

Any unhandled errors returning from the API may result in the customers integration being automatically disabled.

Example channel integration

An example of a channel integration can be found in the Linnworks

https://github.com/LinnSystems/LinnworksNetSDK/tree/master/Linnworks/Examples/SampleChannel