Boost Hydraulic Performance. Contact Us Today!
920-682-6877
    /Files/Images/LDIIndustries/Logo/ldi-logo_1.webp
    Engineered Solutions
    • Custom Fabrications
    • Fittings/Valves
    • Multi-Passage Swivels
    Manufacturing
    • Cut
    • Form
    • Weld
    • Machine
    • Paint
    • Assemble
    Products
    • Reservoirs/Tanks
    • Reservoir Accessories
    • Multi-Passage Swivels
    • Sight Gauges
    • Fittings & Valves
    • Lubrication Equipment
    • All Products
    Our Company
    • About Us
    • Careers
    Contact
    1. Home
    2. Products

    Products

    For over sixty years, LDI Industries has been an industry leader in the design and manufacturing of high quality, cost-effective multi-port swivels for over five decades. During that time, we have demonstrated superior performance in a variety of environments and applications including cranes, excavators, demolition shears, hose reels, and much more.

    Products By Category

    Reservoirs/Tanks
    Reservoirs/Tanks
    Reservoir Accessories
    Reservoir Accessories
    Multi-Passage Swivels
    Multi-Passage Swivels
    Sight Gauges
    Sight Gauges
    Fittings & Valves
    Fittings & Valves
    Lubrication Equipment
    Lubrication Equipment

    Product
    SSTM Series Suction Strainer, Tank Mounted
    Product
    PSS Series Suction Strainer, Nylon Hex
    Product
    SS Series Suction Strainer, Steel
    Product
    Tank Magnets
    Product
    G1615 Series Front Mount Sight Gauge, Front Viewing with Card Thermometer
    Product
    G1620 Series Back Mount Sight Gauge, Front Viewing with Card Thermometer
    Product
    G603 Series Front Mount Flexible Vinyl Sight Gauge, 360° Viewing
    Product
    G605 Series Front Mount Redline Sight Gauge, Front Viewing
    Product
    G607 Series Front Mount Redline Sight Gauge, Front Viewing with Pipe Adapters
    Product
    G608 Series Front Mount Redline Sight Gauge, Front Viewing with Needle Valve Pipe Adapters
    Product
    G609 Series Front Mount Heavy Duty Sight Gauge, Front Viewing
    Product
    G610 Series Back Mount Redline Sight Gauge, Front Viewing
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
    /Files/Images/LDIIndustries/Logo/ldi-logo.webp

    Specializing in the design and manufacturing of hydraulic

    components and lubricating equipment since 1962.

    Contact Us

    CONTACT FORM
    location-filled

    Corporate Location 1864 Nagle Ave Manitowoc, WI 54220

    location-filled

    Fabrication & Assembly 12901 Jim Dhamer Dr Huntley, IL 60142

    phone Created with Sketch Beta. 920-682-6877
    Social
    • 17A30BA7-5D15-4AD7-8022-9DC0157B4D54 Created with sketchtool.
    /Files/Images/LDIIndustries/Logo/force-logo-subsidiary-black_1.webp

    FORCE America is one of the leading suppliers of motion

    and control systems in North America. Learn More.

    Error executing template "Designs/Swift-v2/Paragraph/Custom_FAClusterStockUpdateFeed.cshtml"
    System.Exception: Product id is required to find a product.
       at Dynamicweb.Core.Ensure.That[TException](Boolean condition, String message)
       at Dynamicweb.Ecommerce.ProductCatalog.ViewModelFactory.CreateView(ProductViewModelSettings settings, String productId, String variantId)
       at CompiledRazorTemplates.Dynamic.RazorEngine_73b29c9d90ea4f9fb83984bb76024302.ExecuteAsync()
       at RazorEngine.Templating.TemplateBase.Run(ExecuteContext context, TextWriter reader)
       at RazorEngine.Templating.RazorEngineCore.RunTemplate(ICompiledTemplate template, TextWriter writer, Object model, DynamicViewBag viewBag)
       at RazorEngine.Templating.RazorEngineService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
       at RazorEngine.Templating.DynamicWrapperService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
       at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
       at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass23_0.<Run>b__0(TextWriter writer)
       at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
       at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag)
       at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
       at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
       at Dynamicweb.Rendering.Template.RenderRazorTemplate()
    
    1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 2 @using Dynamicweb 3 @using Dynamicweb.Frontend 4 @using Dynamicweb.Ecommerce.ProductCatalog 5 @using Dynamicweb.Ecommerce.Orders 6 @using Dynamicweb.Ecommerce.Stocks 7 8 @functions{ 9 public class StockText{ 10 public string StockStatus { get; set; } 11 public string StockStatusDesc { get; set; } 12 } 13 } 14 @{ 15 string productId = Dynamicweb.Context.Current.Request.QueryString.Get("ProductId"); 16 string variantId = Dynamicweb.Context.Current.Request.QueryString.Get("VariantId"); 17 string qty = Dynamicweb.Context.Current.Request.QueryString.Get("Qty"); 18 StockText stockText=new StockText(); 19 20 ProductViewModelSettings productSetting = new ProductViewModelSettings 21 { 22 LanguageId = Dynamicweb.Ecommerce.Common.Context.LanguageID, 23 CurrencyCode = Dynamicweb.Ecommerce.Common.Context.Currency.Code, 24 CountryCode = Dynamicweb.Ecommerce.Common.Context.Country.Code2, 25 ShopId = Pageview.Area.EcomShopId 26 }; 27 ProductViewModel product = ViewModelFactory.CreateView(productSetting,productId,variantId); 28 if(product != null){ 29 30 var stockunits = product.GetStockUnit(); 31 int stockuitcount=stockunits.Count(); 32 List<StockLocation> stockloc = Dynamicweb.Ecommerce.Services.StockService.GetStockLocations().Where(x=>x.CategoryId== "STOCKLOCCAT2").ToList(); 33 string langId = Dynamicweb.Ecommerce.Common.Context.LanguageID; 34 string stockduration="6 weeks"; 35 36 string custwarehouse = ""; 37 double cuswarehousestock = 0; 38 if(Pageview.User != null) 39 { 40 custwarehouse = Pageview.User.CustomFieldValues.FirstOrDefault(x => x.CustomField.SystemName == "AccessUser_D365Warehouse")?.Value?.ToString(); 41 string lastudwarehouse = Pageview.User.CustomFieldValues.FirstOrDefault(x => x.CustomField.SystemName == "AccessUser_LastUpdatedWarehouse")?.Value?.ToString(); 42 if(!string.IsNullOrEmpty(lastudwarehouse)){ 43 custwarehouse=lastudwarehouse; 44 } 45 } 46 else{ 47 string warehousecookie = Dynamicweb.Context.Current.Request.GetCookie("SelectedWarehouse")?.Value; 48 if(!string.IsNullOrEmpty(warehousecookie)){ 49 custwarehouse=warehousecookie; 50 } 51 } 52 string currwarehousename = stockloc.FirstOrDefault(x=>x.GetName(langId)==custwarehouse)?.GetDescription(langId); 53 54 if (stockuitcount > 0) 55 { 56 stockduration=stockunits.FirstOrDefault().StockStatus; 57 if(stockunits.FirstOrDefault(x => x.StockLocationName == custwarehouse) != null){ 58 cuswarehousestock = stockunits.FirstOrDefault(x => x.StockLocationName == custwarehouse).StockLevel; 59 } 60 } 61 double totalstock = product.StockLevel ?? 0; 62 63 double qtyInt = !string.IsNullOrEmpty(qty) ? Convert.ToDouble(qty) : 0; 64 double cartqty = 0; 65 if (Dynamicweb.Ecommerce.Common.Context.Cart != null) 66 { 67 Order dworder = Dynamicweb.Ecommerce.Common.Context.Cart; 68 foreach(OrderLine orderLine in dworder.OrderLines.Where(x=>x.ProductId==productId && x.ProductVariantId == variantId)) 69 { 70 cartqty = cartqty + orderLine.Quantity; 71 } 72 } 73 double totalqty = qtyInt + cartqty; 74 75 if (totalstock == 0) 76 { 77 stockText.StockStatus= "Out of stock <span class=\"cus-faplist__availdur\">" + stockduration + "</span>"; 78 stockText.StockStatus = stockText.StockStatus + "<span class=\"cus-faplist__availtooltiptxt\">" + totalqty + " will be available in about " + stockduration+"</span>"; 79 } 80 else if (totalqty <= cuswarehousestock) 81 { 82 stockText.StockStatus= "In stock <svg class=\"status-check\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 1.5C7.86 1.5 4.5 4.86 4.5 9c0 5.25 7.5 13.5 7.5 13.5s7.5-8.25 7.5-13.5c0-4.14-3.36-7.5-7.5-7.5z\"></path><circle cx=\"12\" cy=\"9\" r=\"2.5\"></circle></svg>"; 83 stockText.StockStatus = stockText.StockStatus +"<span class=\"cus-faplist__availtooltiptxt\">" + "In stock in " + currwarehousename +"</span>"; 84 } 85 else if (totalqty > cuswarehousestock && totalqty <= totalstock) 86 { 87 double pendingstock=totalqty-cuswarehousestock; 88 stockText.StockStatus= "In stock"; 89 stockText.StockStatus = stockText.StockStatus +"<span class=\"cus-faplist__availtooltiptxt\">" + cuswarehousestock + " are in stock in " + currwarehousename + ", and the additional "+ pendingstock + " is available in other FORCE America warehouse(s) in the US."+"</span>"; 90 } 91 else if(totalqty > totalstock) 92 { 93 double pendingstock=totalstock-cuswarehousestock; 94 double notinstock=totalqty-totalstock; 95 stockText.StockStatus= "Out of stock <span class=\"cus-faplist__availdur\">" + stockduration + "</span>"; 96 stockText.StockStatus = stockText.StockStatus +"<span class=\"cus-faplist__availtooltiptxt\">" + cuswarehousestock + " are in stock in " + currwarehousename + ", "+ pendingstock + " are available in other FORCE America warehouse(s) in the US, the " + notinstock + " will be available in about " + stockduration +"</span>"; 97 } 98 99 } 100 var ret = Newtonsoft.Json.JsonConvert.SerializeObject(stockText); 101 } 102 @ret

    Copyright © 2026 by LDI Industries, Inc. All Rights Reserved.

    • Accessibility Statement
    • Cookie Settings
    • Privacy Statement
    • Terms of Use
    • LDI Quality System
    Favorite list updated
    You control your data

    We and our partners use technologies, including cookies, to collect information about you for various purposes, including:

    1. Functionality
    2. Statistics
    3. Marketing

    By clicking 'Accept All' you consent to all these purposes. You can also choose to indicate what purposes you will consent to using the custom selections and then click 'Accept selected'.