We built an integration between Craft CMS and Microsoft Dynamics, an enterprise-level ERP system.
What
Integrate Craft CMS with MS Dynamics GP.
Why
Streamline the arrival of e-commerce orders into a fulfillment system.
How
We wrote a plugin for Craft CMS that talked to a middleware service called SmartConnect.
Overview
We were contacted by a design and development shop that was putting together a pitch to a new client to use Craft CMS for a site redesign. The whole deal was gated on Craft being able to get form submission data into the client's Microsoft Dynamics GP install. Going from PHP into Windows usually includes a little bit of death and dismemberment, but we at Solspace dig into that sort of thing. So we took the deal.
Process + Relationship
When Solspace is faced with a new and unknown challenge, we have a process. An important part of that process is to find out who the right people are who can help get answers to questions and do stuff with code and servers. In other words, difficult problems on the web are best solved through good relationships. So we went about building relationships with our dev shop client and their client.
Tell the Truth
The first step in building a new relationship is earning trust. And one of the first steps in earning trust is telling the truth. In this case, telling the truth meant admitting that we had no clue how to get a LAMP stack tool like Craft to talk to a Microsoft system like MS Dynamics GP. In fact, that's the main premise when we begin our discovery and proof-of-concept process — that we don't know. The goal is to walk into a problem situation with very little clue about the known unknowns and the unknown unknowns, and then to walk out with a plan.
Buy the Pipe or Build the Pipe?
So we built up a relationship, and we learned quickly. We did a search on the methods people use to connect to MS Dynamics GP (an enterprise accounting tool). We learned that you need to buy a subscription to a 3rd party connection provider, and you need to load the 3rd party company's product onto the Windows server that runs GP so you can then make connections into that machine. We interviewed some principals at the client's company and learned that their support staff had used a product called SmartConnect from eOne Solutions in the past. We got their technical sales group on the line and asked some probing questions. We were reasonably satisfied that we had found a viable candidate.
Helpful Code
Our discovery and proof-of-concept exercises normally result in a single executable test file that can sit on a server and be available to all parties involved in the project. In a separate blog post, I detail that bit of code and make it available to others who might need to solve a similar problem. You can read that post here.
No fewer than 10 IT professionals were involved in getting this project to a successful conclusion. (No animals were hurt during this event.) Now that the discovery was complete, we were in a position to write a complete proposal for the full integration build with accurate budget estimates and timelines.