Talladega Air
Det kompakte, oppustelige Outwell Talladega Air bustelt er ideelt for par, små f...
- Parallelt monteret bustelt til optimal udnyttelse af pladsen på campingpladsen
- Removeable Access Zone til fleksibel orientering af busteltet i forhold til bilen
- PVC-fri DuraAir luftstænger
På lager
kr.
5.999,95
Vejl. pris : kr. 6.669,95
Daytona Air
Outwell Daytona Air drive-away telt har One-go oppustningssystemet for nem opsæt...
- One-go Inflation Technology letter opsætning og nedtagning
- To sider kan åbnes for maksimal fleksibilitet, udsyn og ventilation
- PVC-fri DuraAir luftstænger
På lager
kr.
5.249,95
Vejl. pris : kr. 5.829,95
Santa Monica Air
Det kompakte, oppustelige Outwell Santa Monica Air bustelt er ideelt til par, sm...
- Kompakt oppustelige bustelt
- Lodret front med overdækket indgang
- PVC-fri DuraAir luftstænger
På lager
kr.
4.499,95
Vejl. pris : kr. 4.999,95
California Highway
Få læ for vejret med det funktionelle, oppustelige Outwell California Highway Ai...
- Kompakt oppustelige bustelt
- Lodret front med overdækket indgang
- PVC-fri DuraAir luftstænger
På lager
kr.
5.999,95
Vejl. pris : kr. 6.669,95
Wolfburg 380 Air
Det helt rigtige valg til venner, par med brug for mere plads og familier med st...
- Parallelt monteret bustelt til optimal udnyttelse af pladsen på campingpladsen
- Removeable Access Zone til fleksibel orientering af busteltet i forhold til bilen
- PVC-fri DuraAir luftstænger
På lager
kr.
7.499,95
Vejl. pris : kr. 8.334,95
Wolfburg 450 Air
Det oppustelige Outwell Wolfburg 450 Air drive-away fortelt er designet til opti...
- Parallelt monteret bustelt til optimal udnyttelse af pladsen på campingpladsen
- Removeable Access Zone til fleksibel orientering af busteltet i forhold til bilen
- PVC-fri DuraAir luftstænger
På lager
kr.
8.999,95
Vejl. pris : kr. 9.999,95
Nu kan du nyde friheden ekstra meget, når du kører ud i det blå, med de fritstående, lukkede tilbygninger fra Outwell, som passer til campere, minivans og autocampere. De virker i princippet som et fritstående fortelt og sættes let fast på dit køretøj med bøjler, bardunliner eller magnetbånd. På den måde får du et overdækket, privat adgangsområde mellem dit køretøj og dit telt, men du kan køre væk, når du vil, uden at du behøver at pakke forteltet sammen.
Med vores brede udvalg af oppustelige telte og telte med stangrammer finder du let en løsning, der passer til dig, uanset om du er nybegynder udi campinglivet eller veteran. Materialer af høj kvalitet, fronter, der kan åbnes helt op, samt forbedrede fastgørelsespunkter gør teltene mere praktiske, rummelige og behagelige, uanset hvordan vejret er. Med de valgfri indertelte kan du hurtigt tilføje sovekabiner.
Parkville 200SA
Med nem montering på begge sider af din campervan tilbyder det hurtigt opslåelig...
- Drive Away Ready giver dig mulighed for at køre en tur og derefter gentilslutte dig teltet igen, uden brug af Connect Sets
- Awning Sealing System beskytter mod vind og vejr mellem bilens karosseri og teltet
På lager
kr.
8.249,95
Vejl. pris : kr. 9.169,95
Tall Connection Parkville 200SA
Kom og gå med dette praktiske anneks, der giver en vejrbestandig gangsti mellem ...
- Drive Away Ready giver mulighed for at køre en tur og derefter gentilslutte teltet til bilen uden brug af Connect Sets
- Awning Sealing System beskytter mod vind og vejr mellem bilen og teltets access zone
- Valgfri tilslutning til Parkville 200 med større biler som Ducato, Sprinter, Crafter eller lignende
På lager
kr.
1.499,95
Vejl. pris : kr. 1.669,95
Crossville 250SA
Det kompakte, parallelt monterede Outwell Crossville 250SA bustelt, der tilbyder...
- Drive Away Ready giver dig mulighed for at køre en tur og derefter gentilslutte dig teltet igen, uden brug af Connect Sets
- Awning Sealing System beskytter mod vind og vejr mellem bilens karosseri og teltet
På lager
kr.
8.999,95
Vejl. pris : kr. 9.999,95
Tall Connection Crossville 250SA
Hold vejr og vind ude mellem din Crossville 250SA drive-away og bil. Den ideelle...
- Drive Away Ready giver mulighed for at køre en tur og derefter gentilslutte teltet til bilen uden brug af Connect Sets
- Awning Sealing System beskytter mod vind og vejr mellem bilen og teltets access zone
- Valgfri tilslutning til Parkville 200 med større biler som Ducato, Sprinter, Crafter eller lignende
På lager
kr.
1.499,95
Vejl. pris : kr. 1.669,95
Jonesville 290SA Flex
Det fleksible oppustelige bustelt Outwell Jonesville 290SA Flex monteres paralle...
- Drive Away Ready giver dig mulighed for at køre en tur og derefter gentilslutte dig teltet igen, uden brug af Connect Sets
- Awning Sealing System beskytter mod vind og vejr mellem bilens karosseri og teltet
På lager
kr.
10.899,95
Vejl. pris : kr. 12.109,95
Jonesville 440SA Flex
Det oppustelige Outwell Jonesville 440SA Flex bustelt monteres parallelt med beg...
- Drive Away Ready giver dig mulighed for at køre en tur og derefter gentilslutte dig teltet igen, uden brug af Connect Sets
- Awning Sealing System beskytter mod vind og vejr mellem bilens karosseri og teltet
På lager
kr.
12.749,95
Vejl. pris : kr. 14.169,95
Exception in template (Designs/Outwell/Paragraph/FeaturedProductsRibbonItem.cshtml): System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.ffcecbdafbd.Execute()
at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context) in c:\Users\abbottm\Documents\GitHub\RazorEngine\src\Core\RazorEngine.Core\Templating\TemplateBase.cs:line 126
at RazorEngine.Templating.TemplateService.Run(ITemplate template, DynamicViewBag viewBag) in c:\Users\abbottm\Documents\GitHub\RazorEngine\src\Core\RazorEngine.Core\Templating\TemplateService.cs:line 608
at RazorEngine.Templating.TemplateService.Parse(String razorTemplate, Object model, DynamicViewBag viewBag, String cacheName) in c:\Users\abbottm\Documents\GitHub\RazorEngine\src\Core\RazorEngine.Core\Templating\TemplateService.cs:line 439
at RazorEngine.Razor.Parse[T](String razorTemplate, T model, DynamicViewBag viewBag, String cacheName) in c:\Users\abbottm\Documents\GitHub\RazorEngine\src\Core\RazorEngine.Core\Razor.cs:line 290
at Dynamicweb.Rendering.Template.RenderRazorTemplate()
@using Dynamicweb.Extensibility;
@using Dynamicweb.Frontend;
@using Dynamicweb.Rendering;
@using Dynamicweb.Analytics;
@using Dynamicweb.Ecommerce.Common;
@using Dynamicweb.Ecommerce.Orders;
@using OaseOutdoors.Components.Shared.Paragraphs.FeaturedProductsRibbon.ModelBuilders
@using OaseOutdoors.Services.EcomUrlService.Initialization
@using OaseOutdoors.Services.ImageService.Enums
@using OaseOutdoors.Services.StaticResourceService.Initialization
@inherits ViewModelTemplate<ParagraphViewModel>
@{
var viewModelService = new FeaturedProductsRibbonViewModelBuilder();
var staticResourceService = ServiceLocator.Current.GetStaticResourceService();
var viewModel = viewModelService.GetViewModel(Model);
var urlService = ServiceLocator.Current.GetEcomUrlService();
var area = PageView.Current().Area;
var contextCart = Context.Cart;
var relewiseCss = "";
if (viewModel.RelewiseIsActive)
{
relewiseCss = "is-relewise";
}
}
<section id="featuredProducts" class="featured-products container-ribbon ribbon @relewiseCss" data-module="featured-products">
<div class="container">
@if (!string.IsNullOrEmpty(viewModel.Headline))
{
<h2 class="header1">@viewModel.Headline</h2>
}
<div class="featured-products__container">
@if (viewModel.RelewiseIsActive)
{
<div class="loading"><img src="/static/dist/img/loading.gif" /></div>
}
@foreach (var product in viewModel.ProductListRelewise)
{
var productUrl = urlService.GetUrl(product.GroupId, product.Id);
<article itemscope itemtype="https://schema.org/Product" class="product-item">
<a itemprop="url" href="@productUrl">
<div class="product-item__header">
@if (!string.IsNullOrEmpty(product.OutletcampingSplash))
{
var statustext = product.OutletcampingSplash;
<div class="product-item__labelstatusRibbon">
@if (statustext.Length > 8)
{
<div class="product-item__labelstatus-2Ribbon">
<span>@statustext</span>
</div>
}
@if (statustext.Length >= 6 && statustext.Length <= 8)
{
<div class="product-item__labelstatus-3Ribbon">
<span>@statustext</span>
</div>
}
@if (statustext.Length >= 4 && statustext.Length <= 6)
{
<div class="product-item__labelstatus-4Ribbon">
<span>@statustext</span>
</div>
}
@if (statustext.Length < 4)
{
<div class="product-item__labelstatus-5Ribbon">
<span>@statustext</span>
</div>
}
</div>
}
<figure>
<img src="@product.MainImage.SetWidth(500).SetHeight(300).SetCrop(CropType.KeepAspectRatio).SetCompression(50).GetCrop()" itemprop="image" content="@product.MainImage" alt="">
</figure>
@if (!string.IsNullOrEmpty(product.CollectionLogo))
{
var collogo = product.CollectionLogo;
collogo = collogo.ToString().Replace(".jpg", ".png");
<div class="product-item__collection">
<figure class="lazy" data-src-sm="@collogo" data-alt="Outwell @product.Name">
<noscript><img src="@collogo" itemprop="image" content="@collogo" alt="Outwell @product.Name"></noscript>
</figure>
</div>
}
@if (!string.IsNullOrEmpty(product.LabelText) && !string.IsNullOrEmpty(product.LabelColor))
{
<div class="product-item__labelRibbon">
<p>@product.LabelText</p>
</div>
}
</div>
<div class="product-item__body">
<div class="product-item__headline">
@if (!string.IsNullOrEmpty(product.Name))
{
<h3 class="header3" itemprop="name">@product.Name</h3>
}
</div>
<div class="product-item__information" itemprop="description">
@{
var ProductDescription = "";
if (!string.IsNullOrEmpty(product.LongDescription))
{
ProductDescription = product.LongDescription;
}
if (!string.IsNullOrWhiteSpace(ProductDescription) && ProductDescription.Length > 80)
{
ProductDescription = ProductDescription.Substring(0, 80) + "...";
}
}
@ProductDescription
</div>
<div class="product-item__bulletpoints">
<ul>
@if (!string.IsNullOrWhiteSpace(product.Bullet1))
{
<li>@product.Bullet1</li>
}
@if (!string.IsNullOrWhiteSpace(product.Feature1))
{
<li>@product.Feature1</li>
}
@if (!string.IsNullOrWhiteSpace(product.Feature2))
{
<li>@product.Feature2</li>
}
@if (!string.IsNullOrWhiteSpace(product.Feature3))
{
<li>@product.Feature3</li>
}
</ul>
</div>
@{
var productIsPreorder = false;
var availableAgain = product.AvailableAgain;
availableAgain = string.IsNullOrWhiteSpace(availableAgain) ? "1900-01-01" : availableAgain;
DateTime availableAgainDateOut;
if (DateTime.TryParse(Convert.ToDateTime(availableAgain).ToString(), out availableAgainDateOut))
{
availableAgain = Convert.ToDateTime(availableAgain).ToString("dd/MM/yy");
string minDate = Convert.ToDateTime("1900-01-01").ToString("dd/MM/yy");
productIsPreorder = availableAgain.Equals(minDate) ? false : true;
}
}
@if (product.Stock > 0 && !productIsPreorder)
{
<div class="product__availability product__availability--instock">
@Translate("InStock", "In stock")
</div>
}
else if (productIsPreorder)
{
<div class="product__availability product__availability--instock">
@Translate("Preorder", "Preorder")
</div>
}
else
{
<div class="product__availability">
@Translate("SoldOut", "Sold out")
</div>
}
<div class="product-item__RRPPrice">
@if (!string.IsNullOrEmpty(product.Price))
{
<span itemprop="priceCurrency" content="@product.CurrencySymbol">
@product.CurrencySymbol
</span>
<span itemprop="price" content="@product.UnformatedPrice">
@product.Price
</span>
if (@product.Price != @product.BeforePrice)
{
<p><span>@Translate("RRP", "RRP") : @product.CurrencySymbol @product.BeforePrice</span></p>
}
}
else
{
@Translate("SeeMore", "See more")
}
</div>
@{
var productId = product.Id;
var productName = product.Name;
var productNumber = product.ProductNumber;
var productCurrency = product.Currency;
var productUnformatedPrice = product.UnformatedPrice;
var productVariant = "";
var productVariants = product.ProductFieldValues;
foreach (var FieldValue in productVariants)
{
if (FieldValue.ProductField.SystemName == "VariantNumbers")
{
productVariant = FieldValue.Value.ToString();
}
}
var productStock = product.Stock;
var productCartCmd = "CartCmd" + productId;
var productKey = "Key" + productId;
var productOrderContext = "OrderContext" + productId;
var productRedirect = "Redirect" + productId;
OrderLine productOrderLine = null;
if (contextCart != null)
{
foreach (var orderline in contextCart.OrderLines)
{
if (orderline.ProductId == productId)
{
productOrderLine = orderline;
}
}
}
var productCartContext = "";
object cartContextObj = null;
if (area.Item.TryGetValue("CartContext", ref cartContextObj))
{
string cartContext = cartContextObj.ToString();
if (!string.IsNullOrWhiteSpace(cartContext))
{
productCartContext = cartContext;
}
}
if (productStock > 0 && string.IsNullOrEmpty(productVariant))
{
<div class="product-item__quickbuy">
<div class="product__button">
<form method="get" data-id="@productId" data-number="@productNumber" data-name="@productName.Replace("\"", "\'")" data-quantity="1" data-price="@productUnformatedPrice" data-currency="@productCurrency" data-brand="@product.BrandName" data-url="@productUrl">
<input type="hidden" name="CartCmd" id="@productCartCmd" value="@(productOrderLine != null && string.IsNullOrEmpty(productVariant) ? "incorderline" : "add")" />
<input type="hidden" name="Key" id="@productKey" value="@(productOrderLine != null ? productOrderLine.Id : "")" @(productOrderLine != null && string.IsNullOrEmpty(productVariant) ? "" : "disabled") />
<input type="hidden" name="OrderContext" id="@productOrderContext" value="@productCartContext" />
<input type="hidden" name="Redirect" id="@productRedirect" value="/WebServices/MiniCart.ashx?productId=@productId&areaId=@area.ID" disabled />
<input class="form-control" autocomplete="off" type="text" name="name" placeholder="Your name here">
<input class="form-control" autocomplete="off" type="text" name="phone" placeholder="Your phone here">
<input class="form-control" autocomplete="off" type="text" name="email" placeholder="Your email here">
<button type="submit" class="btn btn--big @(!string.IsNullOrEmpty(productVariant) ? "btn--disabled" : "")" @(productStock > 0 ? "" : "disabled") data-added-msg="@(Translate("AddedToCart", "Added to cart"))">
<span class="btn__icon">
<img src="/static/dist/img/outwell/quickbuy-icon.png" alt="" />
</span>
</button>
</form>
</div>
</div>
}
}
</div>
</a>
<div class="product-item__favorite" data-module="cookiefavorite">
<svg class="heart" viewBox="-2 -2 35 35" data-product="@product.ProductNumber">
<path class="heartfill" style="fill: #ffffff; stroke: #646464; stroke-width: 2px;" d="M23.6,0c-3.4,0-6.3,2.7-7.6,5.6C14.7,2.7,11.8,0,8.4,0C3.8,0,0,3.8,0,8.4c0,9.4,9.5,11.9,16,21.2 c6.1-9.3,16-12.1,16-21.2C32,3.8,28.2,0,23.6,0z" />
</svg>
</div>
</article>
}
@foreach (var product in viewModel.ProductList)
{
var productUrl = urlService.GetUrl(product.GroupId, product.Id);
<article itemscope itemtype="https://schema.org/Product" class="product-item">
<a itemprop="url" href="@productUrl">
<div class="product-item__header">
@if (!string.IsNullOrEmpty(product.OutletcampingSplash))
{
var statustext = product.OutletcampingSplash;
<div class="product-item__labelstatusRibbon">
@if (statustext.Length > 8)
{
<div class="product-item__labelstatus-2Ribbon">
<span>@statustext</span>
</div>
}
@if (statustext.Length >= 6 && statustext.Length <= 8)
{
<div class="product-item__labelstatus-3Ribbon">
<span>@statustext</span>
</div>
}
@if (statustext.Length >= 4 && statustext.Length <= 6)
{
<div class="product-item__labelstatus-4Ribbon">
<span>@statustext</span>
</div>
}
@if (statustext.Length < 4)
{
<div class="product-item__labelstatus-5Ribbon">
<span>@statustext</span>
</div>
}
</div>
}
@{
var imgSrc = product.MainImage.SetWidth(500).SetHeight(300).SetCrop(CropType.KeepAspectRatio).SetCompression(50).GetCrop();
var imgClass = "";
if (Pageview.Device == 0 && product.Image062.ToString() != "")
{
var imgHoverSrc = product.Image062.SetWidth(500).SetHeight(300).SetCrop(CropType.KeepAspectRatio).SetCompression(50).GetCrop();
imgClass = "orig";
<figure class="lazy hover" data-src-sm="@imgHoverSrc" data-alt="Outwell">
<noscript><img src="@imgHoverSrc" itemprop="image" content="@imgHoverSrc" alt="Outwell"></noscript>
</figure>
}
}
<figure class="lazy @imgClass" data-src-sm="@imgSrc" data-alt="Outwell">
<noscript><img src="@imgSrc" itemprop="image" content="@imgSrc" alt="Outwell"></noscript>
</figure>
@if (!string.IsNullOrEmpty(product.CollectionLogo))
{
var collogo = product.CollectionLogo;
collogo = collogo.ToString().Replace(".jpg", ".png");
<div class="product-item__collection">
<figure class="lazy" data-src-sm="@collogo" data-alt="Outwell @product.Name">
<noscript><img src="@collogo" itemprop="image" content="@collogo" alt="Outwell @product.Name" )"></noscript>
</figure>
</div>
}
@if (!string.IsNullOrEmpty(product.LabelText) && !string.IsNullOrEmpty(product.LabelColor))
{
<div class="product-item__labelRibbon">
<p>@product.LabelText</p>
</div>
}
</div>
<div class="product-item__body">
<div class="product-item__headline">
@if (!string.IsNullOrEmpty(product.Name))
{
<h3 class="header3" itemprop="name">@product.Name</h3>
}
</div>
<div class="product-item__information" itemprop="description">
@{
var ProductDescription = "";
if (!string.IsNullOrEmpty(product.LongDescription))
{
ProductDescription = product.LongDescription;
}
if (!string.IsNullOrWhiteSpace(ProductDescription) && ProductDescription.Length > 80)
{
ProductDescription = ProductDescription.Substring(0, 80) + "...";
}
}
@ProductDescription
</div>
<div class="product-item__bulletpoints">
<ul>
@if (!string.IsNullOrWhiteSpace(product.Bullet1))
{
<li>@product.Bullet1</li>
}
@if (!string.IsNullOrWhiteSpace(product.Feature1))
{
<li>@product.Feature1</li>
}
@if (!string.IsNullOrWhiteSpace(product.Feature2))
{
<li>@product.Feature2</li>
}
@if (!string.IsNullOrWhiteSpace(product.Feature3))
{
<li>@product.Feature3</li>
}
</ul>
</div>
@{
var productIsPreorder = false;
var availableAgain = product.AvailableAgain;
availableAgain = string.IsNullOrWhiteSpace(availableAgain) ? "1900-01-01" : availableAgain;
DateTime availableAgainDateOut;
if (DateTime.TryParse(Convert.ToDateTime(availableAgain).ToString(), out availableAgainDateOut))
{
availableAgain = Convert.ToDateTime(availableAgain).ToString("dd/MM/yy");
string minDate = Convert.ToDateTime("1900-01-01").ToString("dd/MM/yy");
productIsPreorder = availableAgain.Equals(minDate) ? false : true;
}
}
@if (product.Stock > 0 && !productIsPreorder)
{
<div class="product__availability product__availability--instock">
@Translate("InStock", "In stock")
</div>
}
else if (productIsPreorder)
{
<div class="product__availability product__availability--instock">
@Translate("Preorder", "Preorder")
</div>
}
else
{
<div class="product__availability">
@Translate("SoldOut", "Sold out")
</div>
}
<div class="product-item__RRPPrice">
@if (!string.IsNullOrEmpty(product.Price))
{
<span itemprop="priceCurrency" content="@product.CurrencySymbol">
@product.CurrencySymbol
</span>
<span itemprop="price" content="@product.UnformatedPrice">
@product.Price
</span>
if (@product.Price != @product.BeforePrice)
{
<p><span>@Translate("RRP", "RRP") : @product.CurrencySymbol @product.BeforePrice</span></p>
}
}
else
{
@Translate("SeeMore", "See more")
}
</div>
@{
var productId = product.Id;
var productName = product.Name;
var productNumber = product.ProductNumber;
var productCurrency = product.Currency;
var productUnformatedPrice = product.UnformatedPrice;
var productVariant = "";
var productVariants = product.ProductFieldValues;
foreach (var FieldValue in productVariants)
{
if (FieldValue.ProductField.SystemName == "VariantNumbers")
{
productVariant = FieldValue.Value.ToString();
}
}
var productStock = product.Stock;
var productCartCmd = "CartCmd" + productId;
var productKey = "Key" + productId;
var productOrderContext = "OrderContext" + productId;
var productRedirect = "Redirect" + productId;
OrderLine productOrderLine = null;
if (contextCart != null)
{
foreach (var orderline in contextCart.OrderLines)
{
if (orderline.ProductId == productId)
{
productOrderLine = orderline;
}
}
}
var productCartContext = "";
object cartContextObj = null;
if (area.Item.TryGetValue("CartContext", ref cartContextObj))
{
string cartContext = cartContextObj.ToString();
if (!string.IsNullOrWhiteSpace(cartContext))
{
productCartContext = cartContext;
}
}
if (productStock > 0 && string.IsNullOrEmpty(productVariant))
{
<div class="product-item__quickbuy">
<div class="product__button">
<form method="get" data-id="@productId" data-number="@productNumber" data-name="@productName.Replace("\"", "\'")" data-quantity="1" data-price="@productUnformatedPrice" data-currency="@productCurrency" data-brand="@product.BrandName" data-url="@productUrl">
<input type="hidden" name="CartCmd" id="@productCartCmd" value="@(productOrderLine != null && string.IsNullOrEmpty(productVariant) ? "incorderline" : "add")" />
<input type="hidden" name="Key" id="@productKey" value="@(productOrderLine != null ? productOrderLine.Id : "")" @(productOrderLine != null && string.IsNullOrEmpty(productVariant) ? "" : "disabled") />
<input type="hidden" name="OrderContext" id="@productOrderContext" value="@productCartContext" />
<input type="hidden" name="Redirect" id="@productRedirect" value="/WebServices/MiniCart.ashx?productId=@productId&areaId=@area.ID" disabled />
<input class="form-control" autocomplete="off" type="text" name="name" placeholder="Your name here">
<input class="form-control" autocomplete="off" type="text" name="phone" placeholder="Your phone here">
<input class="form-control" autocomplete="off" type="text" name="email" placeholder="Your email here">
<button type="submit" class="btn btn--big @(!string.IsNullOrEmpty(productVariant) ? "btn--disabled" : "")" @(productStock > 0 ? "" : "disabled") data-added-msg="@(Translate("AddedToCart", "Added to cart"))">
<span class="btn__icon">
<img src="/static/dist/img/outwell/quickbuy-icon.png" alt="" />
</span>
</button>
</form>
</div>
</div>
}
}
</div>
</a>
<div class="product-item__favorite" data-module="cookiefavorite">
<svg class="heart" viewBox="-2 -2 35 35" data-product="@product.ProductNumber">
<path class="heartfill" style="fill: #ffffff; stroke: #646464; stroke-width: 2px;" d="M23.6,0c-3.4,0-6.3,2.7-7.6,5.6C14.7,2.7,11.8,0,8.4,0C3.8,0,0,3.8,0,8.4c0,9.4,9.5,11.9,16,21.2 c6.1-9.3,16-12.1,16-21.2C32,3.8,28.2,0,23.6,0z" />
</svg>
</div>
</article>
}
@foreach (var product in viewModel.ProductListRaptor)
{
var productUrl = urlService.GetUrl(product.GroupId, product.Id);
<article itemscope itemtype="https://schema.org/Product" class="product-item">
<a itemprop="url" href="@productUrl" data-raptorrecommendation="productId:@product.ProductNumber">
<div class="product-item__header">
@if (!string.IsNullOrEmpty(product.OutletcampingSplash))
{
var statustext = product.OutletcampingSplash;
<div class="product-item__labelstatusRibbon">
@if (statustext.Length > 8)
{
<div class="product-item__labelstatus-2Ribbon">
<span>@statustext</span>
</div>
}
@if (statustext.Length >= 6 && statustext.Length <= 8)
{
<div class="product-item__labelstatus-3Ribbon">
<span>@statustext</span>
</div>
}
@if (statustext.Length >= 4 && statustext.Length <= 6)
{
<div class="product-item__labelstatus-4Ribbon">
<span>@statustext</span>
</div>
}
@if (statustext.Length < 4)
{
<div class="product-item__labelstatus-5Ribbon">
<span>@statustext</span>
</div>
}
</div>
}
<figure>
<img src="@product.MainImage.SetWidth(500).SetHeight(300).SetCrop(CropType.KeepAspectRatio).SetCompression(50).GetCrop()" itemprop="image" content="@product.MainImage" alt="">
</figure>
@if (!string.IsNullOrEmpty(product.CollectionLogo))
{
var collogo = product.CollectionLogo;
collogo = collogo.ToString().Replace(".jpg", ".png");
<div class="product-item__collection">
<figure class="lazy" data-src-sm="@collogo" data-alt="Outwell @product.Name">
<noscript><img src="@collogo" itemprop="image" content="@collogo" alt="Outwell @product.Name" )"></noscript>
</figure>
</div>
}
@if (!string.IsNullOrEmpty(product.LabelText) && !string.IsNullOrEmpty(product.LabelColor))
{
<div class="product-item__labelRibbon">
<p>@product.LabelText</p>
</div>
}
</div>
<div class="product-item__body">
<div class="product-item__headline">
@if (!string.IsNullOrEmpty(product.Name))
{
<h3 class="header3" itemprop="name">@product.Name</h3>
}
</div>
<div class="product-item__information" itemprop="description">
@{
var ProductDescription = "";
if (!string.IsNullOrEmpty(product.LongDescription))
{
ProductDescription = product.LongDescription;
}
if (!string.IsNullOrWhiteSpace(ProductDescription) && ProductDescription.Length > 80)
{
ProductDescription = ProductDescription.Substring(0, 80) + "...";
}
}
@ProductDescription
</div>
<div class="product-item__bulletpoints">
<ul>
@if (!string.IsNullOrWhiteSpace(product.Bullet1))
{
<li>@product.Bullet1</li>
}
@if (!string.IsNullOrWhiteSpace(product.Bullet2))
{
<li>@product.Bullet2</li>
}
@if (!string.IsNullOrWhiteSpace(product.Bullet3))
{
<li>@product.Bullet3</li>
}
@if (!string.IsNullOrWhiteSpace(product.PackSize))
{
<li>@Translate("Pack size", "Pack size"): @product.PackSize</li>
}
@if (!string.IsNullOrWhiteSpace(product.Weightsale))
{
<li>@Translate("Weight", "Weight"): @product.Weightsale</li>
}
</ul>
</div>
@{
var productIsPreorder = false;
var availableAgain = product.AvailableAgain;
availableAgain = string.IsNullOrWhiteSpace(availableAgain) ? "1900-01-01" : availableAgain;
DateTime availableAgainDateOut;
if (DateTime.TryParse(Convert.ToDateTime(availableAgain).ToString(), out availableAgainDateOut))
{
availableAgain = Convert.ToDateTime(availableAgain).ToString("dd/MM/yy");
string minDate = Convert.ToDateTime("1900-01-01").ToString("dd/MM/yy");
productIsPreorder = availableAgain.Equals(minDate) ? false : true;
}
}
@if (product.Stock > 0 && !productIsPreorder)
{
<div class="product__availability product__availability--instock">
@Translate("InStock", "In stock")
</div>
}
else if (productIsPreorder)
{
<div class="product__availability product__availability--instock">
@Translate("Preorder", "Preorder")
</div>
}
else
{
<div class="product__availability">
@Translate("SoldOut", "Sold out")
</div>
}
<div class="product-item__RRPPrice" itemprop="offers" itemscope itemtype="https://schema.org/Offer">
@if (!string.IsNullOrEmpty(product.Price))
{
<span itemprop="priceCurrency" content="@product.CurrencySymbol">
@product.CurrencySymbol
</span>
<span itemprop="price" content="@product.UnformatedPrice">
@product.Price
</span>
if (@product.Price != @product.BeforePrice)
{
<p><span>@Translate("RRP", "RRP") : @product.CurrencySymbol @product.BeforePrice</span></p>
}
}
else
{
@Translate("SeeMore", "See more")
}
</div>
@{
var productId = product.Id;
var productName = product.Name;
var productNumber = product.ProductNumber;
var productCurrency = product.Currency;
var productUnformatedPrice = product.UnformatedPrice;
var productVariant = "";
var productVariants = product.ProductFieldValues;
foreach (var FieldValue in productVariants)
{
if (FieldValue.ProductField.SystemName == "VariantNumbers")
{
productVariant = FieldValue.Value.ToString();
}
}
var productStock = product.Stock;
var productCartCmd = "CartCmd" + productId;
var productKey = "Key" + productId;
var productOrderContext = "OrderContext" + productId;
var productRedirect = "Redirect" + productId;
OrderLine productOrderLine = null;
if (contextCart != null)
{
foreach (var orderline in contextCart.OrderLines)
{
if (orderline.ProductId == productId)
{
productOrderLine = orderline;
}
}
}
var productCartContext = "";
object cartContextObj = null;
if (area.Item.TryGetValue("CartContext", ref cartContextObj))
{
string cartContext = cartContextObj.ToString();
if (!string.IsNullOrWhiteSpace(cartContext))
{
productCartContext = cartContext;
}
}
if (productStock > 0 && string.IsNullOrEmpty(productVariant))
{
<div class="product-item__quickbuy">
<div class="product__button">
<form method="get" data-id="@productId" data-number="@productNumber" data-name="@productName.Replace("\"", "\'")" data-quantity="1" data-price="@productUnformatedPrice" data-currency="@productCurrency" data-brand="@product.BrandName" data-url="@productUrl">
<input type="hidden" name="CartCmd" id="@productCartCmd" value="@(productOrderLine != null && string.IsNullOrEmpty(productVariant) ? "incorderline" : "add")" />
<input type="hidden" name="Key" id="@productKey" value="@(productOrderLine != null ? productOrderLine.Id : "")" @(productOrderLine != null && string.IsNullOrEmpty(productVariant) ? "" : "disabled") />
<input type="hidden" name="OrderContext" id="@productOrderContext" value="@productCartContext" />
<input type="hidden" name="Redirect" id="@productRedirect" value="/WebServices/MiniCart.ashx?productId=@productId&areaId=@area.ID" disabled />
<input class="form-control" autocomplete="off" type="text" name="name" placeholder="Your name here">
<input class="form-control" autocomplete="off" type="text" name="phone" placeholder="Your phone here">
<input class="form-control" autocomplete="off" type="text" name="email" placeholder="Your email here">
<button type="submit" class="btn btn--big @(!string.IsNullOrEmpty(productVariant) ? "btn--disabled" : "")" @(productStock > 0 ? "" : "disabled") data-added-msg="@(Translate("AddedToCart", "Added to cart"))">
<span class="btn__icon">
<img src="/static/dist/img/outwell/quickbuy-icon.png" alt="" />
</span>
</button>
</form>
</div>
</div>
}
}
</div>
</a>
<div class="product-item__favorite" data-module="cookiefavorite">
<svg class="heart" viewBox="-2 -2 35 35" data-product="@product.ProductNumber">
<path class="heartfill" style="fill: #ffffff; stroke: #646464; stroke-width: 2px;" d="M23.6,0c-3.4,0-6.3,2.7-7.6,5.6C14.7,2.7,11.8,0,8.4,0C3.8,0,0,3.8,0,8.4c0,9.4,9.5,11.9,16,21.2 c6.1-9.3,16-12.1,16-21.2C32,3.8,28.2,0,23.6,0z" />
</svg>
</div>
</article>
}
</div>
</div>
@*relewise tag for tracking*@
@if (viewModel.RelewiseIsActive)
{
<div class="relewise-recommendations-ribbon" data-relewise-service="@viewModel.RelewiseRecommendationService" data-relewise-number="@viewModel.RelewiseNumberOfItems" data-relewise-price="@viewModel.RelewiseMinPrice" data-relewise-user="@VisitorCookie.Current.VisitorID" data-relewise-language="@Pageview.Area.Culture" data-relewise-currency="@Pageview.Area.EcomCurrencyId" data-relewise-area="@Pageview.Area.ID" data-relewise-type="" data-relewise-dataid="@Pageview.Area.Item["RelewiseDataId"]" data-relewise-apikey="@Pageview.Area.Item["RelewiseApiKey"]" data-relewise-serverurl="@Pageview.Area.Item["RelewiseServerUrl"]"></div>
}
</section>
Tall Connection Jonesville 290/440SA
Hold vejr og vind ude mellem din Jonesville drive-away og bil. Den ideelle størr...
- Drive Away Ready giver mulighed for at køre en tur og derefter gentilslutte teltet til bilen uden brug af Connect Sets
- Awning Sealing System beskytter mod vind og vejr mellem bilen og teltets access zone
- Valgfri tilslutning til Jonesville med større biler som Ducato, Sprinter, Crafter eller lignende
På lager
kr.
1.499,95
Vejl. pris : kr. 1.669,95
San Diego
Outwell San Diego drive-away fortelt er perfekt til campister, der søger enkelhe...
- Dobbeltlynlåse i fordøren med myggenet bagpå sikrer god ventilation uden irriterende insekter
- Rummeligt opholdsrum med store, tonede vinduer, der giver et godt lysindfald og med fikspunktgardiner, der beskytter privatlivet
- HookTrack System til alsidig ophængning af lamper og andre genstande på op til 1,5 kg
Forudbestil her
kr.
2.999,95
Vejl. pris : kr. 3.332,95
Pine Hills
Outwell Pine Hills drive-away forteltet er designet til hurtig og problemfri ops...
- Lodret frontvæg med overdækket indgang
- Dobbeltlynlåse i fordøren med myggenet bagpå sikrer god ventilation uden irriterende insekter
- Rummeligt opholdsrum med store, tonede vinduer, der giver et godt lysindfald og med fikspunktgardiner, der beskytter privatlivet
Forudbestil her
kr.
2.999,95
Vejl. pris : kr. 3.332,95
Fresno
Outwell Fresno busteltet er ideelt til campister, der sætter pris på enkelhed og...
- Lodret frontvæg med overdækket indgang
- Dobbeltlynlåse i fordøren med myggenet bagpå sikrer god ventilation uden irriterende insekter
- Rummeligt opholdsrum med store, tonede vinduer, der giver et godt lysindfald og med fikspunktgardiner, der beskytter privatlivet
Forudbestil her
kr.
3.379,95
Vejl. pris : kr. 3.754,95
Sandcrest S
Par, familier og venner vil sætte pris på den ekstra plads, som det geniale Outw...
- Designet til bagklappen på Peugeot Rifter, Citroën Berlingo, VW Caddy og lignende biler
- Indvendig netvæg så man kan sove i bilen med bagsmækken åben, beskyttet mod insekter
På lager
kr.
2.999,95
Vejl. pris : kr. 3.334,95
Sandcrest L
Par, familier og venner vil sætte pris på den ekstra plads, som det geniale Outw...
- Designet til bagklappen på VW T5/T6/T6.1 (Multivan, Caravelle, Transporter, California), MB W639/W447 (V-Class, Vito, Marco Polo) og lignende biler
- Indvendig netvæg så man kan sove i bilen med bagsmækken åben, beskyttet mod insekter
På lager
kr.
3.379,95
Vejl. pris : kr. 3.754,95
Dunecrest S
Outwell Dunecrest bustelt, der kan fastgøres på bagsmækken, er velegnet til par ...
- Et Caring Choice-produkt. Vi reducerer vores miljøpåvirkning trin for trin
- Designet til Peugeot Rifter, Citroën Berlingo, VW Caddy og lignende biler
- Kompatibel med dobbeltdøre
På lager
kr.
4.499,95
Vejl. pris : kr. 4.999,95
Dunecrest L
Forlæng bagenden af din bil med dette rummelige Caring Choice telt. Dunecrest L ...
- Et Caring Choice-produkt. Vi reducerer vores miljøpåvirkning trin for trin
- Designet til VW T5/T6/T6.1 (Multivan, Caravelle, Transporter, California), MB W639/W447 (V-Class, Vito, Marco Polo) og lignende biler
- Kompatibel med dobbeltdøre
På lager
kr.
4.649,95
Vejl. pris : kr. 5.169,95
Seacrest
Seacrest-teltet gør campinglivet mere komfortabelt og rummeligt. Designet til ne...
- Et Caring Choice-produkt. Vi reducerer vores miljøpåvirkning trin for trin
- Let, lille pakkestørrelse
På lager
kr.
5.249,95
Vejl. pris : kr. 5.829,95
Backroads Awning Room
Outwell Backroads Awning Room er en praktisk og fleksibel måde at udvide din cam...
- Monteres på markisen
- Designet til VW T5/T6/T6.1 (Multivan, Caravelle, Transporter, California), MB W639/W447 (V-Class, Vito, Marco Polo) og lignende biler
- Letvægts med lille pakkestørrelse, passer perfekt i bagklappen på en California
Forudbestil her
kr.
3.749,95
Vejl. pris : kr. 4.169,95
Hillcrest Tarp
Alle, der elsker friluftslivet, kan hurtigt og nemt få værdifuldt privatliv og l...
- Et Caring Choice-produkt. Vi reducerer vores miljøpåvirkning trin for trin
- Monteres på markisen eller direkte på bilen
- 2 stk. stænger medfølger
På lager
kr.
979,95
Vejl. pris : kr. 1.089,95
Fallcrest Tarp Sidepanelsæt
Par, vennegrupper og familier kan alle få et fleksibelt privatliv og beskyttelse...
- Et Caring Choice-produkt. Vi reducerer vores miljøpåvirkning trin for trin
- Monteres på markise
- Kan rulles helt eller delvist op
Forudbestil her
kr.
1.199,95
Vejl. pris : kr. 1.334,95
Forecrest Canopy
Skab ly overalt med Forecrest Canopy. Solsejlet er velegnet til dagture og er ne...
- Et Caring Choice-produkt. Vi reducerer vores miljøpåvirkning trin for trin
- Egnet til biler som SUV, MPV og stationcars
- Sugekopper gør en hurtig montering nem
På lager
kr.
1.699,95
Vejl. pris : kr. 1.899,95
Touring Shelter Air
- Universalt solsejl til autocampere, vans og campingvogne
- Skaber et dejlig skyggefuldt rum på siden af køretøjet
- Sider, der kan rulles op vha. fikspunkter
Forudbestil her
kr.
3.239,95
Vejl. pris : kr. 3.599,95
Touring Canopy
Outwell Touring Canopy har god ståhøjde og er designet til at passe på autocampe...
- Universalt solsejl til autocampere, vans og campingvogne
- Skaber et dejlig skyggefuldt rum på siden af køretøjet
- Solide stålstænger maksimerer ståhøjden
På lager
kr.
2.249,95
Vejl. pris : kr. 2.499,95
Touring Shelter
Du vil elske den fleksible beskyttelse, Outwell Touring Shelter giver dig mod el...
- Universalt solsejl til autocampere, vans og campingvogne
- Skaber et dejlig skyggefuldt rum på siden af køretøjet
- Sider, der kan rulles op vha. fikspunkter
Forudbestil her
kr.
2.599,95
Vejl. pris : kr. 2.889,95
Indertelt Daytona / Pine Hills / Milestone / Bremburg
Du kan hurtigt og nemt tilføje en sovekabine til din fritstående, lukkede Outwel...
- Mørke vægge og loft mindsker lysindtrængningen og bidrager til en god nattesøvn
- Opbevaringslommer
- Kabelgennemføring giver nem adgang til strøm til elektroniske enheder
På lager
kr.
899,95
Vejl. pris : kr. 999,95
Vis flere