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
    F50/F60 Series Compact Inline Flow Sight, Low Pressure
    Product
    F300 Series Inline Flow Sight, Wide View, Low Pressure
    Product
    F250 Series Inline Flow Sight, Double Window, Moderate Pressure (Heavy Duty)
    Product
    F150/F160 Series Inline Flow Sight, Moderate Pressure
    Product
    Liquid Inline Filter
    Product
    RVP Series Dual Regulator System
    Product
    RFF100 Series Gravity Feed Reservoir with Flow Control
    Product
    REO Series Gravity Feed Reservoir with Flow Control and Solenoid Shut Off
    Product
    REM Series Multiple Gravity Feed Reservoir with Solenoid Shut Off
    Product
    REF Series Gravity Feed Reservoir with Solenoid Shut Off
    Product
    RDM Series Multiple Gravity Feed Reservoir with Flow Control
    Product
    RDF Series Drop Feed Reservoir with Sight Window, Pipe, or Remote Panel Mount
      • 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'.