T-Shirt Lyocell

No. 0528

Error executing template "Designs/identity_v2/ecom/product/partials/prices.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_cb1f9cfbb57e49cbb2ae63d5577e1f4b.Execute() in D:\dynamicweb.net\Solutions\id.espresso4.dk-e5\Files\Templates\Designs\identity_v2\ecom\product\partials\prices.cshtml:line 16
   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 Co3.Espresso.Base.Extensions 2 @using Co3.Espresso.Website.Models.FrontEnd.Settings 3 @using Co3.Espresso.Website.Services 4 @using Co3.ID.Dw.Helpers 5 @using Co3.ID.Dw.Models.Frontend.Ecommerce 6 @using Co3.ID.Dw.Models.Frontend.Users 7 @using Dynamicweb.Frontend 8 @using Dynamicweb.Security.UserManagement 9 @inherits Dynamicweb.Rendering.ViewModelTemplate<Co3.ID.Dw.Models.Frontend.Ecommerce.IdentityProduct> 10 11 @{ 12 ShopType shopContext = SiteContext.CurrentSiteContext(); 13 User currentUser = PageView.Current().User; 14 bool isCustomerShop = (PageView.Current().Area.Item["IsCustomerShop"] != null && (bool) PageView.Current().Area.Item["IsCustomerShop"] == true); 15 string discountGroup = currentUser != null ? currentUser.GetCustomFieldValue<string>("DiscountGroup") : string.Empty; 16 bool showPrices = !isCustomerShop || (isCustomerShop && UserContext.Current.CustomerShop.Settings.ShowPrices == true); 17 PriceDetails priceDetails = Model.PriceDetails; 18 19 } 20 21 @if (shopContext == ShopType.B2B && !string.IsNullOrEmpty(discountGroup) && priceDetails != null && Model.ListPrices != null && Model.ListPrices.Any()) 22 { 23 bool isAltPriceGroup = string.Equals(priceDetails.PriceGroup, "GRP A") || string.Equals(priceDetails.PriceGroup, "GRP AB"); 24 25 <div class="mb-2 e-product-price "> 26 27 @if (SiteContext.ShowPrices()) 28 { 29 <span class="h2 text-primary mb-1"> 30 <span class="font-weight-bold js-e-price"> 31 @priceDetails.CurrentPrice.Formatted 32 </span> 33 </span> 34 if ( priceDetails.DiscountPercentage > 0) 35 { 36 <p class="text-muted small id-product-details-list-price mb-0"> 37 <span class="small"> 38 39 @if (!priceDetails.IsBasePriceFromAll && isAltPriceGroup) 40 { 41 @Translate("Product List Price - Text", "Listepris") 42 } 43 else 44 { 45 @Translate("Product Your Price - Text", "Din pris") 46 } 47 <span> 48 <span class="font-weight-bold" style="text-decoration: line-through;">@priceDetails.BasePrice.Formatted</span> 49 <span class="font-weight-bold text-primary"> - @priceDetails.DiscountPercentageFormatted</span> 50 </span> 51 52 </span> 53 </p> 54 } 55 56 if ( !priceDetails.IsBasePriceFromAll && !isAltPriceGroup) 57 { 58 <p class="text-muted small id-product-details-list-price mb-0"> 59 <span class="small"> 60 ( 61 @Translate("Product List Price - Text", "Listepris") 62 <span class="js-e-product-listprice"> 63 @PriceService.Instance.GetPrice(new PriceSettings() 64 { 65 Value = Model.ListPrices.FirstOrDefault()?.Amount 66 }) 67 </span> 68 ) 69 </span> 70 </p> 71 } 72 73 74 } 75 else 76 { 77 <span class="text-muted"> 78 @Translate("Product List Price - Text", "Listepris") 79 <span class="js-e-product-listprice"> 80 @PriceService.Instance.GetPrice(new PriceSettings() 81 { 82 Value = Model.ListPrices.FirstOrDefault()?.Amount 83 }) 84 </span> 85 </span> 86 } 87 </div> 88 } 89 90 91 @if (shopContext == ShopType.B2C) 92 { 93 <div class="d-flex w-100" style="gap:1em;"> 94 <p class="e-product-price mb-1 mt-0 "> 95 <span class="h2 font-weight-bold text-primary mr-1">@Model.Price.Format()</span> 96 <span class="font-family-headings font-weight-semibold small text-muted" style="white-space: nowrap;"> 97 <small>(@Model.PriceWithoutVat.Formatted @Translate("Ecom - Price without VAT - text", "ekskl. moms"))</small> 98 </span> 99 </p> 100 <div class="d-none d-lg-block ml-auto" style="white-space: nowrap;"> 101 @RenderingService.Instance.PartialView("ecom/product/partials/designer-link.cshtml", Model) 102 </div> 103 </div> 104 105 } 106 107 @if (shopContext == ShopType.CustomerShop) 108 { 109 <p class="e-product-price mb-1 mt-0 @(showPrices == false ? "hidden-price" : string.Empty)"> 110 <span class="h2 font-weight-bold text-primary">@Model.Price.Format()</span> 111 <span class="font-family-headings font-weight-semibold small text-muted"> 112 <small>(@Translate("Ecom - Price without VAT - text", "ekskl. moms"))</small> 113 </span> 114 </p> 115 }
Weiches Lyocell T-Shirt mit schöner Schnittführung und Musterstrukturen wie bei einer Bienenwabe. Lyocell sind verantwortungsvoll hergestellte Fasern, wobei die Rohstoffe auf recyc...Mehr anzeigen
Error executing template "Designs/identity_v2/ecom/product/partials/add-to-cart.cshtml"
System.ArgumentException: An item with the same key has already been added.
   at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at Co3.ID.Dw.Models.Frontend.Ecommerce.IdentityProduct.get_ImagePrimary()
   at CompiledRazorTemplates.Dynamic.RazorEngine_c8ac1ab5ffcc4264930a228d709a64ac.<>c__DisplayClass0_0.<VariantOption>b__0(TextWriter __razor_helper_writer) in D:\dynamicweb.net\Solutions\id.espresso4.dk-e5\Files\Templates\Designs\identity_v2\ecom\product\partials\add-to-cart.cshtml:line 198
   at CompiledRazorTemplates.Dynamic.RazorEngine_c8ac1ab5ffcc4264930a228d709a64ac.Execute() in D:\dynamicweb.net\Solutions\id.espresso4.dk-e5\Files\Templates\Designs\identity_v2\ecom\product\partials\add-to-cart.cshtml:line 125
   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<Co3.ID.Dw.Models.Frontend.Ecommerce.IdentityProduct> 2 @using Co3.Espresso.Base.Extensions 3 @using Co3.Espresso.Website.Models.FrontEnd.Ecommerce 4 @using Co3.Espresso.Website.Models.FrontEnd.Settings 5 @using Co3.ID.Dw.Helpers 6 @using Co3.ID.Dw.Models.Frontend.Ecommerce 7 @using Dynamicweb.Ecommerce.Common 8 @using Dynamicweb.Ecommerce.Variants 9 @using Dynamicweb.Ecommerce.Products 10 @using Dynamicweb.Frontend 11 @using Dynamicweb.Rendering 12 @using Dynamicweb.Security.UserManagement 13 @using ProductService = Co3.ID.Dw.Services.ProductService 14 @using System.Web 15 @using Co3.ID.Dw.Services 16 17 @{ 18 var shopContext = SiteContext.CurrentSiteContext(); 19 string alternativeAction = string.IsNullOrEmpty(PageView.Current().Area.Item["EcommerceAlternativeCallToAction"]?.ToString()) == false ? PageView.Current().Area.Item["EcommerceAlternativeCallToAction"].ToString() : string.Empty; 20 } 21 22 23 24 <form action="/system/data/cart" class="e-product-form js-e-product-form js-e-product-form-addtocart pb-1" method="post"> 25 <input name="CartCmd" type="hidden" value="Add"> 26 <input name="ProductID" type="hidden" value="@Model.Id"> 27 <input name="VariantID" type="hidden" value="@Model.VariantId"> 28 <input name="Quantity" type="hidden" value="1"> 29 <input name="Redirect" type="hidden" value=""> 30 <input name="Name" type="hidden" value="@Model.Name"> 31 <input name="Number" type="hidden" value="@Model.Number"> 32 <input name="Price" type="hidden" value="@Model.Price.Value.ToJavaScript()"> 33 <input name="CurrencyCode" type="hidden" value="@Model.Price.CurrencyCode"> 34 35 36 @if (Model.VariantGroups.Any()) 37 { 38 <div class=""> 39 @foreach (KeyValuePair<string, EspressoVariantGroup> variantGroup in Model.VariantGroups) 40 { 41 bool isColorGroup = variantGroup.Value.Id == Co3.ID.Data.App.Constants.PRODUCT_VARIANT_GROUP_COLOR_ID; 42 string groupClassNameAppend = isColorGroup ? "color" : "size"; 43 int variantTake = 7; 44 45 46 string variantInputFieldName = string.Format("{0}_{1}", Model.Id, variantGroup.Value.Id); 47 <div class="form-group js-e-product-form-variant-form-group e-product-form-variant-form-group-@groupClassNameAppend js-e-product-form-variant-form-group-@groupClassNameAppend" data-auto-select="true" data-variant-take="@variantTake" @(((shopContext == ShopType.B2B || shopContext == ShopType.CustomerShop || !PageView.Current().IsBasketEnabled()) && groupClassNameAppend == "size") ? "hidden" : string.Empty)> 48 <label class="form-control-label d-flex font-weight-semibold small @(isColorGroup == false ? "d-flex justify-content-between" : string.Empty)"> 49 @Translate(string.Format("eCom - Product Details - variant header - {0}", variantGroup.Value.Name), variantGroup.Value.Name) 50 @if (isColorGroup == true) 51 { 52 <span class="js-identity-selected-color-variant-text">@Model.ColorVariantText</span> 53 54 if (Model.SizeGuidePageId > 0) 55 { 56 if (shopContext == ShopType.B2B || shopContext == ShopType.CustomerShop) 57 { 58 if (Model.SizeGuidePageId > 0 || Model.BrandCode == "PRIVATELAB") 59 { 60 <a class="ml-auto text-muted font-weight-normal link-underline" data-toggle="modal" data-target="#identity-size-guide-modal"> 61 @Translate("eCom - Product Details - size guide -link -text", "Størrelsesguide") 62 </a> 63 } 64 } 65 else 66 { 67 <a class="ml-auto text-muted font-weight-normal link-underline" data-toggle="modal" data-target="#identity-size-guide-modal"> 68 @Translate("eCom - Product Details - size guide -link -text", "Størrelsesguide") 69 </a> 70 } 71 72 } 73 74 } 75 </label> 76 <div class="identity-variant-group d-flex"> 77 @{ 78 int variantCount = variantGroup.Value.Options.Count; 79 bool shouldWrapLast = variantCount > variantTake; 80 int variantIndex = 0; 81 string collapseId = string.Format("collapseExtraVariants_{0}", variantGroup.Value.Name); 82 83 IOrderedEnumerable<KeyValuePair<string, EspressoVariantOption>> variantGroupOptions = variantGroup.Value.Options.OrderBy(o => o.Key); 84 85 if (isColorGroup) 86 { 87 variantGroupOptions = variantGroup.Value.Options.OrderByDescending(o => o.Value.Id == variantGroup.Value.SelectedOptionId); 88 } 89 else 90 { 91 Dictionary<string, int> variantGroupOptionSortOrder = ProductService.Instance.GetVariantGroupOptionSortOrder(variantGroup.Value.Name); 92 variantGroupOptions = variantGroup.Value.Options.OrderBy(o => o.Value.Id != null && variantGroupOptionSortOrder.ContainsKey(o.Value.Id) ? variantGroupOptionSortOrder[o.Value.Id] : 99); 93 } 94 } 95 96 97 @foreach (KeyValuePair<string, EspressoVariantOption> variantOption in variantGroupOptions) 98 { 99 string variantInputFieldId = string.Format("{0}_{1}", variantInputFieldName, variantOption.Value.Id); 100 bool isSelected = variantOption.Value.Id == variantGroup.Value.SelectedOptionId; 101 string lastVariantIdBeforeWrap = string.Empty; 102 103 104 if (shouldWrapLast && variantIndex == variantTake) 105 { 106 lastVariantIdBeforeWrap = variantOption.Key; 107 108 <label class="custom-control custom-radio identity-variant-select-option js-identity-variant-select-option"> 109 <span class="custom-control-description disabled"> 110 <span class="@(isColorGroup ? "identity-variant-select-option-color" : "identity-variant-select-option-generic") js-identity-extra-variants-toggler" data-toggle="collapse" href="#@collapseId" role="button" aria-expanded="false"> 111 <span class="js-variant-hidden-count" data-default="@(variantCount - variantTake)">+@(variantCount - variantTake)</span> 112 </span> 113 </span> 114 </label> 115 116 @VariantOption(isColorGroup, isSelected, variantInputFieldId, variantInputFieldName, variantOption, true) 117 118 @:</div> 119 @:<div class="collapse js-identity-extra-variants-collapse" id="@collapseId"> 120 @:<div class="identity-variant-group d-flex"> 121 } 122 123 if (variantOption.Key != lastVariantIdBeforeWrap) 124 { 125 @VariantOption(isColorGroup, isSelected, variantInputFieldId, variantInputFieldName, variantOption) 126 } 127 128 if (shouldWrapLast && (variantIndex + 1) == variantCount) 129 { 130 <label class="custom-control custom-radio identity-variant-select-option"> 131 <span class="custom-control-description disabled"> 132 <span class="@(isColorGroup ? "identity-variant-select-option-color" : "identity-variant-select-option-generic")" data-toggle="collapse" href="#@collapseId" role="button" aria-expanded="false"> 133 <span class="variant-close-toggle"></span> 134 </span> 135 </span> 136 </label> 137 @:</div> 138 } 139 variantIndex++; 140 } 141 </div> 142 </div> 143 } 144 145 </div> 146 } 147 @if (PageView.Current().IsBasketEnabled()) 148 { 149 if (shopContext == ShopType.B2C) 150 { 151 <button class="btn btn-primary btn-lg btn-block position-relative" type="submit"> 152 @Translate("eCom Product - Add To Cart - Button", "Add to cart") 153 </button> 154 155 <div class="d-block d-lg-none mt-2"> 156 @RenderingService.Instance.PartialView("ecom/product/partials/designer-link.cshtml", Model) 157 </div> 158 159 } 160 161 } 162 else 163 { 164 @alternativeAction 165 } 166 167 </form> 168 169 170 @helper VariantOption(bool isColorGroup, bool isSelected, string variantInputFieldId, string variantInputFieldName, KeyValuePair<string, EspressoVariantOption> variantOption, bool boolHide = false) 171 { 172 <label class="custom-control custom-radio identity-variant-select-option @(boolHide == true ? "js-identity-variant-select-option-hidden d-none" : string.Empty)"> 173 <input class="custom-control-input js-e-product-form-variant-group-input required" id="@variantInputFieldId" name="@variantInputFieldName" title="@HttpUtility.HtmlEncode(variantOption.Value.Name.Replace("\"", "'"))" data-name="@HttpUtility.HtmlEncode(variantOption.Value.Name.Replace("\"", "'"))" type="radio" value="@variantOption.Value.Id" @(isSelected ? "checked" : string.Empty)> 174 @* 175 @if (isColorGroup) 176 { 177 178 } 179 else 180 { 181 string variantComboId = string.Format("{0}.{1}", Model.VariantGroups[Co3.ID.Data.App.Constants.PRODUCT_VARIANT_GROUP_COLOR_ID].SelectedOptionId, variantOption.Value.Id); 182 IdentityProduct idProduct = ProductService.Instance.GetVariantByComboId(Model, variantComboId); 183 <input class="custom-control-input js-e-product-form-variant-group-input required" id="@variantInputFieldId" name="@variantInputFieldName" title="@variantOption.Value.Name" data-name="@variantOption.Value.Name" type="radio" value="@variantOption.Value.Id" @(isSelected ? "checked" : string.Empty) @(idProduct.Stock.Quantity> 0 ? string.Empty : "disabled")> 184 }*@ 185 <span class="custom-control-description"> 186 <div class="identity-corner-brackets-container identity-corner-brackets-all border-primary is-corner-thumb p-0"> 187 <div class="identity-corner-brackets-wrapper border-primary"> 188 189 190 191 192 193 @if (isColorGroup) 194 { 195 EspressoVariantGroup sizeVariantGroup = Model.VariantGroups.FirstOrDefault(vg => vg.Key != Co3.ID.Data.App.Constants.PRODUCT_VARIANT_GROUP_COLOR_ID).Value; 196 string variantComboId = string.Format("{0}.{1}", variantOption.Value.Id, sizeVariantGroup.SelectedOptionId); 197 IdentityProduct idProduct = ProductService.Instance.GetVariantByComboId(Model, variantComboId); 198 EspressoProductImageUrl imageUrl = idProduct?.ImagePrimary; 199 200 if (imageUrl != null) 201 { 202 <span class="identity-variant-select-option-color js-variant-color-image" style="background-image: url(@imageUrl.Small);" data-image="@imageUrl.Small" data-name="@variantOption.Value.Name" data-toggle="tooltip" data-placement="top" title="@variantOption.Value.Name"></span> 203 } 204 else 205 { 206 <span class="identity-variant-select-option-generic"> 207 <span>@variantOption.Value.Name</span> 208 </span> 209 } 210 } 211 else 212 { 213 <span class="identity-variant-select-option-generic"> 214 <span class="js-variant-size-text">@variantOption.Value.Name</span> 215 </span> 216 } 217 218 219 </div> 220 </div> 221 </span> 222 </label> 223 } 224
Weiches Lyocell T-Shirt mit schöner Schnittführung und Musterstrukturen wie bei einer Bienenwabe. Lyocell sind verantwortungsvoll hergestellte Fasern, wobei die Rohstoffe auf recyceltem Polyester basieren. Das natürliche Lyocell bietet ein hohes Maß an Komfort, antibakterielle Eigenschaften und eine natürliche Schnelltrocknung, bei der die Fasern Feuchtigkeit aufnehmen und abgeben, sodass sich der Stoff immer trocken und angenehm auf der Haut anfühlt.  
  • checkKostenloser Versand ab 499 DKK · Info
  • check1–2 Tage Lieferzeit · Info
  • check14 Tage volles Rückgaberecht · Info
T-Shirt Lyocell
T-Shirt Lyocell
T-Shirt Lyocell
T-Shirt Lyocell

Sport & forening

Service & turisme

Kontor & administration

Hotel, café & restaurant

Tidløst firmatøj

Profilbeklædning & firmatøj med
tidløst design siden 1983

Kvalitet der holder

Tøj i høj kvalitet – holder
pasform og farve vask efter vask

Styrk fællesskabet

Tøj med logo, der understøtter
fælles identitet

Find jeres farve

Vælg blandt 60+ farver – match
din virksomheds profil

ID® Ansvarlighedsrapport 2024/2025 BCI cotton Redegørelse for samfundsansvar, jf. årsregnskabslovens § 99 a". Se her

keyboard_arrow_up