protected void APITest() { //static test Mage_Api_Model_Server_V2_HandlerPortTypeClient Mclient = new Mage_Api_Model_Server_V2_HandlerPortTypeClient(); string MsessionId = ""; try { //login MsessionId = Mclient.login(m_apiUserName, m_apiKey); } catch { } try { catalogCategoryTree ctree = Mclient.catalogCategoryTree(MsessionId, "0", ""); } catch { } try { catalogCategoryEntityNoChildren[] clist = Mclient.catalogCategoryLevel(MsessionId, "", "", ""); } catch { } try { catalogCategoryEntityNoChildren[] clist = Mclient.catalogCategoryLevel(MsessionId, "", "", ""); } catch { } try { catalogCategoryInfo cinfo = Mclient.catalogCategoryInfo(MsessionId, 4, "", null); } catch { } try { catalogProductAttributeSetEntity[] pasList = Mclient.catalogProductAttributeSetList(MsessionId); } catch { } //---------------------SALES EXPORT---------------------------- try { //salesOrderEntity[] sorders = Mclient.salesOrderList(MsessionId, null); salesOrderEntity[] sorders = Mclient.salesOrderList(MsessionId, null); if (sorders.Length > 0) { //TODO: create header line for sales export foreach (salesOrderEntity s in sorders) { string customerid = s.customer_id; if (s.customer_is_guest.Equals("1")) { customerid = s.customer_email; if (customerid == null || customerid.Length < 1) customerid = s.increment_id; } string date = s.created_at; salesOrderEntity sinfo = Mclient.salesOrderInfo(MsessionId, s.increment_id); foreach (salesOrderItemEntity item in sinfo.items) { string productid = item.product_id; string quantity = item.qty_ordered; int len = quantity.IndexOf("."); if (len > 0) quantity = quantity.Substring(0, len); //remove fractional part //TODO: add line to sales data here } } //TODO: upload sales data } } catch { } //dynamic test DynamicProxy proxy = GetSoapProxy(m_wsdlUrl, "Mage_Api_Model_Server_V2_HandlerPortType"); if (proxy == null) throw new Exception("Unable to create SOAP proxy for Magento"); //login to get a session id object resultObj = proxy.CallMethod("login", m_apiUserName, m_apiKey); string sessionID = resultObj.ToString(); Type t; XmlSerializer xs; try { //catalog_category.info catalogCategoryInfo resultObj = proxy.CallMethod("catalog_category.info", sessionID); XElement categories = XmlSerializerExtension.SerializeAsXElement(resultObj); //t = resultObj.GetType(); //xs = new XmlSerializer(t); //XElement categories = xs.SerializeAsXElement(resultObj); foreach (XElement category in categories.Elements("catalogCategoryEntity")) { string test = category.Element("").Value; } } catch (Exception ex) { string errMsg = "Error extracting catalog: " + ex.Message; if (ex.InnerException != null) errMsg += "\nInner Exception" + ex.InnerException.Message; } try { //catalog_category.tree catalogCategoryTree resultObj = proxy.CallMethod("catalog_category.tree", sessionID); XElement categoryTree = XmlSerializerExtension.SerializeAsXElement(resultObj); //t = resultObj.GetType(); //xs = new XmlSerializer(t); //XElement categoryTree = xs.SerializeAsXElement(resultObj); foreach (XElement category in categoryTree.Elements("catalogCategoryEntity")) { string test = category.Element("").Value; } } catch (Exception ex) { string errMsg = "Error extracting catalog: " + ex.Message; if (ex.InnerException != null) errMsg += "\nInner Exception" + ex.InnerException.Message; } try { //product_attribute_set.list catalogProductAttributeSetList resultObj = proxy.CallMethod("product_attribute_set.list", sessionID); XElement attributes = XmlSerializerExtension.SerializeAsXElement(resultObj); //t = resultObj.GetType(); //xs = new XmlSerializer(t); //XElement attributes = xs.SerializeAsXElement(resultObj); foreach (XElement attribute in attributes.Elements("catalogProductAttributeSetEntity")) { string test = attribute.Element("").Value; } } catch (Exception ex) { string errMsg = "Error extracting catalog: " + ex.Message; if (ex.InnerException != null) errMsg += "\nInner Exception" + ex.InnerException.Message; } //---------------------SALES EXPORT---------------------------- try { //sales_order.list salesOrderList resultObj = proxy.CallMethod("sales_order.list", sessionID); XElement orders = XmlSerializerExtension.SerializeAsXElement(resultObj); //t = resultObj.GetType(); //xs = new XmlSerializer(t); //XElement orders = xs.SerializeAsXElement(resultObj); foreach (XElement order in orders.Elements("salesOrderEntity")) { string orderID = Client.GetValue(order, "order_id"); string date = Client.GetValue(order, "created_at"); //Get order details sales_order.info salesOrderInfo resultObj = proxy.CallMethod("sales_order.info", sessionID, orderID); XElement orderInfo = XmlSerializerExtension.SerializeAsXElement(resultObj, "salesOrderInfo"); //t = resultObj.GetType(); //if (!t.Name.Equals("salesOrderInfo")) // throw new Exception("Illegal response from magento service"); //xs = new XmlSerializer(t); //XElement orderInfo = xs.SerializeAsXElement(resultObj); //salesOrderEntity orderInfo = (salesOrderEntity)resultObj; string customerID = Client.GetValue(orderInfo, "customer_id"); //orderInfo.customer_id; bool isGuest = Client.GetValue(orderInfo, "customer_is_guest").Equals("1");//orderInfo.customer_is_guest.Equals("1"); if (isGuest) customerID = Client.GetValue(orderInfo, "customer_email"); //orderInfo.customer_email; //foreach (salesOrderItemEntity item in orderInfo.items) foreach (XElement items in orderInfo.Elements("items")) foreach (XElement x in items.Elements("salesOrderItemEntity")) { string productID = Client.GetValue(x, "product_id"); //item.product_id; string q = Client.GetValue(x, "qty_ordered"); int len = q.IndexOf("."); if (len > 0) q = q.Substring(0, len); int quantity = Convert.ToInt32(q); //item.qty_ordered); //TODO: add line to sales data here } } //TODO: upload sales data (check that string has some data in it) } catch (Exception ex) { string errMsg = "Error extracting catalog: " + ex.Message; if (ex.InnerException != null) errMsg += "\nInner Exception" + ex.InnerException.Message; } }