Manual Throttle Valve
Manual Throttle Valve

Manual Throttle Valve

0153

Diameter

Ø80

Nama Varian

Manual Throttle Valve, Ø80

Harga Varian

Rp0,00

Ø100

Nama Varian

Manual Throttle Valve, Ø100

Harga Varian

Rp0,00

Ø120

Nama Varian

Manual Throttle Valve, Ø120

Harga Varian

Rp0,00

Ø125

Nama Varian

Manual Throttle Valve, Ø125

Harga Varian

Rp0,00

Ø140

Nama Varian

Manual Throttle Valve, Ø140

Harga Varian

Rp0,00

Ø150

Nama Varian

Manual Throttle Valve, Ø150

Harga Varian

Rp0,00

Ø160

Nama Varian

Manual Throttle Valve, Ø160

Harga Varian

Rp0,00

Ø180

Nama Varian

Manual Throttle Valve, Ø180

Harga Varian

Rp0,00

Ø200

Nama Varian

Manual Throttle Valve, Ø200

Harga Varian

Rp0,00

Ø225

Nama Varian

Manual Throttle Valve, Ø225

Harga Varian

Rp0,00

Ø250

Nama Varian

Manual Throttle Valve, Ø250

Harga Varian

Rp0,00

Ø275

Nama Varian

Manual Throttle Valve, Ø275

Harga Varian

Rp0,00

Ø300

Nama Varian

Manual Throttle Valve, Ø300

Harga Varian

Rp0,00

Ø315

Nama Varian

Manual Throttle Valve, Ø315

Harga Varian

Rp0,00

Ø350

Nama Varian

Manual Throttle Valve, Ø350

Harga Varian

Rp0,00

Ø400

Nama Varian

Manual Throttle Valve, Ø400

Harga Varian

Rp0,00

Ø450

Nama Varian

Manual Throttle Valve, Ø450

Harga Varian

Rp0,00

Ø500

Nama Varian

Manual Throttle Valve, Ø500

Harga Varian

Rp0,00

0.4mm Flexible Hose
0.4mm Flexible Hose

0.4mm Flexible Hose

0901

Diameter

Ø63

Nama Varian

0.4mm Flexible Hose, Ø63

Harga Varian

Rp0,00

Ø80

Nama Varian

0.4mm Flexible Hose, Ø80

Harga Varian

Rp0,00

Ø100

Nama Varian

0.4mm Flexible Hose, Ø100

Harga Varian

Rp0,00

Ø125

Nama Varian

0.4mm Flexible Hose, Ø125

Harga Varian

Rp0,00

Ø140

Nama Varian

0.4mm Flexible Hose, Ø140

Harga Varian

Rp0,00

Ø150

Nama Varian

0.4mm Flexible Hose, Ø150

Harga Varian

Rp0,00

0.6mm Flexible Hose
0.6mm Flexible Hose

0.6mm Flexible Hose

0902

Diameter

Ø150

Nama Varian

0.6mm Flexible Hose, Ø150

Harga Varian

Rp0,00

Ø160

Nama Varian

0.6mm Flexible Hose, Ø160

Harga Varian

Rp0,00

Ø180

Nama Varian

0.6mm Flexible Hose, Ø180

Harga Varian

Rp0,00

Ø200

Nama Varian

0.6mm Flexible Hose, Ø200

Harga Varian

Rp0,00

Ø225

Nama Varian

0.6mm Flexible Hose, Ø225

Harga Varian

Rp0,00

Ø250

Nama Varian

0.6mm Flexible Hose, Ø250

Harga Varian

Rp0,00

CNC Flexible Hose
CNC Flexible Hose

CNC Flexible Hose

0903

Diameter

Ø200

Nama Varian

CNC Flexible Hose, Ø200

Harga Varian

Rp0,00

Ø250

Nama Varian

CNC Flexible Hose, Ø250

Harga Varian

Rp0,00

Ø300

Nama Varian

CNC Flexible Hose, Ø300

Harga Varian

Rp0,00

Hose Clip
Hose Clip

Hose Clip

0904

Diameter

Ø80

Nama Varian

Hose Clip, Ø80

Harga Varian

Rp0,00

Ø100

Nama Varian

Hose Clip, Ø100

Harga Varian

Rp0,00

Ø120

Nama Varian

Hose Clip, Ø120

Harga Varian

Rp0,00

Ø125

Nama Varian

Hose Clip, Ø125

Harga Varian

Rp0,00

Ø140

Nama Varian

Hose Clip, Ø140

Harga Varian

Rp0,00

Ø150

Nama Varian

Hose Clip, Ø150

Harga Varian

Rp0,00

Ø160

Nama Varian

Hose Clip, Ø160

Harga Varian

Rp0,00

Ø180

Nama Varian

Hose Clip, Ø180

Harga Varian

Rp0,00

Ø200

Nama Varian

Hose Clip, Ø200

Harga Varian

Rp0,00

Ø225

Nama Varian

Hose Clip, Ø225

Harga Varian

Rp0,00

Ø250

Nama Varian

Hose Clip, Ø250

Harga Varian

Rp0,00

Ø275

Nama Varian

Hose Clip, Ø275

Harga Varian

Rp0,00

Ø300

Nama Varian

Hose Clip, Ø300

Harga Varian

Rp0,00

Ø315

Nama Varian

Hose Clip, Ø315

Harga Varian

Rp0,00

Ø350

Nama Varian

Hose Clip, Ø350

Harga Varian

Rp0,00

Ø400

Nama Varian

Hose Clip, Ø400

Harga Varian

Rp0,00

SAFE-ISO
SAFE-ISO

SAFE-ISO

1001

Diameter

Ø160

Nama Varian

SAFE-ISO, Ø160

Harga Varian

Rp0,00

Ø180

Nama Varian

SAFE-ISO, Ø180

Harga Varian

Rp0,00

Ø200

Nama Varian

SAFE-ISO, Ø200

Harga Varian

Rp0,00

Ø250

Nama Varian

SAFE-ISO, Ø250

Harga Varian

Rp0,00

Ø300

Nama Varian

SAFE-ISO, Ø300

Harga Varian

Rp0,00

Ø350

Nama Varian

SAFE-ISO, Ø350

Harga Varian

Rp0,00

Ø400

Nama Varian

SAFE-ISO, Ø400

Harga Varian

Rp0,00

Ø450

Nama Varian

SAFE-ISO, Ø450

Harga Varian

Rp0,00

Ø500

Nama Varian

SAFE-ISO, Ø500

Harga Varian

Rp0,00

Ø550

Nama Varian

SAFE-ISO, Ø550

Harga Varian

Rp0,00

Ø600

Nama Varian

SAFE-ISO, Ø600

Harga Varian

Rp0,00

Ø650

Nama Varian

SAFE-ISO, Ø650

Harga Varian

Rp0,00

Ø700

Nama Varian

SAFE-ISO, Ø700

Harga Varian

Rp0,00

Ø750

Nama Varian

SAFE-ISO, Ø750

Harga Varian

Rp0,00

Ø800

Nama Varian

SAFE-ISO, Ø800

Harga Varian

Rp0,00

Pipe Silencer with Baffle
Pipe Silencer with Baffle

Pipe Silencer with Baffle

0120-B

Diameter

Ø225

Nama Varian

Pipe Silencer with Baffle, Ø225

Harga Varian

Rp0,00

Ø250

Nama Varian

Pipe Silencer with Baffle, Ø250

Harga Varian

Rp0,00

Ø275

Nama Varian

Pipe Silencer with Baffle, Ø275

Harga Varian

Rp0,00

Ø300

Nama Varian

Pipe Silencer with Baffle, Ø300

Harga Varian

Rp0,00

Ø315

Nama Varian

Pipe Silencer with Baffle, Ø315

Harga Varian

Rp0,00

Ø350

Nama Varian

Pipe Silencer with Baffle, Ø350

Harga Varian

Rp0,00

Ø400

Nama Varian

Pipe Silencer with Baffle, Ø400

Harga Varian

Rp0,00

Ø450

Nama Varian

Pipe Silencer with Baffle, Ø450

Harga Varian

Rp0,00

Ø500

Nama Varian

Pipe Silencer with Baffle, Ø500

Harga Varian

Rp0,00

Ø550

Nama Varian

Pipe Silencer with Baffle, Ø550

Harga Varian

Rp0,00

Ø600

Nama Varian

Pipe Silencer with Baffle, Ø600

Harga Varian

Rp0,00

Ø630

Nama Varian

Pipe Silencer with Baffle, Ø630

Harga Varian

Rp0,00

Ø650

Nama Varian

Pipe Silencer with Baffle, Ø650

Harga Varian

Rp0,00

Ø700

Nama Varian

Pipe Silencer with Baffle, Ø700

Harga Varian

Rp0,00

Ø750

Nama Varian

Pipe Silencer with Baffle, Ø750

Harga Varian

Rp0,00

Ø800

Nama Varian

Pipe Silencer with Baffle, Ø800

Harga Varian

Rp0,00

Ø850

Nama Varian

Pipe Silencer with Baffle, Ø850

Harga Varian

Rp0,00

Ø900

Nama Varian

Pipe Silencer with Baffle, Ø900

Harga Varian

Rp0,00

Ø950

Nama Varian

Pipe Silencer with Baffle, Ø950

Harga Varian

Rp0,00

Ø1000

Nama Varian

Pipe Silencer with Baffle, Ø1000

Harga Varian

Rp0,00

EPDM Quicklock
EPDM Quicklock

EPDM Quicklock

0104-E

Diameter

Ø80

Nama Varian

EPDM Quicklock, Ø80

Harga Varian

Rp0,00

Ø100

Nama Varian

EPDM Quicklock, Ø100

Harga Varian

Rp0,00

Ø120

Nama Varian

EPDM Quicklock, Ø120

Harga Varian

Rp0,00

Ø125

Nama Varian

EPDM Quicklock, Ø125

Harga Varian

Rp0,00

Ø140

Nama Varian

EPDM Quicklock, Ø140

Harga Varian

Rp0,00

Ø150

Nama Varian

EPDM Quicklock, Ø150

Harga Varian

Rp0,00

Ø160

Nama Varian

EPDM Quicklock, Ø160

Harga Varian

Rp0,00

Ø180

Nama Varian

EPDM Quicklock, Ø180

Harga Varian

Rp0,00

Ø200

Nama Varian

EPDM Quicklock, Ø200

Harga Varian

Rp0,00

Ø225

Nama Varian

EPDM Quicklock, Ø225

Harga Varian

Rp0,00

Ø250

Nama Varian

EPDM Quicklock, Ø250

Harga Varian

Rp0,00

Ø275

Nama Varian

EPDM Quicklock, Ø275

Harga Varian

Rp0,00

Ø300

Nama Varian

EPDM Quicklock, Ø300

Harga Varian

Rp0,00

Ø315

Nama Varian

EPDM Quicklock, Ø315

Harga Varian

Rp0,00

Ø350

Nama Varian

EPDM Quicklock, Ø350

Harga Varian

Rp0,00

Ø400

Nama Varian

EPDM Quicklock, Ø400

Harga Varian

Rp0,00

Transition with Flanges
Transition with Flanges

Transition with Flanges

0142-F
Pipe Silencer with Baffle and Flanges
Pipe Silencer with Baffle and Flanges

Pipe Silencer with Baffle and Flanges

0120-B-F

Diameter

Ø225

Nama Varian

Pipe Silencer with Baffle and Flanges, Ø225

Harga Varian

Rp0,00

Ø250

Nama Varian

Pipe Silencer with Baffle and Flanges, Ø250

Harga Varian

Rp0,00

Ø275

Nama Varian

Pipe Silencer with Baffle and Flanges, Ø275

Harga Varian

Rp0,00

Ø300

Nama Varian

Pipe Silencer with Baffle and Flanges, Ø300

Harga Varian

Rp0,00

Ø315

Nama Varian

Pipe Silencer with Baffle and Flanges, Ø315

Harga Varian

Rp0,00

Ø350

Nama Varian

Pipe Silencer with Baffle and Flanges, Ø350

Harga Varian

Rp0,00

Ø400

Nama Varian

Pipe Silencer with Baffle and Flanges, Ø400

Harga Varian

Rp0,00

Ø450

Nama Varian

Pipe Silencer with Baffle and Flanges, Ø450

Harga Varian

Rp0,00

Ø500

Nama Varian

Pipe Silencer with Baffle and Flanges, Ø500

Harga Varian

Rp0,00

Ø550

Nama Varian

Pipe Silencer with Baffle and Flanges, Ø550

Harga Varian

Rp0,00

Ø600

Nama Varian

Pipe Silencer with Baffle and Flanges, Ø600

Harga Varian

Rp0,00

Ø630

Nama Varian

Pipe Silencer with Baffle and Flanges, Ø630

Harga Varian

Rp0,00

Ø650

Nama Varian

Pipe Silencer with Baffle and Flanges, Ø650

Harga Varian

Rp0,00

Ø700

Nama Varian

Pipe Silencer with Baffle and Flanges, Ø700

Harga Varian

Rp0,00

Ø750

Nama Varian

Pipe Silencer with Baffle and Flanges, Ø750

Harga Varian

Rp0,00

Ø800

Nama Varian

Pipe Silencer with Baffle and Flanges, Ø800

Harga Varian

Rp0,00

Ø850

Nama Varian

Pipe Silencer with Baffle and Flanges, Ø850

Harga Varian

Rp0,00

Ø900

Nama Varian

Pipe Silencer with Baffle and Flanges, Ø900

Harga Varian

Rp0,00

Ø950

Nama Varian

Pipe Silencer with Baffle and Flanges, Ø950

Harga Varian

Rp0,00

Ø1000

Nama Varian

Pipe Silencer with Baffle and Flanges, Ø1000

Harga Varian

Rp0,00

Pipe Silencer with Flanges
Pipe Silencer with Flanges

Pipe Silencer with Flanges

0120-F

Diameter

Ø225

Nama Varian

Pipe Silencer with Flanges, Ø225

Harga Varian

Rp0,00

Ø250

Nama Varian

Pipe Silencer with Flanges, Ø250

Harga Varian

Rp0,00

Ø275

Nama Varian

Pipe Silencer with Flanges, Ø275

Harga Varian

Rp0,00

Ø300

Nama Varian

Pipe Silencer with Flanges, Ø300

Harga Varian

Rp0,00

Ø315

Nama Varian

Pipe Silencer with Flanges, Ø315

Harga Varian

Rp0,00

Ø350

Nama Varian

Pipe Silencer with Flanges, Ø350

Harga Varian

Rp0,00

Ø400

Nama Varian

Pipe Silencer with Flanges, Ø400

Harga Varian

Rp0,00

Ø450

Nama Varian

Pipe Silencer with Flanges, Ø450

Harga Varian

Rp0,00

Ø500

Nama Varian

Pipe Silencer with Flanges, Ø500

Harga Varian

Rp0,00

Ø550

Nama Varian

Pipe Silencer with Flanges, Ø550

Harga Varian

Rp0,00

Ø600

Nama Varian

Pipe Silencer with Flanges, Ø600

Harga Varian

Rp0,00

Ø630

Nama Varian

Pipe Silencer with Flanges, Ø630

Harga Varian

Rp0,00

Ø650

Nama Varian

Pipe Silencer with Flanges, Ø650

Harga Varian

Rp0,00

Ø700

Nama Varian

Pipe Silencer with Flanges, Ø700

Harga Varian

Rp0,00

Ø750

Nama Varian

Pipe Silencer with Flanges, Ø750

Harga Varian

Rp0,00

Ø800

Nama Varian

Pipe Silencer with Flanges, Ø800

Harga Varian

Rp0,00

Ø850

Nama Varian

Pipe Silencer with Flanges, Ø850

Harga Varian

Rp0,00

Ø900

Nama Varian

Pipe Silencer with Flanges, Ø900

Harga Varian

Rp0,00

Ø950

Nama Varian

Pipe Silencer with Flanges, Ø950

Harga Varian

Rp0,00

Ø1000

Nama Varian

Pipe Silencer with Flanges, Ø1000

Harga Varian

Rp0,00

90° Segmented Bend with Flanges

90° Segmented Bend with Flanges

0126-F
Error executing template "Designs/Swift/Paragraph/Swift_ProductStaticVariants.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_b0b39d30fd374ab894c0cb8ac10db3cf.ExecuteAsync()
   at RazorEngine.Templating.TemplateBase.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineCore.RunTemplate(ICompiledTemplate template, TextWriter writer, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.DynamicWrapperService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass23_0.<Run>b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag)
   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> 2 @using Dynamicweb.Ecommerce.ProductCatalog 3 @using Dynamicweb.Ecommerce.Variants 4 @using Dynamicweb.Frontend 5 @using System.IO 6 7 @{ 8 ProductViewModel product = null; 9 if (Dynamicweb.Context.Current.Items.Contains("ProductDetails")) 10 { 11 product = (ProductViewModel)Dynamicweb.Context.Current.Items["ProductDetails"]; 12 } 13 else if (Pageview.Page.Item["DummyProduct"] != null && Pageview.IsVisualEditorMode) 14 { 15 var pageViewModel = Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(Pageview.Page); 16 ProductListViewModel productList = pageViewModel.Item.GetValue("DummyProduct") != null ? pageViewModel.Item.GetValue("DummyProduct") as ProductListViewModel : new ProductListViewModel(); 17 18 if (productList?.Products is object) 19 { 20 product = productList.Products[0]; 21 } 22 } 23 } 24 25 @if (product is object) 26 { 27 string horizontalAlign = Model.Item.GetRawValueString("HorizontalAlignment", ""); 28 horizontalAlign = horizontalAlign == "center" ? "align-items-center text-center" : horizontalAlign; 29 horizontalAlign = horizontalAlign == "end" ? "align-items-end text-end" : horizontalAlign; 30 31 bool hideGroupHeaders = Model.Item.GetBoolean("HideGroupHeaders"); 32 string variantsLayout = Model.Item.GetRawValueString("Layout", "images"); 33 34 bool isLazyLoadingForProductInfoEnabled = Dynamicweb.Core.Converter.ToBoolean(Dynamicweb.Context.Current.Items["IsLazyLoadingForProductInfoEnabled"]); 35 36 string anonymousUsersLimitations = Pageview.AreaSettings.GetRawValueString("AnonymousUsers", ""); 37 bool anonymousUser = Pageview.User == null; 38 bool hidePrice = anonymousUsersLimitations.Contains("price") && anonymousUser || Pageview.AreaSettings.GetBoolean("ErpDownHidePrices") && !Dynamicweb.Core.Converter.ToBoolean(Dynamicweb.Context.Current.Items["IsWebServiceConnectionAvailable"]); 39 40 var selectedGroups = Model.Item.GetList("Groups")?.GetRawValue().OfType<string>(); 41 int showMaxVariants = Model.Item.GetInt32("MaxVariantsToRender") != 0 ? Model.Item.GetInt32("MaxVariantsToRender") : 1; 42 43 if (product.VariantGroups().Count != 0) 44 { 45 <div class="d-flex flex-column @horizontalAlign item_@Model.Item.SystemName.ToLower()"> 46 @foreach (var variantGroup in product.VariantGroups()) 47 { 48 int variantsCount = 0; 49 string groupId = variantGroup.Id; 50 var displayType = variantGroup.DisplayType; 51 52 <div> 53 @foreach (var selectedGroupId in selectedGroups) 54 { 55 if (!hideGroupHeaders && groupId == selectedGroupId) 56 { 57 <h3 class="h6 m-0">@variantGroup.Name</h3> 58 } 59 } 60 <div class="d-flex gap-2 mb-2"> 61 @foreach (var variant in variantGroup.Options) 62 { 63 foreach (var selectedGroupId in selectedGroups) 64 { 65 if (groupId == selectedGroupId) 66 { 67 var optionsCount = variantGroup.Options.Count(); 68 69 if (variantsCount < showMaxVariants) 70 { 71 <article title="@product.Name @variant.Name @variant.Id" class="d-flex" style="z-index: 1"> 72 @{ 73 string defaultProductImage = Dynamicweb.Context.Current.Server.UrlEncode(product.DefaultImage.Value); 74 string variantImage = Dynamicweb.Context.Current.Server.UrlEncode(variant.Image.Value); 75 string defaultPrice = !hidePrice ? product.Price.PriceFormatted : "0"; 76 string variantPrice = !hidePrice ? product.Price.PriceFormatted : "0"; 77 displayType = displayType == VariantGroupDisplayType.NothingSelected && !string.IsNullOrEmpty(variant.Color) ? VariantGroupDisplayType.VariantColor : displayType; 78 displayType = displayType == VariantGroupDisplayType.NothingSelected && string.IsNullOrEmpty(variant.OptionImage.Value) && string.IsNullOrEmpty(variant.Color) ? VariantGroupDisplayType.VariantName : displayType; 79 displayType = displayType == VariantGroupDisplayType.NothingSelected && !string.IsNullOrEmpty(variant.OptionImage.Value) ? VariantGroupDisplayType.VariantOptionImage : displayType; 80 81 82 if (variantsLayout == "images") 83 { 84 switch (displayType) 85 { 86 case VariantGroupDisplayType.VariantImage: 87 if (isLazyLoadingForProductInfoEnabled) 88 { 89 <figure class="w-100 d-block m-0" data-price-formatted="" 90 onmouseover="swift.StaticVariants.SwitchProduct(event, '@product.Id', this.getAttribute('data-price-formatted'), '@variantImage'); event.stopPropagation();" 91 onmouseout="swift.StaticVariants.SwitchProduct(event, '@product.Id', this.getAttribute('data-price-formatted'), '@defaultProductImage')" 92 style="z-index: 1"> 93 <div class="d-flex align-items-center justify-content-center"> 94 <img src="/admin/public/GetImage.ashx?image=@variantImage&width=75&height=75&crop=5&FillCanvas=true&format=webp" height="75" width="75" class="p-1 text-small w-100 h-100" loading="lazy" decoding="async" alt="@product.Name, @variant.Name" style="z-index: 1"> 95 </div> 96 </figure> 97 } 98 else 99 { 100 <figure class="w-100 d-block m-0" 101 onmouseover="swift.StaticVariants.SwitchProduct(event, '@product.Id', '@defaultPrice', '@variantImage')" 102 onmouseout="swift.StaticVariants.SwitchProduct(event, '@product.Id', '@variantPrice', '@defaultProductImage')" 103 style="z-index: 1"> 104 <div class="d-flex align-items-center justify-content-center"> 105 <img src="/admin/public/GetImage.ashx?image=@variantImage&width=75&height=75&crop=5&FillCanvas=true&format=webp" height="75" width="75" class="p-1 text-small w-100 h-100" loading="lazy" decoding="async" alt="@product.Name, @variant.Name"> 106 </div> 107 </figure> 108 } 109 break; 110 case VariantGroupDisplayType.VariantColor: 111 if (!string.IsNullOrEmpty(variant.Color)) 112 { 113 <span class="colorbox border" style="background-color: @variant.Color"></span> 114 } 115 else if (!string.IsNullOrEmpty(variant.OptionImage.Value) && string.IsNullOrEmpty(variant.Color)) 116 { 117 <img src="/Admin/Public/GetImage.ashx?image=@(variant.OptionImage.Value)&width=40&format=webp" class="border" style="width: 42px; height: 42px;"> 118 } 119 else 120 { 121 <div class="d-flex align-items-center justify-content-center"> 122 @variant.Name 123 </div> 124 } 125 break; 126 case VariantGroupDisplayType.VariantName: 127 <div class="d-flex align-items-center justify-content-center"> 128 @variant.Name 129 </div> 130 break; 131 case VariantGroupDisplayType.VariantOptionImage: 132 if (!string.IsNullOrEmpty(variant.OptionImage.Value)) 133 { 134 <img src="/Admin/Public/GetImage.ashx?image=@(variant.OptionImage.Value)&width=42&format=webp" style="width: 42px; height: 42px;"> 135 } 136 else 137 { 138 <span class="colorbox border" style="background-color:@variant.Color;"></span> 139 } 140 break; 141 case VariantGroupDisplayType.NothingSelected: 142 <span class="colorbox border" style="background-color: @variant.Color"></span> 143 break; 144 default: 145 <div class="d-flex align-items-center justify-content-center"> 146 @variant.Name 147 </div> 148 break; 149 } 150 151 } 152 else if (variantsLayout == "swatches") 153 { 154 if (!string.IsNullOrEmpty(variant.Color)) 155 { 156 <span class="colorbox colorbox-sm rounded-circle border me-1" style="background-color: @variant.Color" 157 onmouseover="swift.StaticVariants.SwitchProduct(event, '@product.Id', '@defaultPrice', '@variantImage')" 158 onmouseout="swift.StaticVariants.SwitchProduct(event, '@product.Id', '@variantPrice', '@defaultProductImage')"> 159 </span> 160 } 161 else if (!string.IsNullOrEmpty(variant.OptionImage.Value) && string.IsNullOrEmpty(variant.Color)) 162 { 163 <span class="ratio ratio-1x1 colorbox-sm rounded-circle border me-1 overflow-hidden" 164 onmouseover="swift.StaticVariants.SwitchProduct(event, '@product.Id', '@defaultPrice', '@variantImage')" 165 onmouseout="swift.StaticVariants.SwitchProduct(event, '@product.Id', '@variantPrice', '@defaultProductImage')"> 166 <img src="/Admin/Public/GetImage.ashx?image=@(variant.OptionImage.Value)&width=42&format=webp"> 167 </span> 168 } 169 else 170 { 171 <div class="d-flex align-items-center justify-content-center"> 172 @variant.Name 173 </div> 174 } 175 } 176 177 <div class="visually-hidden"> 178 <h4>@Translate("Variant Name")</h4> 179 <p>@product.Name, @variant.Name</p> 180 @if (!hidePrice) 181 { 182 <h4>@Translate("Variant Price")</h4> 183 if (isLazyLoadingForProductInfoEnabled) 184 { 185 <p><span class="text-price js-text-price"></span></p> 186 } 187 else 188 { 189 <p><span class="text-price">@product.Price.PriceFormatted</span></p> 190 } 191 } 192 </div> 193 } 194 </article> 195 196 variantsCount++; 197 198 if (variantsCount == showMaxVariants && optionsCount != showMaxVariants) 199 { 200 int left = optionsCount - showMaxVariants; 201 <div class="variant-option ms-1 d-flex justify-content-center align-items-center"> 202 <span>+@left</span> 203 </div> 204 } 205 } 206 207 } 208 } 209 } 210 211 @if (variantsCount == 0 && Pageview.IsVisualEditorMode) 212 { 213 <div class="alert alert-dark m-0">@Translate("No variants available")</div> 214 } 215 </div> 216 </div> 217 } 218 </div> 219 } 220 } 221 else if (Pageview.IsVisualEditorMode) 222 { 223 <div class="alert alert-dark m-0">@Translate("No products available")</div> 224 } 225
48 dari 63 produk
Muat lebih banyak produk