Some time ago I met with a wholesaler who supplied a wide range of products to stores across the country. He used Handshake B2B platform to collect orders from his sales staff and BusinessVision accounting software for his backoffice functions. His requirement was an interface that would allow him to transfer his sales orders quickly and accurately from the Handshake cloud server to his system for processing.
A typical order could consist of more than a hundred lines and item prices were quoted based on price breaks defined for each customer in the system. Individual orders were downloaded from the cloud server and manually entered into the system to be processed for order fulfillment, shipping and billing.This process was very time-consuming and prone to errors. Since the business was growing rapidly, it was necessary to find a way of modernizing the process.
An ideal solution would have been an automated solution to download and input all orders, but this was not practical. BusinessVision offered a limited import feature, but a major challenge was lack of documentation on the import file format and procedure. Handshake provided a utility that allowed multiple orders to be combined into a single download file from the cloud server. The simplest solution was to download the combined order data, extract and recreate the individual orders and map the data into a suitable format for import into BusinessVision. The file download and import action would have to be performed manually.
A small Python program was written to perform the following functions
- Extract data from the bulk download
- Recreate individual sales orders
- Map data to BusinessVision record format
- Store Handshake order details for cross-reference
- Import data as individual orders
- Verify data integrity during import process
- Provide a summary report order of order and line item totals per order after import
In our final tests we were able to process batches of 1 to 500 orders, ranging from a single line item to 200 line items per order, in roughly 20 minutes with 100% accuracy. The internal routines in BusinessVision introduced most of the processing delay. The final code was completed in under 200 lines of source code. The orders were imported as quotes and sent out to the warehouse for picking and packing. Once an order was completed, the quote was converted to an invoice and entered into the billing process.
Net result of the project was an increase in speed of order processing and shipping, improved inventory and restocking control and accuracy in billing.