コード例 #1
0
        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;
            }
        }