Error executing template "Designs/Salts/eCom/Product/Product-Weglot.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_d97451561b884831a9526cefbc6a08cb.Execute() in C:\SaltsWebsites\Salts\SaltsGlobalLive\Files\Templates\Designs\Salts\eCom\Product\Product-Weglot.cshtml:line 202
   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 @using Dynamicweb.Ecommerce.Products 2 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 3 @{ 4 string groupId = System.Web.HttpContext.Current.Request.QueryString["GroupID"]; 5 6 //Salts_Dw9.Files.Templates.Designs.Salts.Ecom.ProductList.GroupProducts.GetPageData(); 7 8 Dynamicweb.Ecommerce.Products.Group thePrimaryGroup = new Group(); 9 if (string.IsNullOrEmpty(groupId)) 10 { 11 groupId = (string)System.Web.HttpContext.Current.Session["CurrentGroupId"]; 12 } 13 14 Dynamicweb.Ecommerce.Products.Group thisGroup = Dynamicweb.Ecommerce.Services.ProductGroups.GetGroup(groupId, GetString("Ecom:Product.LanguageID")); 15 Group parentGroup = new Group(); 16 17 if (thisGroup !=null) 18 { 19 parentGroup = thisGroup.ParentGroups.FirstOrDefault(); 20 } 21 } 22 <div class="m-column-two"> 23 <div class="l-container"> 24 <div class="container-fluid"> 25 <div class="l-row row"> 26 <div class="col-xs-12 col-sm-12 col-md-3 col-lg-3" style="position: sticky; top: 0px;"> 27 <div id="product-menu" class="product-menu subnav-nested subnav-nested-primary subnav-nested-isactive"> 28 29 @*On Product page there is no reference to get the heirarchy*@ 30 @if (parentGroup != null && parentGroup.IsTopGroup) 31 { 32 33 <div class="subnav subnav-nested subnav-nested-primary subnav-nested-isactive"> 34 <div class="subnav-content"> 35 <nav aria-label="Sub Groups Navigation" role="navigation"> 36 <ul class="list-unstyled content-menu"> 37 <li><h3 class="section-navigation living"><a href="Default.aspx?ID=@GetInteger("Ecom:Product:Page.ID")">@parentGroup.Name</a></h3></li> 38 39 @foreach (Group group in parentGroup.Subgroups) 40 { 41 if (group.Id == GetString(("Ecom:Group.ID"))) 42 { 43 <li class="Selected" style="padding-left: 10px;"><strong>@group.Name</strong></li> 44 } 45 else 46 { 47 <li style="padding-left: 10px;"><strong>@group.Name</strong></li> 48 } 49 50 Dynamicweb.Ecommerce.Products.Group currentGroup = new Dynamicweb.Ecommerce.Products.GroupService().GetGroup(group.Id); 51 52 if (new Dynamicweb.Ecommerce.Products.GroupService().HasProducts(currentGroup)) 53 { 54 <ul class="list-unstyled"> 55 @foreach (var product in currentGroup.ProductsByLanguageWithOutVariants) 56 { 57 <li style="padding-left: 10px;" id="@product.Id"> 58 <a href="Default.aspx?ID=@GetInteger("Ecom:Product:Page.ID")&ProductID=@product.Id">@product.Name</a> 59 </li> 60 } 61 </ul> 62 } 63 } 64 <li><h3 class="section-navigation living"><a href="/Default.aspx?ID=4521">@Translate("additional_products","Additional Products")</a></h3></li> 65 </ul> 66 </nav> 67 </div> 68 </div> 69 } 70 71 </div> 72 73 @if (parentGroup != null && parentGroup.IsTopGroup) 74 { 75 76 <div class="subnav subnav-nested subnav-nested-mobile"> 77 <div class="dropdown"> 78 <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown" style="width: 100%;">View @parentGroup.Name products<span class="caret"></span></button> 79 80 <ul class="dropdown-menu list-unstyled content-menu" style="padding: 8px; width: 100%;"> 81 @foreach (Group group in parentGroup.Subgroups) 82 { 83 if (group.Id == GetString(("Ecom:Group.ID"))) 84 { 85 <li class="Selected"><strong>@group.Name</strong></li> 86 } 87 else 88 { 89 <li><strong>@group.Name</strong></li> 90 } 91 92 Dynamicweb.Ecommerce.Products.Group currentGroup = new Dynamicweb.Ecommerce.Products.GroupService().GetGroup(group.Id); 93 94 if (new Dynamicweb.Ecommerce.Products.GroupService().HasProducts(currentGroup)) 95 { 96 <ul class="list-unstyled"> 97 @foreach (var product in currentGroup.ProductsByLanguageWithOutVariants) 98 { 99 if (product.Id == GetString("Ecom:Product.ID")) 100 { 101 <li class="Selected" id="@product.Id"> 102 <a href="Default.aspx?ID=@GetInteger("Ecom:Product:Page.ID")&ProductID=@product.Id">@product.Name</a> 103 </li> 104 } 105 else 106 { 107 <li id="@product.Id"> 108 <a href="Default.aspx?ID=@GetInteger("Ecom:Product:Page.ID")&ProductID=@product.Id">@product.Name</a> 109 </li> 110 } 111 112 } 113 </ul> 114 } 115 } 116 <li><a class="subnav-toggle subnav-toggle-secondary" href="/Default.aspx?ID=4521">@Translate("additional_products","Additional Products")</a></li> 117 </ul> 118 119 120 </div> 121 </div> 122 123 } 124 125 </div> <!-- col --> 126 127 <div class="col-xs-12 col-sm-12 col-md-9 col-lg-9"> 128 129 @*<p>Parent Group: @parentGroup.Name @parentGroup.Id</p> 130 @if (thePrimaryGroup != null) 131 { 132 <p>vs The Product Primary Group: @thePrimaryGroup.Id @GetString("Ecom:Product.PrimaryOrFirstGroupID") @thePrimaryGroup.Name</p> 133 <p>vs The group in session: (@System.Web.HttpContext.Current.Session["CurrentGroupId"])</p> 134 }*@ 135 136 137 <input type="hidden" id="currentProductId" value="@GetValue("Ecom:Product.ID")" /> 138 <div id="productdescription" style="display:none;"> 139 @if (Dynamicweb.Core.Converter.ToBoolean(GetString("Ecom:Product.Name"))) 140 { 141 <h2>@GetValue("Ecom:Product.Name")</h2> 142 } 143 @if (Dynamicweb.Core.Converter.ToBoolean(GetString("Ecom:Product.LongDescription"))) 144 { 145 @GetValue("Ecom:Product.LongDescription") 146 } 147 @if (GetString("Ecom:Product.ID") == "PROD40" || GetString("Ecom:Product.ID") == "PROD41" || GetString("Ecom:Product.ID") == "PROD68" || GetString("Ecom:Product.ID") == "PROD100" || GetString("Ecom:Product.ID") == "PROD39" || GetString("Ecom:Product.ID") == "PROD89") 148 { 149 } 150 else 151 { 152 <p><a href="/sample-orders" class="m-btn m-btn-info btn btn-info text-uppercase" style="background-color: #77b800;">Request a sample</a></p> 153 } 154 </div> 155 156 <div class="m-product-gallery"> 157 <div class="m-product-gallery-large"> 158 <div> 159 @if (Dynamicweb.Core.Converter.ToBoolean(GetString("Ecom:Product.ImageMedium.Clean"))) 160 { 161 <img src="@GetString("Ecom:Product.ImageMedium.Clean")" alt="@GetString("Ecom:Product.Name")" class="img-responsive"> 162 } 163 else 164 { 165 <img src="@GetString("Ecom:Product.ImageMedium.Default.Clean")" alt="No image available" class="img-responsive"> 166 } 167 </div> 168 </div> <!-- m-product-gallery-large --> 169 </div> <!-- m-product-gallery --> 170 171 172 173 @if (Dynamicweb.Core.Converter.ToBoolean(GetString("Ecom:Product:Field.productInformation"))) 174 { 175 <h2>@Translate("product_information","Product Information")</h2> 176 @GetString("Ecom:Product:Field.productInformation") 177 <div class="spacer">&nbsp;</div> 178 } 179 180 @if (Dynamicweb.Core.Converter.ToBoolean(GetString("Ecom:Product:Field.productFeature"))) 181 { 182 @GetString("Ecom:Product:Field.productFeature") 183 <div class="spacer">&nbsp;</div> 184 } 185 186 @if (Dynamicweb.Core.Converter.ToBoolean(GetString("Ecom:Product:Field.productFeaturesWafer"))) 187 { 188 @GetString("Ecom:Product:Field.productFeaturesWafer") 189 <div class="spacer">&nbsp;</div> 190 } 191 192 @if (Dynamicweb.Core.Converter.ToBoolean(GetString("Ecom:Product:Field.videoLink"))) 193 { 194 <div class="m-embed-responsive embed-responsive embed-responsive-16by9"> 195 <iframe class="embed-responsive-item" src="@GetString("Ecom:Product:Field.videoLink")"></iframe> 196 </div> 197 <div class="spacer">&nbsp;</div> 198 } 199 @if (Dynamicweb.Core.Converter.ToBoolean(GetValue("Ecom:Product.VariantCount"))) 200 { 201 <h3 id="orderSample">Product sizes and sample ordering</h3> 202 <p>To order a sample of the @GetValue("Ecom:Product.Name") or any of the other <a href="Default.aspx?ID=@GetInteger("Ecom:Product:Page.ID")">@parentGroup.Name products</a> we supply, then simply click on the order sample button at the end of the relevant row. If you are unsure which product samples to order, then simply use our <a href="/contact-us">contact form</a> and let us know your requirements.</p> 203 } 204 <div class="m-table-responsive table-responsive"> 205 <table id="@GetValue("Ecom:Product.ID")" class="m-table-col-4 table table-bordered table-striped sortTable sample"> 206 <thead class="m-theme-bg-green-extralight"> 207 <tr> 208 <th class="id" scope="col" style="text-align:left;">Product Code</th> 209 <th class="details" scope="col" style="text-align:left;">Details</th> 210 <th class="number" scope="col" style="text-align:center;">Product Number</th> 211 <th class="samplequantity" scope="col" style="text-align:center;">Sample Quanity</th> 212 <th class="packsize" scope="col" style="text-align:center;">Pack Size</th> 213 <!--<th class="add" scope="col">&nbsp;</th>--> 214 </tr> 215 </thead> 216 217 <tbody> 218 219 @foreach (LoopItem i in GetLoop("VariantCombinations")) 220 { 221 string cl = "listitem" + i.GetValue("VariantCombinations.LoopMod2"); 222 <tr class="@cl" data-sort="@i.GetValue("Ecom:Product:Field.sortOrder")" id="@(i.GetString("Ecom:Product.Number").Replace("*",""))"> 223 <td class="id skip-translate" style="text-align:left;">@i.GetValue("Ecom:Product.Number")</td> 224 <td class="details" style="text-align:left;">@i.GetValue("Ecom:Product.VariantText")</td> 225 <td class="number" style="text-align:center;">@i.GetValue("Ecom:Product:Field.NorwayProductNumber.Value.Clean")</td> 226 <td class="samplequantity" style="text-align:center;">@i.GetValue("Ecom:Product:Field.sampleQuantity.Value.Clean")</td> 227 <td class="packsize" style="text-align:center;">@i.GetValue("Ecom:Product:Field.packquantity.Value.Clean")</td> 228 <!--<td class="add" ><a href="Default.aspx?ID=5 @i.GetValue("Ecom:VariantCombination.Page.ID")&amp;ProductID=@i.GetValue("Ecom:VariantCombination.Product.ID")&amp;variantid=@i.GetValue("Ecom:VariantCombination.VariantID")&amp;cartcmd=add" class="m-btn m-btn-primary btn btn-primary pull-right text-uppercase add-sample">@Translate("add","Add")</a></td>--> 229 </tr> 230 } 231 </tbody> 232 </table> 233 @if (GetString("Ecom:Product.ID") == "PROD40" || GetString("Ecom:Product.ID") == "PROD41" || GetString("Ecom:Product.ID") == "PROD68" || GetString("Ecom:Product.ID") == "PROD100" || GetString("Ecom:Product.ID") == "PROD39" || GetString("Ecom:Product.ID") == "PROD89") 234 { 235 } 236 else 237 { 238 <p style="padding-top: 10px; width: 100%; text-align: right;"><a href="/sample-orders" class="m-btn m-btn-info btn btn-info text-uppercase" tabindex="0" style="background-color: #77b800;">Request a sample</a></p> 239 } 240 </div> <!-- table-responsive --> 241 242 <div class="table-footer"> 243 @if (GetString("Ecom:Product:Field.productTableFooter") != "") 244 { 245 <p>@GetValue("Ecom:Product:Field.productTableFooter")</p> 246 } 247 </div> 248 249 250 <div class="m-product-container-closed related-products"> 251 <h3>@Translate("other_additional_products","Other additional products")</h3> 252 <div class="l-group-3-inset row" style="overflow: auto; margin-bottom: 30px;"> 253 254 @foreach (LoopItem i in GetLoop("ProductRelatedGroups")) 255 { 256 foreach (LoopItem i2 in i.GetLoop("RelatedProducts")) 257 { 258 <div class="l-group-content col-ms-6 col-sm-4"> 259 <div class="m-product"> 260 <div class="m-product-visual"> 261 262 @{ 263 string link = string.Empty; 264 string image = string.Empty; 265 string button = string.Empty; 266 } 267 268 @*<p>ProductUrl: @i2.GetString("Ecom:Product.Link.Clean")</p> 269 <p>ProductImage: @i2.GetValue("Ecom:Product.ImageSmall.Clean")</p> 270 <p>ProductImage: @i2.GetValue("Ecom:Product.ImageSmall.Clean")</p> 271 <p>ProductImage2: @i2.GetValue("Ecom:Ecommerce.Product.ImageSmall.Default.Clean")</p>*@ 272 273 @if (Dynamicweb.Core.Converter.ToBoolean(i2.GetString("Ecom:Product:Field.ProductURL.Value.Clean"))) 274 { 275 link = "<a href=" + i2.GetString("Ecom:Product.Link.Clean") + ">{0}</a>"; 276 } 277 else 278 { 279 link = "<a href=" + i2.GetValue("Ecom:Product.Link.Clean") + ">{0}</a>"; 280 } 281 @if (Dynamicweb.Core.Converter.ToBoolean(i2.GetString("Ecom:Ecommerce.Product.ImageSmall.Default.Clean"))) 282 { 283 image = "<img class='img-responsive' src='" + i2.GetString("Ecom:Product.Link.Clean") + "' alt='No image currently available'>"; 284 } 285 else 286 { 287 image = "<h4 style='padding: 12px 12px 0px 12px; height: 42px;'>" + i2.GetString("Ecom:Product.Name") + "</h4><img class='img-responsive' src='" + i2.GetString("Ecom:Product.ImageSmall.Clean") + "' alt='" + i2.GetString("Ecom:Product.Name") + "'>"; 288 } 289 290 @string.Format(link, image) 291 292 </div> 293 <div class="m-product-cta text-center"> 294 @if (Dynamicweb.Core.Converter.ToBoolean(i2.GetValue("Ecom:Product:Field.ProductURL.Value.Clean"))) 295 { 296 <p><a href="@GetString("Ecom:Product.Link.Clean")" class="m-btn btn btn-primary text-uppercase">@Translate("ViewProduct", "View Product")</a></p> 297 if (GetString("Ecom:Product.Name") != "Salts Support Wear") 298 { 299 <p><a href="@GetString("Ecom:Product.Link.Clean")#orderSample" class="m-btn m-btn-info btn btn-info text-uppercase">@Translate("OrderSample", "Order Sample")</a></p> 300 } 301 } 302 else 303 { 304 <p><a href="@i2.GetString("Ecom:Product.Link.Clean")" class="m-btn btn btn-primary text-uppercase">@Translate("ViewProduct", "View Product")</a></p> 305 if (GetString("Ecom:Product.Name") != "Salts Support Wear") 306 { 307 <p><a href="/sample-orders" class="m-btn m-btn-info btn btn-info text-uppercase">@Translate("OrderSample", "Order Sample")</a></p> 308 <!--<p><a href="@i2.GetString("Ecom:Product.Link.Clean")#orderSample" class="m-btn m-btn-info btn btn-info text-uppercase">@Translate("OrderSample", "Order Sample")</a></p>--> 309 } 310 } 311 </div> 312 </div> <!-- m-product --> 313 </div> 314 } 315 } 316 317 </div> <!-- row --> 318 </div> 319 <!-- m-product --> 320 321 </div> <!-- col --> 322 </div> <!-- row --> 323 </div> <!-- container-fluid --> 324 </div> <!-- l-container --> 325 </div>

Product Information

Urostomy bags are worn by those who have recently had urostomy surgery. After your urostomy surgery you will have a night drainage bag attached to collect your urine. Urostomy bags will be most likely transparent or have a viewing window. This will allow your Stoma Care Nurse to check on the colour and size of your stoma easily.
 

Types of urostomy bags

We pride ourselves on developing urostomy products which offer quality of life for those people living with a stoma. ​We have a range of one-piece flat and one-piece convex urostomy bags and supplies for you to sample from.

Our flat one-piece urostomy product range includes: 

  • Confidence® Urostomy
  • Confidence® Natural
  • Confidence® Natural Advance

Confidence BE® is now available in Urostomy. A sleek, low-profile bag design that looks less like a medical device. The outlet tucks away and is securely fastened giving the illusion of a closed bag and the soft bung is comfortable without compromising ease of use. The flow control mechanism makes it easy to control the flow of urine and a rotating and the detachable bung lanyard can be moved away from urine flow when draining.

Our Confidence® Natural range features a unique five-sided Flexifit® wafer for a perfect fit. Our hydrocolloids are infused with extracts of Aloe Vera, which may help to soothe and protect your skin.

We also have a Confidence® Convex Supersoft product range. This particular urostomy product range provides firm convexity and is extremely comfortable for your stoma.

Always follow the directions for use.