Kostenlose Demo anfordern
Probieren Sie es selbst aus!
Besuchen Sie die DynamicWeb Demo Seite und erhalten Sie Backend und Frontend Zugang zur gesamten Plattform: CMS, E-Commerce, PIM und Marketing. Füllen Sie das Formular aus um direkt Zugang zu erhalten.
Möchten Sie die DynamicWeb Commerce Suite selbst erleben?
Probieren Sie unsere Online Demo aus. Ein fertig eingerichteter Shop, bereit von Ihnen entdeckt zu werden. Sehen Sie die Vorteile einer integrierten Lösung im Vergleich zu 3-4 verschiedenen Systemen selber.
Die Demo-Lösung bietet Ihnen Zugang zu einem fertig eingerichteten Webshop und ermöglicht Ihnen:
- Zugang zu allen Funktionen
- Content Management System Szenarien
- E-Commerce Szenarien
- Produktinformationsmanagement Szenarien
- Digitale Marketing Szenarien
Error executing template "Designs/Swift/Paragraph/Swift_Feature.cshtml" System.NullReferenceException: Object reference not set to an instance of an object. at CompiledRazorTemplates.Dynamic.RazorEngine_790f3fcd3fe54af1ae183acecbf2d4d4.<>c__DisplayClass0_0.<RenderIconAndImage>b__0(TextWriter __razor_helper_writer) in E:\Dynamicweb.net\Solutions\Dynamicweb\dw2022.cloud.dynamicweb-cms.com\Files\Templates\Designs\Swift\Paragraph\Swift_Feature.cshtml:line 108 at CompiledRazorTemplates.Dynamic.RazorEngine_790f3fcd3fe54af1ae183acecbf2d4d4.Execute() in E:\Dynamicweb.net\Solutions\Dynamicweb\dw2022.cloud.dynamicweb-cms.com\Files\Templates\Designs\Swift\Paragraph\Swift_Feature.cshtml:line 28 at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader) at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer) at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter) at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template) at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template) at Dynamicweb.Rendering.Template.RenderRazorTemplate()
1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> @using System.IO @{ string layout = Model.Item.GetRawValueString("Layout", "icon-top"); string contentPadding = Model.Item.GetRawValueString("ContentPadding", ""); contentPadding = contentPadding == "none" ? "" : contentPadding; contentPadding = contentPadding == "small" ? "p-3 p-md-3" : contentPadding; contentPadding = contentPadding == "large" ? "p-5 p-md-5" : contentPadding; string theme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("Theme")) ? " theme " + Model.Item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : ""; string target = Pageview.AreaSettings.GetBoolean("OpenLinksInNewTab") && Model.Item.GetString("Link").Contains("http") ? "target=\"_blank\"" : string.Empty; string rel = Pageview.AreaSettings.GetBoolean("OpenLinksInNewTab") && Model.Item.GetString("Link").Contains("http") ? "rel=\"noopener\"" : string.Empty; string alignment = (!string.IsNullOrEmpty(Model.Item.GetString("Title")) && !Model.Item.GetBoolean("HideTitle")) && !string.IsNullOrEmpty(Model.Item.GetString("Text")) ? "align-items-stretch" : "align-items-center"; } <div class="h-100 @(contentPadding)@(theme) item_@Model.Item.SystemName.ToLower()"> <a id="@Model.ID" class="user-select-none" style="scroll-margin-top:var(--header-height,150px)"></a> @switch (layout) { case "icon-top": if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) { @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> } <div class="d-flex flex-column gap-3 text-center mb-0-last-child"> @{@RenderIconAndImage(layout)} @if ( !string.IsNullOrEmpty(Model.Item.GetString("Title")) && !Model.Item.GetBoolean("HideTitle") || !string.IsNullOrEmpty(Model.Item.GetString("Text")) ) { <div class="mb-0-last-child"> @{ @RenderTitle() @RenderBody() } </div> } </div> if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) { @:</a> } break; case "icon-left": if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) { @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> } <div class="d-flex flex-row gap-3 h-100 text-start @alignment"> @{@RenderIconAndImage(layout)} @if ( !string.IsNullOrEmpty(Model.Item.GetString("Title")) && !Model.Item.GetBoolean("HideTitle") || !string.IsNullOrEmpty(Model.Item.GetString("Text")) ) { <div class="d-flex flex-column flex-grow-1"> @{ @RenderTitle() @RenderBody() } </div> } </div> if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) { @:</a> } break; case "icon-right": if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) { @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> } <div class="d-flex flex-row gap-3 h-100 text-end @alignment"> <div class="d-flex flex-column flex-grow-1"> @{ @RenderTitle() @RenderBody() } </div> @{@RenderIconAndImage(layout)} </div> if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) { @:</a> } break; } </div> @helper RenderIconAndImage(string layout) { string iconSize = Model.Item.GetRawValueString("IconSize", "2"); string imageSrc = !string.IsNullOrEmpty(Model.Item.GetString("Image")) ? Model.Item.GetFile("Image").Path : ""; string flexGrowClass = string.Empty; switch (layout) { case "icon-left": case "icon-right": flexGrowClass = "flex-grow-0"; break; } if (!string.IsNullOrEmpty(Model.Item.GetString("Image"))) { <div class="@flexGrowClass"> @{ @RenderIcon(imageSrc, iconSize) } </div> } else { string imagePath = Model.Item.GetRawValueString("Icon", ""); if (!imagePath.ToLower().Contains("none") && imagePath != "") { <div class="@flexGrowClass"> @{ @RenderIcon(imagePath, iconSize) } </div> } } } @helper RenderIcon(string imagePath, string iconSize) { if (Path.GetExtension(imagePath).ToLower() == ".svg") { string iconColor = Model.Item.GetString("iconColor", "text-inherit"); string iconOpacity = Model.Item.GetString("IconOpacity", "opacity-100"); <div class="icon-auto @iconColor @iconOpacity" style="height: @(iconSize)px; width: @(iconSize)px;"> @ReadFile(imagePath) </div> } else { imagePath = "/Admin/Public/GetImage.ashx?image=" + imagePath + "&height=" + iconSize + "&width=" + iconSize + "&Crop=0&Format=WebP&Quality=100"; string imgAltText = Model.Item.GetRawValueString("FeatureAltText", string.Empty); <img loading="lazy" src="@imagePath" alt="@imgAltText" title="@Model.Item.GetString("Title")" style="height: @(iconSize)px; width: @(iconSize)px;"> } } @helper RenderTitle() { if (!string.IsNullOrEmpty(Model.Item.GetString("Title")) && !Model.Item.GetBoolean("HideTitle")) { string titleFontSize = Model.Item.GetRawValueString("TitleFontSize", "h4"); string titleColor = Model.Item.GetString("TitleColor", "text-inherit"); string titleOpacity = Model.Item.GetString("TitleOpacity", "opacity-100"); string headingLevel = Model.Item.GetString("HeadingLevel", "h2"); string headingLevelStart = $"<{headingLevel} class=\"{titleFontSize} {titleColor} {titleOpacity} m-0\">"; string headingLevelStop = $"</{headingLevel}>"; @headingLevelStart @Model.Item.GetString("Title") @headingLevelStop } } @helper RenderBody() { if (!string.IsNullOrEmpty(Model.Item.GetString("Text"))) { string textColor = Model.Item.GetString("TextColor", "text-inherit"); string textOpacity = Model.Item.GetString("TextOpacity", "opacity-100"); <p class="@textColor @textOpacity m-0">@Model.Item.GetString("Text")</p> } }
B2C Webshop mit Kundenportal und PIM
Zusammen mit ihrem DynamicWeb-Partner Kumavision hat sich bellissa HAAS für die DynamicWeb E-Commerce Suite mit integriertem PIM entschieden, die alle ihre Erwartungen und Anforderungen erfüllt.
Die neue Website spiegelt bellissas Markenidentität perfekt wider. Zum einen ist es daher ihre Corporate Website, die inspirieren, informieren und erzählen kann; zum anderen ist es ein B2C Webshop. Dazu gehört auch ein Kundenportal, in dem Kunden ihre früheren Bestellungen einsehen können und eine Händlersuche, mit der die 5.000+ bellissa-Händler schnell und einfach gefunden werden können.
Der fertige WEH B2B Webshop erfüllt alle Erwartungen in Bezug auf Design und Funktionalitäten
Die Lösung, die WEH zusammen mit DynamicWeb gefunden hat, ist ein zweiphasiger Ansatz. In der ersten Phase hat DynamicWeb eine Turnkey B2B E-Commerce Plattform mit einem integrierten PIM-System implementiert, um WEH und seine Kunden so schnell wie möglich betriebsbereit zu machen. In einer zweiten Phase wird die Plattform dann mit einem von DynamicWeb's 3rd-Party-Konfigurator-Partnern integriert, um hochgradig konfigurierbare Produkte anzubieten.
Dieser Ansatz ermöglicht WEH und seinen Kunden einen Vorsprung, während an ihrem F&O und Konfigurator noch gearbeitet wird.