ALPECIN

(0)

Alpecin Tuning Shampoo

29572
PIECE
د.ل.‏ 130,000 OutOfStock
Error compiling template "/Designs/Swift/Paragraph/Custom_MultiBuyDiscounts.cshtml"
Line 43: 'CurrencyService.CurrencyService()' is obsolete: 'This is no longer suitable for manual construction. Please either use constructor injection or Dynamicweb.Ecommerce.Services.Currencies.'

1 // <auto-generated/> 2 #pragma warning disable 1591 3 namespace CompiledRazorTemplates.Dynamic 4 { 5 #line hidden 6 using System.Threading.Tasks; 7 using System; 8 using System.Collections.Generic; 9 using System.Linq; 10 using Dynamicweb.Ecommerce.ProductCatalog; 11 using Dynamicweb.Ecommerce.International; 12 using CustomServices.Services; 13 using CustomServices.Models; 14 using Newtonsoft.Json; 15 internal class RazorEngine_c971cd2305c94738980272a586a5dc4e : Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 16 { 17 #pragma warning disable 1998 18 public async override global::System.Threading.Tasks.Task ExecuteAsync() 19 { 20 21 ProductViewModel product = null; 22 if (Dynamicweb.Context.Current.Items.Contains("ProductDetails")) 23 { 24 product = (ProductViewModel)Dynamicweb.Context.Current.Items["ProductDetails"]; 25 } 26 else if (Pageview.Page.Item["DummyProduct"] != null && Pageview.IsVisualEditorMode) 27 { 28 var pageViewModel = Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(Pageview.Page); 29 ProductListViewModel productList = pageViewModel.Item.GetValue("DummyProduct") != null ? pageViewModel.Item.GetValue("DummyProduct") as ProductListViewModel : new ProductListViewModel(); 30 31 if (productList?.Products is object) 32 { 33 product = productList.Products[0]; 34 } 35 } 36 int discountNumber = Model.Item.GetInt32("Discount_Count"); ; 37 WriteLiteral("\r\n"); 38 if (product is object) 39 { 40 DiscountService discountService = new DiscountService(); 41 string res = JsonConvert.SerializeObject(discountService.ReturnDiscountsMultiBuy(product.Id, product.VariantId, discountNumber, product, Dynamicweb.Ecommerce.Common.Context.Cart, product.Discontinued, product.NeverOutOfstock)); 42 List<DiscountView> results = JsonConvert.DeserializeObject<List<DiscountView>>(res); 43 CurrencyService currencyService = new CurrencyService(); 44 Currency currency = currencyService.GetCurrency(product.Price.CurrencyCode); 45 string currencySymbol = currency.Symbol; 46 if (results.Count > 0) 47 { 48 WriteLiteral("\t\t<div>\r\n\t\t\t<div class=\"cus-discount-title\">"); 49 Write(Translate("Discounts:")); 50 WriteLiteral(" </div>\r\n\t\t\t<div class=\"cus-discounts-buttons\">\r\n"); 51 foreach (var result in results) 52 { 53 WriteLiteral("\t\t\t\t\t<div>\r\n"); 54 if (result.percentage > 0) 55 { 56 WriteLiteral("\t\t\t\t\t\t\t<div>"); 57 Write(Translate("Buy")); 58 WriteLiteral(" "); 59 Write(result.disQuantity); 60 WriteLiteral(" "); 61 Write(Translate("get")); 62 WriteLiteral(" "); 63 Write(result.percentage); 64 WriteLiteral(" % "); 65 Write(Translate("off")); 66 WriteLiteral("</div>\r\n"); 67 } 68 if (result.amount > 0) 69 { 70 WriteLiteral("\t\t\t\t\t\t\t<div>"); 71 Write(Translate("Buy")); 72 WriteLiteral(" "); 73 Write(result.disQuantity); 74 WriteLiteral(" "); 75 Write(Translate("get")); 76 WriteLiteral(" "); 77 Write(result.amount); 78 WriteLiteral(" "); 79 Write(currencySymbol); 80 WriteLiteral(" "); 81 Write(Translate("off")); 82 WriteLiteral("</div>\r\n"); 83 } 84 WriteLiteral("\t\t\t\t\t</div>\r\n"); 85 } 86 WriteLiteral("\t\t\t</div>\r\n\t\t</div>\r\n"); 87 } 88 } 89 else if (Pageview.IsVisualEditorMode) 90 { 91 WriteLiteral("\t<div class=\"alert alert-warning\">"); 92 Write(Translate("No products available")); 93 WriteLiteral("</div>\r\n"); 94 } 95 } 96 #pragma warning restore 1998 97 } 98 } 99 #pragma warning restore 1591 100

1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 2 @using Dynamicweb.Ecommerce.ProductCatalog 3 @using Dynamicweb.Ecommerce.International 4 @using CustomServices.Services 5 @using CustomServices.Models 6 @using Newtonsoft.Json 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 int discountNumber = Model.Item.GetInt32("Discount_Count"); ; 24 } 25 26 @if (product is object) 27 { 28 DiscountService discountService = new DiscountService(); 29 string res = JsonConvert.SerializeObject(discountService.ReturnDiscountsMultiBuy(product.Id, product.VariantId, discountNumber, product, Dynamicweb.Ecommerce.Common.Context.Cart, product.Discontinued, product.NeverOutOfstock)); 30 List<DiscountView> results = JsonConvert.DeserializeObject<List<DiscountView>>(res); 31 CurrencyService currencyService = new CurrencyService(); 32 Currency currency = currencyService.GetCurrency(product.Price.CurrencyCode); 33 string currencySymbol = currency.Symbol; 34 @if (results.Count > 0) 35 { 36 <div> 37 <div class="cus-discount-title">@Translate("Discounts:") </div> 38 <div class="cus-discounts-buttons"> 39 @foreach (var result in results) 40 { 41 <div> 42 @if (result.percentage > 0) 43 { 44 <div>@Translate("Buy") @result.disQuantity @Translate("get") @result.percentage % @Translate("off")</div> 45 } 46 @if (result.amount > 0) 47 { 48 <div>@Translate("Buy") @result.disQuantity @Translate("get") @result.amount @currencySymbol @Translate("off")</div> 49 } 50 </div> 51 } 52 </div> 53 </div> 54 } 55 } 56 else if (Pageview.IsVisualEditorMode) 57 { 58 <div class="alert alert-warning">@Translate("No products available")</div> 59 } 60

You need a prescription to purchase this product. Book an appointment with our doctors.

In-store stock availability
Alpecin Tuning Shampoo
S0001
In stock (20 qty)
Choose you store to:
Access its contact details, opening hours, services, etc.
View all available products and commercial offers

Description

A special shampoo that enhances the color of dark hair, while stimulating the scalp with caffeine to support healthy hair growth and combat hair loss.

More Information

Alpecin Tuning Shampoo is a unique shampoo designed for men with dark hair, providing a two-fold benefit: it subtly enhances and tones the color of dark hair, while delivering the stimulating effects of caffeine to the scalp to prevent hair loss and promote healthy hair growth.

The caffeine complex penetrates deeply into the scalp to stimulate hair follicles, improving circulation and encouraging hair growth. It helps strengthen hair from the roots, reducing thinning and promoting thicker, healthier hair. Additionally, nicotinic acid and zinc help nourish the scalp and hair, improving their overall health and vitality.

The shampoo’s color-enhancing formula is specially developed for dark hair, helping to preserve and enhance the natural depth and richness of dark shades, leaving hair looking vibrant and full of life. Its gentle formula cleanses the hair without drying it out or stripping the color, making it ideal for daily use.

Application

1. Apply to wet hair and massage gently into the scalp.

2. Lather and leave the shampoo on for 2-3 minutes to allow the caffeine and color-enhancing ingredients to work.

3. Rinse thoroughly.

4. For best results, use regularly to maintain the vibrancy of dark hair and promote hair growth.

You Might Like also

;
By clicking 'Accept All' you consent that we may collect information about you for various purposes, including: Statistics and Marketing