In this article, I am going to put some light on different ways to connect Microsoft dynamics GP from Magento, Magento is using PHP language. So, I am going to show different integration options available for a PHP developer to integrate with Microsoft Dynamics GP.
Microsoft Dynamics GP provides two types of web services
- Legacy Service
- Native Service
Why has MS Dynamics GP two services?
First of all, what ASMX web service? Basically, ASMX web services are easy to use and are hosted on Microsoft Internet Explorer (IIS). This web service is developed in 2001-2002 when .net framework 1.1.
Now Microsoft has developed WCF service which is 10 times better than ASMX service. Since, it is hosted on windows service, console application, and IIS. In dynamics, GP WCF service is hosted on windows service.
Can we connect PHP with MS Dynamics GP Native Service?
NO, Since PHP SOAP client will not support wsHttpBinding of WCF service. you will not be able to authorize user from a native endpoint.
Can we connect PHP with MS Dynamics GP Legacy Service?
First of all, No, ideally PHP works with ASMX service. but in a case of dynamics GP you just can’t easily get into. Since there are multiple security and policy layers involved in accessing dynamics GP data.
Thus, if you want to give a try then I would advise checking this article out http://www.sbp-romania.com/Blog/2014/11/05/how-to-call-a-wcf-asmx-web-service-from-php.aspx which talks about connecting ASMX and WCF services from PHP. Consequently, though you may be successful to connect PHP and ASMX but connecting with GP is really a nightmare.
So, There is one easy way to connect with Dynamics GP from PHP is by using e-Connects web services. e-Connects is separate installer which needs to be installed along with GP software. Both Native and ASMX services use e-Connects to access data from GP.
so what is e-connect?
in simple terms its SQL server stored procedures which access XML as input parameters.
How does integration with e-connect works?
Most noteworthy, Since e-Connect is different stored procedures which accept XML as stored procedure parameter. So, as long as you pass the correct XML data which is written as per document’s schema than your XML will be accepted.
Consequently, In order to integrate PHP or Magento with Dynamics GP. So, you will need to develop a bridge which connects PHP with Dynamics. i.e it’s easy to develop ASP.NET WEBAPI (REST web services) which can act as a bridge and handles communication between Magento and GP. Here are some examples using Asp.Net MVC Web API.
Your asp.net MVC web API developer needs to develop authentication and CRUD services. Thus, where you can pass XML document of different type and it will pass it on to e-connects stored procedures.
Finally, Use of web APIs seems like the quickest way to get API Integration working between MS Dynamics GP and Magento. but then here are few disadvantages of this approach.
- Magento development team will have to manually from all XML documents based on documentation and samples. please check sample document structure for creating an item.
- Generation of Nested XML nodes and various documents can be tricky and time-consuming.
What are the other options for integration?
- Use prebuilt integration. this is the shortest way to get things working. Therefore, not advisable when you have customized Magento and MS GP to match your business needs. So, It may lake flexibility and cost can be as high as 4.5 to 8k.
- Use Custom Integration. Consequently, this approach will take a couple of weeks of development effort but then we can be assured that integration is as per business needs. So, you have control over it to extend functionality as you grow your business.
Integration between Microsoft Dynamics GP with Magento has many possible options but due to security restrictions. Consequently, the different policy applied over MS dynamics GP authentication part. It’s very difficult to get PHP and Microsoft GP work with each other. Hence, Ideal solution is to develop a mediator software in Asp.Net MVC as windows service (runs in the background). So that, it connects with both Magento and Microsoft Dynamics GP both.