public salesOrderEntity get_order_detail(string order_id) { MagentoService mservice = new MagentoService(); String mlogin = mservice.login("admin", "Interconnection123!"); var result = mservice.salesOrderInfo(mlogin, order_id); return(result); }
public static void Main(string [] args) { mIgnoreInvalidCertificates = new System.Net.Security.RemoteCertificateValidationCallback(delegate { return(true); }); MagentoService mageService = new MagentoService(); string mageSession = null; if (args.Length < 3) { Console.WriteLine("Usage; ListOrders apiUser apiKey status [processing|complete|pending]"); return; } try { _apiUser = args[0]; _apiKey = args[1]; _orderToInvoice = args[2]; Console.WriteLine("Connecting to " + mageService.Url); if (_beSecure) //require secure communications { System.Net.ServicePointManager.ServerCertificateValidationCallback -= mIgnoreInvalidCertificates; Console.WriteLine("Requiring Valid Certificates from Remote Sites"); } else /// Allow connections to SSL sites that have unsafe certificates. { System.Net.ServicePointManager.ServerCertificateValidationCallback += mIgnoreInvalidCertificates; Console.WriteLine("Ignoring Invalid Certificates from Remote Sites"); } mageSession = mageService.login(_apiUser, _apiKey); } catch (Exception ex) { Console.WriteLine("Login failed: \"" + ex.Message + "\"\n"); return; } try { salesOrderEntity orderDetail = mageService.salesOrderInfo(mageSession, _orderToInvoice); List <orderItemIdQty> invoiceInfo = new List <orderItemIdQty>(); foreach (salesOrderItemEntity li in orderDetail.items) { Console.WriteLine("Item:" + li.item_id + " Qty:" + li.qty_ordered + " (" + li.name + ")"); orderItemIdQty invoiceLineItem = new orderItemIdQty(); invoiceLineItem.order_item_id = Convert.ToInt32(li.item_id); invoiceLineItem.qty = Convert.ToDouble(li.qty_ordered); invoiceInfo.Add(invoiceLineItem); if (_wantXml) { System.Xml.Serialization.XmlSerializer xmlLineItemDetail = new System.Xml.Serialization.XmlSerializer(li.GetType()); xmlLineItemDetail.Serialize(Console.Out, li); Console.WriteLine(); } } orderItemIdQty[] invoiceQtys = invoiceInfo.ToArray(); /* Create an invoice, and then capture it. Although we are reporting errors, * we don't do anything about them, Nor do we stop processing. */ try { string invoiceIncrementId = mageService.salesOrderInvoiceCreate(mageSession, _orderToInvoice, invoiceQtys, "Invoiced via API", "1", "1"); try { mageService.salesOrderInvoiceCapture(mageSession, invoiceIncrementId); } catch (Exception ex) { Console.WriteLine("Invoice Capture Error: \"" + ex.Message + "\""); } } catch (Exception ex) { Console.WriteLine("Invoice Create Error: \"" + ex.Message + "\""); } // Create the shipment, and add tracking for it. Similar to invoicing, we don't stop for errors. try { string shipmentIncrementId = mageService.salesOrderShipmentCreate(mageSession, _orderToInvoice, invoiceQtys, "Shipment via API", 1, 1); associativeEntity[] validCarriers = mageService.salesOrderShipmentGetCarriers(mageSession, _orderToInvoice); if (_wantXml) { System.Xml.Serialization.XmlSerializer xmlValidCarriers = new System.Xml.Serialization.XmlSerializer(validCarriers.GetType()); xmlValidCarriers.Serialize(Console.Out, validCarriers); Console.WriteLine(); } try { mageService.salesOrderShipmentAddTrack(mageSession, shipmentIncrementId, "ups", "Schiff UPS Shipping", "1Z9999999999999999"); } catch (Exception ex) { Console.WriteLine("Add Shipment Tracking Error: \"" + ex.Message + "\""); } } catch (Exception ex) { Console.WriteLine("Shipment Create Error: \"" + ex.Message + "\""); } /* Assuming everything went well (which we do ASSume), this order has been Imported into ERP, Invoiced, * Captured, and Shipped Complete. */ mageService.salesOrderAddComment(mageSession, _orderToInvoice, "complete", "Order Completed via API", "0"); mageService.endSession(mageSession); } catch (Exception ex) { Console.WriteLine("Error: \"" + ex.Message + "\"\n"); } }
protected string ApiTest() { string result = "\n" + CatalogFilename + ": "; string tempDisplay = ProgressText; ProgressText += result + "Rows to export..."; StopWatch exportWatch = new StopWatch(true); #if MAGENTO_API_AVAILABLE #region Static Trevor if (static_proxy && m_alias.Equals("Trevor")) { MagentoService Mclient = new MagentoService(); string MsessionId = ""; //---------------------CATALOG EXPORT---------------------------- try { MsessionId = Mclient.login(m_apiUserName, m_apiKey); catalogProductEntity[] plist = Mclient.catalogProductList(MsessionId, null, ""); if (plist.Length < 1) throw new Exception("No products available"); //TODO: create catalog file header string type = ""; foreach (catalogProductEntity p in plist) { string pid = p.product_id; if (p.type.Equals("simple")) //only export combined items or else simple items with no parents { bool isChild = false; catalogProductLinkEntity[] plinks = Mclient.catalogProductLinkList(MsessionId, "grouped", pid, "id"); foreach (catalogProductLinkEntity pl in plinks) if (pl.type.Equals("configurable")) { isChild = true; break; } if (isChild) continue; } else type += p.type + " "; string pname = p.name; string patt1 = ""; bool first = true; foreach (string cid in p.category_ids) { if (first) first = false; else patt1 += ","; patt1 += cid; } catalogProductReturnEntity pinfo = Mclient.catalogProductInfo(MsessionId, pid, "", null, "id"); catalogProductReturnEntity pPriceInfo = Mclient.catalogProductGetSpecialPrice(MsessionId, pid, "", "id"); string patt2 = ""; string pprice = pPriceInfo.price; ; if ((pPriceInfo.special_from_date != null) && (pinfo.special_to_date != null)) { DateTime saleStart = DateTime.Parse(pPriceInfo.special_from_date); DateTime saleEnd = DateTime.Parse(pPriceInfo.special_to_date); DateTime now = DateTime.Now; if (now >= saleStart && now <= saleEnd) pprice = pPriceInfo.special_price; } string pfilter = ""; string plink = pinfo.url_key; string pimage = ""; string psku = pinfo.sku; catalogProductImageEntity pimageinfo = null; try { pimageinfo = Mclient.catalogProductAttributeMediaInfo(MsessionId, pid, "", "", "id"); } catch { } if (pimageinfo != null) { pimage = pimageinfo.url; } } } 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 { } } #endregion #endif #region Static GoStore Mage_Api_Model_Server_V2_HandlerPortTypeClient Mclient = new Mage_Api_Model_Server_V2_HandlerPortTypeClient(); string MsessionId = ""; //---------------------CATALOG EXPORT---------------------------- try { //login //MsessionId = Mclient.login(m_apiUserName, m_apiKey); MsessionId = Mclient.login("4Tell", "4tellsoftware"); //condomania //Get API calls available apiEntity[] resources = Mclient.resources(MsessionId); //resultObj = proxy.CallMethod("resources", sessionID); //Type t = resultObj.GetType(); //XmlSerializer xs = new XmlSerializer(t); //XElement resources = xs.SerializeAsXElement(resultObj); //TODO: check each CallMethod to make sure it is in this list... //Set product attributes to fetch catalogProductRequestAttributes prodAttributes = new catalogProductRequestAttributes(); string[] attributes = { "sku", "url_key", "price", "special_price", "special_from_date", "special_to_date", "parent_item_id" }; prodAttributes.attributes = attributes; //filters prodFilters = new filters(); //associativeEntity[] filterList = new associativeEntity[1]; //filterList[0].key = ""; //filterList[0].value = ""; //loop through all products StringBuilder data = new StringBuilder(CommonHeader + ProductRecord.Header()); catalogProductEntity[] plist; Mclient.catalogProductList(out plist, MsessionId, null, ""); string type = ""; int maxCid = 0; foreach (catalogProductEntity p in plist) { string pid = p.product_id; if (p.type.Equals("simple")) //only export combined items or else simple items with no parents { //bool isChild = false; //catalogProductLinkEntity[] plinks = Mclient.catalogProductLinkList(MsessionId, "grouped", pid, "id"); //foreach (catalogProductLinkEntity pl in plinks) // if (pl.type.Equals("configurable")) // { // isChild = true; // break; // } //if (isChild) continue; } else type += p.type + " "; string pname = p.name; string patt1 = ""; bool first = true; foreach (string cid in p.category_ids) { if (first) first = false; else patt1 += ","; patt1 += cid; int id = Convert.ToInt32(cid); if (id > maxCid) maxCid = id; } string patt2 = ""; catalogProductReturnEntity pinfo = Mclient.catalogProductInfo(MsessionId, pid, "", prodAttributes, "id"); string pprice = pinfo.price; ; if ((pinfo.special_from_date != null) && (pinfo.special_to_date != null)) { DateTime saleStart = DateTime.Parse(pinfo.special_from_date); DateTime saleEnd = DateTime.Parse(pinfo.special_to_date); DateTime now = DateTime.Now; if (now >= saleStart && now <= saleEnd) pprice = pinfo.special_price; } string pfilter = ""; string plink = pinfo.url_key; string pimage = ""; string psku = pinfo.sku; catalogProductImageEntity pimageinfo = null; try { pimageinfo = Mclient.catalogProductAttributeMediaInfo(MsessionId, pid, "", "", "id"); } catch { try { pimageinfo = Mclient.catalogProductAttributeMediaInfo(MsessionId, psku, "", "", "sku"); } catch { } } if (pimageinfo != null) { pimage = pimageinfo.url; } data.Append(pid + "\t" + pname + "\t" + patt1 + "\t" + patt2 + "\t" + pprice + "\t" + pfilter + "\t" + plink + "\t" + pimage + "\t" + psku + "\r\n"); } result += m_boostService.WriteTable(m_alias, CatalogFilename, data); //get cat info result += "\n" + Att1Filename + ": "; ProgressText = tempDisplay + result + "Exporting..."; catalogCategoryInfo cinfo; StringBuilder csb = new StringBuilder(CommonHeader + AttributeRecord.Header()); for (int cid = 1; cid <= maxCid; cid++) { try { cinfo = Mclient.catalogCategoryInfo(MsessionId, cid, "", null); csb.Append(cid.ToString() + "\t" + cinfo.name + "\r\n"); } catch { csb.Append(cid.ToString() + "\t" + cid.ToString() + "\r\n"); } } result += m_boostService.WriteTable(m_alias, Att1Filename, csb); ProgressText = tempDisplay + result; } catch { } //try //{ // //catalogCategoryTree ctree = Mclient.catalogCategoryTree(MsessionId, "", ""); // catalogCategoryTree ctree = Mclient.catalogCategoryTree(MsessionId, "0", ""); //} //catch { } //try //{ // //catalogCategoryEntityNoChildren[] clist = Mclient.catalogCategoryLevel(MsessionId, "", "", ""); // catalogCategoryEntityNoChildren[] clist = Mclient.catalogCategoryLevel(MsessionId, "", "", ""); //} //catch { } //try //{ // //catalogCategoryEntityNoChildren[] clist = Mclient.catalogCategoryLevel(MsessionId, "", "", ""); // catalogCategoryEntityNoChildren[] clist = Mclient.catalogCategoryLevel(MsessionId, "", "", ""); //} //catch { } //try //{ // //catalogCategoryInfo cinfo = Mclient.catalogCategoryInfo(MsessionId, 0, "CurrentView", null); // catalogCategoryInfo cinfo = Mclient.catalogCategoryInfo(MsessionId, 4, "", null); //} //catch { } //try //{ // //catalogProductAttributeSetEntity[] pasList = Mclient.catalogProductAttributeSetList(MsessionId); // //...this one works! // catalogProductAttributeSetEntity[] pasList = Mclient.catalogProductAttributeSetList(MsessionId); //} //catch { } //---------------------SALES EXPORT---------------------------- try { DateTime exportDate = DateTime.Now; //pass this date in string salesFileName = string.Format(SalesFilenameFormat, exportDate.ToString("yyyy-MM")); result += "\n" + salesFileName + ": "; StringBuilder salesData = new StringBuilder(CommonHeader + SalesRecord.Header()); //create filter to get sales for this month only string fromDate = string.Format("{0:0000}-{1:00}-01 00:00:00", exportDate.Year, exportDate.Month); string toDate = string.Format("{0:0000}-{1:00}-01 00:00:00", exportDate.Year, exportDate.Month + 1); filters monthFilter = new filters(); monthFilter.complex_filter = new complexFilter[2]; monthFilter.complex_filter[0] = new complexFilter(); monthFilter.complex_filter[0].key = "created_at"; monthFilter.complex_filter[0].value = new associativeEntity(); monthFilter.complex_filter[0].value.key = "from"; monthFilter.complex_filter[0].value.value = fromDate; monthFilter.complex_filter[1] = new complexFilter(); monthFilter.complex_filter[1].key = "created_at"; monthFilter.complex_filter[1].value = new associativeEntity(); monthFilter.complex_filter[1].value.key = "to"; monthFilter.complex_filter[1].value.value = toDate; //get list of sales orders salesOrderEntity[] sorders = Mclient.salesOrderList(MsessionId, monthFilter); 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; //get list of items purchased on each sales order 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 //add line to sales data salesData.Append(customerid + "\t" + productid + "\t" + quantity + "\t" + date + "\r\n"); } } //upload sales data result += m_boostService.WriteTable(m_alias, salesFileName, salesData); } } catch { } #endregion return result; }
protected override string GetCatalog() { string h2 = ""; StringBuilder data = null; string filename = "Catalog.txt"; string result = "\n" + filename + ": "; string tempDisplay = ProgressText; ProgressText += result + "Rows to export..."; StopWatch exportWatch = new StopWatch(true); //--------DEBUG USING STATIC------ bool static_proxy = false; //-------------------------------- #if MAGENTO_API_AVAILABLE #region Static Trevor if (static_proxy && m_alias.Equals("Trevor")) { MagentoService Mclient = new MagentoService(); string MsessionId = ""; //---------------------CATALOG EXPORT---------------------------- try { MsessionId = Mclient.login(m_apiUserName, m_apiKey); catalogProductEntity[] plist = Mclient.catalogProductList(MsessionId, null, ""); if (plist.Length < 1) throw new Exception("No products available"); //TODO: create catalog file header string type = ""; foreach (catalogProductEntity p in plist) { string pid = p.product_id; if (p.type.Equals("simple")) //only export combined items or else simple items with no parents { bool isChild = false; catalogProductLinkEntity[] plinks = Mclient.catalogProductLinkList(MsessionId, "grouped", pid, "id"); foreach (catalogProductLinkEntity pl in plinks) if (pl.type.Equals("configurable")) { isChild = true; break; } if (isChild) continue; } else type += p.type + " "; string pname = p.name; string patt1 = ""; bool first = true; foreach (string cid in p.category_ids) { if (first) first = false; else patt1 += ","; patt1 += cid; } catalogProductReturnEntity pinfo = Mclient.catalogProductInfo(MsessionId, pid, "", null, "id"); catalogProductReturnEntity pPriceInfo = Mclient.catalogProductGetSpecialPrice(MsessionId, pid, "", "id"); string patt2 = ""; string pprice = pPriceInfo.price; ; if ((pPriceInfo.special_from_date != null) && (pinfo.special_to_date != null)) { DateTime saleStart = DateTime.Parse(pPriceInfo.special_from_date); DateTime saleEnd = DateTime.Parse(pPriceInfo.special_to_date); DateTime now = DateTime.Now; if (now >= saleStart && now <= saleEnd) pprice = pPriceInfo.special_price; } string pfilter = ""; string plink = pinfo.url_key; string pimage = ""; string psku = pinfo.sku; catalogProductImageEntity pimageinfo = null; try { pimageinfo = Mclient.catalogProductAttributeMediaInfo(MsessionId, pid, "", "", "id"); } catch { } if (pimageinfo != null) { pimage = pimageinfo.url; } } } 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 { } } #endregion #endif #region Static GoStore if (static_proxy && m_alias.Equals("WSTea")) { Mage_Api_Model_Server_V2_HandlerPortTypeClient Mclient = new Mage_Api_Model_Server_V2_HandlerPortTypeClient(); string MsessionId = ""; //---------------------CATALOG EXPORT---------------------------- try { //login MsessionId = Mclient.login(m_apiUserName, m_apiKey); //Set product attributes to fetch catalogProductRequestAttributes prodAttributes = new catalogProductRequestAttributes(); string[] attributes = { "sku", "url_key", "price", "special_price", "special_from_date", "special_to_date", "parent_item_id" }; prodAttributes.attributes = attributes; //filters prodFilters = new filters(); //associativeEntity[] filterList = new associativeEntity[1]; //filterList[0].key = ""; //filterList[0].value = ""; //loop through all products h2 = "Product ID\tName\tAtt1 ID\tAtt2 ID\tPrice\tFilter\tLink\tImage Link\tStandard Code\r\n"; //product catalog second header line data = new StringBuilder(CommonHeader + h2); catalogProductEntity[] plist; Mclient.catalogProductList(out plist, MsessionId, null, ""); //string type = ""; int maxCid = 0; foreach (catalogProductEntity p in plist) { string pid = p.product_id; catalogProductLinkEntity[] plinks = Mclient.catalogProductLinkList(MsessionId, "parent", pid, "id"); if (plinks != null) continue; //is a child //if (p.type.Equals("simple")) //only export combined items or else simple items with no parents //{ // bool isChild = false; // catalogProductLinkEntity[] plinks = Mclient.catalogProductLinkList(MsessionId, "grouped", pid, "id"); // foreach (catalogProductLinkEntity pl in plinks) // if (pl.type.Equals("configurable")) // { // isChild = true; // break; // } // if (isChild) continue; //} //else // type += p.type + " "; string pname = p.name; string patt1 = ""; bool first = true; foreach (string cid in p.category_ids) { if (first) first = false; else patt1 += ","; patt1 += cid; int id = Convert.ToInt32(cid); if (id > maxCid) maxCid = id; } string patt2 = ""; catalogProductReturnEntity pinfo = Mclient.catalogProductInfo(MsessionId, pid, "", prodAttributes, "id"); string pprice = pinfo.price; ; if ((pinfo.special_from_date != null) && (pinfo.special_to_date != null)) { DateTime saleStart = DateTime.Parse(pinfo.special_from_date); DateTime saleEnd = DateTime.Parse(pinfo.special_to_date); DateTime now = DateTime.Now; if (now >= saleStart && now <= saleEnd) pprice = pinfo.special_price; } string pfilter = ""; string plink = pinfo.url_key; string pimage = ""; string psku = pinfo.sku; catalogProductImageEntity pimageinfo = null; try { pimageinfo = Mclient.catalogProductAttributeMediaInfo(MsessionId, pid, "", "", "id"); } catch { } if (pimageinfo != null) { pimage = pimageinfo.url; } data.Append(pid + "\t" + pname + "\t" + patt1 + "\t" + patt2 + "\t" + pprice + "\t" + pfilter + "\t" + plink + "\t" + pimage + "\t" + psku + "\r\n"); } result += m_boostService.WriteTable(m_alias, filename, data); //get cat info filename = "Attribute1Names.txt"; result += "\n" + filename + ": "; ProgressText = tempDisplay + result + "Exporting..."; catalogCategoryInfo cinfo; h2 = "Att ID\tName\r\n"; StringBuilder csb = new StringBuilder(CommonHeader + h2); for (int cid = 1; cid <= maxCid; cid++) { try { cinfo = Mclient.catalogCategoryInfo(MsessionId, cid, "", null); csb.Append(cid.ToString() + "\t" + cinfo.name + "\r\n"); } catch { csb.Append(cid.ToString() + "\t" + cid.ToString() + "\r\n"); } } result += m_boostService.WriteTable(m_alias, filename, csb); ProgressText = tempDisplay + result; } catch { } } #endregion #region Dynamic GoStore if (!static_proxy) { //http://whitesalmontea.gostorego.com/api/v2_soap/?wsdl 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; //---------------------CATALOG EXPORT---------------------------- try { //Get catalog details resultObj = proxy.CallMethod("resources", sessionID); XElement resources = XmlSerializerExtension.SerializeAsXElement(resultObj); //t = resultObj.GetType(); //xs = new XmlSerializer(t); //XElement resources = xs.SerializeAsXElement(resultObj); //TODO: check each CallMethod to make sure it is in this list... //catalog_product.list catalogProductList resultObj = proxy.CallMethod("catalog_product.list", sessionID); XElement products = XmlSerializerExtension.SerializeAsXElement(resultObj); //catalogProductEntity[] //t = resultObj.GetType(); //xs = new XmlSerializer(t); //XElement products = xs.SerializeAsXElement(resultObj); //catalogProductEntity[] foreach (XElement product in products.Elements("catalogProductEntity")) { string pid = ""; string pname = ""; string patt1 = ""; try { pid = Client.GetValue(product, "product_id"); pname = Client.GetValue(product, "name"); } catch (Exception ex) { } try { bool first = true; foreach (XElement cat in product.Elements("category_ids")) { if (first) first = false; else patt1 += ","; patt1 += Client.GetValue(cat, "id"); } } catch (Exception ex) { } XElement pinfo = null; //#if MAGENTO_API_AVAILABLE catalogProductRequestAttributes a = new catalogProductRequestAttributes(); string[] attributes = { "sku", "url_key", "price", "special_price", "special_from_date", "special_to_date" }; a.attributes = attributes; XElement request = XmlSerializerExtension.SerializeAsXElement(a); //t = a.GetType(); //xs = new XmlSerializer(t); //XElement request = xs.SerializeAsXElement(a); string patt2 = ""; string pprice = ""; try { //catalog_product.info catalogProductInfo resultObj = proxy.CallMethod("catalog_product.info", sessionID, pid, a, "id"); pinfo = XmlSerializerExtension.SerializeAsXElement(resultObj); //catalogProductReturnEntity //t = resultObj.GetType(); //xs = new XmlSerializer(t); //pinfo = xs.SerializeAsXElement(resultObj); //catalogProductReturnEntity pprice = Client.GetValue(pinfo, "price"); XElement xFromDate = pinfo.Element("special_from_date"); XElement xToDate = pinfo.Element("special_from_date"); if ((xFromDate != null) && (xToDate != null)) { DateTime saleStart = DateTime.Parse(xFromDate.Value); DateTime saleEnd = DateTime.Parse(xToDate.Value); DateTime now = DateTime.Now; if (now >= saleStart && now <= saleEnd) pprice = Client.GetValue(pinfo, "special_price"); } } catch (Exception ex) { } //#endif string pfilter = ""; string plink = ""; string psku = ""; string pimage = ""; try { plink = Client.GetValue(pinfo, "url_key"); psku = Client.GetValue(pinfo, "sku"); XElement pimageinfo = null; //catalog_product_attribute_media.info catalogProductAttributeMediaInfo resultObj = proxy.CallMethod("catalog_product_attribute_media.info", sessionID, pid, "", "", "id"); pimageinfo = XmlSerializerExtension.SerializeAsXElement(resultObj); //catalogProductImageEntity //t = resultObj.GetType(); //xs = new XmlSerializer(t); //pimageinfo = xs.SerializeAsXElement(resultObj); //catalogProductImageEntity if (pimageinfo != null) { pimage = Client.GetValue(pimageinfo, "url"); } } catch { } } } catch (Exception ex) { string errMsg = "Error extracting catalog: " + ex.Message; if (ex.InnerException != null) errMsg += "\nInner Exception" + ex.InnerException.Message; result += "\n" + errMsg; } } #endregion return result; }
public static void Main(string [] args) { mIgnoreInvalidCertificates = new System.Net.Security.RemoteCertificateValidationCallback(delegate { return(true); }); MagentoService mageService = new MagentoService(); string mageSession = null; if (args.Length < 3) { Console.WriteLine("Usage; ListOrders apiUser apiKey status [processing|complete|pending]"); return; } try { _apiUser = args[0]; _apiKey = args[1]; _status = args[2]; Console.WriteLine("Connecting to " + mageService.Url); if (_beSecure) //require secure communications { System.Net.ServicePointManager.ServerCertificateValidationCallback -= mIgnoreInvalidCertificates; Console.WriteLine("Requiring Valid Certificates from Remote Sites"); } else /// Allow connections to SSL sites that have unsafe certificates. { System.Net.ServicePointManager.ServerCertificateValidationCallback += mIgnoreInvalidCertificates; Console.WriteLine("Ignoring Invalid Certificates from Remote Sites"); } mageSession = mageService.login(_apiUser, _apiKey); } catch (Exception ex) { Console.WriteLine("Login failed: \"" + ex.Message + "\"\n"); return; } try { _stateCodes = mageService.directoryRegionList(mageSession, "US"); salesOrderListEntity[] salesOrders = mageService.salesOrderList(mageSession, tanMageFilter("status", "eq", _status, "10")); if (_wantXml) { System.Xml.Serialization.XmlSerializer xml = new System.Xml.Serialization.XmlSerializer(salesOrders.GetType()); xml.Serialize(Console.Out, salesOrders); Console.WriteLine(); } foreach (salesOrderListEntity orderHeader in salesOrders) { salesOrderEntity orderDetail = mageService.salesOrderInfo(mageSession, orderHeader.increment_id); mageService.salesOrderAddComment(mageSession, orderHeader.increment_id, orderHeader.status, "Examined by remote API II", "0"); if (_wantXml) { System.Xml.Serialization.XmlSerializer xmlDetail = new System.Xml.Serialization.XmlSerializer(orderDetail.GetType()); xmlDetail.Serialize(Console.Out, orderDetail); Console.WriteLine(); } if (_wantHumanReadable) { Console.WriteLine( "OrderID " + orderHeader.increment_id + "\n" + "OrderDate " + orderHeader.created_at + "\n" + "Status " + orderHeader.status + "\n" + "SoldTo " + orderHeader.billing_firstname + " " + orderHeader.billing_lastname + "\n" + "Total " + orderHeader.grand_total ); salesOrderAddressEntity billToAddress = orderDetail.billing_address; Console.WriteLine( "BillTo\n" + "\t" + orderHeader.billing_firstname + " " + orderHeader.billing_lastname + "\n" + "\t" + billToAddress.street + "\n" + "\t" + billToAddress.city + ", " + getStateAbbreviation(billToAddress.region_id) + " " + billToAddress.postcode ); salesOrderAddressEntity shipToAddress = orderDetail.shipping_address; Console.WriteLine( "ShipTo\n" + "\t" + orderHeader.shipping_firstname + " " + orderHeader.shipping_lastname + "\n" + "\t" + shipToAddress.street + "\n" + "\t" + shipToAddress.city + ", " + getStateAbbreviation(shipToAddress.region_id) + " " + shipToAddress.postcode ); foreach (salesOrderItemEntity li in orderDetail.items) { Console.WriteLine(li.sku + " " + li.name); phpDeserializer(li.product_options); } Console.WriteLine(sep); } } mageService.endSession(mageSession); } catch (Exception ex) { Console.WriteLine("I was hoping for better than this. Error: \"" + ex.Message + "\"\n"); } }
private void bbImportar_Click(object sender, EventArgs e) { //071.548.686-19 if (bsPedLoja.Current != null) { if ((bsPedLoja.Current as TRegistro_Pedido).Nr_pedido.ToString().Trim() != "0") { MessageBox.Show("Não é permitido IMPORTAR pedido novamente.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if ((bsPedLoja.Current as TRegistro_Pedido).StatusMagento.Trim().ToUpper().Equals("CANCELADO")) { MessageBox.Show("Não é permitido IMPORTAR pedido CANCELADO.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (rCfg == null) { MessageBox.Show("Não existe configuração E-commerce para loja selecionada.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } MagentoService api = new MagentoService(); string sessao = string.Empty; try { sessao = api.login((cbLoja.SelectedItem as TRegistro_LojaVirtual).UserName, (cbLoja.SelectedItem as TRegistro_LojaVirtual).ApiKey); salesOrderEntity ePed = api.salesOrderInfo(sessao, (bsPedLoja.Current as TRegistro_Pedido).Nr_PedidoOrigem); if (ePed != null) { TRegistro_Pedido rPedido = new TRegistro_Pedido(); //Buscar Cliente customerCustomerEntity eCliente = api.customerCustomerInfo(sessao, int.Parse(ePed.customer_id), null); //Verificar se cliente existe no Aliance TList_CadClifor lCliente = new TCD_CadClifor().Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = string.Empty, vVL_Busca = "dbo.FVALIDA_NUMEROS(a.nr_cgc) = '" + eCliente.taxvat.Trim() + "' " + "or dbo.FVALIDA_NUMEROS(a.nr_cpf) = '" + eCliente.taxvat.Trim() + "'" } }, 1, string.Empty); if (lCliente.Count > 0) { rPedido.CD_Clifor = lCliente[0].Cd_clifor; rPedido.NM_Clifor = lCliente[0].Nm_clifor; //Buscar endereco cliente TList_CadEndereco lEnd = new TCD_CadEndereco().Select( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + lCliente[0].Cd_clifor.Trim() + "'" } }, 1, string.Empty); if (lEnd.Count > 0) { rPedido.CD_Endereco = lEnd[0].Cd_endereco; rPedido.DS_Endereco = lEnd[0].Ds_endereco; numero.Text = lEnd[0].Numero; bairro.Text = lEnd[0].Bairro; ds_cidade.Text = lEnd[0].DS_Cidade; uf.Text = lEnd[0].UF; } } else { TRegistro_CadClifor rClifor = new TRegistro_CadClifor(); rClifor.Nm_clifor = eCliente.firstname.Trim().ToUpper() + " " + eCliente.lastname.Trim().ToUpper(); rClifor.Email = eCliente.email.Trim(); rClifor.Tp_pessoa = eCliente.taxvat.Trim().Length.Equals(14) ? "J" : "F"; rClifor.Nr_cgc = eCliente.taxvat.Trim().Length.Equals(14) ? eCliente.taxvat.Trim() : string.Empty; rClifor.Nr_cpf = !eCliente.taxvat.Trim().Length.Equals(14) ? eCliente.taxvat.Trim() : string.Empty; rClifor.Id_categoriaclifor = rCfg.Id_categoriaclifor; rClifor.Cd_condfiscal_clifor = rCfg.Cd_condfiscal_clifor; TRegistro_CadEndereco rEndereco = new TRegistro_CadEndereco(); rEndereco.Cep = ePed.billing_address.postcode; //Buscar Endereco Rest TEndereco_CEPRest eRest = ServiceRest.DataService.BuscarEndCEPRest(rEndereco.Cep); if (eRest != null) { rEndereco.Ds_endereco = eRest.logradouro; rEndereco.Ds_complemento = eRest.complemento; rEndereco.Bairro = eRest.bairro; rEndereco.Cd_cidade = eRest.ibge; string[] str = ePed.billing_address.street.Split(new char[] { '\n' }); if (str.Length >= 2) { rEndereco.Numero = str[1]; } } else { string[] str = ePed.billing_address.street.Split(new char[] { '\n' }); if (str.Length >= 4) { rEndereco.Ds_endereco = str[0]; rEndereco.Bairro = str[3]; rEndereco.Numero = str[1]; } } rClifor.lEndereco.Add(rEndereco); using (Financeiro.Cadastros.TFCadCliforResumido fClifor = new Financeiro.Cadastros.TFCadCliforResumido()) { fClifor.rClifor = rClifor; if (fClifor.ShowDialog() == DialogResult.OK) { try { TCN_CadClifor.Gravar(fClifor.rClifor, null); MessageBox.Show("Cliente cadastrado com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); rPedido.CD_Clifor = fClifor.rClifor.Cd_clifor; rPedido.NM_Clifor = fClifor.rClifor.Nm_clifor; rPedido.CD_Endereco = fClifor.rClifor.lEndereco[0].Cd_endereco; rPedido.DS_Endereco = fClifor.rClifor.lEndereco[0].Ds_endereco; numero.Text = fClifor.rClifor.lEndereco[0].Numero; bairro.Text = fClifor.rClifor.lEndereco[0].Bairro; ds_cidade.Text = fClifor.rClifor.lEndereco[0].DS_Cidade; uf.Text = fClifor.rClifor.lEndereco[0].UF; } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } else { MessageBox.Show("Obrigatório cadastrar cliente para importar pedido.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } } rPedido.cd_empresa = (cbLoja.SelectedItem as TRegistro_LojaVirtual).Cd_empresa; rPedido.Nm_Empresa = (cbLoja.SelectedItem as TRegistro_LojaVirtual).Nm_empresa; rPedido.Nr_PedidoOrigem = (bsPedLoja.Current as TRegistro_Pedido).Nr_PedidoOrigem; rPedido.CFG_Pedido = rCfg.Cfg_pedido; rPedido.TP_Movimento = "S";//Venda rPedido.DT_Pedido = CamadaDados.UtilData.Data_Servidor(); rPedido.ST_Pedido = "F"; rPedido.St_registro = "F"; rPedido.Cd_moeda = rCfg.Cd_moeda; rPedido.Tp_frete = decimal.Divide(decimal.Parse(ePed.shipping_amount.SoNumero()), 10000) > 0 ? "1" : "9"; rPedido.QUANTIDADENF = decimal.Divide(decimal.Parse(ePed.total_qty_ordered.SoNumero()), 10000); //Endereco Entrega TEndereco_CEPRest endRest = ServiceRest.DataService.BuscarEndCEPRest(ePed.shipping_address.postcode.Trim()); if (endRest != null) { rPedido.Logradouroent = endRest.logradouro; rPedido.Complementoent = endRest.complemento; rPedido.Bairroent = endRest.bairro; rPedido.Cd_cidadeent = endRest.ibge; } string[] eEnt = ePed.shipping_address.street.Split(new char[] { '\n' }); if (eEnt.Length >= 4) { rPedido.Logradouroent = eEnt[0]; rPedido.Numeroent = eEnt[1]; rPedido.Complementoent = eEnt[2]; rPedido.Bairroent = eEnt[3]; } //Itens do pedido foreach (salesOrderItemEntity item in ePed.items) { foreach (salesOrderItemEntity nitem in ePed.items) { if (item.sku.ToString().Equals(nitem.sku.ToString()) && decimal.Divide(decimal.Parse(nitem.price.SoNumero()), 10000) == decimal.Zero) { item.name = nitem.name; item.product_id = nitem.product_id; break; } } if (decimal.Divide(decimal.Parse(item.price.SoNumero()), 10000) > decimal.Zero) { TRegistro_LanPedido_Item rItem = new TRegistro_LanPedido_Item(); rItem.Cd_referencia = item.product_id; //Buscar Produto CamadaDados.Estoque.Cadastros.TList_CadProduto lProd = new CamadaDados.Estoque.Cadastros.TCD_CadProduto().Select( new TpBusca[] { new TpBusca() { vNM_Campo = "a.codigo_alternativo", vOperador = "=", vVL_Busca = "'" + item.product_id.Trim() + "'" }, new TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'C'" } }, 1, string.Empty, string.Empty, string.Empty); if (lProd.Count > 0) { rItem.Cd_produto = lProd[0].CD_Produto; rItem.Ds_produto = lProd[0].DS_Produto; rItem.Cd_unidade_est = lProd[0].CD_Unidade; rItem.Ds_unidade_est = lProd[0].DS_Unidade; rItem.Sg_unidade_est = lProd[0].Sigla_unidade; rItem.Cd_unidade_valor = lProd[0].CD_Unidade; rItem.Ds_unidade_valor = lProd[0].DS_Unidade; rItem.Sg_unidade_valor = lProd[0].Sigla_unidade; } else { rItem.Ds_produto = item.name.Trim().ToUpper(); } rItem.Quantidade = decimal.Divide(decimal.Parse(item.qty_ordered.SoNumero()), 10000); rItem.Vl_unitario = decimal.Divide(decimal.Parse(item.price.SoNumero()), 10000); rItem.Vl_subtotal = decimal.Divide(decimal.Parse(item.row_total.SoNumero()), 10000); rItem.Vl_desc = decimal.Divide(decimal.Parse(item.discount_amount.SoNumero()), 10000); rItem.Cd_local = rCfg.Cd_local; rPedido.Pedido_Itens.Add(rItem); } //Ratear Frete rPedido.Vl_frete = decimal.Divide(decimal.Parse(ePed.shipping_amount.SoNumero()), 10000); if (rPedido.Vl_frete > decimal.Zero) { CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Rateia_Frete(rPedido); } bsPedido.DataSource = new TList_Pedido { rPedido }; } } gPedido.Enabled = false; bbImportar.Enabled = false; tlpPedido.ColumnStyles[1].Width = 623; } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { api.endSession(sessao); } } }
public List<ParcelItem> GetPendingOrders() { try { if (UserAccountCode != 0) { List<ParcelItem> items = new List<ParcelItem>(); DataModelEntities context = new DataModelEntities(); UserAccount userAccount = context.UserAccounts.First(u => u.User_Account_Code == UserAccountCode); MagentoService service = new MagentoService(); service.Url = userAccount.Application_Name; string sessionID = service.login(userAccount.Config_Value1, userAccount.Config_Value2); List<associativeEntity> listAssociatedEntity = new List<associativeEntity>(); listAssociatedEntity.Add(new associativeEntity() { key = "status", value = "pending" }); filters filters = new filters(); filters.filter = listAssociatedEntity.ToArray(); salesOrderListEntity[] orders = service.salesOrderList(sessionID, filters); List<ChargeCode> chargeCodes = context.ChargeCodes.Where(u => u.Is_Active == true && u.User_Code == UserCode).ToList(); foreach (salesOrderListEntity order in orders) { salesOrderEntity orderDetail = service.salesOrderInfo(sessionID, order.increment_id); foreach (salesOrderItemEntity lineItem in orderDetail.items) { ParcelItem item = new ParcelItem(); item.Type = "MAGENTO"; item.AccountID = userAccount.User_Account_Code.ToString(); item.RecordNumber = orderDetail.order_id; item.ItemID = lineItem.item_id; item.TransactionID = orderDetail.increment_id; item.ItemName = lineItem.name; item.CustomLabel = lineItem.sku; item.CustomLabelText = lineItem.sku; string state = orderDetail.shipping_address.region; string stateCode = orderDetail.shipping_address.region_id; if (StateHelper.States.Where(s => s.Key == stateCode).Count() > 0) item.State = StateHelper.States[stateCode]; else item.State = state; item.BuyerName = orderDetail.customer_firstname + " " + orderDetail.customer_lastname; item.EmailAddress = orderDetail.customer_email; item.BuyerID = orderDetail.customer_id; item.Street2 = orderDetail.shipping_address.street; item.Street3 = string.Empty; item.City = orderDetail.shipping_address.city; item.PostalCode = orderDetail.shipping_address.postcode; item.Country = orderDetail.shipping_address.country_id; item.Phone = orderDetail.shipping_address.telephone; item.Quantity = lineItem.qty_ordered == string.Empty ? 0 : (int)decimal.Parse(lineItem.qty_ordered); if (orderDetail.shipping_amount != string.Empty) item.ShippingCost = double.Parse(orderDetail.shipping_amount); item.SaleRecordId = orderDetail.increment_id; // insurance details // item.Currency = orderDetail.order_currency_code; item.Price = double.Parse(lineItem.price); item.ShippingMethod = orderDetail.shipping_description; string shippingCode = orderDetail.shipping_description; ChargeCode code = chargeCodes.FirstOrDefault(u => shippingCode.ToLower().Contains(u.Ebay_Code.ToLower()) == true); if (code != null && code.Charge_Code_Name.ToLower() == "ignore") { continue; // ignore the item } bool IspostCodeOK = Common.VerifyPostCode(orderDetail.shipping_address.postcode, orderDetail.shipping_address.city); if (IspostCodeOK) item.PostCodeImageURL = Constant.tickURL; else item.PostCodeImageURL = Constant.crossURL; items.Add(item); } } return items; } else { return null; } } catch (Exception ex) { return null; } }