Advice on Integrating our WMS (ASP.Net web app) to Sage 50

SUGGESTED

We have a Warehouse Management System (WMS) that is a Saas Web Application (not an intranet hosted web app) that is external to our company's network and firewall. 

We want to integrate it with a local Sage 50 instance.

Our thought was that we needed a "go between" desktop app that would call the web wms web services to push and pull data from the cloud WMS and then communicate locally with Sage 50. This is how Quickbooks architecture is when you want to integrate it's desktop app to a web service...except they provide that go between application (Quickbooks Web Connector). I believe Sage does not, so we'd have to write it. Thoughts on this architecture...are we on the right track or is there a Sage solution that will act as this "go between" middleman app?

Next hurdle: Inventory Adjustments

The .Net API shows that it doesn't support inventory adjustments.

Thinking we could handle most inventory adjustments like posting receipts to increase inventory from purchasing and posting Sales Invoices to decrement inventory from sales like the below high level process flows

Inventory Increments from Purchasing:

  • Create PO in Sage
  • Import PO into WMS from Sage
  • Create Receipt in WMS
  • Post Receipt against PO to Sage (increments inventory)

Decrementing Inventory from Sales Orders:

  • Create Sale Order in Sage
  • Import Sales Order into WMS from Sage
  • Perform pick, ship operations in WMS
  • Post Sales Invoice to reflect actual shipped items (decrements inventory)

How does that sound so far?

Next...generic inventory adjustments as a result of damaged goods, cycle counting, etc. Any ideas on how to handle these types of adjustments via the .Net API? A bit hacky, but maybe having a blanket PO and Sales Order to post to for increments and decrements?

This next question will show I'm primarily a web app developer...so sorry if it is rudimentary. I see the COM method does allow inventory adjustments, but haven't used this type of technology before....can I use it in conjunction with this "go between" .NET windows app that I discussed earlier?

Thanks in advance,

Chad

  • 0
    SUGGESTED
    A go-between "Connector" desktop application sounds like a good approach to me.

    You don't need to use Purchase Orders and Sales Orders in Sage 50 US. Just use Payments and Receipts.

    Or, you could use the COM API and generate Inventory Adjustments. Note that the COM API requires that you actually be able to run Sage 50 US, including displaying the UI. The .NET SDK doesn't have this requirement, so it is more suitable for a background application. Unfortunately, as you have noted, the .NET SDK doesn't support Inventory Adjustments. It also won't handle Serialized inventory transactions.
  • 0
    Incite,
    I discovered there was no possible way to communicate with Sage 50 directly from a website. I figured out a work-around but didn't have the opportunity to actually develop it (we ended up purchasing Sage 100).

    Using the SDK I discovered I would be able to create a Windows Service to run on the Sage server (to ensure it would always run and no one would close it). The service would then update the web server database with any new information every couple minutes. In theory, it would work but, as I said, I didn't have the chance to fully develop it.
    I created a small windows form app to test, and to completely duplicate everything (Sales Orders, Inventory, Customers, Purchase Orders) we needed on the website it took approximately 10-15 seconds. Once the data was in the database the service checked if the data already existed and that completed in about 1-2 seconds.
    I didn't have the chance to fully test the Web Server Database to Sage Server but with the demo applications provided with the SDK it should be pretty straight forward.
  • 0
    SUGGESTED
    We have an addon that works as connector from Sage50 to intermedia database (like MYSQL). If you want a demo email me.
  • 0 in reply to larmuelles

    Please reach out to me I'm looking for something like this.