Problem Statement:
To build a Data exchange interface that manages the incoming Shipments, Sales, and Purchase Orders from different Woocommerce websites of a Business Central (BC) based client using Azure.
GitHub
Tools and Technologies:
- Azure Data Factory, Azure Data Lake, Microsoft Azure SQL Database, SQL Server Management Studio, Logic App, Azure Key Vault, Secure File Transfer Protocol (SFTP), Business Central, SoapUI
Summary:
- Designed and Implemented the Data Exchange Interface for incoming Shipments, Sales, and Purchase Orders using Azure Data Factory.
- Created the pipelines from scratch to manage the orders for different regions having different flows. Triggered the master pipeline to check for incoming orders. Also handled the errors and failures.
- It started with 6 Ecommerce websites. Now it is extended to 10 websites from the UK, US, and EU.
- Third-party integration with Business Central.
- More than ten thousand orders have been processed from this implementation in Business Central.
Explanation:
We get the Sale and Purchase order files in XML format from the WooCommerce team in different SFTP Servers. We save them in our staging area which is Azure Blob and then in Azure SQL. Then we send these sales order Files to Business Central using Soap Webservices(Pages and Codeunits) to their respective Companies using ADF.
It has different flows depending upon the different Regions:
- In the UK: We get the SaleOrders, post their Order and Shipment in BC then send back the confirmation files to WooCommerce Team because they have their warehouse in the UK.
- In the US: We get the SaleOrders and also the Shipment Files because they have their 3PL partner in the US who is responsible for Shipments.
In the EU: We did not get sales order files from WooCommerce. The 3PL partner in the EU deals with CSV only. On releasing Sales Orders and Purchase Orders we send them their files in CSV and in return they send us the confirmations of sale orders and purchase orders through which we post the Orders in BC.