Magento has an API and it seems some people are using it via VB.NET but I cannot get it to work after trying for many hours.
I’m on Magento 1.7.0.2 Trying to get a VB.NET app working with the API. I’m using the WS-I compliant web service setting.
Error 1 Custom tool error: Unable to import WebService/Schema. Unable to import binding ‘Mage_Api_Model_Server_Wsi_HandlerBinding’ from namespace ‘urn:Magento’. The operation ‘catalogProductAttributeRemove’ on portType ‘Mage_Api_Model_Server_Wsi_HandlerPortType’ from namespace ‘urn:Magento’ had the following syntax error: The operation has no matching binding. Check if the operation, input and output names in the Binding section match with the corresponding names in the PortType section. d:\Documents\Visual Studio 2010\Projects\Mage\Mage\My Project\Settings.settings 1 1 Mage
if I try to add it as a Service Reference (instead of a Web Reference) I get a different set of errors.
Cannot import wsdl:binding Cannot import wsdl:port Cannot import wsdl:portType
Error 5 Custom tool error: Failed to generate code for the service reference ‘ServiceReference1’. Please check other error and warning messages for details. d:\Documents\Visual Studio 2010\Projects\Mage\Mage\Service References\ServiceReference1\Reference.svcmap 1 1 Mage
Warning 3 Custom tool warning: Cannot import wsdl:binding Detail: There was an error importing a wsdl:portType that the wsdl:binding is dependent on. XPath to wsdl:portType: //wsdl:definitions[@targetNamespace=’urn:Magento’]/wsdl:portType[@name=’Mage_Api_Model_Server_Wsi_HandlerPortType’] XPath to Error Source: //wsdl:definitions[@targetNamespace=’urn:Magento’]/wsdl:binding[@name=’Mage_Api_Model_Server_Wsi_HandlerBinding’] d:\Documents\Visual Studio 2010\Projects\Mage\Mage\Service References\ServiceReference1\Reference.svcmap 1 1 Mage
Warning 4 Custom tool warning: Cannot import wsdl:port Detail: There was an error importing a wsdl:binding that the wsdl:port is dependent on. XPath to wsdl:binding: //wsdl:definitions[@targetNamespace=’urn:Magento’]/wsdl:binding[@name=’Mage_Api_Model_Server_Wsi_HandlerBinding’] XPath to Error Source: //wsdl:definitions[@targetNamespace=’urn:Magento’]/wsdl:service[@name=’MagentoService’]/wsdl:port[@name=’Mage_Api_Model_Server_Wsi_HandlerPort’] d:\Documents\Visual Studio 2010\Projects\Mage\Mage\Service References\ServiceReference1\Reference.svcmap 1 1 Mage
Warning 2 Custom tool warning: Cannot import wsdl:portType Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.XmlSerializerMessageContractImporter Error: Element message named catalogProductAttributeRemoveRequest from namespace urn:Magento is missing. XPath to Error Source: //wsdl:definitions[@targetNamespace=’urn:Magento’]/wsdl:portType[@name=’Mage_Api_Model_Server_Wsi_HandlerPortType’] d:\Documents\Visual Studio 2010\Projects\Mage\Mage\Service References\ServiceReference1\Reference.svcmap 1 1 Mage
Can someone give me very explicit instruction/code on how to make a call and get a result? I can't even seem to get the initial configuration correct. I've downloaded some code others have provided online, but if doesn't work--probably because it was for a earlier version.
Finally got this working.
Add your webservice as usual (it will fail to compile but add it anyway)
Open Magento.wsdl (or whatever your VS has called the wsdl file in your web reference) and remove the call to catalogProductAttributeRemove completely.
Fire up the Visual Studio Command Prompt and navigate to your project, then the "Web References"
Type: wsdl /language:VB /out:Reference.vb Magento.wsdl /namespace:com.yourwebservicename.www
This will correctly generate the reference.vb file you need to continue.
That code needs tweaking obviously- i have not got time to prettify this stuff
from Abid Hussain's link
1. Using wdsl tool I created a .vb source file by calling:
2. Afterwards I used the VB Comand Line Editor to compile the sourcefile into a dll.
3. Finally I was able to create an instance of MagentoService class defined in my MageProxyClass.dll
4. Example:
You may want to give this example a try
Also a more detailed C# library for Magento can be found here: