Beispiel #1
0
        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);
        }
Beispiel #2
0
    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");
        }
    }
Beispiel #6
0
        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;
        }
    }