Langærmet poloshirt | stretch | dame

No. 0545

kr. 309,00 (kr. 247,20 ekskl. moms)

Tidløs poloshirt i pique kvalitet med stretch. Lange ærmer med elastisk rib afslutning. Indvendig med nakkespejl og nakkebånd. Tone i tone knaplukning.
Error executing template "Designs/identity_v2/ecom/product/partials/add-to-cart.cshtml"
System.Data.SqlClient.SqlException (0x80131904): Transaction (Process ID 56) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlDataReader.TryHasMoreRows(Boolean& moreRows)
   at System.Data.SqlClient.SqlDataReader.TryReadInternal(Boolean setTimeout, Boolean& more)
   at System.Data.SqlClient.SqlDataReader.Read()
   at Dynamicweb.Ecommerce.Products.DetailRepository.GetDefaultImage(String productId, String productVariantId, String productLanguageId, String detailType)
   at Dynamicweb.Ecommerce.Products.DetailService.GetDefaultDetail(String productId, String productVariantId, String languageId, IList`1 details)
   at Dynamicweb.Ecommerce.Products.DetailService.GetDefaultDetail(Product product)
   at Co3.ID.Dw.Models.Frontend.Ecommerce.IdentityProduct.get_ImagePrimary()
   at CompiledRazorTemplates.Dynamic.RazorEngine_7fc21c660a9b479eaaa4e870f5cfa375.<>c__DisplayClass0_0.<VariantOption>b__0(TextWriter __razor_helper_writer) in D:\dynamicweb.net\Solutions\id.espresso4.dk-e5\Application\Files\Templates\Designs\identity_v2\ecom\product\partials\add-to-cart.cshtml:line 198
   at CompiledRazorTemplates.Dynamic.RazorEngine_7fc21c660a9b479eaaa4e870f5cfa375.Execute() in D:\dynamicweb.net\Solutions\id.espresso4.dk-e5\Application\Files\Templates\Designs\identity_v2\ecom\product\partials\add-to-cart.cshtml:line 116
   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()
ClientConnectionId:4a70a1b5-e342-49ad-9a2b-03ac0eec63a8
Error Number:1205,State:45,Class:13

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 15 @{ 16 var shopContext = SiteContext.CurrentSiteContext(); 17 string alternativeAction = string.IsNullOrEmpty(PageView.Current().Area.Item["EcommerceAlternativeCallToAction"]?.ToString()) == false ? PageView.Current().Area.Item["EcommerceAlternativeCallToAction"].ToString() : string.Empty; 18 19 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.Utilities.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 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 == false) 51 { 52 53 if (Model.SizeGuidePageId > 0) 54 { 55 <a class="text-muted font-weight-normal link-underline" data-toggle="modal" data-target="#identity-size-guide-modal"> 56 @Translate("eCom - Product Details - size guide -link -text", "Størrelsesguide") 57 </a> 58 } 59 60 } 61 else 62 { 63 64 <span class="js-identity-selected-color-variant-text">@Model.ColorVariantText</span> 65 } 66 </label> 67 <div class="identity-variant-group d-flex"> 68 @{ 69 int variantCount = variantGroup.Value.Options.Count; 70 bool shouldWrapLast = variantCount > variantTake; 71 int variantIndex = 0; 72 string collapseId = string.Format("collapseExtraVariants_{0}", variantGroup.Value.Name); 73 74 IOrderedEnumerable<KeyValuePair<string, EspressoVariantOption>> variantGroupOptions = variantGroup.Value.Options.OrderBy(o => o.Key); 75 76 if (isColorGroup) 77 { 78 variantGroupOptions = variantGroup.Value.Options.OrderByDescending(o => o.Value.Id == variantGroup.Value.SelectedOptionId); 79 } 80 else 81 { 82 Dictionary<string, int> variantGroupOptionSortOrder = ProductService.Instance.GetVariantGroupOptionSortOrder(variantGroup.Value.Name); 83 variantGroupOptions = variantGroup.Value.Options.OrderBy(o => o.Value.Id != null && variantGroupOptionSortOrder.ContainsKey(o.Value.Id) ? variantGroupOptionSortOrder[o.Value.Id] : 99); 84 } 85 } 86 87 88 @foreach (KeyValuePair<string, EspressoVariantOption> variantOption in variantGroupOptions) 89 { 90 string variantInputFieldId = string.Format("{0}_{1}", variantInputFieldName, variantOption.Value.Id); 91 bool isSelected = variantOption.Value.Id == variantGroup.Value.SelectedOptionId; 92 string lastVariantIdBeforeWrap = string.Empty; 93 94 95 if (shouldWrapLast && variantIndex == variantTake) 96 { 97 lastVariantIdBeforeWrap = variantOption.Key; 98 99 <label class="custom-control custom-radio identity-variant-select-option js-identity-variant-select-option"> 100 <span class="custom-control-description disabled"> 101 <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"> 102 <span class="js-variant-hidden-count" data-default="@(variantCount - variantTake)">+@(variantCount - variantTake)</span> 103 </span> 104 </span> 105 </label> 106 107 @VariantOption(isColorGroup, isSelected, variantInputFieldId, variantInputFieldName, variantOption, true) 108 109 @:</div> 110 @:<div class="collapse js-identity-extra-variants-collapse" id="@collapseId"> 111 @:<div class="identity-variant-group d-flex"> 112 } 113 114 if (variantOption.Key != lastVariantIdBeforeWrap) 115 { 116 @VariantOption(isColorGroup, isSelected, variantInputFieldId, variantInputFieldName, variantOption) 117 } 118 119 if (shouldWrapLast && (variantIndex + 1) == variantCount) 120 { 121 <label class="custom-control custom-radio identity-variant-select-option"> 122 <span class="custom-control-description disabled"> 123 <span class="@(isColorGroup ? "identity-variant-select-option-color" : "identity-variant-select-option-generic")" data-toggle="collapse" href="#@collapseId" role="button" aria-expanded="false"> 124 <span class="variant-close-toggle"></span> 125 </span> 126 </span> 127 </label> 128 @:</div> 129 } 130 variantIndex++; 131 } 132 </div> 133 @{ 134 int idSizeGuidePageId = Convert.ToInt32(PageView.Current().Area.Item["IDSizeGuide"]); 135 136 } 137 @if (shopContext == ShopType.B2B || shopContext == ShopType.CustomerShop) 138 { 139 if (Model.SizeGuidePageId > 0 || Model.BrandCode == "PRIVATELAB" && idSizeGuidePageId > 0) 140 { 141 <div class="d-flex justify-content-start mt-1"> 142 <a class="text-muted font-weight-normal link-underline small" data-toggle="modal" data-target="#identity-size-guide-modal"> 143 @Translate("eCom - Product Details - size guide -link -text", "Størrelsesguide") 144 </a> 145 </div> 146 } 147 } 148 </div> 149 } 150 151 </div> 152 } 153 @if (PageView.Current().IsBasketEnabled()) 154 { 155 if (shopContext == ShopType.B2C) 156 { 157 <button class="btn btn-primary btn-lg btn-block position-relative" type="submit"> 158 @Translate("eCom Product - Add To Cart - Button", "Add to cart") 159 </button> 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="@variantOption.Value.Name" data-name="@variantOption.Value.Name" 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.Utilities.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.Utilities.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></span> 221 </label> 222 } 223
Tidløs poloshirt i pique kvalitet med stretch. Lange ærmer med elastisk rib afslutning. Indvendig med nakkespejl og nakkebånd. Tone i tone knaplukning.
  • checkFri fragt over kr. 499,00 · Info
  • check1-2 dages levering · Info
  • check14 dages fortrydelsesret · Info
  • Langærmet poloshirt med stretch
  • Elastisk ribafslutning ved ærme
  • Nakkespejl og nakkebånd
OEKO-TEX®, appx. 6, prod. class 1 ID® har et stort udvalg af STANDARD 100 by OEKO-TEX certificerede produkter samt STANDARD 100 by OEKO-TEX, annex 6, produktklasse 1, som stiller yderligt skærpede krav til tøjets indhold af sundheds- og miljøskadelige stoffer.
Komposition
95% bomuld 5% elastan
Størrelse
XS , S , M , L , XL , 2XL , 3XL , 4XL , 5XL , 6XL
Brand
ID®
g/m²
210 - 220
Pasform
FITTED
40 grader
Tåler ikke blegemidler
Tåler ikke tørretumbling
Hængetørre
Strygning ved maks. 150 grader
Rens i perchlor, mineralsk terpentin eller lign.
Standard transfer

Er den mest populære transfer, og den billigste, som kan anvendes på bomuld, bomuld/polyester og blandingsmaterialer. Transferen er velegnet til almindelig hjemmevask, og er OEKO-TEX®, Annex 6, produktklasse 1 certificeret. Læs mere her

Relaterede produkter

Error executing template "Designs/identity_v2/ecom/productlist/partials/item.cshtml"
System.Data.SqlClient.SqlException (0x80131904): Transaction (Process ID 63) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlDataReader.TryHasMoreRows(Boolean& moreRows)
   at System.Data.SqlClient.SqlDataReader.TryReadInternal(Boolean setTimeout, Boolean& more)
   at System.Data.SqlClient.SqlDataReader.Read()
   at Dynamicweb.Ecommerce.Products.DetailRepository.GetDefaultImage(String productId, String productVariantId, String productLanguageId, String detailType)
   at Dynamicweb.Ecommerce.Products.DetailService.GetDefaultDetail(String productId, String productVariantId, String languageId, IList`1 details)
   at Dynamicweb.Ecommerce.Products.DetailService.GetDefaultDetail(Product product)
   at Co3.ID.Dw.Models.Frontend.Ecommerce.IdentityProduct.get_ImagePrimary()
   at Co3.ID.Dw.Services.ProductService.GetVariantImages(IdentityProduct product, KeyValuePair`2 variantGroup)
   at Co3.ID.Dw.Models.Frontend.Ecommerce.IdentityProduct.GetVariantCombinationsPrimaryImages()
   at CompiledRazorTemplates.Dynamic.RazorEngine_4b0a30cc38c445d98a0c785231158b0d.Execute() in D:\dynamicweb.net\Solutions\id.espresso4.dk-e5\Application\Files\Templates\Designs\identity_v2\ecom\productlist\partials\item.cshtml:line 71
   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()
ClientConnectionId:c0e9c41d-1a87-4bfc-97f8-5425dc245692
Error Number:1205,State:45,Class:13

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.Elements 5 @using Co3.Espresso.Website.Models.FrontEnd.Handlebars 6 @using Co3.Espresso.Website.Models.FrontEnd.Settings 7 @using Co3.Espresso.Website.Services 8 @using Co3.ID.Dw.Helpers 9 @using Co3.ID.Dw.Models.Frontend.Ecommerce 10 @using Co3.ID.Dw.Models.Frontend.Users 11 @using Dynamicweb.Rendering 12 @using Co3.ID.Dw.Services 13 @using Dynamicweb.Frontend 14 @using Dynamicweb.Security.UserManagement 15 @using RenderingService = Co3.Espresso.Website.Services.RenderingService 16 17 @{ 18 string productName = Model.Name; 19 string productNumber = Model.Number; 20 21 User currentUser = PageView.Current().User; 22 ShopType shopContext = SiteContext.CurrentSiteContext(); 23 bool isCustomerShop = (PageView.Current().Area.Item["IsCustomerShop"] != null && (bool)PageView.Current().Area.Item["IsCustomerShop"] == true); 24 string discountGroup = currentUser != null ? currentUser.GetCustomFieldValue< string >( "DiscountGroup" ) : string.Empty; 25 bool showPrices = !isCustomerShop || UserContext.Current.CustomerShop != null && UserContext.Current.CustomerShop.Settings.ShowPrices == true; 26 27 string hoverImage = string.Empty; 28 29 if (!isCustomerShop && Model.ListItemHoverImage != null) 30 { 31 hoverImage = Model.ListItemHoverImage.Medium; 32 } 33 } 34 35 <div class="e-block-link e-productlist-item js-e-block-link js-e-productlist-item js-e-productlist-item- p-1" data-product-id="@Model.Id" data-variant-id="@Model.VariantId" data-brand-code="@Model.BrandCode"> 36 37 <div class="productlist-brand-wrapper"> 38 @if ( Model.BrandCode == "SS" ) 39 { 40 @ImageService.Instance.GetSvgMarkup( "/Files/Images/products/Labels/SevenSeasByID.svg" ) 41 } 42 43 @if ( Model.BrandCode == "GEYSER" ) 44 { 45 @ImageService.Instance.GetSvgMarkup( "/Files/Images/products/Labels/GEYSER.svg" ) 46 } 47 48 @if ( Model.BrandCode == "PRO WEAR" ) 49 { 50 @ImageService.Instance.GetSvgMarkup( "/Files/Images/products/Labels/ProWearByID.svg" ) 51 } 52 </div> 53 54 <div class="productlist-label-container"> 55 @if ( Model.ProductLabels != null ) 56 { 57 foreach ( IdentityProductLabel label in Model.ProductLabels ) 58 { 59 <span class="productlist-label label-@label.ClassName ">@label.Text</span> 60 } 61 } 62 63 </div> 64 65 <div class="e-productlist-item-container"> 66 <div class="e-productlist-item-image-container"> 67 <a class="e-productlist-item-image-wrapper" href="@Model.Link"> 68 <img alt="@Model.Name" class="e-productlist-item-image js-e-productlist-item-image" src="@Model.ImagePrimary.Medium" data-base-image="@Model.ImagePrimary.Medium" data-hover-image="@hoverImage"> 69 </a> 70 71 @if (Model.VariantPrimaryImages != null && Model.VariantPrimaryImages.Any() ) 72 { 73 <div class="identity-variant-listitem-select-option-container d-none d-md-block"> 74 <div class="d-flex identity-variant-listitem-select-option-wrapper"> 75 76 @{ 77 int variantCount = Model.VariantPrimaryImages.Count; 78 int variantCountTake = variantCount <= 5 ? 5 : 4; 79 } 80 @foreach ( IdentityProductVariants variantImage in Model.VariantPrimaryImages.Take( variantCountTake ) ) 81 { 82 if (!string.IsNullOrEmpty(variantImage.Link) && variantImage.Image != null) 83 { 84 <span class="select-option-color-wrapper js-select-option-color-wrapper"> 85 <a href="@variantImage.Link"><span class="identity-variant-listitem-select-option-color js-identity-variant-listitem-select-option-color" style="background-image: url(@variantImage.Image.Small);" data-hover-image="@variantImage.Image.Medium"></span></a> 86 </span> 87 } 88 89 } 90 @if ( Model.VariantPrimaryImages.Count > 5 ) 91 { 92 string moreVariantText = string.Format( "+{0}", Model.VariantPrimaryImages.Count - 4 ); 93 <span class="select-option-color-wrapper bg-light variant-option-extra-count"> 94 <span class="identity-variant-listitem-select-option-color">@moreVariantText</span> 95 </span> 96 } 97 </div> 98 </div> 99 100 } 101 102 </div> 103 <div class="e-productlist-item-text-container small"> @* CSS ADD text-truncate *@ 104 <p class="e-productlist-item-name mb-0"> 105 <a href="@Model.Link" class="text-ellipsis"> 106 @Translate("eCom Product - Product Number - List - Text", "No.") @Model.Number 107 @productName 108 </a> 109 </p> 110 <div class="e-productlist-item-text mb-0"> 111 @if (shopContext == ShopType.B2B && string.IsNullOrEmpty(discountGroup) == false && Model.ListPrices != null && Model.ListPrices.Any()) 112 { 113 <p class="e-product-price mb-0 mt-0"> 114 115 @if (SiteContext.ShowPrices()) 116 { 117 <span class="d-block font-weight-bold"> 118 @Translate("Product Netto Price - Text", "Nettopris") 119 <span class="js-e-product-price"> 120 @Model.Price.Formatted 121 </span> 122 </span> 123 } 124 125 126 <span class="d-block text-muted id-product-details-list-price"> 127 @Translate("Product List Price - Text", "Listepris") 128 <span class="js-e-product-listprice"> 129 @PriceService.Instance.GetPrice(new PriceSettings() 130 { 131 Value = Model.ListPrices.FirstOrDefault()?.Amount 132 }) 133 </span> 134 </span> 135 </p> 136 } 137 @if (shopContext == ShopType.B2C || shopContext == ShopType.CustomerShop) 138 { 139 <p class="e-product-price mb-1 mt-0 @(SiteContext.ShowPrices() == false ? "hidden-price" : string.Empty)"> 140 <span class="e-productlist-item-price"> 141 <a href="@Model.Link"> 142 @Model.Price.Formatted 143 </a> 144 </span> 145 <small>(@(Model.PriceWithoutVat.Value > 0 && Model.PriceWithoutVat.Value.Equals(Model.Price.Value) == false ? Model.PriceWithoutVat.Formatted : string.Empty) @Translate("Ecom - Price without VAT - text", "ekskl. moms") )</small> 146 </p> 147 } 148 149 </div> 150 @if ( Model.VariantPrimaryImages != null && Model.VariantPrimaryImages.Any() ) { 151 152 int variantCount = Model.VariantPrimaryImages.Count; 153 154 if ( Model.VariantPrimaryImages.Count > 1 ) { 155 <div class="d-block d-md-none"> 156 <p class="p-0 m-0 font-weight-semibold"><small>+ @variantCount @Translate("Product List Colors - Text", "farver")</small></p> 157 </div> 158 } 159 } 160 </div> 161 @if (shopContext == ShopType.B2B || shopContext == ShopType.CustomerShop) 162 { 163 <form class="d-flex justify-content-end"> 164 <a class="btn btn-primary text-white mt-0 position-relative js-identity-productlist-get-variant-matrix-modal identity-productlist-get-variant-matrix-modal-btn"> 165 <span class="identity-productlist-get-variant-matrix-modal-text"> 166 @ImageService.Instance.GetSvgMarkup("/Files/Images/icons/outline/41-shopping/shopping-cart-add-2.svg") 167 </span> 168 </a> 169 </form> 170 171 <div class="e-loading-overlay e-productlist-loading-overlay js-e-matrix-loading-overlay"> 172 @RenderingService.Instance.PartialView( "_partials/loading-spinner.cshtml" ) 173 </div> 174 } 175 </div> 176 <code class="js-identity-product-data" hidden> 177 @{ 178 dynamic productImperssionClick = new 179 { 180 item_name = Model.Name, 181 item_id = Model.Id, 182 price = Model.Price.Value.ToJavaScript(), 183 item_brand = Model.BrandName, 184 item_category = Model.Category, 185 item_variant = Model.ColorVariantText 186 }; 187 @JsonService.Instance.ToJson(productImperssionClick) 188 } 189 </code> 190 </div> 191
Error executing template "Designs/identity_v2/ecom/productlist/partials/item.cshtml"
System.Data.SqlClient.SqlException (0x80131904): Transaction (Process ID 54) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlDataReader.TryHasMoreRows(Boolean& moreRows)
   at System.Data.SqlClient.SqlDataReader.TryReadInternal(Boolean setTimeout, Boolean& more)
   at System.Data.SqlClient.SqlDataReader.Read()
   at Dynamicweb.Ecommerce.Products.DetailRepository.GetDefaultImage(String productId, String productVariantId, String productLanguageId, String detailType)
   at Dynamicweb.Ecommerce.Products.DetailService.GetDefaultDetail(String productId, String productVariantId, String languageId, IList`1 details)
   at Dynamicweb.Ecommerce.Products.DetailService.GetDefaultDetail(Product product)
   at Co3.ID.Dw.Models.Frontend.Ecommerce.IdentityProduct.get_ImagePrimary()
   at Co3.ID.Dw.Services.ProductService.GetVariantImages(IdentityProduct product, KeyValuePair`2 variantGroup)
   at Co3.ID.Dw.Models.Frontend.Ecommerce.IdentityProduct.GetVariantCombinationsPrimaryImages()
   at CompiledRazorTemplates.Dynamic.RazorEngine_4b0a30cc38c445d98a0c785231158b0d.Execute() in D:\dynamicweb.net\Solutions\id.espresso4.dk-e5\Application\Files\Templates\Designs\identity_v2\ecom\productlist\partials\item.cshtml:line 71
   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()
ClientConnectionId:86f92dd9-28e8-456b-8074-8ee587269a31
Error Number:1205,State:45,Class:13

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.Elements 5 @using Co3.Espresso.Website.Models.FrontEnd.Handlebars 6 @using Co3.Espresso.Website.Models.FrontEnd.Settings 7 @using Co3.Espresso.Website.Services 8 @using Co3.ID.Dw.Helpers 9 @using Co3.ID.Dw.Models.Frontend.Ecommerce 10 @using Co3.ID.Dw.Models.Frontend.Users 11 @using Dynamicweb.Rendering 12 @using Co3.ID.Dw.Services 13 @using Dynamicweb.Frontend 14 @using Dynamicweb.Security.UserManagement 15 @using RenderingService = Co3.Espresso.Website.Services.RenderingService 16 17 @{ 18 string productName = Model.Name; 19 string productNumber = Model.Number; 20 21 User currentUser = PageView.Current().User; 22 ShopType shopContext = SiteContext.CurrentSiteContext(); 23 bool isCustomerShop = (PageView.Current().Area.Item["IsCustomerShop"] != null && (bool)PageView.Current().Area.Item["IsCustomerShop"] == true); 24 string discountGroup = currentUser != null ? currentUser.GetCustomFieldValue< string >( "DiscountGroup" ) : string.Empty; 25 bool showPrices = !isCustomerShop || UserContext.Current.CustomerShop != null && UserContext.Current.CustomerShop.Settings.ShowPrices == true; 26 27 string hoverImage = string.Empty; 28 29 if (!isCustomerShop && Model.ListItemHoverImage != null) 30 { 31 hoverImage = Model.ListItemHoverImage.Medium; 32 } 33 } 34 35 <div class="e-block-link e-productlist-item js-e-block-link js-e-productlist-item js-e-productlist-item- p-1" data-product-id="@Model.Id" data-variant-id="@Model.VariantId" data-brand-code="@Model.BrandCode"> 36 37 <div class="productlist-brand-wrapper"> 38 @if ( Model.BrandCode == "SS" ) 39 { 40 @ImageService.Instance.GetSvgMarkup( "/Files/Images/products/Labels/SevenSeasByID.svg" ) 41 } 42 43 @if ( Model.BrandCode == "GEYSER" ) 44 { 45 @ImageService.Instance.GetSvgMarkup( "/Files/Images/products/Labels/GEYSER.svg" ) 46 } 47 48 @if ( Model.BrandCode == "PRO WEAR" ) 49 { 50 @ImageService.Instance.GetSvgMarkup( "/Files/Images/products/Labels/ProWearByID.svg" ) 51 } 52 </div> 53 54 <div class="productlist-label-container"> 55 @if ( Model.ProductLabels != null ) 56 { 57 foreach ( IdentityProductLabel label in Model.ProductLabels ) 58 { 59 <span class="productlist-label label-@label.ClassName ">@label.Text</span> 60 } 61 } 62 63 </div> 64 65 <div class="e-productlist-item-container"> 66 <div class="e-productlist-item-image-container"> 67 <a class="e-productlist-item-image-wrapper" href="@Model.Link"> 68 <img alt="@Model.Name" class="e-productlist-item-image js-e-productlist-item-image" src="@Model.ImagePrimary.Medium" data-base-image="@Model.ImagePrimary.Medium" data-hover-image="@hoverImage"> 69 </a> 70 71 @if (Model.VariantPrimaryImages != null && Model.VariantPrimaryImages.Any() ) 72 { 73 <div class="identity-variant-listitem-select-option-container d-none d-md-block"> 74 <div class="d-flex identity-variant-listitem-select-option-wrapper"> 75 76 @{ 77 int variantCount = Model.VariantPrimaryImages.Count; 78 int variantCountTake = variantCount <= 5 ? 5 : 4; 79 } 80 @foreach ( IdentityProductVariants variantImage in Model.VariantPrimaryImages.Take( variantCountTake ) ) 81 { 82 if (!string.IsNullOrEmpty(variantImage.Link) && variantImage.Image != null) 83 { 84 <span class="select-option-color-wrapper js-select-option-color-wrapper"> 85 <a href="@variantImage.Link"><span class="identity-variant-listitem-select-option-color js-identity-variant-listitem-select-option-color" style="background-image: url(@variantImage.Image.Small);" data-hover-image="@variantImage.Image.Medium"></span></a> 86 </span> 87 } 88 89 } 90 @if ( Model.VariantPrimaryImages.Count > 5 ) 91 { 92 string moreVariantText = string.Format( "+{0}", Model.VariantPrimaryImages.Count - 4 ); 93 <span class="select-option-color-wrapper bg-light variant-option-extra-count"> 94 <span class="identity-variant-listitem-select-option-color">@moreVariantText</span> 95 </span> 96 } 97 </div> 98 </div> 99 100 } 101 102 </div> 103 <div class="e-productlist-item-text-container small"> @* CSS ADD text-truncate *@ 104 <p class="e-productlist-item-name mb-0"> 105 <a href="@Model.Link" class="text-ellipsis"> 106 @Translate("eCom Product - Product Number - List - Text", "No.") @Model.Number 107 @productName 108 </a> 109 </p> 110 <div class="e-productlist-item-text mb-0"> 111 @if (shopContext == ShopType.B2B && string.IsNullOrEmpty(discountGroup) == false && Model.ListPrices != null && Model.ListPrices.Any()) 112 { 113 <p class="e-product-price mb-0 mt-0"> 114 115 @if (SiteContext.ShowPrices()) 116 { 117 <span class="d-block font-weight-bold"> 118 @Translate("Product Netto Price - Text", "Nettopris") 119 <span class="js-e-product-price"> 120 @Model.Price.Formatted 121 </span> 122 </span> 123 } 124 125 126 <span class="d-block text-muted id-product-details-list-price"> 127 @Translate("Product List Price - Text", "Listepris") 128 <span class="js-e-product-listprice"> 129 @PriceService.Instance.GetPrice(new PriceSettings() 130 { 131 Value = Model.ListPrices.FirstOrDefault()?.Amount 132 }) 133 </span> 134 </span> 135 </p> 136 } 137 @if (shopContext == ShopType.B2C || shopContext == ShopType.CustomerShop) 138 { 139 <p class="e-product-price mb-1 mt-0 @(SiteContext.ShowPrices() == false ? "hidden-price" : string.Empty)"> 140 <span class="e-productlist-item-price"> 141 <a href="@Model.Link"> 142 @Model.Price.Formatted 143 </a> 144 </span> 145 <small>(@(Model.PriceWithoutVat.Value > 0 && Model.PriceWithoutVat.Value.Equals(Model.Price.Value) == false ? Model.PriceWithoutVat.Formatted : string.Empty) @Translate("Ecom - Price without VAT - text", "ekskl. moms") )</small> 146 </p> 147 } 148 149 </div> 150 @if ( Model.VariantPrimaryImages != null && Model.VariantPrimaryImages.Any() ) { 151 152 int variantCount = Model.VariantPrimaryImages.Count; 153 154 if ( Model.VariantPrimaryImages.Count > 1 ) { 155 <div class="d-block d-md-none"> 156 <p class="p-0 m-0 font-weight-semibold"><small>+ @variantCount @Translate("Product List Colors - Text", "farver")</small></p> 157 </div> 158 } 159 } 160 </div> 161 @if (shopContext == ShopType.B2B || shopContext == ShopType.CustomerShop) 162 { 163 <form class="d-flex justify-content-end"> 164 <a class="btn btn-primary text-white mt-0 position-relative js-identity-productlist-get-variant-matrix-modal identity-productlist-get-variant-matrix-modal-btn"> 165 <span class="identity-productlist-get-variant-matrix-modal-text"> 166 @ImageService.Instance.GetSvgMarkup("/Files/Images/icons/outline/41-shopping/shopping-cart-add-2.svg") 167 </span> 168 </a> 169 </form> 170 171 <div class="e-loading-overlay e-productlist-loading-overlay js-e-matrix-loading-overlay"> 172 @RenderingService.Instance.PartialView( "_partials/loading-spinner.cshtml" ) 173 </div> 174 } 175 </div> 176 <code class="js-identity-product-data" hidden> 177 @{ 178 dynamic productImperssionClick = new 179 { 180 item_name = Model.Name, 181 item_id = Model.Id, 182 price = Model.Price.Value.ToJavaScript(), 183 item_brand = Model.BrandName, 184 item_category = Model.Category, 185 item_variant = Model.ColorVariantText 186 }; 187 @JsonService.Instance.ToJson(productImperssionClick) 188 } 189 </code> 190 </div> 191
Error executing template "Designs/identity_v2/ecom/productlist/partials/item.cshtml"
System.Data.SqlClient.SqlException (0x80131904): Transaction (Process ID 54) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlDataReader.TryHasMoreRows(Boolean& moreRows)
   at System.Data.SqlClient.SqlDataReader.TryReadInternal(Boolean setTimeout, Boolean& more)
   at System.Data.SqlClient.SqlDataReader.Read()
   at Dynamicweb.Ecommerce.Products.DetailRepository.GetDefaultImage(String productId, String productVariantId, String productLanguageId, String detailType)
   at Dynamicweb.Ecommerce.Products.DetailService.GetDefaultDetail(String productId, String productVariantId, String languageId, IList`1 details)
   at Dynamicweb.Ecommerce.Products.DetailService.GetDefaultDetail(Product product)
   at Co3.ID.Dw.Models.Frontend.Ecommerce.IdentityProduct.get_ImagePrimary()
   at Co3.ID.Dw.Services.ProductService.GetVariantImages(IdentityProduct product, KeyValuePair`2 variantGroup)
   at Co3.ID.Dw.Models.Frontend.Ecommerce.IdentityProduct.GetVariantCombinationsPrimaryImages()
   at CompiledRazorTemplates.Dynamic.RazorEngine_4b0a30cc38c445d98a0c785231158b0d.Execute() in D:\dynamicweb.net\Solutions\id.espresso4.dk-e5\Application\Files\Templates\Designs\identity_v2\ecom\productlist\partials\item.cshtml:line 71
   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()
ClientConnectionId:86f92dd9-28e8-456b-8074-8ee587269a31
Error Number:1205,State:45,Class:13

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.Elements 5 @using Co3.Espresso.Website.Models.FrontEnd.Handlebars 6 @using Co3.Espresso.Website.Models.FrontEnd.Settings 7 @using Co3.Espresso.Website.Services 8 @using Co3.ID.Dw.Helpers 9 @using Co3.ID.Dw.Models.Frontend.Ecommerce 10 @using Co3.ID.Dw.Models.Frontend.Users 11 @using Dynamicweb.Rendering 12 @using Co3.ID.Dw.Services 13 @using Dynamicweb.Frontend 14 @using Dynamicweb.Security.UserManagement 15 @using RenderingService = Co3.Espresso.Website.Services.RenderingService 16 17 @{ 18 string productName = Model.Name; 19 string productNumber = Model.Number; 20 21 User currentUser = PageView.Current().User; 22 ShopType shopContext = SiteContext.CurrentSiteContext(); 23 bool isCustomerShop = (PageView.Current().Area.Item["IsCustomerShop"] != null && (bool)PageView.Current().Area.Item["IsCustomerShop"] == true); 24 string discountGroup = currentUser != null ? currentUser.GetCustomFieldValue< string >( "DiscountGroup" ) : string.Empty; 25 bool showPrices = !isCustomerShop || UserContext.Current.CustomerShop != null && UserContext.Current.CustomerShop.Settings.ShowPrices == true; 26 27 string hoverImage = string.Empty; 28 29 if (!isCustomerShop && Model.ListItemHoverImage != null) 30 { 31 hoverImage = Model.ListItemHoverImage.Medium; 32 } 33 } 34 35 <div class="e-block-link e-productlist-item js-e-block-link js-e-productlist-item js-e-productlist-item- p-1" data-product-id="@Model.Id" data-variant-id="@Model.VariantId" data-brand-code="@Model.BrandCode"> 36 37 <div class="productlist-brand-wrapper"> 38 @if ( Model.BrandCode == "SS" ) 39 { 40 @ImageService.Instance.GetSvgMarkup( "/Files/Images/products/Labels/SevenSeasByID.svg" ) 41 } 42 43 @if ( Model.BrandCode == "GEYSER" ) 44 { 45 @ImageService.Instance.GetSvgMarkup( "/Files/Images/products/Labels/GEYSER.svg" ) 46 } 47 48 @if ( Model.BrandCode == "PRO WEAR" ) 49 { 50 @ImageService.Instance.GetSvgMarkup( "/Files/Images/products/Labels/ProWearByID.svg" ) 51 } 52 </div> 53 54 <div class="productlist-label-container"> 55 @if ( Model.ProductLabels != null ) 56 { 57 foreach ( IdentityProductLabel label in Model.ProductLabels ) 58 { 59 <span class="productlist-label label-@label.ClassName ">@label.Text</span> 60 } 61 } 62 63 </div> 64 65 <div class="e-productlist-item-container"> 66 <div class="e-productlist-item-image-container"> 67 <a class="e-productlist-item-image-wrapper" href="@Model.Link"> 68 <img alt="@Model.Name" class="e-productlist-item-image js-e-productlist-item-image" src="@Model.ImagePrimary.Medium" data-base-image="@Model.ImagePrimary.Medium" data-hover-image="@hoverImage"> 69 </a> 70 71 @if (Model.VariantPrimaryImages != null && Model.VariantPrimaryImages.Any() ) 72 { 73 <div class="identity-variant-listitem-select-option-container d-none d-md-block"> 74 <div class="d-flex identity-variant-listitem-select-option-wrapper"> 75 76 @{ 77 int variantCount = Model.VariantPrimaryImages.Count; 78 int variantCountTake = variantCount <= 5 ? 5 : 4; 79 } 80 @foreach ( IdentityProductVariants variantImage in Model.VariantPrimaryImages.Take( variantCountTake ) ) 81 { 82 if (!string.IsNullOrEmpty(variantImage.Link) && variantImage.Image != null) 83 { 84 <span class="select-option-color-wrapper js-select-option-color-wrapper"> 85 <a href="@variantImage.Link"><span class="identity-variant-listitem-select-option-color js-identity-variant-listitem-select-option-color" style="background-image: url(@variantImage.Image.Small);" data-hover-image="@variantImage.Image.Medium"></span></a> 86 </span> 87 } 88 89 } 90 @if ( Model.VariantPrimaryImages.Count > 5 ) 91 { 92 string moreVariantText = string.Format( "+{0}", Model.VariantPrimaryImages.Count - 4 ); 93 <span class="select-option-color-wrapper bg-light variant-option-extra-count"> 94 <span class="identity-variant-listitem-select-option-color">@moreVariantText</span> 95 </span> 96 } 97 </div> 98 </div> 99 100 } 101 102 </div> 103 <div class="e-productlist-item-text-container small"> @* CSS ADD text-truncate *@ 104 <p class="e-productlist-item-name mb-0"> 105 <a href="@Model.Link" class="text-ellipsis"> 106 @Translate("eCom Product - Product Number - List - Text", "No.") @Model.Number 107 @productName 108 </a> 109 </p> 110 <div class="e-productlist-item-text mb-0"> 111 @if (shopContext == ShopType.B2B && string.IsNullOrEmpty(discountGroup) == false && Model.ListPrices != null && Model.ListPrices.Any()) 112 { 113 <p class="e-product-price mb-0 mt-0"> 114 115 @if (SiteContext.ShowPrices()) 116 { 117 <span class="d-block font-weight-bold"> 118 @Translate("Product Netto Price - Text", "Nettopris") 119 <span class="js-e-product-price"> 120 @Model.Price.Formatted 121 </span> 122 </span> 123 } 124 125 126 <span class="d-block text-muted id-product-details-list-price"> 127 @Translate("Product List Price - Text", "Listepris") 128 <span class="js-e-product-listprice"> 129 @PriceService.Instance.GetPrice(new PriceSettings() 130 { 131 Value = Model.ListPrices.FirstOrDefault()?.Amount 132 }) 133 </span> 134 </span> 135 </p> 136 } 137 @if (shopContext == ShopType.B2C || shopContext == ShopType.CustomerShop) 138 { 139 <p class="e-product-price mb-1 mt-0 @(SiteContext.ShowPrices() == false ? "hidden-price" : string.Empty)"> 140 <span class="e-productlist-item-price"> 141 <a href="@Model.Link"> 142 @Model.Price.Formatted 143 </a> 144 </span> 145 <small>(@(Model.PriceWithoutVat.Value > 0 && Model.PriceWithoutVat.Value.Equals(Model.Price.Value) == false ? Model.PriceWithoutVat.Formatted : string.Empty) @Translate("Ecom - Price without VAT - text", "ekskl. moms") )</small> 146 </p> 147 } 148 149 </div> 150 @if ( Model.VariantPrimaryImages != null && Model.VariantPrimaryImages.Any() ) { 151 152 int variantCount = Model.VariantPrimaryImages.Count; 153 154 if ( Model.VariantPrimaryImages.Count > 1 ) { 155 <div class="d-block d-md-none"> 156 <p class="p-0 m-0 font-weight-semibold"><small>+ @variantCount @Translate("Product List Colors - Text", "farver")</small></p> 157 </div> 158 } 159 } 160 </div> 161 @if (shopContext == ShopType.B2B || shopContext == ShopType.CustomerShop) 162 { 163 <form class="d-flex justify-content-end"> 164 <a class="btn btn-primary text-white mt-0 position-relative js-identity-productlist-get-variant-matrix-modal identity-productlist-get-variant-matrix-modal-btn"> 165 <span class="identity-productlist-get-variant-matrix-modal-text"> 166 @ImageService.Instance.GetSvgMarkup("/Files/Images/icons/outline/41-shopping/shopping-cart-add-2.svg") 167 </span> 168 </a> 169 </form> 170 171 <div class="e-loading-overlay e-productlist-loading-overlay js-e-matrix-loading-overlay"> 172 @RenderingService.Instance.PartialView( "_partials/loading-spinner.cshtml" ) 173 </div> 174 } 175 </div> 176 <code class="js-identity-product-data" hidden> 177 @{ 178 dynamic productImperssionClick = new 179 { 180 item_name = Model.Name, 181 item_id = Model.Id, 182 price = Model.Price.Value.ToJavaScript(), 183 item_brand = Model.BrandName, 184 item_category = Model.Category, 185 item_variant = Model.ColorVariantText 186 }; 187 @JsonService.Instance.ToJson(productImperssionClick) 188 } 189 </code> 190 </div> 191

Corporate wear

More than sportswear

Passion for shirts

Made to last

Tidløst Corporate Wear

Corporate Wear med et klassisk
og tidløst design forfinet
siden 1983

Ingen kompromiser

Skabt til at kunne bruges igen
og igen - holder pasform
og farve

Fælles identitet

Tøj der understreger en fælles
identitet og styrker
fællesskabet

Find jeres farve

Vælg mellem mere end 60+
farver - der er også en
farve til jer

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

keyboard_arrow_up