Error executing template "Designs/Swift/eCom/ProductCatalog/ProductViewDetail.cshtml"
System.ArgumentNullException: Value cannot be null.
Parameter name: key
at System.Collections.Concurrent.ConcurrentDictionary`2.TryGetValue(TKey key, TValue& value)
at Dynamicweb.Caching.DictionaryCache`2.GetCacheResult(IEnumerable`1 keys)
at Dynamicweb.Caching.ServiceCache`2.GetCache(IEnumerable`1 keys)
at Dynamicweb.Caching.ServiceCache`2.GetCache(TKey key)
at Dynamicweb.Ecommerce.ProductCatalog.ViewSettingsBaseCurrencyBase`1.GetCurrency()
at Dynamicweb.Ecommerce.ProductCatalog.ViewSettingsBaseCurrencyBase`1.GetPriceContext()
at Dynamicweb.Ecommerce.ProductCatalog.ViewEngine.GetPrice(PriceViewModelSettings settings, IList`1 products, Boolean& pricesHasBeenPrepared, Object lock, Lazy`1 priceInfo)
at Dynamicweb.Ecommerce.ProductCatalog.ViewEngine.<>c__DisplayClass3_2.<BulkCreateView>b__49()
at System.Lazy`1.CreateValue()
at System.Lazy`1.LazyInitValue()
at CompiledRazorTemplates.Dynamic.RazorEngine_9f3530e5d38f4d2caef8bc58b91c5c00.Execute() in D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\eCom\ProductCatalog\ProductViewDetail.cshtml:line 53
at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
at Dynamicweb.Rendering.Template.RenderRazorTemplate()

1 @inherits ViewModelTemplate<ProductViewModel> 2 @using Dynamicweb.Rendering 3 @using Dynamicweb.Ecommerce.ProductCatalog 4 @using Dynamicweb.Core 5 6 @{ 7 string metaDescription = string.IsNullOrEmpty(Model.MetaDescription) ? Model.Name : Model.MetaDescription; 8 9 Pageview.Meta.AddTag($"<meta property=\"og:image\" content=\"{Dynamicweb.Context.Current.Request.Url.Scheme}://{Dynamicweb.Context.Current.Request.Url.Host}{Model.DefaultImage.Value}\">"); 10 Pageview.Meta.AddTag($"<meta property=\"og:image:alt\" content=\"{Model.Name}\">"); 11 Pageview.Meta.AddTag($"<meta property=\"og:description\" content=\"{metaDescription}\">"); 12 13 Pageview.Meta.AddTag("twitter:image", Model.DefaultImage.Value); 14 Pageview.Meta.AddTag("twitter:image:alt", Model.Name); 15 Pageview.Meta.AddTag("twitter:description", metaDescription); 16 } 17 18 @{ 19 if (Dynamicweb.Context.Current.Items.Contains("ProductDetails")) 20 { 21 Dynamicweb.Context.Current.Items["ProductDetails"] = Model; 22 } 23 else 24 { 25 Dynamicweb.Context.Current.Items.Add("ProductDetails", Model); 26 } 27 28 bool isLazyLoadingForProductInfoEnabled = Dynamicweb.Core.Converter.ToBoolean(Dynamicweb.Context.Current.Items["IsLazyLoadingForProductInfoEnabled"]); 29 if (isLazyLoadingForProductInfoEnabled) 30 { 31 string showPricesWithVat = Pageview.Area.EcomPricesWithVat.ToLower(); 32 bool neverShowVat = string.IsNullOrEmpty(showPricesWithVat); 33 bool hasVariantId = !string.IsNullOrEmpty(Model.VariantId); 34 string variantIdParam = hasVariantId ? $"/{Model.VariantId}" : ""; 35 string priceFilledProperties = $"Price,PriceFormatted{(showPricesWithVat == "false" && !neverShowVat ? ",PriceWithVat,PriceWithVatFormatted" : "")}"; 36 string productInfoFeed = $@"/dwapi/ecommerce/products/{Model.Id}{variantIdParam} 37 ?UserId={Converter.ToString(Pageview.User?.ID)} 38 &LanguageId={Pageview.Area.EcomLanguageId}&CurrencyCode={Pageview.Area.EcomCurrencyId}&CountryCode={Pageview.Area.EcomCountryCode}&ShopId={Pageview.Area.EcomShopId} 39 &FilledProperties=Id,Price,PriceBeforeDiscount,StockLevel,VariantInfo,NeverOutOfstock,Prices 40 &PriceSettings.ShowPricesWithVat={Pageview.Area.EcomPricesWithVat} 41 &PriceSettings.FilledProperties={priceFilledProperties} 42 &getproductinfo=true"; 43 Dynamicweb.Context.Current.Items["ProductInfoFeed"] = productInfoFeed; 44 45 <script type="module"> 46 swift.LiveProductInfo.init(); 47 </script> 48 } 49 } 50 51 <script> 52 gtag("event", "view_item", { 53 currency: "@Model.Price.CurrencyCode", 54 value: @Model.Price.ToStringInvariant(), 55 items: [ 56 { 57 item_id: "@Model.Number", 58 item_name: "@Dynamicweb.Core.Encoders.HtmlEncoder.JavaScriptStringEncode(Model.Name)", 59 currency: "@Model.Price.CurrencyCode", 60 price: @Model.Price.ToStringInvariant(), 61 discount: @Model.Discount.ToStringInvariant() 62 } 63 ] 64 }); 65 </script> 66 67 <script> 68 window.addEventListener('load', function (event) { 69 swift.Video.init(); 70 }); 71 </script> 72

Product number:

1799

Durchflussregler

Mouldpro
Error executing template "Designs/Swift/Paragraph/Swift_ProductPrice.cshtml"
System.ArgumentNullException: Value cannot be null.
Parameter name: key
at System.Collections.Concurrent.ConcurrentDictionary`2.TryGetValue(TKey key, TValue& value)
at Dynamicweb.Caching.DictionaryCache`2.GetCacheResult(IEnumerable`1 keys)
at Dynamicweb.Caching.ServiceCache`2.GetCache(IEnumerable`1 keys)
at Dynamicweb.Caching.ServiceCache`2.GetCache(TKey key)
at Dynamicweb.Ecommerce.ProductCatalog.ViewSettingsBaseCurrencyBase`1.GetCurrency()
at Dynamicweb.Ecommerce.ProductCatalog.ViewSettingsBaseCurrencyBase`1.GetPriceContext()
at Dynamicweb.Ecommerce.ProductCatalog.ViewEngine.GetDiscountInfo(PriceViewModelSettings settings, Product product)
at System.Lazy`1.CreateValue()
at System.Lazy`1.LazyInitValue()
at Dynamicweb.Ecommerce.ProductCatalog.ViewEngine.<>c__DisplayClass3_2.<BulkCreateView>b__47()
at System.Lazy`1.CreateValue()
at System.Lazy`1.LazyInitValue()
at System.Lazy`1.CreateValue()
at System.Lazy`1.LazyInitValue()
at CompiledRazorTemplates.Dynamic.RazorEngine_a09c1338e5064478af62dbe4b54910b9.Execute() in D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\Paragraph\Swift_ProductPrice.cshtml:line 77
at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
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.Ecommerce.ProductCatalog 3 4 @{ 5 ProductViewModel product = null; 6 if (Dynamicweb.Context.Current.Items.Contains("ProductDetails")) 7 { 8 product = (ProductViewModel)Dynamicweb.Context.Current.Items["ProductDetails"]; 9 } 10 else if (Pageview.Page.Item["DummyProduct"] != null && Pageview.IsVisualEditorMode) 11 { 12 var pageViewModel = Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(Pageview.Page); 13 ProductListViewModel productList = pageViewModel.Item.GetValue("DummyProduct") != null ? pageViewModel.Item.GetValue("DummyProduct") as ProductListViewModel : new ProductListViewModel(); 14 15 if (productList?.Products is object) 16 { 17 product = productList.Products[0]; 18 } 19 } 20 21 string anonymousUsersLimitations = Pageview.AreaSettings.GetRawValueString("AnonymousUsers", ""); 22 bool anonymousUser = Pageview.User == null; 23 bool isErpConnectionDown = !Dynamicweb.Core.Converter.ToBoolean(Dynamicweb.Context.Current.Items["IsWebServiceConnectionAvailable"]); 24 bool hidePrice = anonymousUsersLimitations.Contains("price") && anonymousUser || Pageview.AreaSettings.GetBoolean("ErpDownHidePrices") && isErpConnectionDown; 25 26 bool productIsDiscontinued = product is object && product.Discontinued; 27 bool doNotShowPriceIfProductIsDiscontinued = Model.Item.GetBoolean("DoNotShowPriceIfProductIsDiscontinued"); 28 var isDiscontinued = productIsDiscontinued && doNotShowPriceIfProductIsDiscontinued; 29 } 30 31 @if (product is object && !hidePrice && !isDiscontinued) { 32 bool showInformativePrice = Model.Item.GetBoolean("ShowInformativePrice"); 33 bool hideVatPrice = Model.Item.GetBoolean("HideVatPrice"); 34 string unitId = !string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.Form.Get("UnitId")) ? Dynamicweb.Context.Current.Request.Form.Get("UnitId") : string.Empty; 35 36 string priceFontSize = Model.Item.GetRawValueString("PriceSize", "fs-2"); 37 string horizontalAlign = Model.Item.GetRawValueString("HorizontalAlignment", ""); 38 string layout = Model.Item.GetRawValueString("Layout", "horizontal"); 39 string textAlign = horizontalAlign == "center" ? "text-center" : string.Empty; 40 textAlign = horizontalAlign == "end" ? "text-end" : textAlign; 41 42 horizontalAlign = horizontalAlign == "center" && layout == "horizontal" ? "justify-content-center" : horizontalAlign; 43 horizontalAlign = horizontalAlign == "end" && layout == "horizontal" ? "justify-content-end" : horizontalAlign; 44 horizontalAlign = horizontalAlign == "center" && layout == "vertical" ? "align-items-center" : horizontalAlign; 45 horizontalAlign = horizontalAlign == "end" && layout == "vertical" ? "align-items-end" : horizontalAlign; 46 47 string flexDirection = layout == "horizontal" ? string.Empty : "flex-column"; 48 string flexGap = layout == "horizontal" ? "gap-3" : string.Empty; 49 string order = layout == "horizontal" ? string.Empty : "order-2"; 50 string theme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("Theme")) ? "theme " + Model.Item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : ""; 51 theme = GetViewParameter("theme") != null ? GetViewParameterString("theme") : theme; 52 53 string contentPadding = Model.Item.GetRawValueString("ContentPadding", ""); 54 contentPadding = contentPadding == "none" ? "p-0" : contentPadding; 55 contentPadding = contentPadding == "small" ? "p-1 px-md-2 py-md-1" : contentPadding; 56 contentPadding = contentPadding == "large" ? "p-2 px-md-3 py-md-2" : contentPadding; 57 58 string showPricesWithVat = Pageview.Area.EcomPricesWithVat.ToLower(); 59 bool neverShowVat = string.IsNullOrEmpty(showPricesWithVat); 60 61 if (Dynamicweb.Frontend.PageView.Current().Area.ReverseChargeForVat || Dynamicweb.Security.UserManagement.User.GetCurrentExtranetUser()?.ReverseChargeForVat == true){ 62 if (showPricesWithVat == "false"){ 63 showPricesWithVat = ""; 64 neverShowVat = true; 65 } 66 } 67 68 string priceMin = ""; 69 string priceMax = ""; 70 71 string liveInfoClass = ""; 72 string productInfoFeed = ""; 73 bool isLazyLoadingForProductInfoEnabled = Dynamicweb.Core.Converter.ToBoolean(Dynamicweb.Context.Current.Items["IsLazyLoadingForProductInfoEnabled"]); 74 double discountPercentage = 0; 75 76 77 if (product.ProductDiscounts.Count() > 0){ 78 79 foreach (var discount in product.ProductDiscounts){ 80 discountPercentage = discountPercentage + discount.Percentage; 81 } 82 83 } 84 if (isLazyLoadingForProductInfoEnabled) 85 { 86 if (Dynamicweb.Context.Current.Items.Contains("ProductInfoFeed")) 87 { 88 productInfoFeed = Dynamicweb.Context.Current.Items["ProductInfoFeed"]?.ToString(); 89 if (!string.IsNullOrEmpty(productInfoFeed)) 90 { 91 productInfoFeed = $"data-product-info-feed=\"{productInfoFeed}\""; 92 } 93 } 94 liveInfoClass = "js-live-info"; 95 } 96 97 <div class="@textAlign @liveInfoClass item_@Model.Item.SystemName.ToLower()" data-product-id="@product.Id" data-variant-id="@product.VariantId" @productInfoFeed> 98 @if (showInformativePrice && product.PriceInformative.Price != 0) 99 { 100 <div class="opacity-50"> 101 <span>@Translate("RRP") </span> 102 <span class="text-decoration-line-through text-price">@product.PriceInformative.PriceFormatted</span> 103 </div> 104 } 105 <div class="@priceFontSize m-0 d-flex flex-wrap @flexDirection @flexGap @horizontalAlign" style="row-gap: 0 !important" itemprop="offers" itemscope itemtype="https://schema.org/Offer"> 106 <span itemprop="priceCurrency" content="@product.Price.CurrencyCode" class="d-none"></span> 107108109 @if (showPricesWithVat == "false" && !neverShowVat) 110 { 111 if (isLazyLoadingForProductInfoEnabled && !Pageview.IsVisualEditorMode) 112 { 113 <span itemprop="price" content="" class="d-none"></span> 114 <span class="text-decoration-line-through js-text-decoration-line-through opacity-75 me-3 text-price js-text-price d-none" data-show-if="LiveProductInfo.product.Price.Price != LiveProductInfo.product.PriceBeforeDiscount.Price"></span> 115 } 116 else 117 { 118 string beforePrice = !string.IsNullOrEmpty(unitId) ? product.GetPrice(unitId).PriceBeforeDiscount.PriceWithoutVatFormatted : product.PriceBeforeDiscount.PriceWithoutVatFormatted; 119120 <span itemprop="price" content="@product.Price.PriceWithoutVat.ToString("0.00", System.Globalization.CultureInfo.InvariantCulture)" class="d-none"></span> 121 if (product.Price.Price != product.PriceBeforeDiscount.Price) 122 { 123 <span class="text-decoration-line-through opacity-75 @order">@beforePrice</span> 124 } 125 } 126 } 127 else 128 { 129 if (isLazyLoadingForProductInfoEnabled && !Pageview.IsVisualEditorMode) 130 { 131 <span itemprop="price" content="" class="d-none"></span> 132 <span class="text-decoration-line-through js-text-decoration-line-through opacity-75 me-3 text-price js-text-price d-none" data-show-if="LiveProductInfo.product.Price.Price != LiveProductInfo.product.PriceBeforeDiscount.Price"></span> 133 } 134 else 135 { 136 string beforePrice = !string.IsNullOrEmpty(unitId) ? product.GetPrice(unitId).PriceBeforeDiscount.PriceFormatted : product.PriceBeforeDiscount.PriceFormatted; 137138 <span itemprop="price" content="@product.Price.Price.ToString("0.00", System.Globalization.CultureInfo.InvariantCulture)" class="d-none"></span> 139140 if (product.Price.Price != product.PriceBeforeDiscount.Price) 141 { 142 <span class="text-decoration-line-through opacity-75 @order"> 143 <span class="text-price">@beforePrice</span> 144 </span> 145 } 146 } 147 } 148149 @if (showPricesWithVat == "false" && !neverShowVat) 150 { 151 if (isLazyLoadingForProductInfoEnabled && !Pageview.IsVisualEditorMode) 152 { 153 <span class="text-price js-text-price"> 154 <span class="spinner-border" role="status"></span> 155 </span> 156 } 157 else 158 { 159 string price = !string.IsNullOrEmpty(unitId) ? product.GetPrice(unitId).Price.PriceWithoutVatFormatted : product.Price.PriceWithoutVatFormatted; 160 var priceNotFormatted = !string.IsNullOrEmpty(unitId) ? product.GetPrice(unitId).Price.PriceWithoutVat : product.Price.PriceWithoutVat; 161162 if (product?.VariantInfo?.VariantInfo != null) 163 { 164 priceMin = product?.VariantInfo?.PriceMin?.PriceWithoutVatFormatted != null ? product.VariantInfo.PriceMin.PriceWithoutVatFormatted : ""; 165 priceMax = product?.VariantInfo?.PriceMax?.PriceWithoutVatFormatted != null ? product.VariantInfo.PriceMax.PriceWithoutVatFormatted : ""; 166 } 167 if (priceMin != priceMax) 168 { 169 price = priceMin + " - " + priceMax; 170 } 171 else if (priceNotFormatted == 0){ 172 price = priceMin; 173 } 174 if (discountPercentage > 0){ 175176 double discountpriceMin = 0; 177 double discountpriceMax = 0; 178 string pricediscount = ""; 179 string currencySymbol = Dynamicweb.Ecommerce.Common.Context.Currency.Symbol; 180181 if (product?.VariantInfo?.VariantInfo != null) 182 { 183 discountpriceMin = product?.VariantInfo?.PriceMin?.PriceWithoutVat != null ? product.VariantInfo.PriceMin.PriceWithoutVat : 0; 184 discountpriceMax = product?.VariantInfo?.PriceMax?.PriceWithoutVat != null ? product.VariantInfo.PriceMax.PriceWithoutVat : 0; 185186 discountpriceMin = discountpriceMin - (discountpriceMin * discountPercentage / 100); 187 discountpriceMax = discountpriceMax - (discountpriceMax * discountPercentage / 100); 188189 } 190 if (discountpriceMin != discountpriceMax) 191 { 192 pricediscount = currencySymbol + discountpriceMin.ToString("F2") + " - " + currencySymbol + discountpriceMax.ToString("F2"); 193 } 194 else if (priceNotFormatted == 0){ 195 pricediscount = currencySymbol + discountpriceMin.ToString("F2"); 196 } 197198 <span class="@theme @contentPadding"> 199 <span class="text-decoration-line-through text-price">@price</span> 200 </span> 201202 <span class="@theme @contentPadding"> 203 <span class="text-price">@pricediscount</span> 204 </span> 205 } else { 206207 <span class="@theme @contentPadding"> 208 <span class="text-price">@price</span> 209 </span> 210211 } 212 } 213 } 214 else 215 { 216 if (isLazyLoadingForProductInfoEnabled && !Pageview.IsVisualEditorMode) 217 { 218 <span class="text-price js-text-price"> 219 <span class="spinner-border" role="status"></span> 220 </span> 221 } 222 else 223 { 224 string price = !string.IsNullOrEmpty(unitId) ? product.GetPrice(unitId).Price.PriceFormatted : product.Price.PriceFormatted; 225 var priceNotFormatted = !string.IsNullOrEmpty(unitId) ? product.GetPrice(unitId).Price.Price : product.Price.Price; 226 if (product?.VariantInfo?.VariantInfo != null) 227 { 228 priceMin = product?.VariantInfo?.PriceMin?.PriceFormatted != null ? product.VariantInfo.PriceMin.PriceFormatted : ""; 229 priceMax = product?.VariantInfo?.PriceMax?.PriceFormatted != null ? product.VariantInfo.PriceMax.PriceFormatted : ""; 230 } 231 if (priceMin != priceMax) 232 { 233 price = priceMin + " - " + priceMax; 234 } 235 else if (priceNotFormatted == 0){ 236 price = priceMin; 237 } 238 <span class="@theme @contentPadding"> 239 <span class="text-price">@price</span> 240 </span> 241 } 242 } 243244 @* Stock state for Schema.org, start *@ 245 @{ 246 Uri url = Dynamicweb.Context.Current.Request.Url; 247 } 248249 <link itemprop="url" href="@url"> 250251 @{ 252 bool IsNeverOutOfStock = product.NeverOutOfstock; 253 } 254255 @if (IsNeverOutOfStock) 256 { 257 <span itemprop="availability" class="d-none">@Translate("Available in stock")</span> 258 } 259 else 260 { 261 if (product.StockLevel > 0) 262 { 263 <span itemprop="availability" class="d-none">InStock</span> 264 } 265 else 266 { 267 <span itemprop="availability" class="d-none">OutOfStock</span> 268 } 269 } 270 @* Stock state for Schema.org, stop *@ 271272 </div> 273274 @if (showPricesWithVat == "false" && !neverShowVat) 275 { 276 if (isLazyLoadingForProductInfoEnabled && !Pageview.IsVisualEditorMode) 277 { 278 if (!hideVatPrice){ 279 <small class="opacity-85 fst-normal js-text-price-with-vat d-none" data-suffix="@Translate("Incl. VAT")"></small> 280 } 281 } 282 else 283 { 284 string price = !string.IsNullOrEmpty(unitId) ? product.GetPrice(unitId).Price.PriceWithVatFormatted : product.Price.PriceWithVatFormatted; 285 var priceNotFormatted = !string.IsNullOrEmpty(unitId) ? product.GetPrice(unitId).Price.PriceWithVat : product.Price.PriceWithVat; 286287 if (product?.VariantInfo?.VariantInfo != null) 288 { 289 priceMin = product?.VariantInfo?.PriceMin?.PriceWithVatFormatted != null ? product.VariantInfo.PriceMin.PriceWithVatFormatted : ""; 290 priceMax = product?.VariantInfo?.PriceMax?.PriceWithVatFormatted != null ? product.VariantInfo.PriceMax.PriceWithVatFormatted : ""; 291 } 292 if (priceMin != priceMax) 293 { 294 price = priceMin + " - " + priceMax; 295 } 296 else if (priceNotFormatted == 0){ 297 price = priceMin; 298 } 299 if (discountPercentage > 0){ 300301 double discountpriceMin = 0; 302 double discountpriceMax = 0; 303 string pricediscount = ""; 304 string currencySymbol = Dynamicweb.Ecommerce.Common.Context.Currency.Symbol; 305306 if (product?.VariantInfo?.VariantInfo != null) 307 { 308 discountpriceMin = product?.VariantInfo?.PriceMin?.PriceWithVat != null ? product.VariantInfo.PriceMin.PriceWithVat : 0; 309 discountpriceMax = product?.VariantInfo?.PriceMax?.PriceWithVat != null ? product.VariantInfo.PriceMax.PriceWithVat : 0; 310311 discountpriceMin = discountpriceMin - (discountpriceMin * discountPercentage / 100); 312 discountpriceMax = discountpriceMax - (discountpriceMax * discountPercentage / 100); 313314 } 315 if (discountpriceMin != discountpriceMax) 316 { 317 pricediscount = currencySymbol + discountpriceMin.ToString("F2") + " - " + currencySymbol + discountpriceMax.ToString("F2"); 318 } 319 else if (priceNotFormatted == 0){ 320 pricediscount = currencySymbol + discountpriceMin.ToString("F2"); 321 } 322323 if (!hideVatPrice){ 324 <div><small class="text-decoration-line-through opacity-85 fst-normal">@price @Translate("Incl. VAT")</small></div> 325 <small class="opacity-85 fst-normal">@pricediscount @Translate("Incl. VAT")</small> 326 } 327328329 } else { 330 if (!hideVatPrice){ 331 <small class="opacity-85 fst-normal">@price @Translate("Incl. VAT")</small> 332 } 333 } 334 } 335 } 336 </div> 337 } 338 else if (Pageview.IsVisualEditorMode) 339 { 340 <div class="alert alert-dark m-0" role="alert"> 341 <span>@Translate("No products available")</span> 342 </div> 343 } 344
Files
NameHerunterladen Dateityp
Datasheet-Water-Flow-Regulator.pdf 205 KB
.pdf
Images
3D Viewer
Specification

Wasserdurchflussregler sind ideal für die Regulierung des Wasserdurchflusses und der Wasseraustrittstemperatur. Die hochwertige Konstruktion und das Design machen das Gerät zu einem der wettbewerbsfähigsten.

Max. Temperatur: 95°C

Durchflussbereich: 0 ~ 18 L / min (jeder Kreislauf)

Kreislaufanschluss: 3/8" BSP-Innengewinde

Eingang/Ausgang: 3/4" BSP-Innengewinde Polyamidrohre mit Innen- und Außenkörpern aus PA6 mit 30 % Glasfaser

Messingeinlass- und -auslassventile, die in den Körper eingesetzt sind Innere Zugstangen aus Edelstahl