Exception in template (Designs\santax\eCom/Product/santax.cshtml): System.ArgumentException: No template could be resolved with name 'inc/b2c/part-delivery-info-b2c.cshtml'
at RazorEngine.Templating.TemplateBase.Include(String cacheName, Object model)
at RazorEngine.Templating.TemplateBase`1.Include(String cacheName, Object model)
at CompiledRazorTemplates.Dynamic.afbfecbfbcddb.Execute()
at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context)
at RazorEngine.Templating.TemplateService.Run(ITemplate template, DynamicViewBag viewBag)
at RazorEngine.Templating.TemplateService.Parse(String razorTemplate, Object model, DynamicViewBag viewBag, String cacheName)
at RazorEngine.Razor.Parse[T](String razorTemplate, T model, String cacheName)
at Dynamicweb.Rendering.Template.RenderRazorTemplate()
@inherits RazorTemplateBase< RazorTemplateModel< Template > > @using Dynamicweb.Ecommerce.Prices; @using Co3.Espresso.Base.Extensions; @using Co3.Espresso.Base.Models; @using Co3.Espresso.Website.Models.FrontEnd @using Co3.Espresso.Website.Services @using Dynamicweb.Ecommerce.Common.eCom7 @using Dynamicweb.Rendering @using System.Web @using System.Globalization @using Co3.Espresso.Base.Extensions @using Co3.Espresso.Website.Models.FrontEnd @using Co3.Espresso.Website.Services @using Dynamicweb.Frontend @using Dynamicweb.Rendering @using EcomContext = Dynamicweb.Ecommerce.Common.Context @helper ProductDescription(string sectionClasses = "e-section", bool sectionCollapse = false, string contentClasses = null, string heading = null, string content = null) { if ( string.IsNullOrEmpty( content ) == false ) { ClassList headingClassList = new ClassList(); headingClassList.AddClasses( "col-12" ); ClassList contentClassList = new ClassList(); contentClassList.AddClasses( "col-12" ); @sectionStart( sectionClasses: sectionClasses, sectionCollapse: sectionCollapse, contentClasses: contentClasses ) if ( string.IsNullOrEmpty( heading ) == false ) { <div class="@headingClassList"> <h2>@heading</h2> </div> } <div class="@contentClassList"> @content </div> @sectionEnd() } } @helper ProductVideo(string sectionClasses = "e-section", string contentClasses = null, string heading = null, string videoURL = null) { if ( string.IsNullOrEmpty( videoURL ) == false ) { ClassList headingClassList = new ClassList(); headingClassList.AddClasses( "col-12" ); ClassList contentClassList = new ClassList(); contentClassList.AddClasses( "col-12" ); @sectionStart( sectionClasses: sectionClasses, contentClasses: contentClasses ) if ( string.IsNullOrEmpty( heading ) == false ) { <div class="@headingClassList"> <h2>@heading</h2> </div> } <div class="@contentClassList"> <div class="embed-responsive embed-responsive-16by9 mb-2"> <iframe class="embed-responsive-item" src="@videoURL" width="1080" height="608" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe> </div> </div> @sectionEnd() } } @helper ProductRelatedProducts(string sectionClasses = "e-section", string contentClasses = null, string heading = null, IEnumerable<RazorTemplateBase<RazorTemplateModel<Template>>.LoopItem> productLoop = null) { if ( productLoop != null && productLoop.Any() == true ) { ClassList headingClassList = new ClassList(); headingClassList.AddClasses( "col-12" ); ClassList contentClassList = new ClassList(); contentClassList.AddClasses( "col-12" ); @sectionStart( sectionClasses: sectionClasses, contentClasses: contentClasses ) if ( string.IsNullOrEmpty( heading ) == false ) { <div class="@headingClassList"> <h2 class="text-center">@heading</h2> </div> } <div class="@contentClassList"> <div class="e-products mb-2"> <div class="row"> @{ string productlistItemClassList = ProductlistService.Instance.GetGridItemWidth( null ).ToResponsiveClasses(); productlistItemClassList = "col-6 col-sm-6 col-md-3 col-lg-3 col-xl-3"; } @foreach ( RazorTemplateBase<RazorTemplateModel<Template>>.LoopItem product in productLoop ) { @ProductlistItem( product, productlistItemClassList ) } </div> </div> </div> @sectionEnd() } } @helper ProductlistItem(RazorTemplateBase<RazorTemplateModel<Template>>.LoopItem product, string productlistItemClassList = null) { if ( product != null ) { dynamic productData = new { id = product.GetString( "Ecom:Product.ID" ), url = ProductService.Instance.GetProductLink( product.GetString( "Ecom:Product.PrimaryOrFirstGroupID" ), product.GetString( "Ecom:Product.ID" ) ), number = product.GetString( "Ecom:Product.Number" ), name = product.GetString( "Ecom:Product.Name" ), imageLarge = ImageService.Instance.GetImageURL( product.GetString( "Ecom:Product.ImageLarge.Clean" ), 240, 240, 5 ), price = ProductService.Instance.GetPriceFormatted( product.GetDouble( "Ecom:Product.Price.Price" ) ), descriptionShortExtra01 = product.GetString( "Ecom:Product:Field.DescriptionShortExtra01" ), stock = new { id = product.GetString( "Ecom:Product:Stock.ID" ), quantity = product.GetString( "Ecom:Product.Stock" ), text = product.GetString( "Ecom:Product:Stock.Text" ), delivery = product.GetString( "Ecom:Product:Stock.DeliveryText" ) } }; <div class="@productlistItemClassList"> <div class="border-0 e-products-item js-e-products-item"> <div class="e-products-item-container"> <div class="e-products-item-image-container"> <a class="e-products-item-image-wrapper" href="@productData.url"> <img src="@productData.imageLarge" alt="" class="e-products-item-image"> </a> </div> <div class="e-products-item-text-container text-center"> <h3 class="e-products-item-name mb-0"> <a href="@productData.url"> @productData.name </a> </h3> @if ( string.IsNullOrEmpty( productData.descriptionShortExtra01 ) == false ) { <p class="e-products-item-text mb-0"> <a href="@productData.url"> @productData.descriptionShortExtra01 </a> </p> } @* <p class="e-products-item-text mb-0"> <small class="e-products-item-price small text-muted"> <a href="@productData.url"> @productData.price </a> </small> </p> *@ </div> </div> </div> </div> } } @helper sectionStart(string sectionClasses = "e-section", string contentClasses = null, bool sectionCollapse = false) { ClassList sectionClassList = new ClassList(); sectionClassList.AddClasses( sectionClasses ); ClassList contentClassList; string collapseId = Guid.NewGuid().ToString( "N" ); ClassList collapseToggleClassList = new ClassList(); string collapseToggleTextExpand = "Se mere"; string collapseToggleTextCollapse = "Se mindre"; if ( contentClasses == null ) { contentClassList = Co3.Espresso.Website.Services.PageService.Instance.GetResponsiveClassesFromPageItem( PageView.Current().Page.Item ); } else { contentClassList = new ClassList(); contentClassList.AddClasses( contentClasses ); } if ( sectionCollapse == true ) { sectionClassList.AddClasses( "p-section-collapse js-p-section-collapse" ); collapseToggleClassList.AddClasses( contentClasses ); collapseToggleClassList.AddClasses( "p-section-collapse-toggle collapsed order-last text-center" ); contentClassList.AddClasses( "p-section-collapse-content collapse is-md" ); } @:<section class="@sectionClassList"> @:<div class="container-fluid"> @:<div class="row"> if ( sectionCollapse == true ) // TODO: SplitPattern into seperate heler function { <div class="@collapseToggleClassList" data-toggle="collapse" data-target="#@collapseId"> <button class="btn btn-primary p-section-collapse-toggle-btn" type="button"> <i class="material-icons p-section-collapse-toggle-icon">keyboard_arrow_down</i> </button> <small class="p-section-collapse-toggle-text h4" data-expand-text="@collapseToggleTextExpand" data-collapse-text="@collapseToggleTextCollapse"></small> </div> } @:<div class="@contentClassList" id="@collapseId"> @:<div class="row"> } @helper sectionEnd() { @:</div> @:</div> @:</div> @:</div> @:</section> } @{dynamic JSON = new{productid = GetValue( "Ecom:Product.ID" ),variantoptions = new List< dynamic >(),variantcombinations = new List< dynamic >()};foreach ( LoopItem variantCombo in GetLoop( "VariantCombinations" ) ){if ( variantCombo.GetBoolean( "Ecom:VariantCombination.Product.Active" ) == true ){JSON.variantcombinations.Add( new{id = variantCombo.GetString( "Ecom:VariantCombination.Product.ID" ),name = variantCombo.GetString( "Ecom:VariantCombination.Product.Name" ),text = variantCombo.GetString( "Ecom:VariantCombination.VariantText" ),number = variantCombo.GetString( "Ecom:VariantCombination.Product.Number" ),price = variantCombo.GetDouble( "Ecom:VariantCombination.Product.Price.Price" ),imageLarge = variantCombo.GetString( "Ecom:VariantCombination.Product.ImageLarge.Clean" ),stock = variantCombo.GetDouble( "Ecom:VariantCombination.Product.Stock" ),stockState = variantCombo.GetString( "Ecom:VariantCombination.Product.Stock.Text" ),delivery = variantCombo.GetString( "Ecom:VariantCombination.Product.Stock.DeliveryText" )} );}} } @*https://webshop-dev.espresso4.dk/lamper/varekort?productid=PROD284&VariantID=VO62.VO38 *@@sectionEnd()<div class="e-product"> @sectionStart()<div class="col-12"><div class="row"><div class="col-12 col-sm-5"><div class="e-product-text-container"><h2 class="e-product-name mb-0">@GetString( "Ecom:Product.Name" )</h2>@if ( string.IsNullOrEmpty(GetString( "Ecom:Product:Field.DescriptionShortExtra01" )) == false ){<h4 class="mb-2 mt-1 designetaf">Designet af @GetString( "Ecom:Product:Field.DescriptionShortExtra01" )</h4>}<div class="e-product-text mb-2">@GetString( "Ecom:Product.ShortDescription" )</div>@*@if ( string.IsNullOrEmpty(GetString( "Ecom:Product:Field.DescriptionHeading" )) == false ){<p class="font-weight-bold">@GetString( "Ecom:Product:Field.DescriptionHeading" )</p>}@if ( string.IsNullOrEmpty(GetString( "Ecom:Product.LongDescription" )) == false ){<p>@GetString( "Ecom:Product.LongDescription" )</p>}<div class="e-product-text mb-2">@GetString( "Ecom:Product.ShortDescription" )</div>*@@if ( string.IsNullOrEmpty( GetString( "Ecom:Product:Field.DataSheet1Linktext.Value.Clean" ) ) == false && string.IsNullOrEmpty( GetString( "Ecom:Product:Field.DataSheet1.Value.FullPath" ) ) == false ){<a href="@GetString( "Ecom:Product:Field.DataSheet1.Value.FullPath" )"><i class="material-icons">insert_drive_file </i> @GetString( "Ecom:Product:Field.DataSheet1Linktext.Value.Clean" )</a><br>}@if ( string.IsNullOrEmpty( GetString( "Ecom:Product:Field.DataSheet2Linktext.Value.Clean" ) ) == false && string.IsNullOrEmpty( GetString( "Ecom:Product:Field.DataSheet2.Value.FullPath" ) ) == false ){<a href="@GetString( "Ecom:Product:Field.DataSheet2.Value.FullPath" )"><i class="material-icons">insert_drive_file </i> @GetString( "Ecom:Product:Field.DataSheet2Linktext.Value.Clean" )</a><br>}@if ( string.IsNullOrEmpty( GetString( "Ecom:Product:Field.DataSheet3Linktext.Value.Clean" ) ) == false && string.IsNullOrEmpty( GetString( "Ecom:Product:Field.DataSheet3.Value.FullPath" ) ) == false ){<a href="@GetString( "Ecom:Product:Field.DataSheet3.Value.FullPath" )"><i class="material-icons">insert_drive_file </i> @GetString( "Ecom:Product:Field.DataSheet3Linktext.Value.Clean" )</a><br>}@if ( string.IsNullOrEmpty( GetString( "Ecom:Product:Field.DataSheet4Linktext.Value.Clean" ) ) == false && string.IsNullOrEmpty( GetString( "Ecom:Product:Field.DataSheet4.Value.FullPath" ) ) == false ){<a href="@GetString( "Ecom:Product:Field.DataSheet4.Value.FullPath" )"><i class="material-icons">insert_drive_file </i> @GetString( "Ecom:Product:Field.DataSheet4Linktext.Value.Clean" )</a><br>}@*<div class="e-product-delivery mb-2">@if ( string.IsNullOrEmpty( GetString( "Ecom:Product:Stock.ID" ) ) == false ) {<ul class="material-icons-ul list-condensed mb-0 text-heading font-weight-bold">@if ( GetInteger( "Ecom:Product.Stock" ) > 0 ){<li class="d-none"><i class="material-icons text-primary">check</i>@GetString( "Ecom:Product:Stock.Text" )</li>}else{<li class="d-none"><i class="material-icons text-danger">close</i>@GetString( "Ecom:Product:Stock.Text" )</li>}<li><i class="material-icons text-primary">check</i>@GetString( "Ecom:Product:Stock.DeliveryText" )</li><li><i class="material-icons text-primary">check</i>@Translate( "eCom Product - Delivery Policy - Text", "Free delivery" )</li><li><i class="material-icons text-primary">check</i>@Translate( "eCom Product - Return Policy - Text", "Free returns" )</li></ul> }</div><p class="e-product-price h2 mb-1 mt-0">@ProductService.Instance.GetPriceFormatted( GetDouble("Ecom:Product.Price.Price") ) @if( GetDouble("Ecom:Product:Field.BeforePrice") != 0 ){ <span class="e-product-price-before text-muted small">@ProductService.Instance.GetPriceFormatted( GetDouble("Ecom:Product:Field.BeforePrice") ) </span> }</p><!-- --> <form action="/system/data/cart" class="e-product-form js-e-product-form py-1" method="post"><input name="CartCmd" type="hidden" value="Add"><input type="hidden" name="ProductID" value="@GetString( "Ecom:Product.ID" )"><input name="VariantID" type="hidden" value=""><input name="UnitID" type="hidden" value=""><input name="Redirect" type="hidden" value=""><input name="Quantity" type="hidden" value="1">@{if ( string.IsNullOrEmpty( GetString( "Ecom:Product.CategoryField.Consumeables.Color_Apron.Value.Clean" ) ) == false ){String[] arrApronsLbl = GetString( "Ecom:Product.CategoryField.Consumeables.Color_Apron.OptionLabel" ).Split( ',' );<div class="row"><div class="col-md-8"><div class="form-group"><label for="EcomOrderLineFieldInput_ColorApron" class="font-weight-bold col-form-label">@Translate( "eCom Product - Apron Color - Label", "Apron Color" )</label><select id="EcomOrderLineFieldInput_ColorApron" name="EcomOrderLineFieldInput_ColorApron" class="form-control">@foreach ( var apron in arrApronsLbl ){<option value="@apron">@apron</option>}</select></div></div></div>}if ( string.IsNullOrEmpty( GetString( "Ecom:Product.CategoryField.Consumeables.Color_Ribbon.Value.Clean" ) ) == false ){String[] arrRibbonsLbl = GetString( "Ecom:Product.CategoryField.Consumeables.Color_Ribbon.OptionLabel" ).Split( ',' );<div class="row"><div class="col-md-8"><div class="form-group"><label for="EcomOrderLineFieldInput_ColorRibbon" class="font-weight-bold col-form-label">@Translate( "eCom Product - Ribbon Color - Label", "Ribbon Color" )</label><select id="EcomOrderLineFieldInput_ColorRibbon" name="EcomOrderLineFieldInput_ColorRibbon" class="form-control">@foreach ( var ribbon in arrRibbonsLbl ){<option value="@ribbon">@ribbon</option>}</select></div></div></div>} }<button class="btn btn-success" type="submit">@Translate( "eCom Product - Add To Cart - Button", "Add to cart" )</button> </form>*@</div></div><div class="col-12 col-sm-7 order-first"><div class="e-product-image-container"><div class="e-product-image-container"><div class="carousel slide" data-interval="false" data-ride="carousel" id="js-e-product-image-carousel"><div class="e-product-image-wrapper"><div class="carousel-inner"><div class="active carousel-item" data-target="#js-e-product-image-modal" data-toggle="modal"><img src="/admin/public/getimage.ashx?Crop=0&Image=@GetValue( "Ecom:Product.ImageLarge.Clean" )&Format=jpg&Width=1200&Height=&Quality=90" alt="" class="e-product-image" data-target="#js-e-product-image-modal-carousel" data-slide-to="0"></div>@foreach ( ElementWithIndex< LoopItem > image in GetLoop( "Details" ).WithIndex() ){<p class="d-none">@( GetString( "Ecom:Product.ImageLarge.Clean" ) != image.Element.GetString( "Ecom:Product:Detail.Image.Clean" ) ) - @GetString( "Ecom:Product.ImageLarge.Clean" ).ToString() - @image.Element.GetString( "Ecom:Product:Detail.Image.Clean" ).ToString()</p>if ( GetString( "Ecom:Product.ImageLarge.Clean" ) != image.Element.GetString( "Ecom:Product:Detail.Image.Clean" ) ){<div class="carousel-item" data-target="#js-e-product-image-modal" data-toggle="modal"><img src="/admin/public/getimage.ashx?Crop=0&Image=@image.Element.GetString( "Ecom:Product:Detail.Image.Clean" )&Format=jpg&Width=600&Height=&Quality=90" alt="" class="e-product-image" data-target="#js-e-product-image-modal-carousel" data-slide-to="@( image.Index + 1 )"></div>}}<a class="carousel-control-prev" data-slide="prev" data-target="#js-e-product-image-carousel"></a><a class="carousel-control-next" data-slide="next" data-target="#js-e-product-image-carousel"></a></div></div><ol class="carousel-indicators"><li class="active" data-slide-to="0" data-target="#js-e-product-image-carousel"><span style="background-image: url(/admin/public/getimage.ashx?Crop=0&Image=@GetValue( "Ecom:Product.ImageLarge.Clean" )&Format=jpg&Width=50&Height=&Quality=90)"></span></li>@foreach ( ElementWithIndex< LoopItem > image in GetLoop( "Details" ).WithIndex() ){<p class="d-none">@( GetString( "Ecom:Product.ImageLarge.Clean" ) != image.Element.GetString( "Ecom:Product:Detail.Image.Clean" ) ) - @GetString( "Ecom:Product.ImageLarge.Clean" ) - @image.Element.GetString( "Ecom:Product:Detail.Image.Clean" )</p>if ( GetString( "Ecom:Product.ImageLarge.Clean" ) != image.Element.GetString( "Ecom:Product:Detail.Image.Clean" ) ){<li data-target="#js-e-product-image-carousel" data-slide-to="@( image.Index + 1 )"><span style="background-image: url(/admin/public/getimage.ashx?Crop=0&Image=@image.Element.GetString( "Ecom:Product:Detail.Image.Clean" )&Format=jpg&Width=50&Height=&Quality=75)"></span></li>}}</ol></div> </div></div><div class="modal modal-fullscreen fade e-product-image-modal" id="js-e-product-image-modal" data-backdrop="false" data-keyboard="true"><div class="modal-dialog"><div class="modal-content"><div class="modal-body"><button type="button" class="close" data-dismiss="modal"><i class="material-icons">close</i></button><div id="js-e-product-image-modal-carousel" class="carousel slide" data-keyboard="true" data-interval="false"><div class="carousel-inner"><div class="carousel-item active" style="background-image:url(/admin/public/getimage.ashx?Crop=0&Image=@GetValue("Ecom:Product.ImageLarge.Clean")&Format=jpg&Width=&Height=1800&Quality=90)"></div>@foreach (LoopItem image in GetLoop("Details")){<div class="carousel-item" style="background-image:url(/admin/public/getimage.ashx?Crop=0&Image=@image.GetString("Ecom:Product:Detail.Image.Clean")&Format=jpg&Width=&Height=1800&Quality=90)"></div>}</div><ol class="carousel-indicators"><li data-target="#js-e-product-image-modal-carousel" data-slide-to="0" class="active"><span style="background-image:url(/admin/public/getimage.ashx?Crop=0&Image=@GetValue("Ecom:Product.ImageLarge.Clean")&Format=jpg&Width=50&Height=&Quality=90)"></span></li>@foreach ( ElementWithIndex< LoopItem > image in GetLoop( "Details" ).WithIndex() ){<li data-target="#js-e-product-image-modal-carousel" data-slide-to="@(image.Index + 1)"><span style="background-image: url(/admin/public/getimage.ashx?Crop=0&Image=@image.Element.GetString( "Ecom:Product:Detail.Image.Clean" )&Format=jpg&Width=50&Height=&Quality=75)"></span></li>}</ol><a class="carousel-control-prev" data-target="#js-e-product-image-modal-carousel" data-slide="prev"></a><a class="carousel-control-next" data-target="#js-e-product-image-modal-carousel" data-slide="next"></a></div></div></div></div> </div></div></div> </div>@sectionEnd()@ProductDescription(heading: GetString( "Ecom:Product:Field.DescriptionHeading" ),content: GetString( "Ecom:Product.LongDescription" ),contentClasses: "col-12 col-md-10 col-lg-8 mx-auto is-lg",sectionClasses: "e-section mt-4 mb-2",sectionCollapse: false) @* @ProductDescription(heading: GetString( "Ecom:Product:Field.DescriptionExtraHeading01" ),content: GetString( "Ecom:Product:Field.DescriptionExtra01" ),contentClasses: "col-12 col-md-10 col-lg-8 mx-auto")@ProductVideo(heading: GetString( "Ecom:Product:Field.VideoHeading" ),videoURL: GetString( "Ecom:Product:Field.Video" ),contentClasses: "col-12 col-md-10 col-lg-8 mx-auto")@ProductDescription(heading: GetString( "Ecom:Product:Field.DescriptionExtraHeading02" ),content: GetString( "Ecom:Product:Field.DescriptionExtra02" ),contentClasses: "col-12 col-md-10 col-lg-8 mx-auto")@ProductDescription(heading: GetString( "Ecom:Product:Field.DescriptionExtraHeading03" ),content: GetString( "Ecom:Product:Field.DescriptionExtra03" ),contentClasses: "col-12 col-md-10 col-lg-8 mx-auto",sectionClasses: "e-section my-4",sectionCollapse: true) *@@{@sectionStart(sectionClasses: "e-section pb-2 pt-4 bg-light",contentClasses: "col-12 col-md-10 col-lg-8 mx-auto is-lg ngi-e-extra-product-desc")if ( !string.IsNullOrEmpty( GetString( "Ecom:Product:Field.DescriptionExtraHeading01" ))){<div class="col-12"><h2>@GetString( "Ecom:Product:Field.DescriptionExtraHeading01" )</h2></div>}if ( !string.IsNullOrEmpty( GetString( "Ecom:Product:Field.DescriptionExtra01" ))){<div class="col-12">@GetString( "Ecom:Product:Field.DescriptionExtra01" )</div>}if ( !string.IsNullOrEmpty( GetString("Ecom:Product:Field.Image") )){<div class="col-12 mb-2">@GetString( "Ecom:Product:Field.Image" )</div>}if ( !string.IsNullOrEmpty( GetString("Ecom:Product:Field.Video") )){<div class="col-12"><div class="embed-responsive embed-responsive-16by9 mt-2 mb-2"><iframe class="embed-responsive-item" src="@GetString( "Ecom:Product:Field.Video" )" width="1080" height="608" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div></div>}if ( !string.IsNullOrEmpty( GetString( "Ecom:Product:Field.DescriptionExtraHeading02" ))){<div class="col-12"><h2 class="eva">@GetString( "Ecom:Product:Field.DescriptionExtraHeading02" )</h2></div>}if ( !string.IsNullOrEmpty( GetString("Ecom:Product:Field.DescriptionExtra02") )){<div class="col-12">@GetString( "Ecom:Product:Field.DescriptionExtra02" )</div>}if ( !string.IsNullOrEmpty( GetString("Ecom:Product:Field.ImageExtra02") )){<div class="col-12 mb-2">@GetString( "Ecom:Product:Field.ImageExtra02" )</div>}if ( !string.IsNullOrEmpty( GetString("Ecom:Product:Field.VideoExtra02") )){<div class="col-12 mb-2"><div class="embed-responsive embed-responsive-16by9 mt-2 mb-2"><iframe class="embed-responsive-item" src="@GetString( "Ecom:Product:Field.VideoExtra02" )" width="1080" height="608" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div></div>}if ( !string.IsNullOrEmpty( GetString("Ecom:Product:Field.DescriptionExtraHeading03") )){<div class="col-12"><h2>@GetString( "Ecom:Product:Field.DescriptionExtraHeading03" )</h2></div>}if ( !string.IsNullOrEmpty( GetString("Ecom:Product:Field.DescriptionExtra03") )){<div class="col-12">@GetString( "Ecom:Product:Field.DescriptionExtra03" )</div>}if ( !string.IsNullOrEmpty( GetString("Ecom:Product:Field.ImageExtra03") )){<div class="col-12 mb-2">@GetString( "Ecom:Product:Field.ImageExtra03" )</div>}if ( !string.IsNullOrEmpty( GetString("Ecom:Product:Field.VideoExtra03") )){<div class="col-12 mb-2"><div class="embed-responsive embed-responsive-16by9 mt-2 mb-2"><iframe class="embed-responsive-item" src="@GetString( "Ecom:Product:Field.VideoExtra03" )" width="1080" height="608" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div></div>}if ( !string.IsNullOrEmpty( GetString("Ecom:Product:Field.DescriptionExtraHeading04") )){<div class="col-12"><h2>@GetString( "Ecom:Product:Field.DescriptionExtraHeading04" )</h2></div>}if ( !string.IsNullOrEmpty( GetString("Ecom:Product:Field.DescriptionExtra04") )){<div class="col-12">@GetString( "Ecom:Product:Field.DescriptionExtra04" )</div>}if ( !string.IsNullOrEmpty( GetString("Ecom:Product:Field.ImageExtra04") )){<div class="col-12 mb-2">@GetString( "Ecom:Product:Field.ImageExtra04" )</div>}if ( !string.IsNullOrEmpty( GetString("Ecom:Product:Field.VideoExtra04") )){<div class="col-12 mb-2"><div class="embed-responsive embed-responsive-16by9 mt-2 mb-2"><iframe class="embed-responsive-item" src="@GetString( "Ecom:Product:Field.VideoExtra04" )" width="1080" height="608" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div></div>}@sectionEnd() }@foreach ( LoopItem group in GetLoop( "ProductRelatedGroups" ) ) {@ProductRelatedProducts(heading: group.GetString( "Ecom:Product:RelatedGroup.Name" ),productLoop: group.GetLoop( "RelatedProducts" ),sectionClasses: "e-section p-section p-related-products") } @ProductRelatedProducts(heading: Translate( "eCom Product - Others bought these alternatives - Heading", "Others bought these alternatives" ),productLoop: GetLoop( "eCom:Related.WhatAboutTheseProducts" ),sectionClasses: "e-section p-section p-section-border-top")@ProductRelatedProducts(heading: Translate( "eCom Product - Customers who bought this also bought - Heading", "Customers who bought this also bought" ),productLoop: GetLoop( "eCom:Related.CustomersWhoBoughtThisItemAlsoBought" ),sectionClasses: "e-section p-section p-section-border-top")@ProductRelatedProducts(heading: Translate( "eCom Product - Recently viewed items - Heading", "Recently viewed items" ),productLoop: GetLoop( "eCom:Related.YouHaveSeenTheseProducts" ),sectionClasses: "e-section p-section p-section-border-top")@sectionStart( "e-section d-none" )<div class="e-product-text-container"><h2 class="m-0">@GetString( "Ecom:Product.Name" )</h2><p class="small">@Translate( "eCom Product - Product Number - Text", "Number" ) @GetString( "Ecom:Product.Number" )</p><div class="e-product-delivery mb-2">@Include( "inc/b2c/part-delivery-info-b2c.cshtml", "helpers.espresso" )</div><p class="e-product-price h4 mb-2">@Include( "inc/b2c/part-price-b2c.cshtml", "helpers.espresso" )</p>@Include( "inc/part-form.cshtml", "helpers.espresso" ) </div>@sectionEnd()<script type="application/ld+json"> {"@@context" : "http://schema.org","@@type" : "Product","description" : "@GetString("Ecom:Product.ShortDescription").StripHtml()","mpn" : "@GetString("Ecom:Product.Number").StripHtml()","name" : "@GetString("Ecom:Product.Name").StripHtml()","image" : "@( GetGlobalValue( "Global:Request.Scheme" ) + "://" + GetGlobalValue( "Global:Request.Host" ) + GetString("Ecom:Product.ImageLarge.Clean") )","offers" : {"@@type" : "Offer","availability" : @( GetInteger( "Ecom:Product.Stock" ) > 0 ? "\"http://schema.org/InStock\"" : "\"http://schema.org/OutOfStock\"" ),"price" : "","priceCurrency" : ""} } </script><code class="js-e-breadcrumb-item-append" data-text="@HttpUtility.HtmlAttributeEncode( GetString( "Ecom:Product.Name" ) )" data-link="@HttpUtility.HtmlAttributeEncode( ProductService.Instance.GetProductLink( GetString( "Ecom:Product.PrimaryOrFirstGroupID" ), GetString( "Ecom:Product.ID" ) ) )"></code></div>@sectionStart()
keyboard_arrow_up