Outdoor Furniture Space Saving Solutions for Corporate & Commercial Operators
Space saving furniture such as mounted benches, cycle racks, and litter bins allows for the efficient use of outdoor areas, especially in both the commercial and urban environments where space can be limited. Bulky or oversized furniture can hinder movement within any space, leading to congestion or limited accessibility. Space saving furniture helps to create clear pathways and ensures smooth traffic flow. This is particularly important in high footfall areas such as city centres, narrow pathways, or shared spaces.
- Ekeby Wall-Mounted Benches: A bench that can be attached to a wall which is ideal for narrow outdoor spaces or areas with limited ground space.
-
Rosenlund ½ Hexagon range: A modular bench systems that consist of individual seating units that can be arranged in various configurations, allowing for customisation and adaptable seating options when space is a premium.
-
Wall-Mounted Bike Racks: The Dorado bike rack that attaches to a wall is space efficient and can be installed in small outdoor areas, encouraging bike parking without occupying valuable ground space.
-
Wall-Mounted Bins: The Rosen 40 litre slimline bin and the Asken ashtray have been designed to fit into tight spaces such as along pathways or in small outdoor areas. Both have been designed to offer functionality whilst helping to keep public or commercial spaces tidy and inviting.
Error executing template "/Designs/Hags2024/Paragraph/h24-manual-product-list.cshtml" System.Xml.XmlException: There are multiple root elements. Line 1, position 43. at System.Xml.XmlTextReaderImpl.Throw(Exception e) at System.Xml.XmlTextReaderImpl.Throw(String res, String arg) at System.Xml.XmlTextReaderImpl.ParseDocumentContent() at System.Xml.XmlTextReaderImpl.Read() at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc) at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace) at System.Xml.XmlDocument.Load(XmlReader reader) at System.Xml.XmlDocument.LoadXml(String xml) at Dynamicweb.Modules.Properties.LoadProperty(String xml, Boolean merge) at Dynamicweb.Modules.Properties.GetParagraphModuleSettings(Int32 pageId, String paragraphModuleSystemName) at HagsWeb.Library.Utilities.DWUtilities.GetProductUrl(Product product, Int32 areaId) at CompiledRazorTemplates.Dynamic.RazorEngine_8359bed67fc0451a84fa047d48df5378.Execute() in B:\Projects\Hags_Dw915\Files\Templates\Designs\Hags2024\Paragraph\h24-manual-product-list.cshtml:line 42 at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader) at RazorEngine.Templating.RazorEngineCore.RunTemplate(ICompiledTemplate template, TextWriter writer, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.DynamicWrapperService.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 RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(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 2 @using Dynamicweb.Ecommerce.Products; 3 4 @{ 5 Dynamicweb.Content.Area area = new Dynamicweb.Content.AreaService().GetArea(Dynamicweb.Frontend.PageView.Current().AreaID); 6 string itemHeading = @GetString("Item.Heading"); 7 string itemContent = @GetString("Item.Content"); 8 string mainImage = @GetString("Item.Main_Image"); 9 string designBaseUrl = GetString("Template:DesignBaseUrl"); 10 } 11 12 <section class="products-listing"> 13 <div class="wrapper flow"> 14 15 @if ( itemHeading != "") 16 { 17 <div class="center-copy flow"> 18 <h3>@itemHeading</h3> 19 20 @itemContent 21 22 </div> 23 } 24 25 <div class="products-listing__grid"> 26 27 @foreach (var product in GetLoop("Item.Product_List")) 28 { 29 string imageUrl = string.Empty; 30 string productUrl = string.Empty; 31 string itemProductId = product.GetString("Ecom:Product.ID"); 32 string itemProductLink = product.GetString("Ecom:Product.Link.Clean"); 33 string itemProductGroupId = product.GetString("Ecom:Product.LinkGroup.Clean"); 34 string itemShopContext = product.GetString("Ecom:Product.LinkGroupShopContext.Clean"); 35 string itemCanonical = product.GetString("Ecom:Product.Canonical"); 36 37 38 Product prod = new ProductService().GetProductById(product.GetString("Ecom:Product.ID"), product.GetString("Ecom:Product.VariantID"), area.EcomLanguageId); 39 40 if (prod != null) 41 { 42 productUrl = HagsWeb.Library.Utilities.DWUtilities.GetProductUrl(prod, area.ID); 43 imageUrl = HagsWeb.Library.Utilities.DWUtilities.GetSingleProductImageUrl(prod); 44 } 45 46 47 <div class="product-card"> 48 49 <div class="product-card__img-silo"> 50 @if (!string.IsNullOrEmpty(imageUrl)) 51 { 52 <a href="@productUrl"><img src="@imageUrl" class="product-card__img"></a> 53 54 } 55 else 56 { 57 <a href="@productUrl" class="product-card__missing"> 58 <img src="@(designBaseUrl)assets/img/h24-see-saw.svg"> 59 <span>No Image Available</span> 60 </a> 61 } 62 </div> 63 64 <div class="product-card__copy"> 65 <p class="product-card__heading"><a href="@productUrl">@product.GetString("Ecom:Product.Name")</a></p> 66 <!--p>@product.GetString("Ecom:Product.ShortDescription")</p--> 67 </div> 68 69 </div> 70 71 } 72 73 </div> 74 </div> 75 </section> 76 77