Microsoft Dynamics to Craft CMS Integration

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.

Label
Ampersand

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.

Banner
Pipe

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.

Parens