VELKOMMEN I WEBSHOPPEN

med mere end 4.000 emballage- og tilbehørsprodukter til dig

WEBSHOP SØGNING

Error executing template "Designs/Kde/eCom/Productlist/List.cshtml"
System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
   at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
   at System.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext()
   at Dynamicweb.Ecommerce.Assortments.AssortmentService.GetAssortmentsByLanguageId(String languageId, Boolean showUntranslated)
   at Dynamicweb.Ecommerce.Assortments.AssortmentService.InternalHasAccessToProduct(Product product, User user)
   at Dynamicweb.Ecommerce.Assortments.AssortmentService.HasAccessToProduct(Product product, User user)
   at Dynamicweb.Ecommerce.Products.ProductService.ReFactorProductList(ICollection`1 products, Currency currency, Country country, StockLocation stockLocation, User user, Boolean useAssortments)
   at Dynamicweb.Ecommerce.Products.ProductService.ReFactorProductList(ICollection`1 products, Boolean useAssortments)
   at Dynamicweb.Ecommerce.Products.ProductRepository.GetBySql(CommandBuilder query, Boolean doRefactoring, Boolean bulkFill, Boolean useAssortments)
   at Dynamicweb.Ecommerce.Products.Group.get_Products()
   at CompiledRazorTemplates.Dynamic.RazorEngine_d6d3174261e54940a9a9ccc308b2a530.Execute() in D:\web\kde.dk\Website\Files\Templates\Designs\Kde\eCom\Productlist\List.cshtml:line 453
   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.b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()

1 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 2 3 @using System.Text; 4 @using System.Web; 5 @using Dynamicweb.Ecommerce.Products; 6 @using Website.Helpers; 7 @using System.Linq; 8 @using Website.CustomCode.Helpers; 9 10 @helper DisplayProducts() 11 { 12 Dynamicweb.Ecommerce.Assortments.AssortmentService glassortmentService = new Dynamicweb.Ecommerce.Assortments.AssortmentService(); 13 Dynamicweb.Ecommerce.International.LanguageService gllanguageService = new Dynamicweb.Ecommerce.International.LanguageService(); 14 Dynamicweb.Ecommerce.International.Language gldefaultLang = gllanguageService.GetDefaultLanguage(); 15 Dynamicweb.Security.UserManagement.User glcurrentUser = Dynamicweb.Security.UserManagement.User.GetCurrentUser(Dynamicweb.Security.UserManagement.PagePermissionLevels.Frontend); 16 List<string> gluserAssortments = new List<string>(glassortmentService.GetAssortmentIdsByUser(glcurrentUser)); 17 var products = GetLoop("Products"); 18 var subGroups = GetLoop("Subgroups"); 19 ContractHelpers contractHelpers = new ContractHelpers(); 20 21 var hideDefaultAssortment = glcurrentUser == null || glcurrentUser.CustomFieldValues.FirstOrDefault(x => x.CustomField.SystemName == "AccessUser_Hide_standard_sortiment").Value == null || Dynamicweb.Core.Converter.ToBoolean(glcurrentUser.CustomFieldValues.FirstOrDefault(x => x.CustomField.SystemName == "AccessUser_Hide_standard_sortiment").Value) == false; 22 23 if (subGroups.Count > 0 && hideDefaultAssortment) 24 { 25 <div class="row"> 26 27 @foreach (var grp in subGroups) 28 { 29 GroupService groupService = new GroupService(); 30 Group group = new Group(); 31 string groupId = grp.GetString("Ecom:Group.ID"); 32 group = groupService.GetGroup(groupId); 33 if (groupService.HasProducts(group) || group.HasChildGroups == true) 34 { 35 bool display = false; 36 string reason = "show by default"; 37 38 if (group.HasChildGroups) 39 { 40 display = true; 41 reason = "has childgroups"; 42 } 43 else 44 { 45 //Has products so I need to check if any belong to user's assortments 46 if (group.Products.Count > 0) 47 { 48 List<Dynamicweb.Ecommerce.Products.Product> gproducts = new List<Dynamicweb.Ecommerce.Products.Product>(group.Products); 49 foreach (var p in gproducts) 50 { 51 List<Dynamicweb.Ecommerce.Assortments.Assortment> productAssortments = new List<Dynamicweb.Ecommerce.Assortments.Assortment>(glassortmentService.GetAssortmentsByProduct(p)); 52 if (!productAssortments.Any()) 53 { 54 display = true; 55 reason = "no assortments"; 56 break; 57 } 58 foreach (Dynamicweb.Ecommerce.Assortments.Assortment a in productAssortments) 59 { 60 if (gluserAssortments.Contains(a.ID)) 61 { 62 display = true; 63 reason = "in assortments"; 64 break; 65 } 66 } 67 if (display == true) 68 { 69 break; 70 } 71 } 72 } 73 } 74 if (display) 75 { 76 string image = grp.GetString("Ecom:Group.LargeImage"); 77 string imageResize = VestjyskMarketing.Helpers.ImageHelper.ResizeImage(image, 340, 200); 78 string groupUrl = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(grp.GetString("Ecom:Group.Link.Clean")); 79 string teaser = !String.IsNullOrWhiteSpace(grp.GetString("Ecom:Group:Field.Teaser")) ? grp.GetString("Ecom:Group:Field.Teaser") : grp.GetString("Ecom:Group.Description"); 80 81 <div class="col-xs-12 col-md-6 col-lg-4"> 82 <div class="categories__item"> 83 <a class="categories__item__link" href="@groupUrl" title="@grp.GetString("Ecom:Group.Name")"> 84 <div class="categories__item__imagewrapper"> 85 <img src="@imageResize" class="img-responsive categories__item__imagewrapper__image" alt="@grp.GetString("Ecom:Group.Name")"/> 86 </div> 87 <div class="categories__item__name"> 88 @grp.GetString("Ecom:Group.Name") 89 </div> 90 <div class="categories__item__description"> 91 @teaser 92 </div> 93 </a> 94 </div> 95 </div> 96 } 97 } 98 } 99 </div> 100 } 101 102 string currentGroupId = GetString("Ecom:ProductList:Page.GroupID"); 103 104 105 // Find subgroups below "Strækfilm" group 106 Dynamicweb.Ecommerce.Products.Group filmGroup = Dynamicweb.Ecommerce.Services.ProductGroups.GetGroup("235"); 107 108 // Create a list with all the forbidden product groups 109 List<string> forbiddenGroups = new List<string>(); 110 forbiddenGroups.Add(filmGroup.Id); 111 112 // Create a GroupCollection with all the subgroups of the "Strækfilm" group 113 GroupCollection filmSubGroups = filmGroup.Subgroups; 114 115 // Iterate them and add them to the list of forbidden groups 116 foreach (Group filmSubGroup in filmSubGroups) 117 { 118 forbiddenGroups.Add(filmSubGroup.Id); 119 } 120 121 forbiddenGroups.Add("240"); 122 forbiddenGroups.Add("24010"); 123 124 forbiddenGroups.Add("430"); 125 forbiddenGroups.Add("43010"); 126 forbiddenGroups.Add("43020"); 127 128 forbiddenGroups.Add("610"); 129 forbiddenGroups.Add("61010"); 130 forbiddenGroups.Add("61020"); 131 forbiddenGroups.Add("61025"); 132 forbiddenGroups.Add("61030"); 133 forbiddenGroups.Add("61040"); 134 forbiddenGroups.Add("615"); 135 136 // Make list of customers who is not allowed to see this 137 List<string> forbiddenCustomers = new List<string>(); 138 forbiddenCustomers.Add("41869"); 139 140 forbiddenCustomers.Add("41871"); 141 forbiddenCustomers.Add("41872"); 142 forbiddenCustomers.Add("41873"); 143 forbiddenCustomers.Add("41874"); 144 forbiddenCustomers.Add("41875"); 145 forbiddenCustomers.Add("41876"); 146 forbiddenCustomers.Add("41877"); 147 forbiddenCustomers.Add("41878"); 148 forbiddenCustomers.Add("41879"); 149 150 forbiddenCustomers.Add("41880"); 151 forbiddenCustomers.Add("41881"); 152 forbiddenCustomers.Add("41882"); 153 forbiddenCustomers.Add("41883"); 154 forbiddenCustomers.Add("41884"); 155 forbiddenCustomers.Add("41886"); 156 forbiddenCustomers.Add("41887"); 157 forbiddenCustomers.Add("41888"); 158 159 forbiddenCustomers.Add("41890"); 160 forbiddenCustomers.Add("41891"); 161 162 forbiddenCustomers.Add("20638"); 163 164 bool hideForbiddenProducts = false; 165 166 if (Pageview.User != null) 167 { 168 if (forbiddenGroups.Contains(currentGroupId) && forbiddenCustomers.Contains(Pageview.User.CustomerNumber)) 169 { 170 hideForbiddenProducts = true; 171 } 172 } 173 174 //if (products.Count != 0 && (!string.IsNullOrEmpty(currentGroupId)) || !string.IsNullOrEmpty(HttpContext.Current.Request["search"])) 175 if (hideDefaultAssortment && subGroups.Count == 0 && products.Count != 0 && !hideForbiddenProducts && (!string.IsNullOrEmpty(currentGroupId)) || !string.IsNullOrEmpty(HttpContext.Current.Request["search"])) 176 { 177 <div class="row"> 178 @foreach (var product in products) 179 { 180 string productUrl = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(product.GetString("Ecom:Product.Link.Clean")); 181 bool hideBuy = product.GetBoolean("Ecom:Product:Field.HideBuy"); 182 string fscLogo = VestjyskMarketing.Helpers.ImageHelper.ResizeImage("/Files/Images/Logoer/FSC_Logo.png", 35, 35,6); 183 bool fscApproved = GetBoolean("Ecom:Group:Field.KdeFSC"); 184 185 <div class="col-xs-12 col-sm-6 col-lg-4"> 186 <div class="productlist__item equalize-height"> 187 <form method="post"> 188 @{ 189 string largeImage = product.GetString("Ecom:Product.Image.Master"); 190 largeImage = VestjyskMarketing.Helpers.ImageHelper.ResizeImage(largeImage, 340, 200); 191 192 <div class="productlist__item__imagewrapper"> 193 @if (fscApproved) 194 { 195 <img src="@fscLogo" class="img-fluid productlist__item__imagewrapper__fsc " alt="FSC logo" title="FSC Godkendt" /> 196 } 197 <a href="@productUrl" title='@product.GetValue("Ecom:Product.Name")'><img src="@largeImage" class="img-responsive productlist__item__imagewrapper__image img-thumbnail" alt="@product.GetValue("Ecom:Product.Name")" /></a> 198 </div> 199 } 200 201 <div class="productlist__item__name"> 202 @product.GetValue("Ecom:Product.Name") 203 </div> 204 <div class="productlist__item__description"> 205 @product.GetString("Ecom:Product.ShortDescription") 206 207 @if (Pageview.User != null && !String.IsNullOrEmpty(Pageview.User.CustomerNumber) && hideBuy == false) 208 { 209 Prices price = new Prices(); 210 211 <p style="font-weight: normal;"> 212 @{ 213 string productPrice = price.GetOnePiecePrice(Pageview.User.CustomerNumber, product.GetString("Ecom:Product.Number"), Convert.ToInt32(product.GetValue("Ecom:Product.PurchaseMinimumQuantity")), true, false); 214 215 if (productPrice == "0.00") 216 { 217 <text>@product.GetString("Ecom:Product.Price") kr.</text> 218 } 219 else 220 { 221 <text>@productPrice kr.</text> 222 } 223 } 224 </p> 225 } 226 </div> 227 <div class="productlist__item__info"> 228 <p><a href="@productUrl" title='@product.GetValue("Ecom:Product.Name")'>@Translate("Se produkt for kolli/palle")</a></p> 229 </div> 230 231 @if (Pageview.User != null) 232 { 233 if (hideBuy == false) 234 { 235 List<string> unsignedContractProductNumbers = contractHelpers.GetProductIdsFromUnsignedContracts(glcurrentUser.CustomerNumber); 236 <div class="productlist__item__cart"> 237 <div style="border-right: 0px solid black; width: 149px; display: inline-block; height: inherit"> 238 <span class="fal fa-minus productlist__item__amountwrapper--decrease decrease"></span> 239 <input value="@Convert.ToInt32(product.GetValue("Ecom:Product.PurchaseMinimumQuantity"))" name="Quantity" id="amount_@product.GetValue("Ecom:Product.ID")" class=" productlist__item__amountwrapper__input" type="number" min="0" data-min="@Convert.ToInt32(product.GetValue("Ecom:Product.PurchaseMinimumQuantity"))" data-incrementvalue="@product.GetValue("Ecom:Product.PurchaseQuantityStep")" /> 240 <span class="fal fa-plus productlist__item__amountwrapper--increase increase" style="width: 40px; border: 0;"></span> 241 242 </div> 243 <div style="display: inline-block; float: right;"> 244 <input type="hidden" name="ProductId" value='@product.GetValue("Ecom:Product.ID")' /> 245 @if (!string.IsNullOrEmpty(product.GetString("Ecom:Product.VariantID"))) 246 { 247 <input type="hidden" name="VariantId" value='@product.GetValue("Ecom:Product.VariantID")' /> 248 } 249 <button class="btn btn-primary productlist__item__cart-btn @(unsignedContractProductNumbers.Any(x => x == product.GetString("Ecom:Product.Number")) ? "js-cart-stop" : "")" style="border-left: 1px solid black;" type="submit" name="CartCmd" value="add">@Translate("Add_to_cart", "Add to cart")</button> 250 </div> 251 </div> 252 } 253 254 } 255 </form> 256 </div> 257 </div> 258 } 259 </div> 260 if (products.Count > 0) 261 { 262 <div class="row"> 263 <div class="col-xs-12 text-center"> 264 <div id="productlistnavigation"> 265 <span id="productcount"> 266 @GetValue("Ecom:ProductList.PageProdCnt") produkter &nbsp; - &nbsp; 267 </span> 268 <span id="pagecount"> 269 Side @GetValue("Ecom:ProductList.CurrentPage") af @GetValue("Ecom:ProductList.TotalPages") 270 </span> 271 <span id="pagenavigation"> 272 <br /><a id="prevpage" href="@GetValue("Ecom:ProductList.PrevPage.Clean")" @GetValue("Ecom:ProductList.PrevPage")>&laquo; Forrige</a>&nbsp; <a id="nextpage" href="@GetValue("Ecom:ProductList.NextPage.Clean")" @GetValue("Ecom:ProductList.NextPage")>Næste &raquo;</a><br /> 273 </span> 274 </div> 275 </div> 276 </div> 277 } 278 else 279 { 280 <div class="row"> 281 <div class="col-md-12"> 282 <p>@Translate("Ingen produkter fundet")</p> 283 </div> 284 </div> 285 } 286 287 288 } 289 290 if (!string.IsNullOrEmpty(GetString("Ecom:Group:Field.BottomDescription"))) 291 { 292 <div class="row"> 293 <div class="col-xs-12"> 294 <div class="categories__bottomdescription"> 295 <p>@GetString("Ecom:Group:Field.BottomDescription")</p> 296 </div> 297 </div> 298 </div> 299 } 300 } 301 @{ 302 var s = HttpContext.Current.Request.Url.AbsoluteUri.Split('/').Last(); 303 } 304 305 <div class="productlist"> 306 <div class="container"> 307 <div class="row"> 308 <div class="col-xs-12"> 309 <div class="col-md-4 col-lg-3"> 310 @if (s.ToLower().Contains("default.aspx?id=6&group")) 311 { 312 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 313 314 <ul class="nav__ecom"> 315 @{ 316 Dynamicweb.Ecommerce.Assortments.AssortmentService assortmentService = new Dynamicweb.Ecommerce.Assortments.AssortmentService(); 317 Dynamicweb.Ecommerce.International.LanguageService languageService = new Dynamicweb.Ecommerce.International.LanguageService(); 318 Dynamicweb.Ecommerce.International.Language defaultLang = languageService.GetDefaultLanguage(); 319 Dynamicweb.Security.UserManagement.User currentUser = Dynamicweb.Security.UserManagement.User.GetCurrentUser(Dynamicweb.Security.UserManagement.PagePermissionLevels.Frontend); 320 List<string> userAssortments = new List<string>(assortmentService.GetAssortmentIdsByUser(currentUser)); 321 322 new GroupService().ClearCache(); 323 324 IEnumerable<Dynamicweb.Ecommerce.Products.Group> groups = new GroupService().GetToplevelGroups(); 325 326 string currentGroup = GetString("Ecom:Group.ID"); 327 if (string.IsNullOrEmpty(currentGroup)) 328 { 329 currentGroup = GetString("Ecom:Product.PrimaryOrFirstGroupID"); 330 } 331 332 Dynamicweb.Ecommerce.Products.GroupCollection groupCollection = new Dynamicweb.Ecommerce.Products.GroupCollection(groups); 333 334 groupCollection.Sort(Dynamicweb.Ecommerce.Products.GroupCollectionSortBy.ShopOrder); 335 336 foreach (Group group in groupCollection) 337 { 338 339 //only show groups from KDE 340 if (group.ShopId != "SHOP1") 341 { 342 continue; 343 } 344 345 string active = string.Empty; 346 347 if (group.HasChildGroups || group.Products.Count > 0) 348 { 349 <li> 350 @if (group.Id == currentGroup) 351 { 352 active = "active"; 353 } 354 @if (group.HasChildGroups || group.Products.Count > 0) 355 { 356 <a href="Default.aspx?ID=6&GroupID=@group.Id" class="@active">@group.Name</a> 357 } 358 359 @if (group.HasChildGroups) 360 { 361 var ulClass = "hidden"; 362 var plusClass = "fa-plus"; 363 364 if (group.Subgroups.Contains(new GroupService().GetGroup(currentGroup)) || group.Id == currentGroup) 365 { 366 ulClass = ""; 367 plusClass = "fa-minus"; 368 } 369 370 group.Subgroups.SortByParentGroupOrder(group.Id); 371 372 foreach (Group subSub in group.Subgroups) 373 { 374 if (subSub.Subgroups.Contains(new GroupService().GetGroup(currentGroup))) 375 { 376 ulClass = ""; 377 plusClass = "fa-minus"; 378 379 break; 380 } 381 } 382 383 <span class="pull-right"><a href="#" class="nav__ecom-plus js-nav-ecom-expand-sub"><i class="fas @plusClass"></i></a></span> 384 385 <ul class="M2 @ulClass"> 386 @foreach (Group childGroup in group.Subgroups) 387 { 388 389 active = string.Empty; 390 if (childGroup.Id == currentGroup) 391 { 392 active = "active"; 393 } 394 /*<span>@childGroup.Name - @childGroup.HasChildGroups - @childGroup.Products.Count</span>*/ 395 if (childGroup.HasChildGroups || childGroup.Products.Count > 0) 396 { 397 bool display = true; 398 //Has products so I need to check if any belong to user's assortments 399 if (!childGroup.HasChildGroups && childGroup.Products.Count > 0) 400 { 401 display = false; 402 List<Dynamicweb.Ecommerce.Products.Product> products = new List<Dynamicweb.Ecommerce.Products.Product>(childGroup.Products); 403 foreach (var p in products) 404 { 405 List<Dynamicweb.Ecommerce.Assortments.Assortment> productAssortments = new List<Dynamicweb.Ecommerce.Assortments.Assortment>(assortmentService.GetAssortmentsByProduct(p)); 406 if (!productAssortments.Any()) 407 { 408 display = true; 409 break; 410 } 411 foreach (Dynamicweb.Ecommerce.Assortments.Assortment a in productAssortments) 412 { 413 if (userAssortments.Contains(a.ID)) 414 { 415 display = true; 416 break; 417 } 418 } 419 if (display == true) 420 { 421 break; 422 } 423 } 424 } 425 426 if (display == true) 427 { 428 <li> 429 <a href="Default.aspx?ID=6&GroupID=@childGroup.Id" class="@active">@childGroup.Name</a> 430 @if (childGroup.HasChildGroups) 431 { 432 ulClass = "hidden"; 433 plusClass = "fa-plus"; 434 435 if (childGroup.Subgroups.Contains(new GroupService().GetGroup(currentGroup)) || childGroup.Id == currentGroup) 436 { 437 ulClass = ""; 438 plusClass = "fa-minus"; 439 } 440 441 childGroup.Subgroups.SortByParentGroupOrder(childGroup.Id); 442 443 <span class="pull-right"><a href="#" class="nav__ecom-plus js-nav-ecom-expand-sub-sub"><i class="fas @plusClass"></i></a></span> 444 445 <ul class="M3 @ulClass"> 446 @foreach (Group childChildGroup in childGroup.Subgroups) 447 { 448 active = string.Empty; 449 if (childChildGroup.Id == currentGroup) 450 { 451 active = "active"; 452 } 453 if (childChildGroup.HasChildGroups || childChildGroup.Products.Count > 0) 454 { 455 <li> 456 <a href="Default.aspx?ID=6&GroupID=@childChildGroup.Id" class="@active">@childChildGroup.Name</a> 457 </li> 458 } 459 } 460 </ul> 461 } 462 </li> 463 } 464 } 465 } 466 </ul> 467 } 468 </li> 469 } 470 } 471 } 472 </ul> 473 } 474 </div> 475 <div class="col-md-8 col-lg-9"> 476 <h1 id="groupName">@GetValue("Ecom:Group.Name")</h1> 477 @GetString("Ecom:Group.Description") 478 479 @if (!string.IsNullOrEmpty(GetString("Ecom:Group:Field.CTAtekst1"))) 480 { 481 <div class="row" style="margin-bottom: 30px;"> 482 <div class="col-xs-12 col-sm-6"> 483 <div class="productlist__cta-box"> 484 <a href="@GetString("Ecom:Group:Field.CTAlink1.Value")"> 485 @*<img src="/Admin/Public/GetImage.ashx?Image=@GetString("Ecom:Group:Field.CTAImage1.FullPath")&width=340&height=200&crop=7" />*@ 486 <img class="productlist__cta-box__image img-responsive" src="/Admin/Public/GetImage.ashx?Image=@GetString("Ecom:Group:Field.CTAImage1.Value.FullPath")&width=340&height=200&crop=0" /> 487 <div class="productlist__cta-box__text equalize-height">@GetString("Ecom:Group:Field.CTAtekst1")</div> 488 </a> 489 </div> 490 </div> 491 @if (!string.IsNullOrEmpty(GetString("Ecom:Group:Field.CTAtekst2"))) 492 { 493 <div class="col-xs-12 col-sm-6"> 494 <div class="productlist__cta-box"> 495 <a href="@GetString("Ecom:Group:Field.CTAlink2.Value")"> 496 @*<img src="/Admin/Public/GetImage.ashx?Image=@GetString("Ecom:Group:Field.CTAImage1.FullPath")&width=340&height=200&crop=7" />*@ 497 <img class="productlist__cta-box__image img-responsive" src="/Admin/Public/GetImage.ashx?Image=@GetString("Ecom:Group:Field.CTAimage2.Value.FullPath")&width=340&height=200&crop=0" /> 498 <div class="productlist__cta-box__text equalize-height">@GetString("Ecom:Group:Field.CTAtekst2")</div> 499 </a> 500 </div> 501 </div> 502 } 503 </div> 504 } 505 506 507 @if (string.IsNullOrWhiteSpace(GetString("Ecom:Search.SearchBox"))) 508 { 509 @DisplayProducts() 510 } 511 else 512 { 513 <div class="col-md-3"> 514 @GetValue("Ecom:Search.SearchBox") 515 </div> 516 <div class="col-md-9"> 517 @DisplayProducts() 518 </div> 519 } 520 @GetString("Ecom:Group:Field.SEOtext") 521 </div> 522 </div> 523 </div> 524 525 </div> 526 527 </div> 528 @SnippetStart("JavaScriptBottom") 529 <script type="text/javascript"> 530 $(function () { 531 var v = parseInt($(".container").css("margin-left")) + 10; 532 $(".stickymenu").css("right", v); 533 }); 534 535 $(window).resize(function () { 536 var v = parseInt($(".container").css("margin-left")) + 10; 537 $(".stickymenu").css("right", v); 538 539 //if ($(window).width() < 992) { 540 // $("#webshopmenu").hide(); 541 //} 542 }); 543 var debounce_timer; 544 $(window).scroll(function () { 545 if (debounce_timer) { 546 window.clearTimeout(debounce_timer); 547 } 548 549 debounce_timer = window.setTimeout(function () { 550 var topValue = $(window).scrollTop(); 551 if (topValue >= 100/* && $(window).width() > 992*/) { 552 $("#webshopmenu").show(); 553 } 554 else { 555 $("#webshopmenu").hide(); 556 } 557 }, 10); 558 }); 559 </script> 560 @SnippetEnd("JavaScriptBottom")
Leveringssikkerhed

Vores 10.000 m2 lager indeholder et sortiment på over 2.000 lagerførte varenumre og mere end 150 forskellige papkassevarianter. Faktisk har vi mere end 1 mio. papkasser på lager. Og et tilsvarende program på andre emballager og tilbehørsprodukter. Det giver dig sikkerhed for, at du altid kan finde det produkt, du mangler.

Vi gør det nemt

Vi hjælper dig med at navigere i vores brede standardsortiment. Vi guider dig gennem udvikling og produktion af egne emballager. Og lagerfører dem gerne for dig. Altid med øje på din samlede emballage økonomi. Vi gør det ganske enkelt nemt for dig at navigere i emballage junglen. 
 

Kundevarer

Vi lagerfører mere end 2.000 paller med kundevarer. Emballager, som er udviklet, produceret og lagerført til dig alene. Klar til levering sammen med vores standardsortiment. Det sikrer dig den rigtige lager- og leveringsløsning, så du kan fokusere på at drive din foretning.