DETAIL2440 Long cylindrical Protector for automotive systems
DETAIL2615 Long Cylindrical Protectors_ML drawing
DETAIL2616 Protection for small UNC-threaded tubes, shaft ends, and common rail sensors
Product no. X0044

Long Cylindrical Protectors (ML)

Protection for small UNC-threaded tubes, shaft ends, and common rail sensors in automotive systems. The ML range provides a reliable fit and consistent performance, even in challenging conditions.

Error compiling template "Designs/Swift-v2/Paragraph/CustomProductActions.cshtml"
Line 29: Argument 1: cannot convert from 'Dynamicweb.Frontend.LinkViewModel' to 'string?'

1 // <auto-generated/> 2 #pragma warning disable 1591 3 namespace CompiledRazorTemplates.Dynamic 4 { 5 #line hidden 6 using System.Threading.Tasks; 7 using System; 8 using System.Collections.Generic; 9 using System.Linq; 10 using Dynamicweb.Core; 11 using Dynamicweb.Ecommerce.ProductCatalog; 12 internal class RazorEngine_76aed27d570a47969adc9be8dff4cc50 : Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 13 { 14 #pragma warning disable 1998 15 public async override global::System.Threading.Tasks.Task ExecuteAsync() 16 { 17 WriteLiteral("\r\n"); 18 19 ProductViewModel product = null; 20 if (Dynamicweb.Context.Current.Items.Contains("ProductDetails")) 21 { 22 product = (ProductViewModel)Dynamicweb.Context.Current.Items["ProductDetails"]; 23 } 24 25 var iconPath = "Files/Images/Icons/Custom/"; 26 27 var productFamilyParagraphLink = Pageview.SearchFriendlyUrl + "#" + Model.Item.GetLink("ProductFamilyParagraph"); 28 var signInPageLink = Model.Item.GetLink("SignInPage"); 29 bool hasSignInPageLink = !string.IsNullOrWhiteSpace(signInPageLink); 30 31 bool showPricesWithVat = Dynamicweb.Ecommerce.Common.Context.DisplayPricesWithVat; 32 bool neverShowVat = string.IsNullOrEmpty(showPricesWithVat.ToString()); 33 string unitId = !string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.Form.Get("UnitId")) ? Dynamicweb.Context.Current.Request.Form.Get("UnitId") : string.Empty; 34 WriteLiteral("\r\n"); 35 if (product is object) 36 { 37 if (Pageview.User == null) { 38 39 string anonymousUsersLimitations = Pageview.AreaSettings.GetRawValueString("AnonymousUsers", ""); 40 bool hideAddToCart = anonymousUsersLimitations.Contains("cart"); 41 hideAddToCart = Pageview.IsVisualEditorMode ? false : hideAddToCart; 42 43 WriteLiteral("\t\t<div class=\"container\">\r\n\t\t\t<div class=\"row\">\r\n"); 44 if (!hideAddToCart) 45 { 46 WriteLiteral("\t\t\t\t\t<div class=\"col-4 border-end ps-0 d-flex flex-column justify-content-between\">\r\n\t\t\t\t\t\t<div class=\"text-lg semi-bold mb-2\">"); 47 Write(Translate("Custom.ProductActions.Try", "Try before you decide")); 48 WriteLiteral("</div>\r\n\t\t\t\t\t\t<a"); 49 BeginWriteAttribute("href", " href=\"", 1581, "\"", 1615, 1); 50 WriteAttributeValue("", 1588, productFamilyParagraphLink, 1588, 27, false); 51 EndWriteAttribute(); 52 WriteLiteral(" class=\"btn btn-primary w-100\" data-dw-button=\"primary\">\r\n\t\t\t\t\t\t\t<span>"); 53 Write(Translate("Custom.ProductActions.Try.ButtonText", "Request sample")); 54 WriteLiteral("<span class=\"ps-2\">"); 55 Write(ReadFile(iconPath + "arrow-down.svg")); 56 WriteLiteral("</span></span>\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t</div>\r\n"); 57 } 58 WriteLiteral("\t\t\t\t<div"); 59 BeginWriteAttribute("class", " class=\"", 1868, "\"", 1962, 6); 60 WriteAttributeValue("", 1876, "col-", 1876, 4, true); 61 WriteAttributeValue("", 1880, hideAddToCart ? "6" : "4", 1880, 28, false); 62 WriteAttributeValue(" ", 1908, "border-end", 1909, 11, true); 63 WriteAttributeValue(" ", 1919, "d-flex", 1920, 7, true); 64 WriteAttributeValue(" ", 1926, "flex-column", 1927, 12, true); 65 WriteAttributeValue(" ", 1938, "justify-content-between", 1939, 24, true); 66 EndWriteAttribute(); 67 WriteLiteral(">\r\n\t\t\t\t\t<div class=\"text-lg semi-bold mb-2\">"); 68 Write(Translate("Custom.ProductActions.Variants", "Variants")); 69 WriteLiteral("</div>\r\n\t\t\t\t\t<a"); 70 BeginWriteAttribute("href", " href=\"", 2078, "\"", 2112, 1); 71 WriteAttributeValue("", 2085, productFamilyParagraphLink, 2085, 27, false); 72 EndWriteAttribute(); 73 WriteLiteral(" class=\"btn btn-outline-secondary w-100\" data-dw-button=\"outline-secondary\">\r\n\t\t\t\t\t\t<span>"); 74 Write(Translate("Custom.ProductActions.Variants.ButtonText", "View products")); 75 WriteLiteral("<span class=\"ps-2\">"); 76 Write(ReadFile(iconPath + "arrow-down.svg")); 77 WriteLiteral("</span></span>\r\n\t\t\t\t\t</a>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div"); 78 BeginWriteAttribute("class", " class=\"", 2379, "\"", 2462, 5); 79 WriteAttributeValue("", 2387, "col-", 2387, 4, true); 80 WriteAttributeValue("", 2391, hideAddToCart ? "6" : "4", 2391, 28, false); 81 WriteAttributeValue(" ", 2419, "d-flex", 2420, 7, true); 82 WriteAttributeValue(" ", 2426, "flex-column", 2427, 12, true); 83 WriteAttributeValue(" ", 2438, "justify-content-between", 2439, 24, true); 84 EndWriteAttribute(); 85 WriteLiteral(">\r\n\t\t\t\t\t<div class=\"text-lg semi-bold d-inline-flex align-items-center mb-2\">\r\n\t\t\t\t\t\t<div class=\"rounded-circle green me-1\">\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t"); 86 Write(Translate("Custom.ProductActions.Stocklabel", "In stock")); 87 WriteLiteral("\r\n\t\t\t\t\t</div>\r\n"); 88 if (!hideAddToCart && hasSignInPageLink) 89 { 90 WriteLiteral("\t\t\t\t\t\t<a"); 91 BeginWriteAttribute("href", " href=\"", 2746, "\"", 2768, 1); 92 WriteAttributeValue("", 2753, signInPageLink, 2753, 15, false); 93 EndWriteAttribute(); 94 WriteLiteral(" class=\"btn btn-outline-secondary w-100\" data-dw-button=\"outline-secondary\">\r\n\t\t\t\t\t\t\t<span>"); 95 Write(Translate("Custom.ProductActions.SignIn.ButtonText", "Sign in to buy")); 96 WriteLiteral("<span class=\"ps-2\">"); 97 Write(ReadFile(iconPath + "shopping-cart.svg")); 98 WriteLiteral("</span></span>\r\n\t\t\t\t\t\t</a>\r\n"); 99 } 100 WriteLiteral("\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n"); 101 102 } 103 else { 104 WriteLiteral("\t\t<div class=\"container\">\r\n\t\t\t<div class=\"row align-items-center\">\r\n\t\t\t<div class=\"col-6\">\r\n\t\t\t\t\t<div class=\"text-sm medium mb-1\">"); 105 Write(Translate("Custom.ProductActions.Prices", "Prices starting from")); 106 WriteLiteral("</div>\r\n\t\t\t\t\t<div class=\"mb-1\">\r\n"); 107 if (!showPricesWithVat && !neverShowVat) 108 { 109 string price = !string.IsNullOrEmpty(unitId) ? product.GetPrice(unitId).Price.PriceWithoutVatFormatted : product.Price.PriceWithoutVatFormatted; 110 111 if (product?.VariantInfo?.VariantInfo != null) 112 { 113 price = product?.VariantInfo?.PriceMin?.PriceWithoutVatFormatted != null ? product.VariantInfo.PriceMin.PriceWithoutVatFormatted : price; 114 } 115 116 WriteLiteral("\t\t\t\t\t\t\t<span class=\"display-sm bold\">"); 117 Write(price); 118 WriteLiteral("</span>\r\n\t\t\t\t\t\t\t<span class=\"text-sm medium opacity-75\">"); 119 Write(Translate("Custom.ProductActions.Prices.WithoutVat", "ex. VAT")); 120 WriteLiteral("</span>\r\n"); 121 } 122 else 123 { 124 string price = !string.IsNullOrEmpty(unitId) ? product.GetPrice(unitId).Price.PriceFormatted : product.Price.PriceFormatted; 125 126 if (product?.VariantInfo?.VariantInfo != null) 127 { 128 price = product?.VariantInfo?.PriceMin?.PriceFormatted != null ? product.VariantInfo.PriceMin.PriceFormatted : price; 129 } 130 131 132 WriteLiteral("\t\t\t\t\t\t\t<span class=\"display-sm bold\">"); 133 Write(price); 134 WriteLiteral("</span>\r\n\t\t\t\t\t\t\t<span class=\"text-sm medium opacity-75\">"); 135 Write(Translate("Custom.ProductActions.Prices.WithVat", "incl. VAT")); 136 WriteLiteral("</span>\r\n"); 137 } 138 WriteLiteral("\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"fs-7 d-inline-flex align-items-center\">\r\n\t\t\t\t\t\t<div class=\"rounded-circle green me-1\">\r\n\t\t\t\t\t\t</div>\r\n <div class=\"text-sm medium opacity-75\">"); 139 Write(Translate("Custom.ProductActions.Stocklabel", "In stock")); 140 WriteLiteral("</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"col-6\">\r\n\t\t\t\t\t<a"); 141 BeginWriteAttribute("href", " href=\"", 4781, "\"", 4815, 1); 142 WriteAttributeValue("", 4788, productFamilyParagraphLink, 4788, 27, false); 143 EndWriteAttribute(); 144 WriteLiteral(" class=\"btn btn-primary w-100\" data-dw-button=\"primary\">\r\n\t\t\t\t\t\t<span>"); 145 Write(Translate("Custom.ProductActions.SignedIn.ButtonText", "Buy products")); 146 WriteLiteral("<span class=\"ps-2\">"); 147 Write(ReadFile(iconPath + "shopping-cart.svg")); 148 WriteLiteral("</span></span>\r\n\t\t\t\t\t</a>\r\n\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n"); 149 } 150 151 } 152 else if (Pageview.IsVisualEditorMode) 153 { 154 WriteLiteral("\t<div class=\"alert alert-dark m-0\" role=\"alert\">\r\n\t\t<span>"); 155 Write(Translate("The product actions will be shown here, if available")); 156 WriteLiteral("</span>\r\n\t</div>\r\n"); 157 } 158 } 159 #pragma warning restore 1998 160 } 161 } 162 #pragma warning restore 1591 163

1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 2 @using Dynamicweb.Core 3 @using Dynamicweb.Ecommerce.ProductCatalog 4 5 @{ 6 ProductViewModel product = null; 7 if (Dynamicweb.Context.Current.Items.Contains("ProductDetails")) 8 { 9 product = (ProductViewModel)Dynamicweb.Context.Current.Items["ProductDetails"]; 10 } 11 12 var iconPath = "Files/Images/Icons/Custom/"; 13 14 var productFamilyParagraphLink = Pageview.SearchFriendlyUrl + "#" + Model.Item.GetLink("ProductFamilyParagraph"); 15 var signInPageLink = Model.Item.GetLink("SignInPage"); 16 bool hasSignInPageLink = !string.IsNullOrWhiteSpace(signInPageLink); 17 18 bool showPricesWithVat = Dynamicweb.Ecommerce.Common.Context.DisplayPricesWithVat; 19 bool neverShowVat = string.IsNullOrEmpty(showPricesWithVat.ToString()); 20 string unitId = !string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.Form.Get("UnitId")) ? Dynamicweb.Context.Current.Request.Form.Get("UnitId") : string.Empty; 21 } 22 23 @if (product is object) 24 { 25 if (Pageview.User == null) { 26 27 string anonymousUsersLimitations = Pageview.AreaSettings.GetRawValueString("AnonymousUsers", ""); 28 bool hideAddToCart = anonymousUsersLimitations.Contains("cart"); 29 hideAddToCart = Pageview.IsVisualEditorMode ? false : hideAddToCart; 30 31 <div class="container"> 32 <div class="row"> 33 @if (!hideAddToCart) 34 { 35 <div class="col-4 border-end ps-0 d-flex flex-column justify-content-between"> 36 <div class="text-lg semi-bold mb-2">@Translate("Custom.ProductActions.Try", "Try before you decide")</div> 37 <a href="@productFamilyParagraphLink" class="btn btn-primary w-100" data-dw-button="primary"> 38 <span>@Translate("Custom.ProductActions.Try.ButtonText", "Request sample")<span class="ps-2">@ReadFile(iconPath + "arrow-down.svg")</span></span> 39 </a> 40 </div> 41 } 42 <div class="col-@(hideAddToCart ? "6" : "4") border-end d-flex flex-column justify-content-between"> 43 <div class="text-lg semi-bold mb-2">@Translate("Custom.ProductActions.Variants", "Variants")</div> 44 <a href="@productFamilyParagraphLink" class="btn btn-outline-secondary w-100" data-dw-button="outline-secondary"> 45 <span>@Translate("Custom.ProductActions.Variants.ButtonText", "View products")<span class="ps-2">@ReadFile(iconPath + "arrow-down.svg")</span></span> 46 </a> 47 </div> 48 <div class="col-@(hideAddToCart ? "6" : "4") d-flex flex-column justify-content-between"> 49 <div class="text-lg semi-bold d-inline-flex align-items-center mb-2"> 50 <div class="rounded-circle green me-1"> 51 </div> 52 @Translate("Custom.ProductActions.Stocklabel", "In stock") 53 </div> 54 @if (!hideAddToCart && hasSignInPageLink) 55 { 56 <a href="@signInPageLink" class="btn btn-outline-secondary w-100" data-dw-button="outline-secondary"> 57 <span>@Translate("Custom.ProductActions.SignIn.ButtonText", "Sign in to buy")<span class="ps-2">@ReadFile(iconPath + "shopping-cart.svg")</span></span> 58 </a> 59 } 60 </div> 61 </div> 62 </div> 63 64 } 65 else { 66 <div class="container"> 67 <div class="row align-items-center"> 68 <div class="col-6"> 69 <div class="text-sm medium mb-1">@Translate("Custom.ProductActions.Prices", "Prices starting from")</div> 70 <div class="mb-1"> 71 @if (!showPricesWithVat && !neverShowVat) 72 { 73 string price = !string.IsNullOrEmpty(unitId) ? product.GetPrice(unitId).Price.PriceWithoutVatFormatted : product.Price.PriceWithoutVatFormatted; 74 75 if (product?.VariantInfo?.VariantInfo != null) 76 { 77 price = product?.VariantInfo?.PriceMin?.PriceWithoutVatFormatted != null ? product.VariantInfo.PriceMin.PriceWithoutVatFormatted : price; 78 } 79 80 <span class="display-sm bold">@price</span> 81 <span class="text-sm medium opacity-75">@Translate("Custom.ProductActions.Prices.WithoutVat", "ex. VAT")</span> 82 } 83 else 84 { 85 string price = !string.IsNullOrEmpty(unitId) ? product.GetPrice(unitId).Price.PriceFormatted : product.Price.PriceFormatted; 86 87 if (product?.VariantInfo?.VariantInfo != null) 88 { 89 price = product?.VariantInfo?.PriceMin?.PriceFormatted != null ? product.VariantInfo.PriceMin.PriceFormatted : price; 90 } 91 92 93 <span class="display-sm bold">@price</span> 94 <span class="text-sm medium opacity-75">@Translate("Custom.ProductActions.Prices.WithVat", "incl. VAT")</span> 95 } 96 </div> 97 <div class="fs-7 d-inline-flex align-items-center"> 98 <div class="rounded-circle green me-1"> 99 </div> 100 <div class="text-sm medium opacity-75">@Translate("Custom.ProductActions.Stocklabel", "In stock")</div> 101 </div> 102 </div> 103 <div class="col-6"> 104 <a href="@productFamilyParagraphLink" class="btn btn-primary w-100" data-dw-button="primary"> 105 <span>@Translate("Custom.ProductActions.SignedIn.ButtonText", "Buy products")<span class="ps-2">@ReadFile(iconPath + "shopping-cart.svg")</span></span> 106 </a> 107 </div> 108 </div> 109 </div> 110 } 111 112 } 113 else if (Pageview.IsVisualEditorMode) 114 { 115 <div class="alert alert-dark m-0" role="alert"> 116 <span>@Translate("The product actions will be shown here, if available")</span> 117 </div> 118 } 119
All benefits
Extended length
shields both threads and shaft ends
Sensor-safe
perfect for common rail sensors
UNC-fit
tailored for UNC threaded tubes
Product specifications
CO2
A mm
H mm
ML0180A-AE20A Yellow EVA 0 18.2 29.7
ML0492A-AA20A Yellow Recycled LDPE 0 49.7 58.8
ML0510A-AA00A Red Recycled LDPE 0 49.9 68.1
ML0625A-AA40A Black Recycled LDPE 0 62.5 66

Learn how our full service can add value to your business

Your full-service protection solution partner

Matching applications to mobility
We’re application specialists. We are familiar with each segment’s unique challenges, from assembly conditions to ergonomics.
Value added services
We’re application specialists. We are familiar with each segment’s unique challenges, from assembly conditions to ergonomics.