NYHED
Fire Finch Dobbelbrænder
Kraftfuld dobbeltbrænder komfur med indbygget vindbeskyttelse. To brændere med individuelle justeringsknapper og piezo tænding. Leveres med en holdbar bæretaske.
- Kraftfuld dobbeltbrænder komfur i et ultra-portabelt og letvægtsdesign
- Indbygget vindbeskyttelse og robuste, foldbare grydeholdere sikrer, at køkkengrejet forbliver sikkert.
- Leverer stærk og konstant varmeudledning
Forudbestil nu, forventes på lager: 01-06-2026
Vejl. Pris
649,95
549,95 kr.
- Fire Finch Double Stove er et kraftfuldt dobbeltbrændersystem med individuelle justeringsknapper og piezo-tænding, der leverer en stærk og konstant varmeudgang. Komfurets indbyggede vindbeskyttelse og foldbare grydeholdere giver stabilitet, hvilket gør det ideelt til forskellige udendørs madlavningsscenarier. Fremstillet af højkvalitetsmaterialer er dette komfur konstrueret til holdbarhed i krævende miljøer. Det benytter EN417 gevindskruede selvforseglede gaspatroner for effektiv brændstofanvendelse og leveres med en robust transporttaske af polyester til nem transport og opbevaring. Den kompakte pakkestørrelse, ultra-portable og letvægtsdesign gør det til et praktisk valg for friluftsentusiaster.
- Materiale
- Belagt rustfrit stål
- Størrelse
- 33,4 x 10,5 x 11,4 cm (B x H x D)
- Kogetid / 1 l vand (min.)
- 3:10
- Kilde
- EN 417 gasbeholder
- Gasforbrug
- 180 g/h
- Effekt
- 2 x 2500 W
- Farve
- Black
- Materialesammensætning
- 100% nylon
- Størrelse (pakket)
- 28.5 x 8.1 x 11.4 cm
- Indhold
- 1 brænder, 1 ripstop nylon bæretaske
- Vægt
- 1070 g
- EAN
- 5709388159656
- Number
- 690380
- Kraftfuld dobbeltbrænder komfur i et ultra-portabelt og letvægtsdesign
- Indbygget vindbeskyttelse og robuste, foldbare grydeholdere sikrer, at køkkengrejet forbliver sikkert.
- Leverer stærk og konstant varmeudledning
- Dobbelt brændere med individuelle justeringsknapper og piezo tænding.
- Fremstillet af materialer af høj kvalitet til langvarig ydeevne i barske miljøer.
- Anvender selvlukkende gaspatroner med EN417 gevind
- Kommer i en holdbar polyester transporttaske
Error executing template "Designs/Swift/Paragraph/Custom_Swift_ProductComponentSlider.cshtml" Microsoft.Data.SqlClient.SqlException (0x80131904): Connection Timeout Expired. The timeout period elapsed during the post-login phase. The connection could have timed out while waiting for server to complete the login process and respond; Or it could have timed out while attempting to create multiple active connections. The duration spent while attempting to connect to this server was - [Pre-Login] initialization=515; handshake=2; [Login] initialization=0; authentication=0; [Post-Login] complete=13545; ---> System.ComponentModel.Win32Exception (258): The wait operation timed out. at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at Microsoft.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at Microsoft.Data.SqlClient.SqlConnection.Open(SqlConnectionOverrides overrides) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternal(Boolean errorsExpected) at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReader(RelationalCommandParameterObject parameterObject) at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.Enumerator.InitializeReader(Enumerator enumerator) at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded) at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.Enumerator.MoveNext() at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) at Oase.Backend.Services.DinoService.GetOtherLookedAt(String Itemnumber, String Site, Int32 limit) at CompiledRazorTemplates.Dynamic.RazorEngine_e1efccd524964becbf0fa658e86cb14f.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() ClientConnectionId:10aa946c-cd48-489e-99a5-3b5943582129 Error Number:-2,State:0,Class:11
1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 2 @using Dynamicweb.Core 3 @using Dynamicweb.Ecommerce.ProductCatalog 4 5 @{ 6 ProductViewModel product = null; 7 IList<ProductViewModel> products = new List<ProductViewModel> { }; 8 IList<ProductGroupViewModel> groups = new List<ProductGroupViewModel> { }; 9 10 if (Dynamicweb.Context.Current.Items.Contains("ProductDetails")) 11 { 12 product = (ProductViewModel)Dynamicweb.Context.Current.Items["ProductDetails"]; 13 } 14 else if (Pageview.Page.Item["DummyProduct"] != null && Pageview.IsVisualEditorMode) 15 { 16 var pageViewModel = Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(Pageview.Page); 17 ProductListViewModel productList = pageViewModel.Item.GetValue("DummyProduct") != null ? pageViewModel.Item.GetValue("DummyProduct") as ProductListViewModel : new ProductListViewModel(); 18 19 if (productList?.Products is object) 20 { 21 product = productList.Products[0]; 22 } 23 } 24 25 string ProductSliderService = GetPageIdByNavigationTag("ProductSliderService") != 0 ? GetPageIdByNavigationTag("ProductSliderService").ToString() : ""; 26 string GroupSliderService = GetPageIdByNavigationTag("GroupSliderService") != 0 ? GetPageIdByNavigationTag("GroupSliderService").ToString() : ""; 27 28 string layout = Model.Item.GetRawValueString("Layout") == "slider" ? "ProductSliderComponent" : "ProductGridComponent"; 29 string lazyHeight = Model.Item.GetBoolean("SetMinHeightForLazyLoading") ? "min-height: 360px" : ""; 30 string theme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("Theme")) ? " theme " + Model.Item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : ""; 31 32 //Source type 33 string sourceType = Model.Item.GetRawValueString("RelationType", "selected"); 34 int itemSourcePageId = Convert.ToInt32(Model.Item.GetRawValueString("ListComponentSource", "0")); 35 36 var pageService = new Dynamicweb.Content.PageService(); 37 itemSourcePageId = itemSourcePageId > 0 && pageService.GetPageOrLanguage(itemSourcePageId, Pageview.AreaID) != null ? pageService.GetPageOrLanguage(itemSourcePageId, Pageview.AreaID).ID : itemSourcePageId; 38 39 var itemListArray = Model.Item.GetList("ProductGroupList")?.SelectedValues.ToArray(); 40 41 //--- PRODUCTS --- 42 if (sourceType == "selected") 43 { 44 ProductListViewModel SelectedProducts = Model.Item.GetValue<ProductListViewModel>("SelectedProducts"); 45 if (SelectedProducts != null) 46 { 47 foreach (var SelectedProduct in SelectedProducts.Products) 48 { 49 products.Add(SelectedProduct); 50 } 51 } 52 } 53 54 //--- GROUPS --- 55 if (sourceType == "selected-groups") 56 { 57 IList<ProductGroupViewModel> SelectedGroups = Model.Item.GetValue<IList<ProductGroupViewModel>>("SelectedGroups"); 58 if (SelectedGroups != null) 59 { 60 foreach (var group in SelectedGroups) 61 { 62 groups.Add(group); 63 } 64 } 65 } 66 67 //--- PRODUCTS IN A GROUP --- 68 if (sourceType == "group-products") 69 { 70 var productService = new Dynamicweb.Ecommerce.Products.ProductService(); 71 if (itemListArray != null && itemListArray.Any()) 72 { 73 var productsInGroup = productService.GetProductsByGroupId(itemListArray.First(), true, Pageview.Area.EcomLanguageId, false); 74 itemListArray = productsInGroup.Where(a => a.DefaultPrice > 0).Select(a => a.Number).ToArray(); 75 } 76 } 77 78 //Create group id collection and products id collection strings 79 string productIds = products.Count > 0 ? string.Join(",", products.Select(a => a.Id)) : ""; 80 string groupIds = groups.Count > 0 ? string.Join(",", groups.Select(a => a.Id)) : ""; 81 82 var ParagraphTitle = Model.Item.GetString("Title"); 83 var ProductsCount = Model.Item.GetDecimal("ProductsCount"); 84 var ProductsCountMobile = Model.Item.GetDecimal("ProductsCountMobile"); 85 var ItemLimit = Model.Item.GetInt32("ItemLimit"); 86 ItemLimit = ItemLimit == 0 ? 10 : ItemLimit; 87 var TitlePosition = Model.Item.GetString("TitlePosition", "center"); 88 var TitleArrow = Model.Item.GetString("ShowTitleArrow"); 89 } 90 @if (Pageview.IsVisualEditorMode == true) 91 { 92 <div class="alert alert-dark" role="alert"> 93 <span>Content slider for: @ParagraphTitle</span> 94 </div> 95 96 } else 97 { 98 var showLocalSource = "local"; 99 100 // Url to slider service page 101 string url = "/Default.aspx?ID=" + ProductSliderService; 102 103 // Product optional extra 104 if (sourceType == "optional-extra") 105 { 106 var MainProductId = Dynamicweb.Context.Current.Request.QueryString.Get("MainProductId"); 107 string? ProductOptionalExtra; 108 if (!string.IsNullOrWhiteSpace(MainProductId)) 109 { 110 ProductOptionalExtra = MainProductId; 111 } else 112 { 113 ProductOptionalExtra = product?.ProductFields.GetValueOrDefault("OptionalExtra")?.Value.ToString(); 114 115 } 116 itemListArray = ($"{ProductOptionalExtra}").Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).ToArray(); 117 } 118 119 // Also bought from "Dino" 120 if (sourceType == "AlsoBoughtDino") 121 { 122 if(product != null) 123 { 124 itemListArray = new Oase.Backend.Services.DinoService().GetOtherLookedAt(product.Number, Pageview.Area.Name, ItemLimit); 125 } 126 } 127 128 // Bestsellers from "Dino" 129 if (sourceType == "BestsellersDino") 130 { 131 itemListArray = new Oase.Backend.Services.DinoService().GetBestsellers(Pageview.Area.Name, ItemLimit); 132 } 133 134 // Cookie - Favorites and recent products 135 if (sourceType == "favorites" || sourceType == "recently-viewed") 136 { 137 itemListArray = [""]; 138 showLocalSource = sourceType; 139 } 140 141 @if (itemListArray?.Length > 0) 142 { 143 <form method="post" action="@url" id="ContentSliderForm_@Model.ID" data-localsource="@showLocalSource" 144 data-response-target-element="ContentSlider_@Model.ID" 145 data-preloader="inline" data-update-url="false" 146 class="item_@Model.Item.SystemName.ToLower()"> 147 148 <input type="hidden" name="ParagraphId" value="@Model.ID" /> 149 <input type="hidden" name="SortOrder" value="ASC"> 150 <input type="hidden" name="SourceType" value="@sourceType"> 151 <input type="hidden" name="TitlePosition" value="@TitlePosition"> 152 <input type="hidden" name="TitleArrow" value="@TitleArrow"> 153 <input type="hidden" name="itemSourcePageId" value="@itemSourcePageId"> 154 <input type="hidden" name="ParagraphTitle" value="@ParagraphTitle"> 155 <input type="hidden" name="ListOfIds" value="@string.Join(",", itemListArray)"> 156 <input type="hidden" name="MainProductId" value="@string.Join(",", itemListArray)"> 157 @if (ProductsCount != 0) 158 { 159 <input type="hidden" name="ProductsCount" value="@ProductsCount.ToString().Replace(",", ".")"> 160 } 161 @if (ProductsCountMobile != 0) 162 { 163 <input type="hidden" name="ProductsCountMobile" value="@ProductsCountMobile.ToString().Replace(",", ".")"> 164 } 165 </form> 166 167 <div class="w-100 h-100@(theme)"> 168 <div id="@Model.ID" class="user-select-none" style="scroll-margin-top:var(--header-height,150px)"></div> 169 <div id="ContentSlider_@(Model.ID)" class="h-100" style="@lazyHeight"> 170 <p class="grid placeholder-glow" style="height:400px;"> 171 <span class="placeholder g-col-3 rounded"></span> 172 <span class="placeholder g-col-3 rounded"></span> 173 <span class="placeholder g-col-3 rounded"></span> 174 <span class="placeholder g-col-3 rounded"></span> 175 </p> 176 </div> 177 </div> 178 179 <link rel="stylesheet" href="/Files/Templates/Designs/Swift/Assets/css/swiper-bundle.min.css" /> 180 <script src="/Files/Templates/Designs/Swift/Assets/js/swiper-bundle.min.js"></script> 181 <script type="module"> 182 const productSliderContainer = document.querySelector("#ContentSlider_@Model.ID"); 183 const productSliderForm = document.querySelector("#ContentSliderForm_@Model.ID"); 184 185 if (productSliderForm.dataset.localsource == 'favorites') { 186 let localItems = JSON.parse(localStorage.getItem('favorites-' + @(Pageview.Area.EcomShopId.Replace("SHOP",""))) || '[]'); 187 productSliderForm.querySelector('[name="ListOfIds"]').value = localItems.toString(); 188 productSliderForm.querySelector('[name="MainProductId"]').value = localItems.toString(); 189 } 190 if (productSliderForm.dataset.localsource == 'recently-viewed') { 191 let localItems = JSON.parse(localStorage.getItem('recently-viewed') || '[]'); 192 productSliderForm.querySelector('[name="ListOfIds"]').value = localItems.toString(); 193 productSliderForm.querySelector('[name="MainProductId"]').value = localItems.toString(); 194 } 195 196 swift.PageUpdater.Update(productSliderForm); 197 productSliderForm.addEventListener("updated.swift.pageupdater", function (e) { 198 if (e.detail.html === "") { 199 productSliderContainer.classList.add("d-none"); 200 } 201 }); 202 </script> 203 } 204 }






