close
Męski

T-shirt PRO Wear CARE | damski

No. 0371

Męski

 74,50 ( 74,50 bez VAT)

Z certyfikatem EU Ecolabel, perfekcyjnie skrojony T-shirt z okrągłym dekoltem. Dekolt i rękawy wykończone wąskim ściągaczem. Dodatkowe wzmocnienia na linii szyi i ramion. Swobodny ...Więcej
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_047146d84f0b4adaaa047263dbc14683.<>c__DisplayClass0_0.<VariantOption>b__0(TextWriter __razor_helper_writer) in E:\Solutions\id.test002.webtester.dk\Files\Templates\Designs\identity_v2\ecom\product\partials\add-to-cart.cshtml:line 193
   at CompiledRazorTemplates.Dynamic.RazorEngine_047146d84f0b4adaaa047263dbc14683.Execute() in E:\Solutions\id.test002.webtester.dk\Files\Templates\Designs\identity_v2\ecom\product\partials\add-to-cart.cshtml:line 126
   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 16 @{ 17 var shopContext = SiteContext.CurrentSiteContext(); 18 string alternativeAction = string.IsNullOrEmpty(PageView.Current().Area.Item["EcommerceAlternativeCallToAction"]?.ToString()) == false ? PageView.Current().Area.Item["EcommerceAlternativeCallToAction"].ToString() : string.Empty; 19 20 21 } 22 23 24 25 <form action="/system/data/cart" class="e-product-form js-e-product-form js-e-product-form-addtocart pb-1" method="post"> 26 <input name="CartCmd" type="hidden" value="Add"> 27 <input name="ProductID" type="hidden" value="@Model.Id"> 28 <input name="VariantID" type="hidden" value="@Model.VariantId"> 29 <input name="Quantity" type="hidden" value="1"> 30 <input name="Redirect" type="hidden" value=""> 31 <input name="Name" type="hidden" value="@Model.Name"> 32 <input name="Number" type="hidden" value="@Model.Number"> 33 <input name="Price" type="hidden" value="@Model.Price.Value.ToJavaScript()"> 34 <input name="CurrencyCode" type="hidden" value="@Model.Price.CurrencyCode"> 35 36 37 @if (Model.VariantGroups.Any()) 38 { 39 <div class=""> 40 @foreach (KeyValuePair<string, EspressoVariantGroup> variantGroup in Model.VariantGroups) 41 { 42 bool isColorGroup = variantGroup.Value.Id == Co3.ID.Data.App.Constants.PRODUCT_VARIANT_GROUP_COLOR_ID; 43 string groupClassNameAppend = isColorGroup ? "color" : "size"; 44 int variantTake = 7; 45 46 47 string variantInputFieldName = string.Format("{0}_{1}", Model.Id, variantGroup.Value.Id); 48 <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)> 49 <label class="form-control-label d-flex font-weight-semibold small @(isColorGroup == false ? "d-flex justify-content-between" : string.Empty)"> 50 @Translate(string.Format("eCom - Product Details - variant header - {0}", variantGroup.Value.Name), variantGroup.Value.Name) 51 @if (isColorGroup == true) 52 { 53 <span class="js-identity-selected-color-variant-text">@Model.ColorVariantText</span> 54 55 if (Model.SizeGuidePageId > 0) 56 { 57 if (shopContext == ShopType.B2B || shopContext == ShopType.CustomerShop) 58 { 59 if (Model.SizeGuidePageId > 0 || Model.BrandCode == "PRIVATELAB") 60 { 61 <a class="ml-auto text-muted font-weight-normal link-underline" data-toggle="modal" data-target="#identity-size-guide-modal"> 62 @Translate("eCom - Product Details - size guide -link -text", "Størrelsesguide") 63 </a> 64 } 65 } 66 else 67 { 68 <a class="ml-auto text-muted font-weight-normal link-underline" data-toggle="modal" data-target="#identity-size-guide-modal"> 69 @Translate("eCom - Product Details - size guide -link -text", "Størrelsesguide") 70 </a> 71 } 72 73 } 74 75 } 76 </label> 77 <div class="identity-variant-group d-flex"> 78 @{ 79 int variantCount = variantGroup.Value.Options.Count; 80 bool shouldWrapLast = variantCount > variantTake; 81 int variantIndex = 0; 82 string collapseId = string.Format("collapseExtraVariants_{0}", variantGroup.Value.Name); 83 84 IOrderedEnumerable<KeyValuePair<string, EspressoVariantOption>> variantGroupOptions = variantGroup.Value.Options.OrderBy(o => o.Key); 85 86 if (isColorGroup) 87 { 88 variantGroupOptions = variantGroup.Value.Options.OrderByDescending(o => o.Value.Id == variantGroup.Value.SelectedOptionId); 89 } 90 else 91 { 92 Dictionary<string, int> variantGroupOptionSortOrder = ProductService.Instance.GetVariantGroupOptionSortOrder(variantGroup.Value.Name); 93 variantGroupOptions = variantGroup.Value.Options.OrderBy(o => o.Value.Id != null && variantGroupOptionSortOrder.ContainsKey(o.Value.Id) ? variantGroupOptionSortOrder[o.Value.Id] : 99); 94 } 95 } 96 97 98 @foreach (KeyValuePair<string, EspressoVariantOption> variantOption in variantGroupOptions) 99 { 100 string variantInputFieldId = string.Format("{0}_{1}", variantInputFieldName, variantOption.Value.Id); 101 bool isSelected = variantOption.Value.Id == variantGroup.Value.SelectedOptionId; 102 string lastVariantIdBeforeWrap = string.Empty; 103 104 105 if (shouldWrapLast && variantIndex == variantTake) 106 { 107 lastVariantIdBeforeWrap = variantOption.Key; 108 109 <label class="custom-control custom-radio identity-variant-select-option js-identity-variant-select-option"> 110 <span class="custom-control-description disabled"> 111 <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"> 112 <span class="js-variant-hidden-count" data-default="@(variantCount - variantTake)">+@(variantCount - variantTake)</span> 113 </span> 114 </span> 115 </label> 116 117 @VariantOption(isColorGroup, isSelected, variantInputFieldId, variantInputFieldName, variantOption, true) 118 119 @:</div> 120 @:<div class="collapse js-identity-extra-variants-collapse" id="@collapseId"> 121 @:<div class="identity-variant-group d-flex"> 122 } 123 124 if (variantOption.Key != lastVariantIdBeforeWrap) 125 { 126 @VariantOption(isColorGroup, isSelected, variantInputFieldId, variantInputFieldName, variantOption) 127 } 128 129 if (shouldWrapLast && (variantIndex + 1) == variantCount) 130 { 131 <label class="custom-control custom-radio identity-variant-select-option"> 132 <span class="custom-control-description disabled"> 133 <span class="@(isColorGroup ? "identity-variant-select-option-color" : "identity-variant-select-option-generic")" data-toggle="collapse" href="#@collapseId" role="button" aria-expanded="false"> 134 <span class="variant-close-toggle"></span> 135 </span> 136 </span> 137 </label> 138 @:</div> 139 } 140 variantIndex++; 141 } 142 </div> 143 </div> 144 } 145 146 </div> 147 } 148 @if (PageView.Current().IsBasketEnabled()) 149 { 150 if (shopContext == ShopType.B2C) 151 { 152 <button class="btn btn-primary btn-lg btn-block position-relative" type="submit"> 153 @Translate("eCom Product - Add To Cart - Button", "Add to cart") 154 </button> 155 } 156 } 157 else 158 { 159 @alternativeAction 160 } 161 162 </form> 163 164 165 @helper VariantOption(bool isColorGroup, bool isSelected, string variantInputFieldId, string variantInputFieldName, KeyValuePair<string, EspressoVariantOption> variantOption, bool boolHide = false) 166 { 167 <label class="custom-control custom-radio identity-variant-select-option @(boolHide == true ? "js-identity-variant-select-option-hidden d-none" : string.Empty)"> 168 <input class="custom-control-input js-e-product-form-variant-group-input required" id="@variantInputFieldId" name="@variantInputFieldName" title="@HttpUtility.HtmlAttributeEncode(variantOption.Value.Name)" data-name="@HttpUtility.HtmlAttributeEncode(variantOption.Value.Name)" type="radio" value="@variantOption.Value.Id" @(isSelected ? "checked" : string.Empty)> 169 @* 170 @if (isColorGroup) 171 { 172 173 } 174 else 175 { 176 string variantComboId = string.Format("{0}.{1}", Model.VariantGroups[Co3.ID.Data.App.Constants.PRODUCT_VARIANT_GROUP_COLOR_ID].SelectedOptionId, variantOption.Value.Id); 177 IdentityProduct idProduct = ProductService.Instance.GetVariantByComboId(Model, variantComboId); 178 <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")> 179 }*@ 180 <span class="custom-control-description"> 181 <div class="identity-corner-brackets-container identity-corner-brackets-all border-primary is-corner-thumb p-0"> 182 <div class="identity-corner-brackets-wrapper border-primary"> 183 184 185 186 187 188 @if (isColorGroup) 189 { 190 EspressoVariantGroup sizeVariantGroup = Model.VariantGroups.FirstOrDefault(vg => vg.Key != Co3.ID.Data.App.Constants.PRODUCT_VARIANT_GROUP_COLOR_ID).Value; 191 string variantComboId = string.Format("{0}.{1}", variantOption.Value.Id, sizeVariantGroup.SelectedOptionId); 192 IdentityProduct idProduct = ProductService.Instance.GetVariantByComboId(Model, variantComboId); 193 EspressoProductImageUrl imageUrl = idProduct?.ImagePrimary; 194 195 if (imageUrl != null) 196 { 197 <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> 198 } 199 else 200 { 201 <span class="identity-variant-select-option-generic"> 202 <span>@variantOption.Value.Name</span> 203 </span> 204 } 205 } 206 else 207 { 208 <span class="identity-variant-select-option-generic"> 209 <span class="js-variant-size-text">@variantOption.Value.Name</span> 210 </span> 211 } 212 213 214 </div> 215 </div> 216 </span> 217 </label> 218 } 219
Z certyfikatem EU Ecolabel, perfekcyjnie skrojony T-shirt z okrągłym dekoltem. Dekolt i rękawy wykończone wąskim ściągaczem. Dodatkowe wzmocnienia na linii szyi i ramion. Swobodny krój casual i idealne dopasowanie zapewniające swobodę ruchów. Uszyty z odpowiedzialnie produkowanej bawełny i poliestru z recyklingu. T-shirt został poddany procesowi wykurczania
w bardzo wysokiej temperaturze zarówno przed jak i po farbowaniu, co dodatkowo zapewnia stabilność i trwałość.
Bardziej odpowiedzialny
T-shirt PRO Wear CARE | damski
T-shirt PRO Wear CARE | damski
T-shirt PRO Wear CARE | damski
T-shirt PRO Wear CARE | damski

Extend the life of Corporate Wear

We’ve put together 10 laundry and care tips for you to extend the product’s life and, at the same time, help make a difference for the environment.

Read the 10 laundry tips


No clothes to match your needs?

Do not worry. With our Private Label solution, you have the opportunity to design your very own unique styles. We help you through the entire process from idea to finished product.

Read about Private Label

Corporate wear

More than sportswear

Passion for shirts

Made to last

Corporate Wear

Odzież Corporate Wear o klasycznym,
ponadczasowym designie, który
udoskonalaliśmy od 1983 roku

Wspólna tożsamość

Ubrania podkreślające wspólną
tożsamość i wzmacniające
ducha wspólnoty

Znajdź swój kolor

Wybieraj spośród ponad 60
kolorów – na pewno znajdziesz
coś dla siebie

Bez kompromisów

Odzież zaprojektowana z myślą
o wieloletniej trwałości – zachowuje
kształt i kolor

keyboard_arrow_up