Skip to the content
'+ '
'; } var non_rrp_component = '
'+ ''+discount_price_html+''+ '
'+ '
'+ ''+product_currency+''+product_price+''+ '
'+ '
'+ '
'; var discount_price_rrp_html = ""; var discount_rrp_text_label_html = ""; var non_discount_price_rrp_currency_html = ""; var rrp_price_font_size_class = ""; if(product_discount_price != "" && product_discount_price != null && product_discount_price != 0) { if(product_price == "" || product_price == null || product_price == 0) { discount_rrp_text_label_html = 'Adviesprijs '; } else { discount_rrp_text_label_html = ''+product_currency+''; rrp_price_font_size_class = 'old_price_font_size'; } discount_price_rrp_html = '
'+ '
'+ discount_rrp_text_label_html+''+product_discount_price+''+ '
'+ '
'; } else { non_discount_price_rrp_currency_html = ''+product_currency+''; } var rrp_component = '
'+ ''+discount_price_rrp_html+''+ '
'+ '
'+ 'Adviesprijs '+non_discount_price_rrp_currency_html+''+product_price+''+ '
'+ '
'+ '
true
'+ '
'; var out_of_stock_component = '
'+ '
'+ '
'+ 'Out of stock'+ '
'+ '
'+ '
'; var price_html_decide = ""; if(product_availability == 'Out of stock') { price_html_decide = out_of_stock_component; } else { //console.log("-------product_rrp_price_flag:"+product_rrp_price_flag+"---------"); if(product_rrp_price_flag == "TRUE") { //console.log("-------product_sku:"+product_sku+"-TRUE---------"); price_html_decide = rrp_component; } else { price_html_decide = non_rrp_component; } } //also add the price into a hidden div so you can find it for out of stock items which do not have the price HTML components added var ga_tracking_price = null; if(product_discount_price == "" || product_price == null || product_price == 0) { ga_tracking_price = product_price; } else { ga_tracking_price = product_discount_price; } var full_price_html = '
'+ '
'+ '
'+ ''+price_html_decide+''+ '
'+ '
'+ '
'+ '
'; var full_tile_html = '
'+ '
'+ '
'+ ''+ ''+product_sku+''+ ''+ ''+ ''+ ''+ ''+product_brandname+''+ ''+ ''+product_rangename+''+ ''+ ''+ ''+product_description+''+ ''+ ''+ ''+full_price_html+''+ ''+product_currency_text+''+ ''+ga_tracking_price+''+ ''+product_stock_level+''+ ''+product_color_hex+''+ ''+product_color_name+''+ ''+product_size+''+ ''+product_category+''+ ''+supplier+''+ ''+product_size+''+ ''+ ''+ '
'+ '
'; // ''+ // ''+ // ''+ //'
'+product_position+'
'+ // ''+ // ''+product_rangename+''+ // ''+ // '
'+product_variations+'
'+ // '
'+ // 'Add to Basket'+ // '
'+ return full_tile_html; }; //-----------/\Function to make expanded HTML for each slide from simple HTML/\----------- //---------\/Function to expand out (Replace) the simplified HTML and put all the HTML for each slide\/----------- function createExpandedSlidesHTML(products_object) { var fullHTML = ""; for(prd_count = 0; prd_count < products_object.length; prd_count++) { var one_product = products_object[prd_count]; if(one_product != undefined) { var one_tile_html_expanded = addTileHTML(one_product); fullHTML += one_tile_html_expanded; } } return fullHTML; }; //-------------This is the point where the whole carousel function has to wait for the products from AJAX request //-------------As such, the getProductsFromSKUs function is called with a function that contains all the executable code for the rest of the carousel //-------------Basically, if the ajax fails you can't do anything with this carousel because there is no data getProductsFromSKUs(products_object, function(ajax_response) { //=========================================================================================================== //============\/Everything else in the carousel goes here because we need to wait for AJAX Response\/======== var ajax_response_array_temp = JSON.parse(ajax_response); var ajax_response_array = ajax_response_array_temp; //console.log("ajax_response_array:"+ajax_response_array); var bp_id_flag = false; //---------Create products object from returned request--------- for(prd_count = 0; prd_count < sku_array.length; prd_count++) { //console.log("-----Hello1-----"); bp_id_flag = false; //Take off the BP_ string from the ID. Revised on 20-10-2023 to perform more complex action if(sku_array[prd_count].includes("BP_")) { //Can't use this method because if actual BP number is entered and has different number from SKU it won't find it //sku_array[prd_count] = sku_array[prd_count].replace('BP_', ''); //turn on the flag instead so the search is done in the bp_id field rather than sku bp_id_flag = true; } for(ajax_count = 0; ajax_count < ajax_response_array.length; ajax_count++) { //console.log("-----Hello2-----"); product_object = []; product_object['sku'] = sku_array[prd_count]; product_object['bp_id'] = null; var one_response_product = ajax_response_array[ajax_count]; //console.log("one_response_product"); //console.log(one_response_product); if(bp_id_flag === true) { if(one_response_product['bp_id'] == sku_array[prd_count]) { //console.log("-----Hello3-----"); //console.log("one_response_product['sku']: "+one_response_product['sku']); product_object['bp_id'] = one_response_product['bp_id']; product_object['image_link'] = one_response_product['image_url']; product_object['availability'] = one_response_product['availability']; product_object['brandname'] = one_response_product['hybris_brand_name']; product_object['product_link'] = one_response_product['product_url']; product_object['rangename'] = one_response_product['hybris_range_name']; product_object['description'] = one_response_product['hybris_product_name']; //aka product name product_object['currency'] = one_response_product['currency']; product_object['discount_price'] = one_response_product['new_price']; product_object['price'] = one_response_product['old_price']; product_object['hybris_retail_price'] = one_response_product['hybris_retail_price']; product_object['stock_level'] = one_response_product['stock_level']; product_object['color_hex'] = one_response_product['color_hex']; product_object['color_name'] = one_response_product['color_name']; product_object['size'] = one_response_product['size']; product_object['category'] = one_response_product['category']; product_object['supplier'] = one_response_product['supplier']; //console.log("--------one product_object BP_ID:----"); //console.log(product_object); products_object[prd_count] = product_object; } } else if(one_response_product['sku'] == sku_array[prd_count]) { //console.log("-----Hello3-----"); //console.log("one_response_product['sku']: "+one_response_product['sku']); product_object['image_link'] = one_response_product['image_url']; product_object['availability'] = one_response_product['availability']; product_object['brandname'] = one_response_product['hybris_brand_name']; product_object['product_link'] = one_response_product['product_url']; product_object['rangename'] = one_response_product['hybris_range_name']; product_object['description'] = one_response_product['hybris_product_name']; //aka product name product_object['currency'] = one_response_product['currency']; product_object['discount_price'] = one_response_product['new_price']; product_object['price'] = one_response_product['old_price']; product_object['hybris_retail_price'] = one_response_product['hybris_retail_price']; product_object['stock_level'] = one_response_product['stock_level']; product_object['color_hex'] = one_response_product['color_hex']; product_object['color_name'] = one_response_product['color_name']; product_object['size'] = one_response_product['size']; product_object['category'] = one_response_product['category']; product_object['supplier'] = one_response_product['supplier']; //console.log("--------one product_object:----"); //console.log(product_object); products_object[prd_count] = product_object; } } //console.log("sku_array["+prd_count+"]: "+sku_array[prd_count]); } // console.log("=======products_object:========"); // console.log(products_object); // console.log("==============================="); //console.log("returned products_object:"); //console.log(products_object); //console.log("------------------------"); var expandedHTML = createExpandedSlidesHTML(products_object); //console.log("----1)expandedHTML----"); //console.log(expandedHTML); //=================Replace Slider HTML Content with Expanded HTML=============== slider.innerHTML = expandedHTML; //=================Replace Slider HTML Content with Expanded HTML=============== //find slides inside slider slides = slider.querySelectorAll("div."+defined_slide_class); //Get the number of slides in the slider slidesNumber = slides.length; //get left and right arrows based on sliderContainer ID leftButton = sliderContainer.querySelector("div."+defined_leftarrow_class); rightButton = sliderContainer.querySelector("div."+defined_rightarrow_class); // Number of products in view, width of tile is dependent on container width and amount of products in view // Note: This does not affect how many products overall are available in the carousel if(products_in_view == "" || products_in_view == undefined || products_in_view == null) { products_in_view = 4; } //console.log("----products_in_view: "+products_in_view+"----"); //Responsive products in view responsive_products_in_view = products_in_view; //Get container width of frame let computedStyle_frame = getComputedStyle(frame); var container_width = parseInt(computedStyle_frame.width); //console.log("container_width: "+container_width); //Get margin-right of the css of the slide to know how far to move the slide let computedStyle_slide = getComputedStyle(slider.querySelector("div."+defined_slide_class)); tile_margin_right = parseInt(computedStyle_slide.getPropertyValue("margin-right")); //console.log("tile_margin_right: "+tile_margin_right); //Set up variable for width of slide slide_width = null; if(container_width < 1024) { slide_width = maximum_slide_width; } else { //Take off margin between tiles and divide //Take into account the arrows //Also remove 8px from each component so they are 230px each slide so - 32 //var container_minus_arrows_space = container_width - 40 - 32; var container_minus_arrows_space = container_width - 40 ; slide_width = (container_minus_arrows_space - ((products_in_view - 1)*tile_margin_right))/products_in_view; slide_width = parseInt(slide_width); //console.log("slide_width: "+slide_width); } if(slide_width == undefined || slide_width == null) { slide_width = maximum_slide_width; } //console.log("slide_width 1: "+slide_width); if(tile_margin_right == undefined || tile_margin_right == null) { tile_margin_right = 10; } //============\/Function to set slides width\/=============== function resetWidths(slides) { //console.log("------resetWidths-------"); //overall slider container as frame will change size based on screen size var computedStyle_container_dynamic = getComputedStyle(sliderContainer); var slider_container_width_dynamic = parseInt(computedStyle_container_dynamic.width); //because of the left and right arrows, the overall slider width will be 40px less //Also remove 8px from each component so they are 230px each slide so - 32 //slider_container_width_dynamic = slider_container_width_dynamic-40-32; slider_container_width_dynamic = slider_container_width_dynamic-40; //console.log("slider_container_width_dynamic: "+slider_container_width_dynamic); //Get frame width - NOT used right now // let computedStyle_frame_dynamic = getComputedStyle(frame); // var container_width_dynamic = parseInt(computedStyle_frame_dynamic.width); //console.log("-----container_width_dynamic: "+container_width_dynamic+"-----"); //Take off margin between tiles and divide var tile_width_dynamic = null; tile_width_dynamic = (slider_container_width_dynamic - ((products_in_view - 1)*tile_margin_right))/products_in_view; tile_width_dynamic = parseInt(tile_width_dynamic); //console.log("tile_width_dynamic: "+tile_width_dynamic); //=======Compare to minimum slide width, if smaller, use the minimum width and resize frame====== if(tile_width_dynamic < maximum_slide_width) { tile_width_dynamic = maximum_slide_width; } //=======Set slide_width to the latest version so navigation after resize works correctly======= slide_width = tile_width_dynamic; //console.log("---resetWidths slide_width: "+slide_width+"---"); //---------------------\/Responsive Products in View and Update Frame Width\/----------------------------- var calculated_products_in_view = parseInt(slider_container_width_dynamic/slide_width); //console.log("=====calculated_products_in_view: "+calculated_products_in_view+"======="); //and set new products in view to variable initialized above so it goes to all other ones responsive_products_in_view = calculated_products_in_view; var new_frame_width = parseInt((calculated_products_in_view*(slide_width)) + ((calculated_products_in_view-1)*tile_margin_right)); //console.log("=====new_frame_width: "+new_frame_width+"======="); frame.setAttribute("style", "width: "+new_frame_width+"px;"); frame.style.width = new_frame_width+"px"; //---------------------/\Responsive Products in View and frame width/\----------------------------- //Get all tiles/slides and add fixed width to them var all_tiles_object = slides; var tile_width_text = tile_width_dynamic+"px"; //console.log("tile_width_text: "+tile_width_text); for(var tiles_count=0; tiles_count
Gepost op 17/08/2022 in Make-up

Wil je beauty emergencies vermijden wanneer je weer aan het werk gaat? Dan zijn er een aantal producten die zeker niet mogen ontbreken in jouw tas. Ontdek ze hier en voeg ze toe!
Voorkom fijne lijntjes nog voor ze er zijn met een SPF-spray
Winter of zomer: de zon is altijd aanwezig. Je ziet ze misschien niet, maar haar stralen hebben wel degelijk een invloed op jouw huid, ook als je in de schaduw zit. Zorg er dus voor dat je altijd een SPF spray voor je gezicht bij de hand hebt. Smeer in de ochtend, na je volledige skincare routine, een dun laagje zonnecrème op je gezicht en herhaal dit elke twee uur. Geniet van de zon met de Biotherm Waterlover Sun Mist SPF 30 en voorzie je huid van een optimale bescherming.
BIOTHERM
SUN MIST SPF 30
€21,50
€43,00
Adviesprijs €21,50
Adviesprijs €43,00
true
Handcrème voor de soft touch
Handcrème behoort standaard in onze handtas. Om bacteriën tegen te gaan is het van groot belang dat we onze handen vaak wassen met zeep, maar dat is niet zo goed voor de vochtbalans. Daar komt jouw handcrème to the rescue. Door de hydraterende eigenschappen pakt het de vochtbalans en de kloofjes aan die een gevolg zijn van de vele wasbeurten per dag, waardoor deze een goede, gezonde voeding krijgen. Bovendien zal een ontsmettingsgel hierdoor minder irriteren op je huid. Graag een suggestie? Kijk eens naar de Clarins Hand and Nail treatment cream die ook nog eens je nagels versterkt. Ideaal toch?
CLARINS
HAND AND NAIL TREATMENT CREAM
€26,82
€29,00
Adviesprijs €26,82
Adviesprijs €29,00
true
Maak jouw lippen kissable met een lip balm
Tegenwoordig zijn lip balms essentieel! Daarmee kunnen ze ook niet meer ontbreken in je handtas, dus neem ze overal mee naartoe. Je kan ze vinden in verschillende vormen, kleuren, maten én ze zijn nog eens handig in gebruik ook.
Wat zijn de voordelen van een lip balm? Ze werken hydraterend en vormen een soort primer die je lippen voorbereiden op een lipstick. Geen last meer van droge velletjes, scheurtjes in de hoeken van je mond of uitlopende lipstick. Hou je van een lip balm mét een kleurtje die makkelijk is om mee te nemen? Dan raden wij jou de Chubby Stick aan van Clinique: beschikbaar in 6 verschillende kleuren én met een moisturizing effect.
€,
€,
Adviesprijs €,
Adviesprijs €,
Jouw favoriete miniparfum, altijd en overal
Een dagje naar de stad of een vlucht die binnen een paar weken op je planning staat? Een mini parfum is ideaal in beide situaties! Handig om mee te nemen en het neemt bijna geen plek in je handtas. En als je op vakantie gaat, kun je op deze manier makkelijk twee of drie van je favorieten meenemen. Maar hoe haal je het maximale uit je mini versie en waar breng je hem aan voor het langste resultaat? Spuit 2 tot 4 keer op de warmste plekken van je lichaam. Dat wil zeggen waar je aders het meest oppervlakkig liggen. En dan nu: Naar de travel musthave van Travalo!
€,
€,
Adviesprijs €,
Adviesprijs €,
Bye bye donkere kringen, hello concealer
Heb je last van onzuiverheden? Concealer is het perfecte product om donkere kringen, puistjes of hyperpigmentatie te verbergen. Deze beauty essential helpt je door de dag heen en behoort tot de simpelste trucjes om je make-up look op te frissen. Let wel op dat je geen te grote hoeveelheden aanbrengt; werk met dunne laagjes zodat je make-up niet gaat ophopen. De zit verpakt in een handige tube met fijn penseeltje en is daarmee zeer makkelijk in gebruik.
YVES SAINT LAURENT
HIGHLIGHTER & CONCEALER
€41,62
€45,00
Adviesprijs €41,62
Adviesprijs €45,00
true
Blotting paper tegen de glans op je huid
De matterende doekjes, die jouw oily skin helpen te voorkomen, kun je niet meer vergeten zodra je ze hebt geprobeerd. Vooral als je last hebt van een vette huid zorgen ze voor een naturelle look. Gebruik ze al deppend zodat ze goed alle restanten kunnen opnemen en je deze niet uitsmeert over de andere zones van je gezicht. Een handig etuitje om je blotting papers overal mee naartoe te nemen? Probeer de Essentials van Shiseido!
SHISEIDO
OIL-BLOTTING PAPER
€28,67
€31,00
Adviesprijs €28,67
Adviesprijs €31,00
true
BP_1012603
BP_10470
BP_614310
BP_786517
BP_13514
BP_946117