airbytehq / airbyte

The leading data integration platform for ETL / ELT data pipelines from APIs, databases & files to data warehouses, data lakes & data lakehouses. Both self-hosted and Cloud-hosted.
https://airbyte.com
Other
15.4k stars 3.97k forks source link

Linnworks ERP #4974

Open apostoltego opened 3 years ago

apostoltego commented 3 years ago

Tell us about the new connector you’d like to have

Linnworks.net API connector.

Describe the context around this new connector

Linnworks is our current ERP provider which holds a lot of operational data around e-commerce and logistics activities.

This would be required for e-commerce reporting, inventory levels of our products and various logistics related use cases (purchase orders with suppliers).

We'll build through the CDK at a later time when resources allow

Are you willing to submit a PR?

Yes at a later time when resources internally allow. We'd need support around best practices implementation.

Remove this with your answer :-)

karinakuz commented 2 years ago

Integration Vetting

Webhook-based? (no/partially/yes)
if partially, mention which endpoints are webhook-based
 no

Available authentication modes (API key/Oauth/other) 
Linnworks API Authentication is working through AuthorizeByApplication call. In response from AuthorizeByApplication call we will receive session the token and the server that will have to use in Authorization Header and URL for all consecutive calls. The generated token will expire after 30 minutes of inactivity, at which point the AuthorizeByApplication endpoint will need to be called again to generate a new token. https://apidocs.linnworks.net/#eb2f41ce-c2bb-451a-b809-975b40de055b

Connecting to the data source
what kind of API is it? (SOAP/GraphQL/REST/other) REST API https://apps.linnworks.net/Api

is there an SDK available? Can we connect with HTTP requests directly? yes https://github.com/LinnSystems/LinnworksNetSDK

If this is a database/datalake/pubsub source, does it have a JDBC driver or Java SDK? no

Creating an account
Select one of the below options
self-service free account available? no Linnworks Standard: £150 p/month for 20,000 SKUs and 1,000 monthly orders (£0.14 per order thereafter).  Sent email about sandbox account to support.

Sandbox account expiries "2022-01-01 T00:00:00Z"

karinakuz commented 2 years ago

How to populate the account with data? Can it be done entirely through the API? yes

Will it require some work through the UI? If so, what is required? no

Available streams for sync

main:


Settings /GetAvailableTimeZones https://apps.linnworks.net/Api/Method/Settings-GetAvailableTimeZones Settings /GetLatestCurrencyRate https://apps.linnworks.net/Api/Method/Settings-GetLatestCurrencyRate

Inventory /GetBatchAudit https://apps.linnworks.net/Api/Method/Inventory-GetBatchAudit Inventory /GetBatchInventoryById https://apps.linnworks.net//Api/Method/Inventory-GetBatchInventoryById Inventory /GetCategories https://apps.linnworks.net//Api/Method/Inventory-GetCategories Inventory /GetInventoryItemAuditTrail https://apps.linnworks.net/Api/Method/Inventory-GetInventoryItemAuditTrail Inventory /GetInventoryItemBatchInformationByIds https://apps.linnworks.net//Api/Method/Inventory-GetInventoryItemBatchInformationByIds Inventory /GetInventoryItemById https://apps.linnworks.net/Api/Method/Inventory-GetInventoryItemById Inventory /GetPackageGroups https://apps.linnworks.net/Api/Method/Inventory-GetPackageGroups Inventory /GetPostalServices https://apps.linnworks.net//Api/Method/Inventory-GetPostalServices Inventory /GetPreDefinedViews https://apps.linnworks.net/Api/Method/Inventory-GetPreDefinedViews Inventory /GetProductIdentifierTypes https://apps.linnworks.net//Api/Method/Inventory-GetProductIdentifierTypes Inventory /GetProductIdentifiersBulkByStockItemId https://apps.linnworks.net//Api/Method/Inventory-GetProductIdentifiersBulkByStockItemId Inventory /GetProductIdentifiersByStockItemId https://apps.linnworks.net//Api/Method/Inventory-GetProductIdentifiersByStockItemId Inventory /GetStockItemBatchesByLocation https://apps.linnworks.net//Api/Method/Inventory-GetStockItemBatchesByLocation Inventory /GetStockLocations https://apps.linnworks.net/Api/Method/Inventory-GetStockLocations Inventory /GetStockSupplierStat https://apps.linnworks.net/Api/Method/Inventory-GetStockSupplierStat Inventory /GetSuppliers https://apps.linnworks.net//Api/Method/Inventory-GetSuppliers Inventory /GetSupplierDetails https://apps.linnworks.net//Api/Method/Inventory-GetSupplierDetails

Orders /GetOpenOrders https://apps.linnworks.net//Api/Method/Orders-GetOpenOrders Orders /GetOrderById https://apps.linnworks.net/Api/Method/Orders-GetOrderById Orders /GetOrderDetailsByNumOrderId https://apps.linnworks.net/Api/Method/Orders-GetOrderDetailsByNumOrderId Orders /GetOrderPackagingCalculation https://apps.linnworks.net/Api/Method/Orders-GetOrderPackagingCalculation Orders /GetOrderViews https://apps.linnworks.net/Api/Method/Orders-GetOrderViews Orders /GetPackagingGroups https://apps.linnworks.net/Api/Method/Orders-GetPackagingGroups Orders /GetPaymentMethods https://apps.linnworks.net//Api/Method/Orders-GetPaymentMethods Orders /GetShippingMethods https://apps.linnworks.net//Api/Method/Orders-GetShippingMethods

ProcessedOrders /GetOrderInfo https://apps.linnworks.net//Api/Method/ProcessedOrders-GetOrderInfo

PurchaseOrder /Get_PurchaseOrderAudit https://apps.linnworks.net//Api/Method/PurchaseOrder-Get_PurchaseOrderAudit PurchaseOrder /Get_PurchaseOrder https://apps.linnworks.net//Api/Method/PurchaseOrder-Get_PurchaseOrder

Stock /GetStockItems https://apps.linnworks.net//Api/Method/Stock-GetStockItems

Please mention if any of the endpoints are asynchronous (meaning we have to make a request, wait for the server to compute a response, then make another request to obtain the result) no

if this is a source where the schema is dynamic/not fixed e.g: database, mention the data model of the connector i.e: relational, document-based, graph-based, etc
 no

Do any streams support incremental sync? not necessary to mention all of them, just saying “none”, “some”, or “all” is sufficient. If only some streams, please mention which ones support incremental sync
 some Settings /GetLatestCurrencyRate Inventory /GetBatchAudit Inventory /GetBatchInventoryById Inventory /GetInventoryItemAuditTrail Inventory /GetInventoryItemBatchInformationByIds Inventory /GetInventoryItemById Inventory /GetProductIdentifiersBulkByStockItemId Inventory /GetProductIdentifiersByStockItemId Inventory /GetStockItemBatchesByLocation Orders /GetOpenOrders Orders /GetOrderById Orders /GetOrderDetailsByNumOrderId ProcessedOrders /GetOrderInfo PurchaseOrder /Get_PurchaseOrderAudit PurchaseOrder /Get_PurchaseOrder Stock /GetStockItems

karinakuz commented 2 years ago

Preparation

Creating the account [ ] create an account, get access credentials, add notes to LastPass Description with name "Linnworks" (3h)

Populating the account with data [ ] Do activities on the account. Populating account with the data. Creating API queries in Postman to get main streams data (8h).

[] Describing the output schema Schemas https://drive.google.com/drive/folders/1z2YgKujY3rLsnfgpiKrPwter6591fJq7?usp=sharing or in 'Zazmic / Connector Schemas' folder (1h 30m)