1 2<!doctype html> 3<html class="no-js supports-no-cookies html-template-page" lang="en"> 4<head> 5 <!-- Start VWO Async SmartCode --> 6 <link rel="preconnect" href="https://dev.visualwebsiteoptimizer.com" /> 7
7<script type='text/javascript' id='vwoCode'> 8 window._vwo_code || (function() { 9 var account_id=846410, 10 version=2.1, 11 settings_tolerance=2000, 12 hide_element='body', 13 hide_element_style = 'opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important', 14 /* DO NOT EDIT BELOW THIS LINE */ 15 f=false,w=window,d=document,v=d.querySelector('#vwoCode'),cK='_vwo_'+account_id+'_settings',cc={};try{var c=JSON.parse(localStorage.getItem('_vwo_'+account_id+'_config'));cc=c&&typeof c==='object'?c:{}}catch(e){}var stT=cc.stT==='session'?w.sessionStorage:w.localStorage;code={use_existing_jquery:function(){return typeof use_existing_jquery!=='undefined'?use_existing_jquery:undefined},library_tolerance:function(){return typeof library_tolerance!=='undefined'?library_tolerance:undefined},settings_tolerance:function(){return cc.sT||settings_tolerance},hide_element_style:function(){return'{'+(cc.hES||hide_element_style)+'}'},hide_element:function(){if(performance.getEntriesByName('first-contentful-paint')[0]){return''}return typeof cc.hE==='string'?cc.hE:hide_element},getVersion:function(){return version},finish:function(e){if(!f){f=true;var t=d.getElementById('_vis_opt_path_hides');if(t)t.parentNode.removeChild(t);if(e)(new Image).src='https://dev.visualwebsiteoptimizer.com/ee.gif?a='+account_id+e}},finished:function(){return f},addScript:function(e){var t=d.createElement('script');t.type='text/javascript';if(e.src){t.src=e.src}else{t.text=e.text}d.getElementsByTagName('head')[0].appendChild(t)},load:function(e,t){var i=this.getSettings(),n=d.createElement('script'),r=this;t=t||{};if(i){n.textContent=i;d.getElementsByTagName('head')[0].appendChild(n);if(!w.VWO||VWO.caE){stT.removeItem(cK);r.load(e)}}else{var o=new XMLHttpRequest;o.open('GET',e,true);o.withCredentials=!t.dSC;o.responseType=t.responseType||'text';o.onload=function(){if(t.onloadCb){return t.onloadCb(o,e)}if(o.status===200){_vwo_code.addScript({text:o.responseText})}else{_vwo_code.finish('&e=loading_failure:'+e)}};o.onerror=function(){if(t.onerrorCb){return t.onerrorCb(e)}_vwo_code.finish('&e=loading_failure:'+e)};o.send()}},getSettings:function(){try{var e=stT.getItem(cK);if(!e){return}e=JSON.parse(e);if(Date.now()>e.e){stT.removeItem(cK);return}return e.s}catch(e){return}},init:function(){if(d.URL.indexOf('__vwo_disable__')>-1)return;var e=this.settings_tolerance();w._vwo_settings_timer=setTimeout(function(){_vwo_code.finish();stT.removeItem(cK)},e);var t;if(this.hide_element()!=='body'){t=d.createElement('style');var i=this.hide_element(),n=i?i+this.hide_element_style():'',r=d.getElementsByTagName('head')[0];t.setAttribute('id','_vis_opt_path_hides');v&&t.setAttribute('nonce',v.nonce);t.setAttribute('type','text/css');if(t.styleSheet)t.styleSheet.cssText=n;else t.appendChild(d.createTextNode(n));r.appendChild(t)}else{t=d.getElementsByTagName('head')[0];var n=d.createElement('div');n.style.cssText='z-index: 2147483647 !important;position: fixed !important;left: 0 !important;top: 0 !important;width: 100% !important;height: 100% !important;background: white !important;';n.setAttribute('id','_vis_opt_path_hides');n.classList.add('_vis_hide_layer');t.parentNode.insertBefore(n,t.nextSibling)}var o='https://dev.visualwebsiteoptimizer.com/j.php?a='+account_id+'&u='+encodeURIComponent(d.URL)+'&vn='+version;if(w.location.search.indexOf('_vwo_xhr')!==-1){this.addScript({src:o})}else{this.load(o+'&x=true')}}};w._vwo_code=code;code.init();})(); 16 </script>
16 17 <!-- End VWO Async SmartCode --> 18 19
19<script> 20 async function hashEmail(email) { 21 // Convert email to lowercase 22 email = email.toLowerCase(); 23 24 // Encode the email string as a Uint8Array 25 const encoder = new TextEncoder(); 26 const data = encoder.encode(email); 27 28 // Hash the email using SHA-256 29 const hashBuffer = await crypto.subtle.digest('SHA-256', data); 30 31 // Convert the hash to a hexadecimal string 32 const hashArray = Array.from(new Uint8Array(hashBuffer)); 33 const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join(''); 34 35 return hashHex; 36 } 37 38 window.marketingUserData = { 39 email:'', 40 name: '', 41 phone:'', 42 hashed_email: '' 43 } 44 45 46 47 const settings = { 48 enable_review: true, 49 pack_enable_discount: false , 50 pack_first_elements_quantity: 2 , 51 pack_first_elements_discount: '20', 52 pack_second_elements_quantity: 3 , 53 pack_second_elements_discount: '25' , 54 enable_specific_discount: true , 55 specific_product_discount_list: [{"id":8664884904248,"title":"Custom Hair Serum","handle":"hair-serum","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eA custom serum formulated with sunflower seed oil and jojoba oil that smooths frizz, enhances shine, and protects hair from heat. The lightweight formula is fit for all hair types. Size: 3 oz\u003c\/span\u003e\u003c\/p\u003e","published_at":"2025-10-01T09:37:05-04:00","created_at":"2023-09-18T14:35:41-04:00","vendor":"Function of Beauty","type":"hair-serum","tags":["Action: Treatment","badge: frizz fighter","Haircare","in_configuration","Line: Core","Target: Hair","YCRF_haircare"],"price":3100,"price_min":3100,"price_max":3100,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":46910687084856,"title":"3 oz","option1":"3 oz","option2":null,"option3":null,"sku":"hair-serum.3oz","requires_shipping":true,"taxable":true,"featured_image":{"id":44255614927160,"product_id":8664884904248,"position":14,"created_at":"2024-01-11T16:44:48-05:00","updated_at":"2025-04-15T15:15:50-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Serum_variant.png?v=1744744550","variant_ids":[46910687084856]},"available":true,"name":"Custom Hair Serum - 3 oz","public_title":"3 oz","options":["3 oz"],"price":3100,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":36711623983416,"position":15,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Serum_variant.png?v=1744744550"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3100}],"price":3100,"compare_at_price":3100,"per_delivery_price":3100,"selling_plan_id":691030065464,"selling_plan_group_id":"8a9ad1aa2f55ff5d57178901167fd314a99f4f37"},{"price_adjustments":[{"position":1,"price":3100}],"price":3100,"compare_at_price":3100,"per_delivery_price":3100,"selling_plan_id":691030098232,"selling_plan_group_id":"8a9ad1aa2f55ff5d57178901167fd314a99f4f37"},{"price_adjustments":[{"position":1,"price":3100}],"price":3100,"compare_at_price":3100,"per_delivery_price":3100,"selling_plan_id":691030131000,"selling_plan_group_id":"8a9ad1aa2f55ff5d57178901167fd314a99f4f37"},{"price_adjustments":[{"position":1,"price":3100}],"price":3100,"compare_at_price":3100,"per_delivery_price":3100,"selling_plan_id":694905995576,"selling_plan_group_id":"8a9ad1aa2f55ff5d57178901167fd314a99f4f37"},{"price_adjustments":[{"position":1,"price":3100}],"price":3100,"compare_at_price":3100,"per_delivery_price":3100,"selling_plan_id":693003092280,"selling_plan_group_id":"8a9ad1aa2f55ff5d57178901167fd314a99f4f37"}],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/functionofbeauty.com\/cdn\/shop\/files\/Serum_Yellow_Reflection.png?v=1744744550","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_02.jpg?v=1744744550","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_03.jpg?v=1744744550","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_04_6c345c80-68b8-4bd5-8e95-4d69b39d2717.jpg?v=1744744550","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_05_7586017b-e598-4f68-8ffd-328f8b2a6b4d.jpg?v=1744744550","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_06_d9e2d1c9-5aaf-48c5-bfd4-632639c64b9f.jpg?v=1744744550","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_07_4488b265-bf3
550-4ab4-8e9d-0dd88d187ec7.jpg?v=1744744550","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_08.jpg?v=1744744550","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_09.jpg?v=1744744550","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_10.jpg?v=1744744550","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_11.jpg?v=1744744550","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_12.jpg?v=1744744550","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_14.jpg?v=1744744550","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Serum_variant.png?v=1744744550","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Serum_PLP.png?v=1744744550"],"featured_image":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Serum_Yellow_Reflection.png?v=1744744550","options":["Size"],"media":[{"alt":null,"id":41577326641464,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Serum_Yellow_Reflection.png?v=1744744550"},"aspect_ratio":1.0,"height":1080,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Serum_Yellow_Reflection.png?v=1744744550","width":1080},{"alt":null,"id":35446331048248,"position":2,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_02.jpg?v=1744744550"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_02.jpg?v=1744744550","width":2160},{"alt":null,"id":35446554034488,"position":3,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_03.jpg?v=1744744550"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_03.jpg?v=1744744550","width":2160},{"alt":null,"id":35446330884408,"position":4,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_04_6c345c80-68b8-4bd5-8e95-4d69b39d2717.jpg?v=1744744550"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_04_6c345c80-68b8-4bd5-8e95-4d69b39d2717.jpg?v=1744744550","width":2176},{"alt":null,"id":35446330851640,"position":5,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_05_7586017b-e598-4f68-8ffd-328f8b2a6b4d.jpg?v=1744744550"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_05_7586017b-e598-4f68-8ffd-328f8b2a6b4d.jpg?v=1744744550","width":2176},{"alt":null,"id":35446330818872,"position":6,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_06_d9e2d1c9-5aaf-48c5-bfd4-632639c64b9f.jpg?v=1744744550"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_06_d9e2d1c9-5aaf-48c5-bfd4-632639c64b9f.jpg?v=1744744550","width":2176},{"alt":null,"id":35446330786104,"position":7,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_07_4488b265-bf30-4ab4-8e9d-0dd88d187ec7.jpg?v=1744744550"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_07_4488b265-bf30-4ab4-8e9d-0dd88d187ec7.jpg?v=1744744550","width":2176},{"alt":null,"id":35446557606200,"position":8,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_08.jpg?v=1744744550"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_08.jpg?v=1744744550","width":2160},{"alt":null,"id":35446330949944,"position":9,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_09.jpg?v=1744744550"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_09.jpg?v=1744744550","width":2160},{"alt":null,"id":35446565437752,"position":10,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_10.jpg?v=1744744550"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_10.jpg?v=1744744550","width":2160},{"alt":null,"id":35446330917176,"position":11,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_11.jpg?v=1744744550"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_11.jpg?v=1744744550","width":2160},{"alt":null,"id":35446331113784,"position":12,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_12.jpg?v=1744744550"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_12.jpg?v=1744744550","width":2160},{"alt":null,"id":35446331081016,"position":13,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_14.jpg?v=1744744550"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-HairSerum_14.jpg?v=1744744550","width":2160},{"alt":null,"id":35541695660344,"position":14,"preview_image":{"aspect_ratio":1.0,"height":780,"width":780,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/preview_images\/0c836a249cea4af79e1e5d622d3b30d3.thumbnail.0000000000.jpg?v=1695670049"},"aspect_ratio":1.0,"duration":5030,"media_type":"video","sources":[{"format":"mp4","height":480,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/0c836a249cea4af79e1e5d622d3b30d3\/0c836a249cea4af79e1e5d622d3b30d3.SD-480p-1.5Mbps-18780126.mp4?v=0","width":480},{"format":"mp4","height":720,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/0c836a249cea4af79e1e5d622d3b30d3\/0c836a249cea4af79e1e5d622d3b30d3.HD-720p-4.5Mbps-18780126.mp4?v=0","width":720},{"format":"m3u8","height":720,"mime_type":"application\/x-mpegURL","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/0c836a249cea4af79e1e5d622d3b30d3\/0c836a249cea4af79e1e5d622d3b30d3.m3u8?v=0","width":720}]},{"alt":null,"id":36711623983416,"position":15,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Serum_variant.png?v=1744744550"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Serum_variant.png?v=1744744550","width":2160},{"alt":null,"id":36711626015032,"position":16,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Serum_PLP.png?v=1744744550"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Serum_PLP.png?v=1744744550","width":2160},{"alt":null,"id":42092930072888,"position":17,"preview_image":{"aspect_ratio":1.0,"height":720,"width":720,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/preview_images\/6c9bdfdfdd764662abf2eed7eadbf1bd.thumbnail.0000000000.jpg?v=1750258716"},"aspect_ratio":1.0,"duration":3840,"media_type":"video","sources":[{"format":"mp4","height":480,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/6c9bdfdfdd764662abf2eed7eadbf1bd\/6c9bdfdfdd764662abf2eed7eadbf1bd.SD-480p-1.2Mbps-49624002.mp4?v=0","width":480},{"format":"mp4","height":720,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/6c9bdfdfdd764662abf2eed7eadbf1bd\/6c9bdfdfdd764662abf2eed7eadbf1bd.HD-720p-3.0Mbps-49624002.mp4?v=0","width":720},{"format":"m3u8","height":720,"mime_type":"application\/x-mpegURL","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/6c9bdfdfdd764662abf2eed7eadbf1bd\/6c9bdfdfdd764662abf2eed7eadbf1bd.m3u8?v=0","width":720}]}],"requires_selling_plan":false,"selling_plan_groups":[{"id":"8a9ad1aa2f55ff5d57178901167fd314a99f4f37","name":"Hair Serum","options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"values":["1 Month(s)","2 Month(s)","3 Month(s)","4 Month(s)","6 Month(s)"]}],"selling_plans":[{"id":691030065464,"name":"Delivery every 1 Month","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"1 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":691030098232,"name":"Delivery every 2 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"2 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}}
55,{"id":691030131000,"name":"Delivery every 3 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"3 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":694905995576,"name":"Delivery every 4 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"4 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":693003092280,"name":"Delivery every 6 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"6 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}}],"app_id":"294517"}],"content":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eA custom serum formulated with sunflower seed oil and jojoba oil that smooths frizz, enhances shine, and protects hair from heat. The lightweight formula is fit for all hair types. Size: 3 oz\u003c\/span\u003e\u003c\/p\u003e"},{"id":8664885788984,"title":"Custom Co-Wash","handle":"cowash","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eA light cleansing and conditioning hybrid for those in-between wash days. Formulated with jamaican black castor seed oil and avocado oil, this co-wash moisturizes and protects coily, curly, and color-treated hair. \u003c\/span\u003e\u003c\/p\u003e","published_at":"2023-09-18T14:35:47-04:00","created_at":"2023-09-18T14:35:47-04:00","vendor":"Function of Beauty","type":"cowash","tags":["Action: Treatment","Haircare","in_configuration","Line: Core","Target: Hair","YCRF_haircare"],"price":2200,"price_min":2200,"price_max":2200,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":46910688362808,"title":"8 oz \/ Blue","option1":"8 oz","o
55ption2":"Blue","option3":null,"sku":"cowash.8oz.blue","requires_shipping":true,"taxable":true,"featured_image":{"id":44255355535672,"product_id":8664885788984,"position":13,"created_at":"2024-01-11T16:00:52-05:00","updated_at":"2025-04-15T15:15:00-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_blue_variant.png?v=1744744500","variant_ids":[46910688362808]},"available":true,"name":"Custom Co-Wash - 8 oz \/ Blue","public_title":"8 oz \/ Blue","options":["8 oz","Blue"],"price":2200,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":36711362003256,"position":13,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_blue_variant.png?v=1744744500"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030851896,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030884664,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030917432,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":694905798968,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":693002830136,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"}],"quantity_rule":{"min":1,"max":null,"increment":1}}
55,{"id":46910688395576,"title":"8 oz \/ Red","option1":"8 oz","option2":"Red","option3":null,"sku":"cowash.8oz.red","requires_shipping":true,"taxable":true,"featured_image":{"id":44255358288184,"product_id":8664885788984,"position":14,"created_at":"2024-01-11T16:01:09-05:00","updated_at":"2025-04-15T15:15:00-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_red_variant.png?v=1744744500","variant_ids":[46910688395576]},"available":true,"name":"Custom Co-Wash - 8 oz \/ Red","public_title":"8 oz \/ Red","options":["8 oz","Red"],"price":2200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711364297016,"position":14,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_red_variant.png?v=1744744500"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030851896,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030884664,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030917432,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":694905798968,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":693002830136,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910688428344,"title":"8 oz \/ Green","option1":"8 oz","o
55ption2":"Green","option3":null,"sku":"cowash.8oz.green","requires_shipping":true,"taxable":true,"featured_image":{"id":44255360614712,"product_id":8664885788984,"position":15,"created_at":"2024-01-11T16:01:25-05:00","updated_at":"2025-04-15T15:15:00-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_green_variant.png?v=1744744500","variant_ids":[46910688428344]},"available":true,"name":"Custom Co-Wash - 8 oz \/ Green","public_title":"8 oz \/ Green","options":["8 oz","Green"],"price":2200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711366525240,"position":15,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_green_variant.png?v=1744744500"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030851896,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030884664,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030917432,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":694905798968,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":693002830136,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910688493880,"title":"8 oz \/ Orange","option1":"8 oz","o
55ption2":"Orange","option3":null,"sku":"cowash.8oz.orange","requires_shipping":true,"taxable":true,"featured_image":{"id":44255362416952,"product_id":8664885788984,"position":16,"created_at":"2024-01-11T16:01:39-05:00","updated_at":"2025-04-15T15:15:00-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_orange_variant.png?v=1744744500","variant_ids":[46910688493880]},"available":true,"name":"Custom Co-Wash - 8 oz \/ Orange","public_title":"8 oz \/ Orange","options":["8 oz","Orange"],"price":2200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711368360248,"position":16,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_orange_variant.png?v=1744744500"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030851896,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030884664,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030917432,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":694905798968,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":693002830136,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910688526648,"title":"8 oz \/ Purple","option1":"8 oz","o
55ption2":"Purple","option3":null,"sku":"cowash.8oz.purple","requires_shipping":true,"taxable":true,"featured_image":{"id":44255363563832,"product_id":8664885788984,"position":17,"created_at":"2024-01-11T16:01:51-05:00","updated_at":"2025-04-15T15:15:00-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_purple_variant.png?v=1744744500","variant_ids":[46910688526648]},"available":true,"name":"Custom Co-Wash - 8 oz \/ Purple","public_title":"8 oz \/ Purple","options":["8 oz","Purple"],"price":2200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711369474360,"position":17,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_purple_variant.png?v=1744744500"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030851896,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030884664,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030917432,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":694905798968,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":693002830136,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910688559416,"title":"8 oz \/ Dye Free","option1":"8 oz","o
55ption2":"Dye Free","option3":null,"sku":"cowash.8oz.dye-free","requires_shipping":true,"taxable":true,"featured_image":{"id":44255364809016,"product_id":8664885788984,"position":18,"created_at":"2024-01-11T16:02:03-05:00","updated_at":"2025-04-15T15:15:00-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_white_variant.png?v=1744744500","variant_ids":[46910688559416]},"available":true,"name":"Custom Co-Wash - 8 oz \/ Dye Free","public_title":"8 oz \/ Dye Free","options":["8 oz","Dye Free"],"price":2200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711370981688,"position":18,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_white_variant.png?v=1744744500"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030851896,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030884664,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030917432,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":694905798968,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":693002830136,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910688624952,"title":"8 oz \/ Ocean","option1":"8 oz","o
55ption2":"Ocean","option3":null,"sku":"cowash.8oz.ocean","requires_shipping":true,"taxable":true,"featured_image":{"id":44255366644024,"product_id":8664885788984,"position":19,"created_at":"2024-01-11T16:02:15-05:00","updated_at":"2025-04-15T15:15:00-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_ocean_variant.png?v=1744744500","variant_ids":[46910688624952]},"available":true,"name":"Custom Co-Wash - 8 oz \/ Ocean","public_title":"8 oz \/ Ocean","options":["8 oz","Ocean"],"price":2200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711372849464,"position":19,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_ocean_variant.png?v=1744744500"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030851896,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030884664,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030917432,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":694905798968,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":693002830136,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910688657720,"title":"8 oz \/ Magenta","option1":"8 oz","o
55ption2":"Magenta","option3":null,"sku":"cowash.8oz.magenta","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Custom Co-Wash - 8 oz \/ Magenta","public_title":"8 oz \/ Magenta","options":["8 oz","Magenta"],"price":2200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030851896,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030884664,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030917432,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":694905798968,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":693002830136,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910688690488,"title":"8 oz \/ Sunkissed","option1":"8 oz","o
55ption2":"Sunkissed","option3":null,"sku":"cowash.8oz.sunkissed","requires_shipping":true,"taxable":true,"featured_image":{"id":44255369462072,"product_id":8664885788984,"position":20,"created_at":"2024-01-11T16:02:43-05:00","updated_at":"2025-04-15T15:15:00-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_sunkissed_variant.png?v=1744744500","variant_ids":[46910688690488]},"available":true,"name":"Custom Co-Wash - 8 oz \/ Sunkissed","public_title":"8 oz \/ Sunkissed","options":["8 oz","Sunkissed"],"price":2200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711375700280,"position":20,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_sunkissed_variant.png?v=1744744500"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030851896,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030884664,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030917432,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":694905798968,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":693002830136,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910688723256,"title":"8 oz \/ Function Green","option1":"8 oz","o
55ption2":"Function Green","option3":null,"sku":"cowash.8oz.function-green","requires_shipping":true,"taxable":true,"featured_image":{"id":44255371264312,"product_id":8664885788984,"position":21,"created_at":"2024-01-11T16:02:54-05:00","updated_at":"2025-04-15T15:15:00-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_function_variant.png?v=1744744500","variant_ids":[46910688723256]},"available":true,"name":"Custom Co-Wash - 8 oz \/ Function Green","public_title":"8 oz \/ Function Green","options":["8 oz","Function Green"],"price":2200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711377699128,"position":21,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_function_variant.png?v=1744744500"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030851896,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030884664,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030917432,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":694905798968,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":693002830136,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910688756024,"title":"8 oz \/ Flamingo","option1":"8 oz","o
55ption2":"Flamingo","option3":null,"sku":"cowash.8oz.flamingo","requires_shipping":true,"taxable":true,"featured_image":{"id":44255372640568,"product_id":8664885788984,"position":22,"created_at":"2024-01-11T16:03:05-05:00","updated_at":"2025-04-15T15:15:00-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_flamingo_variant.png?v=1744744500","variant_ids":[46910688756024]},"available":true,"name":"Custom Co-Wash - 8 oz \/ Flamingo","public_title":"8 oz \/ Flamingo","options":["8 oz","Flamingo"],"price":2200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711379173688,"position":22,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_flamingo_variant.png?v=1744744500"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030851896,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030884664,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030917432,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":694905798968,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":693002830136,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910688788792,"title":"16 oz \/ Blue","option1":"16 oz","option2":"Blue","option3":null,"sku":"cowash.16oz.blue","requires_shipping":true,"taxable":true,"featured_image":{"id":44255394103608,"product_id":8664885788984,"position":23,"created_at":"2024-01-11T16:06:57-05:00","updated_at":"2025-04-15T15:15:00-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Blue_variant.png?v=1744744500","variant_ids":[46910688788792]},"available":true,"name":"Custom Co-Wash - 16 oz \/ Blue","public_title":"16 oz \/ Blue","options":["16 oz","Blue"],"price":2200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711400964408,"position":23,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Blue_variant.png?v=1744744500"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030851896,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030884664,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030917432,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":694905798968,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":693002830136,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910688821560,"title":"16 oz \/ Red","option1":"16 oz","option2":"Red","option3":null,"sku":"cowash.16oz.red","requires_shipping":true,"taxable":true,"featured_image":{"id":44255395545400,"product_id":8664885788984,"position":24,"created_at":"2024-01-11T16:07:13-05:00","updated_at":"2025-04-15T15:15:00-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Red_variant.png?v=1744744500","variant_ids":[46910688821560]},"available":true,"name":"Custom Co-Wash - 16 oz \/ Red","public_title":"16 oz \/ Red","options":["16 oz","Red"],"price":2200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711402307896,"position":24,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Red_variant.png?v=1744744500"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030851896,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030884664,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030917432,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":694905798968,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":693002830136,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910688854328,"title":"16 oz \/ Green","option1":"16 oz","option2":"Green","option3":null,"sku":"cowash.16oz.green","requires_shipping":true,"taxable":true,"featured_image":{"id":44255397577016,"product_id":8664885788984,"position":25,"created_at":"2024-01-11T16:07:28-05:00","updated_at":"2025-04-15T15:15:00-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Green_variant.png?v=1744744500","variant_ids":[46910688854328]},"available":true,"name":"Custom Co-Wash - 16 oz \/ Green","public_title":"16 oz \/ Green","options":["16 oz","Green"],"price":2200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711404470584,"position":25,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Green_variant.png?v=1744744500"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030851896,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030884664,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030917432,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":694905798968,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":693002830136,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910688887096,"title":"16 oz \/ Orange","option1":"16 oz","option2":"Orange","option3":null,"sku":"cowash.16oz.orange","requires_shipping":true,"taxable":true,"featured_image":{"id":44255398822200,"product_id":8664885788984,"position":26,"created_at":"2024-01-11T16:07:39-05:00","updated_at":"2025-04-15T15:15:00-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Orange_variant.png?v=1744744500","variant_ids":[46910688887096]},"available":true,"name":"Custom Co-Wash - 16 oz \/ Orange","public_title":"16 oz \/ Orange","options":["16 oz","Orange"],"price":2200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711405715768,"position":26,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Orange_variant.png?v=1744744500"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030851896,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030884664,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030917432,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":694905798968,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":693002830136,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910688919864,"title":"16 oz \/ Purple","option1":"16 oz","option2":"Purple","option3":null,"sku":"cowash.16oz.purple","requires_shipping":true,"taxable":true,"featured_image":{"id":44255399870776,"product_id":8664885788984,"position":27,"created_at":"2024-01-11T16:07:50-05:00","updated_at":"2025-04-15T15:15:00-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Purple_variant.png?v=1744744500","variant_ids":[46910688919864]},"available":true,"name":"Custom Co-Wash - 16 oz \/ Purple","public_title":"16 oz \/ Purple","options":["16 oz","Purple"],"price":2200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711406797112,"position":27,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Purple_variant.png?v=1744744500"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030851896,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030884664,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030917432,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":694905798968,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":693002830136,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910688952632,"title":"16 oz \/ Dye Free","option1":"16 oz","option2":"Dye Free","option3":null,"sku":"cowash.16oz.dye-free","requires_shipping":true,"taxable":true,"featured_image":{"id":44255400821048,"product_id":8664885788984,"position":28,"created_at":"2024-01-11T16:08:00-05:00","updated_at":"2025-04-15T15:15:00-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_White_variant.png?v=1744744500","variant_ids":[46910688952632]},"available":true,"name":"Custom Co-Wash - 16 oz \/ Dye Free","public_title":"16 oz \/ Dye Free","options":["16 oz","Dye Free"],"price":2200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711407747384,"position":28,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_White_variant.png?v=1744744500"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030851896,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030884664,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030917432,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":694905798968,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":693002830136,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910689018168,"title":"16 oz \/ Ocean","option1":"16 oz","option2":"Ocean","option3":null,"sku":"cowash.16oz.ocean","requires_shipping":true,"taxable":true,"featured_image":{"id":44255401673016,"product_id":8664885788984,"position":29,"created_at":"2024-01-11T16:08:12-05:00","updated_at":"2025-04-15T15:15:00-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Ocean_variant.png?v=1744744500","variant_ids":[46910689018168]},"available":true,"name":"Custom Co-Wash - 16 oz \/ Ocean","public_title":"16 oz \/ Ocean","options":["16 oz","Ocean"],"price":2200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711408599352,"position":29,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Ocean_variant.png?v=1744744500"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030851896,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030884664,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030917432,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,
55"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":694905798968,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":693002830136,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910689050936,"title":"16 oz \/ Magenta","option1":"16 oz","option2":"Magenta","option3":null,"sku":"cowash.16oz.magenta","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Custom Co-Wash - 16 oz \/ Magenta","public_title":"16 oz \/ Magenta","options":["16 oz","Magenta"],"price":2200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030851896,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030884664,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030917432,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":694905798968,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":693002830136,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910689083704,"title":"16 oz \/ Sunkissed","option1":"16 oz","option2":"Sunkissed","option3":null,"sku":"cowash.16oz.sunkissed","requires_shipping":true,"taxable":true,"featured_image":{"id":44255403344184,"product_id":8664885788984,"position":30,"created_at":"2024-01-11T16:08:32-05:00","updated_at":"2025-04-15T15:15:00-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Sunkissed_variant.png?v=1744744500","variant_ids":[46910689083704]},"available":true,"name":"Custom Co-Wash - 16 oz \/ Sunkissed","public_title":"16 oz \/ Sunkissed","options":["16 oz","Sunkissed"],"price":2200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711410270520,"position":30,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Sunkissed_variant.png?v=1744744500"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030851896,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030884664,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030917432,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":694905798968,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":693002830136,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910689116472,"title":"16 oz \/ Function Green","option1":"16 oz","option2":"Function Green","option3":null,"sku":"cowash.16oz.function-green","requires_shipping":true,"taxable":true,"featured_image":{"id":44255404491064,"product_id":8664885788984,"position":31,"created_at":"2024-01-11T16:08:43-05:00","updated_at":"2025-04-15T15:15:00-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Function_variant.png?v=1744744500","variant_ids":[46910689116472]},"available":true,"name":"Custom Co-Wash - 16 oz \/ Function Green","public_title":"16 oz \/ Function Green","options":["16 oz","Function Green"],"price":2200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711411450168,"position":31,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Function_variant.png?v=1744744500"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030851896,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030884664,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030917432,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":694905798968,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":693002830136,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910689149240,"title":"16 oz \/ Flamingo","option1":"16 oz","option2":"Flamingo","option3":null,"sku":"cowash.16oz.flamingo","requires_shipping":true,"taxable":true,"featured_image":{"id":44255405441336,"product_id":8664885788984,"position":32,"created_at":"2024-01-11T16:08:55-05:00","updated_at":"2025-04-15T15:15:00-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Flam
55ingo_variant.png?v=1744744500","variant_ids":[46910689149240]},"available":true,"name":"Custom Co-Wash - 16 oz \/ Flamingo","public_title":"16 oz \/ Flamingo","options":["16 oz","Flamingo"],"price":2200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711412400440,"position":32,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Flamingo_variant.png?v=1744744500"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030851896,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030884664,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":691030917432,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":694905798968,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"},{"price_adjustments":[{"position":1,"price":2200}],"price":2200,"compare_at_price":2200,"per_delivery_price":2200,"selling_plan_id":693002830136,"selling_plan_group_id":"7de527dd651e5f693e5f49abb964db2fb926be3c"}],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/functionofbeauty.com\/cdn\/shop\/files\/Co-Wash_Green_Reflection.png?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_02.jpg?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_03.jpg?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_04.jpg?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_05.jpg?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_06.jpg?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_07.jpg?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_08.jpg?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_09.jpg?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_10.jpg?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_12.jpg?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Green_PLP.png?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_blue_variant.png?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_red_variant.png?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_green_variant.png?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_orange_variant.png?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_purple_variant.png?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_white_variant.png?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_ocean_variant.png?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_sunkissed_variant.png?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_function_variant.png?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_flamingo_variant.png?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Blue_variant.png?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Red_variant.png?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Green_variant.png?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Orange_variant.png?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Purple_variant.png?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_White_variant.png?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Ocean_variant.png?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Sunkissed_variant.png?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Function_variant.png?v=1744744500","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Flam
55ingo_variant.png?v=1744744500"],"featured_image":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Co-Wash_Green_Reflection.png?v=1744744500","options":["Size","Color"],"media":[{"alt":null,"id":41577327034680,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Co-Wash_Green_Reflection.png?v=1744744500"},"aspect_ratio":1.0,"height":1080,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Co-Wash_Green_Reflection.png?v=1744744500","width":1080},{"alt":null,"id":35446294446392,"position":2,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_02.jpg?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_02.jpg?v=1744744500","width":2160},{"alt":null,"id":35446294479160,"position":3,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_03.jpg?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_03.jpg?v=1744744500","width":2160},{"alt":null,"id":35446294511928,"position":4,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_04.jpg?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_04.jpg?v=1744744500","width":2160},{"alt":null,"id":35446294544696,"position":5,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_05.jpg?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_05.jpg?v=1744744500","width":2160},{"alt":null,"id":35446294577464,"position":6,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_06.jpg?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_06.jpg?v=1744744500","width":2160},{"alt":null,"id":35446294610232,"position":7,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_07.jpg?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_07.jpg?v=1744744500","width":2160},{"alt":null,"id":35446294643000,"position":8,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_08.jpg?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_08.jpg?v=1744744500","width":2160},{"alt":null,"id":35446294675768,"position":9,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_09.jpg?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_09.jpg?v=1744744500","width":2160},{"alt":null,"id":35446294708536,"position":10,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_10.jpg?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_10.jpg?v=1744744500","width":2160},{"alt":null,"id":35446294741304,"position":11,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_12.jpg?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-CoWash_12.jpg?v=1744744500","width":2160},{"alt":null,"id":36711421575480,"position":12,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Green_PLP.png?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Green_PLP.png?v=1744744500","width":2160},{"alt":null,"id":36711362003256,"position":13,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_blue_variant.png?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_blue_variant.png?v=1744744500","width":2160},{"alt":null,"id":36711364297016,"position":14,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_red_variant.png?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_red_variant.png?v=1744744500","width":2160},{"alt":null,"id":36711366525240,"position":15,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_green_variant.png?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_green_variant.png?v=1744744500","width":2160},{"alt":null,"id":36711368360248,"position":16,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_orange_variant.png?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_orange_variant.png?v=1744744500","width":2160},{"alt":null,"id":36711369474360,"position":17,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_purple_variant.png?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_purple_variant.png?v=1744744500","width":2160},{"alt":null,"id":36711370981688,"position":18,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_white_variant.png?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_white_variant.png?v=1744744500","width":2160},{"alt":null,"id":36711372849464,"position":19,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_ocean_variant.png?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_ocean_variant.png?v=1744744500","width":2160},{"alt":null,"id":36711375700280,"position":20,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_sunkissed_variant.png?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_sunkissed_variant.png?v=1744744500","width":2160},{"alt":null,"id":36711377699128,"position":21,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_function_variant.png?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_function_variant.png?v=1744744500","width":2160},{"alt":null,"id":36711379173688,"position":22,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_flamingo_variant.png?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_8oz_flamingo_variant.png?v=1744744500","width":2160},{"alt":null,"id":36711400964408,"position":23,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Blue_variant.png?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Blue_variant.png?v=1744744500","width":2160},{"alt":null,"id":36711402307896,"position":24,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Red_variant.png?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Red_variant.png?v=1744744500","width":2160},{"alt":null,"id":36711404470584,"position":25,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Green_variant.png?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Green_variant.png?v=1744744500","width":2160},{"alt":null,"id":36711405715768,"position":26,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Orange_variant.png?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Orange_variant.png?v=1744744500","width":2160},{"alt":null,"id":36711406797112,"position":27,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Purple_variant.png?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Purple_variant.png?v=1744744500","width":2160},{"alt":null,"id":36711407747384,"position":28,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_White_variant.png?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_White_variant.png?v=1744744500","width":2160},{"alt":null,"id":36711408599352,"position":29,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Ocean_variant.png?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Ocean_variant.png?v=1744744500","width":2160},{"alt":null,"id":36711410270520,"position":30,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Sunkissed_variant.png?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Sunkissed_variant.png?v=1744744500","width":2160},{"alt":null,"id":36711411450168,"position":31,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Function_variant.png?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Function_variant.png?v=1744744500","width":2160},{"alt":null,"id":36711412400440,"position":32,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Flam
55ingo_variant.png?v=1744744500"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_CoWash_16oz_Flamingo_variant.png?v=1744744500","width":2160},{"alt":null,"id":42092930040120,"position":33,"preview_image":{"aspect_ratio":1.0,"height":720,"width":720,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/preview_images\/71d6c9ab807e4cf4b04ab931ff08c217.thumbnail.0000000000.jpg?v=1750258715"},"aspect_ratio":1.0,"duration":4960,"media_type":"video","sources":[{"format":"mp4","height":480,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/71d6c9ab807e4cf4b04ab931ff08c217\/71d6c9ab807e4cf4b04ab931ff08c217.SD-480p-1.2Mbps-49624003.mp4?v=0","width":480},{"format":"mp4","height":720,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/71d6c9ab807e4cf4b04ab931ff08c217\/71d6c9ab807e4cf4b04ab931ff08c217.HD-720p-3.0Mbps-49624003.mp4?v=0","width":720},{"format":"m3u8","height":720,"mime_type":"application\/x-mpegURL","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/71d6c9ab807e4cf4b04ab931ff08c217\/71d6c9ab807e4cf4b04ab931ff08c217.m3u8?v=0","width":720}]}],"requires_selling_plan":false,"selling_plan_groups":[{"id":"7de527dd651e5f693e5f49abb964db2fb926be3c","name":"Co-Wash","options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"values":["1 Month(s)","2 Month(s)","3 Month(s)","4 Month(s)","6 Month(s)"]}],"selling_plans":[{"id":691030851896,"name":"Delivery every 1 Month","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"1 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":691030884664,"name":"Delivery every 2 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"2 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":691030917432,"name":"Delivery every 3 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"3 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":694905798968,"name":"Delivery every 4 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"4 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":693002830136,"name":"Delivery every 6 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"6 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}}],"app_id":"294517"}],"content":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eA light cleansing and conditioning hybrid for those in-between wash days. Formulated with jamaican black castor seed oil and avocado oil, this co-wash moisturizes and protects coily, curly, and color-treated hair. \u003c\/span\u003e\u003c\/p\u003e"},{"id":8664886346040,"title":"Custom Conditioner","handle":"conditioner","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eA custom conditioner with a lightweight feel that provides essential hydration to your individual hair type. Packed full of nourishing ingredients for soft, smooth strands. Size: 11 oz\u003c\/span\u003e\u003c\/p\u003e","published_at":"2023-09-18T14:35:49-04:00","created_at":"2023-09-18T14:35:52-04:00","vendor":"Function of Beauty","type":"conditioner","tags":["Action: Care","first_time_discount","Haircare","in_configuration","Line: Core","Target: Hair","YCRF_haircare"],"price":2499,"price_min":2499,"price_max":3299,"available":true,"price_varies":true,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":49220493050168,"title":"11 oz \/ Dye Free","option1":"11 oz","option2":"Dye Free","option3":null,"sku":"conditioner.11oz.dye-free","requires_shipping":true,"taxable":true,"featured_image":{"id":46652890382648,"product_id":8664886346040,"position":40,"created_at":"2024-0
557-12T12:18:11-04:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Dye_Free.jpg?v=1744744471","variant_ids":[46910690689336,49220493050168]},"available":true,"name":"Custom Conditioner - 11 oz \/ Dye Free","public_title":"11 oz \/ Dye Free","options":["11 oz","Dye Free"],"price":2900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":39127557734712,"position":41,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Dye_Free.jpg?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49220493017400,"title":"11 oz \/ Purple","option1":"11 oz","option2":"Purple","option3":null,"sku":"conditioner.11oz.purple","requires_shipping":true,"taxable":true,"featured_image":{"id":46652890349880,"product_id":8664886346040,"position":39,"created_at":"2024-07-12T12:18:12-04:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Purple.jpg?v=1744744471","variant_ids":[46910690656568,49220493017400]},"available":true,"name":"Custom Conditioner - 11 oz \/ Purple","public_title":"11 oz \/ Purple","options":["11 oz","Purple"],"price":2900,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39127558652216,"position":40,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Purple.jpg?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49220492886328,"title":"11 oz \/ Blue","option1":"11 oz","option2":"Blue","o
55ption3":null,"sku":"conditioner.11oz.blue","requires_shipping":true,"taxable":true,"featured_image":{"id":46652978823480,"product_id":8664886346040,"position":45,"created_at":"2024-07-12T12:20:35-04:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Blue_e9dfe48b-10dd-4bca-8847-ebbef208af9b.jpg?v=1744744471","variant_ids":[46910690492728,49220492886328]},"available":true,"name":"Custom Conditioner - 11 oz \/ Blue","public_title":"11 oz \/ Blue","options":["11 oz","Blue"],"price":2900,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39127621239096,"position":46,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Blue_e9dfe48b-10dd-4bca-8847-ebbef208af9b.jpg?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49220492919096,"title":"11 oz \/ Red","option1":"11 oz","option2":"Red","option3":null,"sku":"conditioner.11oz.red","requires_shipping":true,"taxable":true,"featured_image":{"id":46652978856248,"product_id":8664886346040,"position":46,"created_at":"2024-07-12T12:18:12-04:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Red.jpg?v=1744744471","variant_ids":[46910690558264,49220492919096,51757618889016]},"available":true,"name":"Custom Conditioner - 11 oz \/ Red","public_title":"11 oz \/ Red","options":["11 oz","Red"],"price":2900,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39127558422840,"position":47,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Red.jpg?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49220492951864,"title":"11 oz \/ Green","option1":"11 oz","option2":"Green","option3":null,"sku":"conditioner.11oz.green","requires_shipping":true,"taxable":true,"featured_image":{"id":44255079530808,"product_id":8664886346040,"position":28,"created_at":"2024-01-11T15:32:33-05:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Green_variant.png?v=1744744471","variant_ids":[49220492951864]},"available":true,"name":"Custom Conditioner - 11 oz \/ Green","public_title":"11 oz \/ Green","options":["11 oz","Green"],"price":2900,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711082164536,"position":29,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Green_variant.png?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49220493115704,"title":"11 oz \/ Ocean","option1":"11 oz","option2":"Ocean","option3":null,"sku":"conditioner.11oz.ocean","requires_shipping":true,"taxable":true,"featured_image":{"id":46652890448
55184,"product_id":8664886346040,"position":41,"created_at":"2024-07-12T12:18:12-04:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Ocean.jpg?v=1744744471","variant_ids":[46910690722104,49220493115704]},"available":true,"name":"Custom Conditioner - 11 oz \/ Ocean","public_title":"11 oz \/ Ocean","options":["11 oz","Ocean"],"price":2900,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39127558127928,"position":42,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Ocean.jpg?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49220493148472,"title":"11 oz \/ Magenta","option1":"11 oz","option2":"Magenta","option3":null,"sku":"conditioner.11oz.magenta","requires_shipping":true,"taxable":true,"featured_image":{"id":46652890513720,"product_id":8664886346040,"position":42,"created_at":"2024-07-12T12:18:12-04:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Magenta.jpg?v=1744744471","variant_ids":[46910690820408,49220493148472]},"available":true,"name":"Custom Conditioner - 11 oz \/ Magenta","public_title":"11 oz \/ Magenta","options":["11 oz","Magenta"],"price":2900,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39127559110968,"position":43,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Magenta.jpg?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49220493345080,"title":"11 oz \/ Flamingo","option1":"11 oz","option2":"Flamingo","option3":null,"sku":"conditioner.11oz.flamingo","requires_shipping":true,"taxable":true,"featured_image":{"id":44255109087544,"product_id":8664886346040,"position":36,"created_at":"2024-01-11T15:34:53-05:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Flam
55ingo_variant.png?v=1744744471","variant_ids":[49220493345080]},"available":true,"name":"Custom Conditioner - 11 oz \/ Flamingo","public_title":"11 oz \/ Flamingo","options":["11 oz","Flamingo"],"price":2900,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711112573240,"position":37,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Flamingo_variant.png?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49220492984632,"title":"11 oz \/ Orange","option1":"11 oz","option2":"Orange","option3":null,"sku":"conditioner.11oz.orange","requires_shipping":true,"taxable":true,"featured_image":{"id":46652918923576,"product_id":8664886346040,"position":44,"created_at":"2024-07-12T12:18:12-04:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Orange.jpg?v=1744744471","variant_ids":[46910690623800,49220492984632]},"available":true,"name":"Custom Conditioner - 11 oz \/ Orange","public_title":"11 oz \/ Orange","options":["11 oz","Orange"],"price":2900,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39127558586680,"position":45,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Orange.jpg?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49220493246776,"title":"11 oz \/ Function Green","option1":"11 oz","option2":"Function Green","option3":null,"sku":"conditioner.11oz.function-green","requires_shipping":true,"taxable":true,"featured_image":{"id":44255106924856,"product_id":8664886346040,"position":35,"created_at":"2024-01-11T15:34:42-05:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Function_variant.png?v=1744744471","variant_ids":[49220493246776]},"available":true,"name":"Custom Conditioner - 11 oz \/ Function Green","public_title":"11 oz \/ Function Green","options":["11 oz","Function Green"],"price":2900,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711110279480,"position":36,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Function_variant.png?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}}
55,{"id":49234639978808,"title":"11 oz \/ Sunkissed","option1":"11 oz","option2":"Sunkissed","option3":null,"sku":"conditioner.11oz.sunkissed","requires_shipping":true,"taxable":true,"featured_image":{"id":44251957395768,"product_id":8664886346040,"position":23,"created_at":"2024-01-11T12:01:53-05:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_sunkissed_variant.png?v=1744744471","variant_ids":[49234639978808]},"available":true,"name":"Custom Conditioner - 11 oz \/ Sunkissed","public_title":"11 oz \/ Sunkissed","options":["11 oz","Sunkissed"],"price":2900,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36707916972344,"position":24,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_sunkissed_variant.png?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":51757618889016,"title":"11 oz \/ Pink","option1":"11 oz","option2":"Pink","option3":null,"sku":"conditioner.11oz.pink","requires_shipping":true,"taxable":true,"featured_image":{"id":46652978856248,"product_id":8664886346040,"position":46,"created_at":"2024-07-12T12:18:12-04:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Red.jpg?v=1744744471","variant_ids":[46910690558264,49220492919096,51757618889016]},"available":true,"name":"Custom Conditioner - 11 oz \/ Pink","public_title":"11 oz \/ Pink","options":["11 oz","Pink"],"price":2900,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39127558422840,"position":47,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Red.jpg?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910690033976,"title":"8 oz \/ Dye Free","option1":"8 oz","o
55ption2":"Dye Free","option3":null,"sku":"conditioner.8oz.dye-free","requires_shipping":true,"taxable":true,"featured_image":{"id":44251940913464,"product_id":8664886346040,"position":20,"created_at":"2024-01-11T12:01:10-05:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_white_variant.png?v=1744744471","variant_ids":[46910690033976]},"available":true,"name":"Custom Conditioner - 8 oz \/ Dye Free","public_title":"8 oz \/ Dye Free","options":["8 oz","Dye Free"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36707900293432,"position":21,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_white_variant.png?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910690001208,"title":"8 oz \/ Purple","option1":"8 oz","o
55ption2":"Purple","option3":null,"sku":"conditioner.8oz.purple","requires_shipping":true,"taxable":true,"featured_image":{"id":44251938226488,"product_id":8664886346040,"position":19,"created_at":"2024-01-11T12:00:56-05:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Purple_variant.png?v=1744744471","variant_ids":[46910690001208]},"available":true,"name":"Custom Conditioner - 8 oz \/ Purple","public_title":"8 oz \/ Purple","options":["8 oz","Purple"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36707897606456,"position":20,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Purple_variant.png?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910689771832,"title":"8 oz \/ Blue","option1":"8 oz","o
55ption2":"Blue","option3":null,"sku":"conditioner.8oz.blue","requires_shipping":true,"taxable":true,"featured_image":{"id":44251701182776,"product_id":8664886346040,"position":15,"created_at":"2024-01-11T11:47:33-05:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Blue_variant.png?v=1744744471","variant_ids":[46910689771832]},"available":true,"name":"Custom Conditioner - 8 oz \/ Blue","public_title":"8 oz \/ Blue","options":["8 oz","Blue"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":36707653091640,"position":16,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Blue_variant.png?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}}
55,{"id":46910689837368,"title":"8 oz \/ Red","option1":"8 oz","option2":"Red","option3":null,"sku":"conditioner.8oz.red","requires_shipping":true,"taxable":true,"featured_image":{"id":44251708358968,"product_id":8664886346040,"position":16,"created_at":"2024-01-11T11:47:47-05:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_red_variant.png?v=1744744471","variant_ids":[46910689837368,51757618921784]},"available":true,"name":"Custom Conditioner - 8 oz \/ Red","public_title":"8 oz \/ Red","options":["8 oz","Red"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36707660398904,"position":17,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_red_variant.png?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910689870136,"title":"8 oz \/ Green","option1":"8 oz","o
55ption2":"Green","option3":null,"sku":"conditioner.8oz.green","requires_shipping":true,"taxable":true,"featured_image":{"id":44251711603000,"product_id":8664886346040,"position":17,"created_at":"2024-01-11T11:47:59-05:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Green_variant.png?v=1744744471","variant_ids":[46910689870136]},"available":true,"name":"Custom Conditioner - 8 oz \/ Green","public_title":"8 oz \/ Green","options":["8 oz","Green"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36707663774008,"position":18,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Green_variant.png?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910690099512,"title":"8 oz \/ Ocean","option1":"8 oz","o
55ption2":"Ocean","option3":null,"sku":"conditioner.8oz.ocean","requires_shipping":true,"taxable":true,"featured_image":{"id":44251945468216,"product_id":8664886346040,"position":21,"created_at":"2024-01-11T12:01:25-05:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Ocean_variant.png?v=1744744471","variant_ids":[46910690099512]},"available":true,"name":"Custom Conditioner - 8 oz \/ Ocean","public_title":"8 oz \/ Ocean","options":["8 oz","Ocean"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36707904979256,"position":22,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Ocean_variant.png?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910690263352,"title":"8 oz \/ Magenta","option1":"8 oz","o
55ption2":"Magenta","option3":null,"sku":"conditioner.8oz.magenta","requires_shipping":true,"taxable":true,"featured_image":{"id":44251954741560,"product_id":8664886346040,"position":22,"created_at":"2024-01-11T12:01:40-05:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Magenta_variant.png?v=1744744471","variant_ids":[46910690263352]},"available":true,"name":"Custom Conditioner - 8 oz \/ Magenta","public_title":"8 oz \/ Magenta","options":["8 oz","Magenta"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36707914318136,"position":23,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Magenta_variant.png?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910690427192,"title":"8 oz \/ Flamingo","option1":"8 oz","o
55ption2":"Flamingo","option3":null,"sku":"conditioner.8oz.flamingo","requires_shipping":true,"taxable":true,"featured_image":{"id":44251965489464,"product_id":8664886346040,"position":25,"created_at":"2024-01-11T12:02:24-05:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Flamingo_variant.png?v=1744744471","variant_ids":[46910690427192]},"available":true,"name":"Custom Conditioner - 8 oz \/ Flamingo","public_title":"8 oz \/ Flamingo","options":["8 oz","Flamingo"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36707925262648,"position":26,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Flamingo_variant.png?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910689935672,"title":"8 oz \/ Orange","option1":"8 oz","o
55ption2":"Orange","option3":null,"sku":"conditioner.8oz.orange","requires_shipping":true,"taxable":true,"featured_image":{"id":44251933049144,"product_id":8664886346040,"position":18,"created_at":"2024-01-11T12:00:39-05:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Orange_variant.png?v=1744744471","variant_ids":[46910689935672,49234666422584]},"available":true,"name":"Custom Conditioner - 8 oz \/ Orange","public_title":"8 oz \/ Orange","options":["8 oz","Orange"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36707892199736,"position":19,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Orange_variant.png?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910690361656,"title":"8 oz \/ Function Green","option1":"8 oz","o
55ption2":"Function Green","option3":null,"sku":"conditioner.8oz.function-green","requires_shipping":true,"taxable":true,"featured_image":{"id":44251961360696,"product_id":8664886346040,"position":24,"created_at":"2024-01-11T12:02:12-05:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_function_variant.png?v=1744744471","variant_ids":[46910690361656]},"available":true,"name":"Custom Conditioner - 8 oz \/ Function Green","public_title":"8 oz \/ Function Green","options":["8 oz","Function Green"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36707921002808,"position":25,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_function_variant.png?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49234666422584,"title":"8 oz \/ Sunkissed","option1":"8 oz","o
55ption2":"Sunkissed","option3":null,"sku":"conditioner.8oz.sunkissed","requires_shipping":true,"taxable":true,"featured_image":{"id":44251933049144,"product_id":8664886346040,"position":18,"created_at":"2024-01-11T12:00:39-05:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Orange_variant.png?v=1744744471","variant_ids":[46910689935672,49234666422584]},"available":true,"name":"Custom Conditioner - 8 oz \/ Sunkissed","public_title":"8 oz \/ Sunkissed","options":["8 oz","Sunkissed"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36707892199736,"position":19,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Orange_variant.png?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":51757618921784,"title":"8 oz \/ Pink","option1":"8 oz","o
55ption2":"Pink","option3":null,"sku":"conditioner.8oz.pink","requires_shipping":true,"taxable":true,"featured_image":{"id":44251708358968,"product_id":8664886346040,"position":16,"created_at":"2024-01-11T11:47:47-05:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_red_variant.png?v=1744744471","variant_ids":[46910689837368,51757618921784]},"available":true,"name":"Custom Conditioner - 8 oz \/ Pink","public_title":"8 oz \/ Pink","options":["8 oz","Pink"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36707660398904,"position":17,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_red_variant.png?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910690689336,"title":"16 oz \/ Dye Free","option1":"16 oz","option2":"Dye Free","option3":null,"sku":"conditioner.16oz.dye-free","requires_shipping":true,"taxable":true,"featured_image":{"id":46652890382648,"product_id":8664886346040,"position":40,"created_at":"2024-07-12T12:18:11-04:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Dye_Free.jpg?v=1744744471","variant_ids":[46910690689336,49220493050168]},"available":true,"name":"Custom Conditioner - 16 oz \/ Dye Free","public_title":"16 oz \/ Dye Free","options":["16 oz","Dye Free"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39127557734712,"position":41,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Dye_Free.jpg?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910690656568,"title":"16 oz \/ Purple","option1":"16 oz","option2":"Purple","option3":null,"sku":"conditioner.16oz.purple","requires_shipping":true,"taxable":true,"featured_image":{"id":46652890349880,"product_id":8664886346040,"position":39,"created_at":"2024-0
557-12T12:18:12-04:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Purple.jpg?v=1744744471","variant_ids":[46910690656568,49220493017400]},"available":true,"name":"Custom Conditioner - 16 oz \/ Purple","public_title":"16 oz \/ Purple","options":["16 oz","Purple"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39127558652216,"position":40,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Purple.jpg?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910690492728,"title":"16 oz \/ Blue","option1":"16 oz","option2":"Blue","option3":null,"sku":"conditioner.16oz.blue","requires_shipping":true,"taxable":true,"featured_image":{"id":46652978823480,"product_id":8664886346040,"position":45,"created_at":"2024-07-12T12:20:35-04:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Blue_e9dfe48b-10dd-4bca-8847-ebbef208af9b.jpg?v=1744744471","variant_ids":[46910690492728,49220492886328]},"available":true,"name":"Custom Conditioner - 16 oz \/ Blue","public_title":"16 oz \/ Blue","options":["16 oz","Blue"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39127621239096,"position":46,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Blue_e9dfe48b-10dd-4bca-8847-ebbef208af9b.jpg?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910690558264,"title":"16 oz \/ Red","option1":"16 oz","option2":"Red","option3":null,"sku":"conditioner.16oz.red","requires_shipping":true,"taxable":true,"featured_image":{"id":46652978856248,"product_id":8664886346040,"position":46,"created_at":"2024-0
557-12T12:18:12-04:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Red.jpg?v=1744744471","variant_ids":[46910690558264,49220492919096,51757618889016]},"available":true,"name":"Custom Conditioner - 16 oz \/ Red","public_title":"16 oz \/ Red","options":["16 oz","Red"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39127558422840,"position":47,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Red.jpg?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910690591032,"title":"16 oz \/ Green","option1":"16 oz","option2":"Green","option3":null,"sku":"conditioner.16oz.green","requires_shipping":true,"taxable":true,"featured_image":{"id":46652807020856,"product_id":8664886346040,"position":38,"created_at":"2024-07-12T12:18:11-04:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Green.jpg?v=1744744471","variant_ids":[46910690591032,46910690885944]},"available":true,"name":"Custom Conditioner - 16 oz \/ Green","public_title":"16 oz \/ Green","options":["16 oz","Green"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39127558062392,"position":39,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Green.jpg?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910690722104,"title":"16 oz \/ Ocean","option1":"16 oz","option2":"Ocean","option3":null,"sku":"conditioner.16oz.ocean","requires_shipping":true,"taxable":true,"featured_image":{"id":46652890448
55184,"product_id":8664886346040,"position":41,"created_at":"2024-07-12T12:18:12-04:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Ocean.jpg?v=1744744471","variant_ids":[46910690722104,49220493115704]},"available":true,"name":"Custom Conditioner - 16 oz \/ Ocean","public_title":"16 oz \/ Ocean","options":["16 oz","Ocean"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39127558127928,"position":42,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Ocean.jpg?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910690820408,"title":"16 oz \/ Magenta","option1":"16 oz","option2":"Magenta","option3":null,"sku":"conditioner.16oz.magenta","requires_shipping":true,"taxable":true,"featured_image":{"id":46652890513720,"product_id":8664886346040,"position":42,"created_at":"2024-07-12T12:18:12-04:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Magenta.jpg?v=1744744471","variant_ids":[46910690820408,49220493148472]},"available":true,"name":"Custom Conditioner - 16 oz \/ Magenta","public_title":"16 oz \/ Magenta","options":["16 oz","Magenta"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39127559110968,"position":43,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Magenta.jpg?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910690918712,"title":"16 oz \/ Flamingo","option1":"16 oz","option2":"Flamingo","option3":null,"sku":"conditioner.16oz.flamingo","requires_shipping":true,"taxable":true,"featured_image":{"id":46652786770232,"product_id":8664886346040,"position":37,"created_at":"2024-0
557-12T12:18:12-04:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Flamingo.jpg?v=1744744471","variant_ids":[46910690918712]},"available":true,"name":"Custom Conditioner - 16 oz \/ Flamingo","public_title":"16 oz \/ Flamingo","options":["16 oz","Flamingo"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39127558717752,"position":38,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Flamingo.jpg?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910690623800,"title":"16 oz \/ Orange","option1":"16 oz","option2":"Orange","option3":null,"sku":"conditioner.16oz.orange","requires_shipping":true,"taxable":true,"featured_image":{"id":46652918923576,"product_id":8664886346040,"position":44,"created_at":"2024-07-12T12:18:12-04:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Orange.jpg?v=1744744471","variant_ids":[46910690623800,49220492984632]},"available":true,"name":"Custom Conditioner - 16 oz \/ Orange","public_title":"16 oz \/ Orange","options":["16 oz","Orange"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39127558586680,"position":45,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Orange.jpg?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910690885944,"title":"16 oz \/ Function Green","option1":"16 oz","option2":"Function Green","option3":null,"sku":"conditioner.16oz.function-green","requires_shipping":true,"taxable":true,"featured_image":{"id":46652807020856,"product_id":8664886346040,"position":38,"created_at":"2024-0
557-12T12:18:11-04:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Green.jpg?v=1744744471","variant_ids":[46910690591032,46910690885944]},"available":true,"name":"Custom Conditioner - 16 oz \/ Function Green","public_title":"16 oz \/ Function Green","options":["16 oz","Function Green"],"price":3200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39127558062392,"position":39,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Green.jpg?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49234667372856,"title":"16 oz \/ Sunkissed","option1":"16 oz","option2":"Sunkissed","option3":null,"sku":"conditioner.16oz.sunkissed","requires_shipping":true,"taxable":true,"featured_image":{"id":47749492769080,"product_id":8664886346040,"position":47,"created_at":"2024-10-02T14:01:24-04:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Sunkissed_6b114882-1fa3-4995-a64
550-f1b059795440.png?v=1744744471","variant_ids":[49234667372856]},"available":true,"name":"Custom Conditioner - 16 oz \/ Sunkissed","public_title":"16 oz \/ Sunkissed","options":["16 oz","Sunkissed"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39975127580984,"position":48,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Sunkissed_6b114882-1fa3-4995-a640-f1b059795440.png?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":51757618954552,"title":"16 oz \/ Pink","option1":"16 oz","option2":"Pink","option3":null,"sku":"conditioner.16oz.pink","requires_shipping":true,"taxable":true,"featured_image":{"id":44255076221240,"product_id":8664886346040,"position":27,"created_at":"2024-01-11T15:32:17-05:00","updated_at":"2025-04-15T15:14:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Red_variant.png?v=1744744471","variant_ids":[51757618954552]},"available":true,"name":"Custom Conditioner - 16 oz \/ Pink","public_title":"16 oz \/ Pink","options":["16 oz","Pink"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711078658360,"position":28,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Red_variant.png?v=1744744471"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030262072,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030294840,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030327608,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694905831736,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693002895672,"selling_plan_group_id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46"}],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/functionofbeauty.com\/cdn\/shop\/files\/Conditioner-Orange_Reflection.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditoner_02.jpg?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditoner_03.jpg?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditionero_04.jpg?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_05_c6f951d3-8d83-4187-abe9-6e3d12f3891e.jpg?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditioner_06.jpg?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditioner_07.jpg?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditioner_08.jpg?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditoner_09.jpg?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditioner_10.jpg?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditioner_11.jpg?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditioner_12.jpg?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditioner_14.jpg?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Orange_PLP.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Blue_variant.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_red_variant.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Green_variant.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Orange_variant.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Purple_variant.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_white_variant.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Ocean_variant.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Magenta_variant.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_sunkissed_variant.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_function_variant.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Flamingo_variant.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Blue_variant.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Red_variant.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Green_variant.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Orange_variant.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Purple_variant.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_White_variant.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Ocean_variant.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Magenta_variat.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Sunkissed_variant.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Function_variant.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Flam
55ingo_variant.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Flamingo.jpg?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Green.jpg?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Purple.jpg?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Dye_Free.jpg?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Ocean.jpg?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Magenta.jpg?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Sunkissed.jpg?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Orange.jpg?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Blue_e9dfe48b-10dd-4bca-8847-ebbef208af9b.jpg?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Red.jpg?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Sunkissed_6b114882-1fa3-4995-a64
550-f1b059795440.png?v=1744744471","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Sunkissed_d8e8065a-4fda-4e16-9354-f660c5b82c0d.png?v=1744744471"],"featured_image":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Conditioner-Orange_Reflection.png?v=1744744471","options":["Size","Color"],"media":[{"alt":null,"id":41577327198520,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Conditioner-Orange_Reflection.png?v=1744744471"},"aspect_ratio":1.0,"height":1080,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Conditioner-Orange_Reflection.png?v=1744744471","width":1080},{"alt":null,"id":35436025020728,"position":2,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditoner_02.jpg?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditoner_02.jpg?v=1744744471","width":2160},{"alt":null,"id":35436025053496,"position":3,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditoner_03.jpg?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditoner_03.jpg?v=1744744471","width":2160},{"alt":null,"id":35436024987960,"position":4,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditionero_04.jpg?v=1744744471"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditionero_04.jpg?v=1744744471","width":2176},{"alt":null,"id":35436025119032,"position":5,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_05_c6f951d3-8d83-4187-abe9-6e3d12f3891e.jpg?v=1744744471"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_05_c6f951d3-8d83-4187-abe9-6e3d12f3891e.jpg?v=1744744471","width":2176},{"alt":null,"id":35436024758584,"position":6,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditioner_06.jpg?v=1744744471"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditioner_06.jpg?v=1744744471","width":2176},{"alt":null,"id":35436024791352,"position":7,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditioner_07.jpg?v=1744744471"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditioner_07.jpg?v=1744744471","width":2176},{"alt":null,"id":35436024824120,"position":8,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditioner_08.jpg?v=1744744471"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditioner_08.jpg?v=1744744471","width":2176},{"alt":null,"id":35436025086264,"position":9,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditoner_09.jpg?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditoner_09.jpg?v=1744744471","width":2160},{"alt":null,"id":35436024856888,"position":10,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditioner_10.jpg?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditioner_10.jpg?v=1744744471","width":2160},{"alt":null,"id":35436024889656,"position":11,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditioner_11.jpg?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditioner_11.jpg?v=1744744471","width":2160},{"alt":null,"id":35436024922424,"position":12,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditioner_12.jpg?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditioner_12.jpg?v=1744744471","width":2160},{"alt":null,"id":35436024955192,"position":13,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditioner_14.jpg?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Conditioner_14.jpg?v=1744744471","width":2160},{"alt":null,"id":35541672100152,"position":14,"preview_image":{"aspect_ratio":1.0,"height":780,"width":780,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/preview_images\/21a9c33a130e4f9e9a7cfefb203578dc.thumbnail.0000000000.jpg?v=1695669899"},"aspect_ratio":1.0,"duration":5030,"media_type":"video","sources":[{"format":"mp4","height":480,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/21a9c33a130e4f9e9a7cfefb203578dc\/21a9c33a130e4f9e9a7cfefb203578dc.SD-480p-1.5Mbps-18780003.mp4?v=0","width":480},{"format":"mp4","height":720,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/21a9c33a130e4f9e9a7cfefb203578dc\/21a9c33a130e4f9e9a7cfefb203578dc.HD-720p-4.5Mbps-18780003.mp4?v=0","width":720},{"format":"m3u8","height":720,"mime_type":"application\/x-mpegURL","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/21a9c33a130e4f9e9a7cfefb203578dc\/21a9c33a130e4f9e9a7cfefb203578dc.m3u8?v=0","width":720}]},{"alt":null,"id":36711137050936,"position":15,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Orange_PLP.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Orange_PLP.png?v=1744744471","width":2160},{"alt":null,"id":36707653091640,"position":16,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Blue_variant.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Blue_variant.png?v=1744744471","width":2160},{"alt":null,"id":36707660398904,"position":17,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_red_variant.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_red_variant.png?v=1744744471","width":2160},{"alt":null,"id":36707663774008,"position":18,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Green_variant.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Green_variant.png?v=1744744471","width":2160},{"alt":null,"id":36707892199736,"position":19,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Orange_variant.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Orange_variant.png?v=1744744471","width":2160},{"alt":null,"id":36707897606456,"position":20,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Purple_variant.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Purple_variant.png?v=1744744471","width":2160},{"alt":null,"id":36707900293432,"position":21,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_white_variant.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_white_variant.png?v=1744744471","width":2160},{"alt":null,"id":36707904979256,"position":22,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Ocean_variant.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Ocean_variant.png?v=1744744471","width":2160},{"alt":null,"id":36707914318136,"position":23,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Magenta_variant.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Magenta_variant.png?v=1744744471","width":2160},{"alt":null,"id":36707916972344,"position":24,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_sunkissed_variant.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_sunkissed_variant.png?v=1744744471","width":2160},{"alt":null,"id":36707921002808,"position":25,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_function_variant.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_function_variant.png?v=1744744471","width":2160},{"alt":null,"id":36707925262648,"position":26,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Flamingo_variant.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_8oz_Flamingo_variant.png?v=1744744471","width":2160},{"alt":null,"id":36711073284408,"position":27,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Blue_variant.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Blue_variant.png?v=1744744471","width":2160},{"alt":null,"id":36711078658360,"position":28,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Red_variant.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Red_variant.png?v=1744744471","width":2160},{"alt":null,"id":36711082164536,"position":29,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Green_variant.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Green_variant.png?v=1744744471","width":2160},{"alt":null,"id":36711084785976,"position":30,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Orange_variant.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Orange_variant.png?v=1744744471","width":2160},{"alt":null,"id":36711094223160,"position":31,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Purple_variant.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Purple_variant.png?v=1744744471","width":2160},{"alt":null,"id":36711098122552,"position":32,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_White_variant.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_White_variant.png?v=1744744471","width":2160},{"alt":null,"id":36711101268280,"position":33,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Ocean_variant.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Ocean_variant.png?v=1744744471","width":2160},{"alt":null,"id":36711104577848,"position":34,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Magenta_variat.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Magenta_variat.png?v=1744744471","width":2160},{"alt":null,"id":36711107854648,"position":35,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Sunkissed_variant.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Sunkissed_variant.png?v=1744744471","width":2160},{"alt":null,"id":36711110279480,"position":36,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Function_variant.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Function_variant.png?v=1744744471","width":2160},{"alt":null,"id":36711112573240,"position":37,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Flam
55ingo_variant.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Conditioner_16oz_Flamingo_variant.png?v=1744744471","width":2160},{"alt":null,"id":39127558717752,"position":38,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Flamingo.jpg?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Flamingo.jpg?v=1744744471","width":2160},{"alt":null,"id":39127558062392,"position":39,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Green.jpg?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Green.jpg?v=1744744471","width":2160},{"alt":null,"id":39127558652216,"position":40,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Purple.jpg?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Purple.jpg?v=1744744471","width":2160},{"alt":null,"id":39127557734712,"position":41,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Dye_Free.jpg?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Dye_Free.jpg?v=1744744471","width":2160},{"alt":null,"id":39127558127928,"position":42,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Ocean.jpg?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Ocean.jpg?v=1744744471","width":2160},{"alt":null,"id":39127559110968,"position":43,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Magenta.jpg?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Magenta.jpg?v=1744744471","width":2160},{"alt":null,"id":39127558553912,"position":44,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Sunkissed.jpg?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Sunkissed.jpg?v=1744744471","width":2160},{"alt":null,"id":39127558586680,"position":45,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Orange.jpg?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Orange.jpg?v=1744744471","width":2160},{"alt":null,"id":39127621239096,"position":46,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Blue_e9dfe48b-10dd-4bca-8847-ebbef208af9b.jpg?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Blue_e9dfe48b-10dd-4bca-8847-ebbef208af9b.jpg?v=1744744471","width":2160},{"alt":null,"id":39127558422840,"position":47,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Red.jpg?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Conditioner_11oz_Red.jpg?v=1744744471","width":2160},{"alt":null,"id":39975127580984,"position":48,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Sunkissed_6b114882-1fa3-4995-a64
550-f1b059795440.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Sunkissed_6b114882-1fa3-4995-a640-f1b059795440.png?v=1744744471","width":2160},{"alt":null,"id":39975128760632,"position":49,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Sunkissed_d8e8065a-4fda-4e16-9354-f660c5b82c0d.png?v=1744744471"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Sunkissed_d8e8065a-4fda-4e16-9354-f660c5b82c0d.png?v=1744744471","width":2160},{"alt":null,"id":42071124148536,"position":50,"preview_image":{"aspect_ratio":1.0,"height":720,"width":720,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/preview_images\/a16943b2db7e40a1a62b7c95df8dc20c.thumbnail.0000000000.jpg?v=1750081967"},"aspect_ratio":1.0,"duration":2920,"media_type":"video","sources":[{"format":"mp4","height":480,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/a16943b2db7e40a1a62b7c95df8dc20c\/a16943b2db7e40a1a62b7c95df8dc20c.SD-480p-1.2Mbps-49479693.mp4?v=0","width":480},{"format":"mp4","height":720,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/a16943b2db7e40a1a62b7c95df8dc20c\/a16943b2db7e40a1a62b7c95df8dc20c.HD-720p-3.0Mbps-49479693.mp4?v=0","width":720},{"format":"m3u8","height":720,"mime_type":"application\/x-mpegURL","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/a16943b2db7e40a1a62b7c95df8dc20c\/a16943b2db7e40a1a62b7c95df8dc20c.m3u8?v=0","width":720}]}],"requires_selling_plan":false,"selling_plan_groups":[{"id":"cb93fc6109ade5c7b25b5e7d3540a2328ea72f46","name":"Conditioner","options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"values":["1 Month(s)","2 Month(s)","3 Month(s)","4 Month(s)","6 Month(s)"]}],"selling_plans":[{"id":691030262072,"name":"Delivery every 1 Month","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"1 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":691030294840,"name":"Delivery every 2 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"2 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":691030327608,"name":"Delivery every 3 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"3 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":694905831736,"name":"Delivery every 4 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"4 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":693002895672,"name":"Delivery every 6 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"6 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}}],"app_id":"294517"}],"content":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eA custom conditioner with a lightweight feel that provides essential hydration to your individual hair type. Packed full of nourishing ingredients for soft, smooth strands. Size: 11 oz\u003c\/span\u003e\u003c\/p\u003e"},{"id":8664885002552,"title":"Custom Hair Mask","handle":"hair-mask","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eA custom hair mask formulated with argan oil and jojoba ester
55s that acts as a deep conditioning treatment for the days when your hair could use a little extra love. Hydrates and nourishes dry, damaged hair. Size: 7.5 oz\u003c\/span\u003e\u003c\/p\u003e","published_at":"2023-09-18T14:35:42-04:00","created_at":"2023-09-18T14:35:42-04:00","vendor":"Function of Beauty","type":"hair mask","tags":["Action: Treatment","Haircare","in_configuration","Line: Core","Target: Hair","YCRF_haircare"],"price":2600,"price_min":2600,"price_max":2600,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":46910687183160,"title":"7.5 oz \/ Blue","option1":"7.5 oz","option2":"Blue","option3":null,"sku":"hair-mask.7.5oz.blue","requires_shipping":true,"taxable":true,"featured_image":{"id":44255442960696,"product_id":8664885002552,"position":16,"created_at":"2024-01-11T16:15:23-05:00","updated_at":"2025-04-15T15:15:27-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Blue_variant.png?v=1744744527","variant_ids":[46910687183160]},"available":true,"name":"Custom Hair Mask - 7.5 oz \/ Blue","public_title":"7.5 oz \/ Blue","options":["7.5 oz","Blue"],"price":2600,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711450575160,"position":17,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Blue_variant.png?v=1744744527"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029770552,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029803320,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029836088,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":694905962808,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":693003223352,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910687215928,"title":"7.5 oz \/ Red","option1":"7.5 oz","option2":"Red","option3":null,"sku":"hair-mask.7.5oz.red","requires_shipping":true,"taxable":true,"featured_image":{"id":44255444533560,"product_id":8664885002552,"position":17,"created_at":"2024-01-11T16:15:35-05:00","updated_at":"2025-04-15T15:15:27-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Red_variant.png?v=1744744527","variant_ids":[46910687215928]},"available":true,"name":"Custom Hair Mask - 7.5 oz \/ Red","public_title":"7.5 oz \/ Red","options":["7.5 oz","Red"],"price":2600,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":36711451984184,"position":18,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Red_variant.png?v=1744744527"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029770552,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029803320,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029836088,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":694905962808,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":693003223352,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910687248696,"title":"7.5 oz \/ Green","option1":"7.5 oz","option2":"Green","option3":null,"sku":"hair-mask.7.5oz.green","requires_shipping":true,"taxable":true,"featured_image":{"id":44255445549368,"product_id":8664885002552,"position":18,"created_at":"2024-01-11T16:15:45-05:00","updated_at":"2025-04-15T15:15:27-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Green_variant.png?v=1744744527","variant_ids":[46910687248696]},"available":true,"name":"Custom Hair Mask - 7.5 oz \/ Green","public_title":"7.5 oz \/ Green","options":["7.5 oz","Green"],"price":2600,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711452999992,"position":19,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Green_variant.png?v=1744744527"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029770552,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029803320,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029836088,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":694905962808,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":693003223352,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910687281464,"title":"7.5 oz \/ Orange","option1":"7.5 oz","option2":"Orange","option3":null,"sku":"hair-mask.7.5oz.orange","requires_shipping":true,"taxable":true,"featured_image":{"id":44255446663480,"product_id":8664885002552,"position":19,"created_at":"2024-01-11T16:15:56-0
555:00","updated_at":"2025-04-15T15:15:27-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Orange_variant.png?v=1744744527","variant_ids":[46910687281464]},"available":true,"name":"Custom Hair Mask - 7.5 oz \/ Orange","public_title":"7.5 oz \/ Orange","options":["7.5 oz","Orange"],"price":2600,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711454114104,"position":20,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Orange_variant.png?v=1744744527"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029770552,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029803320,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029836088,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":694905962808,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":693003223352,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910687314232,"title":"7.5 oz \/ Purple","option1":"7.5 oz","option2":"Purple","option3":null,"sku":"hair-mask.7.5oz.purple","requires_shipping":true,"taxable":true,"featured_image":{"id":44255447580984,"product_id":8664885002552,"position":20,"created_at":"2024-01-11T16:16:06-05:00","updated_at":"2025-04-15T15:15:27-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Purple_variant.png?v=1744744527","variant_ids":[46910687314232]},"available":true,"name":"Custom Hair Mask - 7.5 oz \/ Purple","public_title":"7.5 oz \/ Purple","options":["7.5 oz","Purple"],"price":2600,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711455031608,"position":21,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Purple_variant.png?v=1744744527"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029770552,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029803320,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029836088,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":694905962808,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":693003223352,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910687347000,"title":"7.5 oz \/ Dye Free","option1":"7.5 oz","option2":"Dye Free","option3":null,"sku":"hair-mask.7.5oz.dye-free","requires_shipping":true,"taxable":true,"featured_image":{"id":44255448596792,"product_id":8664885002552,"position":21,"created_at":"2024-01-11T16:16:17-05:00","updated_at":"2025-04-15T15:15:27-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_White_variant.png?v=1744744527","variant_ids":[46910687347000]},"available":true,"name":"Custom Hair Mask - 7.5 oz \/ Dye Free","public_title":"7.5 oz \/ Dye Free","options":["7.5 oz","Dye Free"],"price":2600,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711456047416,"position":22,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_White_variant.png?v=1744744527"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029770552,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029803320,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029836088,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":694905962808,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":693003223352,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910687379768,"title":"7.5 oz \/ Ocean","option1":"7.5 oz","option2":"Ocean","option3":null,"sku":"hair-mask.7.5oz.ocean","requires_shipping":true,"taxable":true,"featured_image":{"id":44255450071352,"product_id":8664885002552,"position":22,"created_at":"2024-01-11T16:16:28-05:00","updated_at":"2025-04-15T15:15:27-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Ocean_variant.png?v=1744744527","variant_ids":[46910687379768]},"available":true,"name":"Custom Hair Mask - 7.5 oz \/ Ocean","public_title":"7.5 oz \/ Ocean","options":["7.5 oz","Ocean"],"price":2600,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711457489208,"position":23,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Ocean_variant.png?v=1744744527"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029770552,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029803320,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029836088,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":694905962808,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":693003223352,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910687445304,"title":"7.5 oz \/ Sunkissed","option1":"7.5 oz","option2":"Sunkissed","option3":null,"sku":"hair-mask.7.5oz.sunkissed","requires_shipping":true,"taxable":true,"featured_image":{"id":44255451185464,"product_id":8664885002552,"position":23,"created_at":"2024-01-11T16:16:39-05:00","updated_at":"2025-04-15T15:15:27-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Sunkissed_variant.png?v=1744744527","variant_ids":[46910687445304]},"available":true,"name":"Custom Hair Mask - 7.5 oz \/ Sunkissed","public_title":"7.5 oz \/ Sunkissed","options":["7.5 oz","Sunkissed"],"price":2600,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711458636088,"position":24,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Sunkissed_variant.png?v=1744744527"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029770552,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029803320,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029836088,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":694905962808,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":693003223352,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910687510840,"title":"7.5 oz \/ Function Green","option1":"7.5 oz","option2":"Function Green","option3":null,"sku":"hair-mask.7.5oz.function-green","requires_shipping":true,"taxable":true,"featured_image":{"id":44255452627256,"product_id":8664885002552,"position":24,"created_at":"2024-01-11T16:16:49-05:00","updated_at":"2025-04-15T15:15:27-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Function_variant.png?v=1744744527","variant_ids":[46910687510840]},"available":true,"name":"Custom Hair Mask - 7.5 oz \/ Function Green","public_title":"7.5 oz \/ Function Green","options":["7.5 oz","Function Green"],"price":2600,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711460110648,"position":25,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Function_variant.png?v=1744744527"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029770552,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029803320,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029836088,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":694905962808,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":693003223352,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910687543608,"title":"7.5 oz \/ Flamingo","option1":"7.5 oz","option2":"Flamingo","option3":null,"sku":"hair-mask.7.5oz.flamingo","requires_shipping":true,"taxable":true,"featured_image":{"id":44255453544760,"product_id":8664885002552,"position":25,"created_at":"2024-01-11T16:17:01-05:00","updated_at":"2025-04-15T15:15:27-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Flamingo_variant.png?v=1744744527","variant_ids":[46910687543608]},"available":true,"name":"Custom Hair Mask - 7.5 oz \/ Flamingo","public_title":"7.5 oz \/ Flamingo","options":["7.5 oz","Flamingo"],"price":2600,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36711461060920,"position":26,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Flamingo_variant.png?v=1744744527"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029770552,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029803320,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029836088,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":694905962808,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":693003223352,"selling_plan_group_id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067"}],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/functionofbeauty.com\/cdn\/shop\/files\/Mask_Sky_Blue_Reflection.png?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_03.jpg?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_02.jpg?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_04_cab6da7c-a4ad-4b34-a52c-7f28cb6749d4.jpg?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_05_10ea8a25-edfb-4f7f-80a5-ded84575c5c9.jpg?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_06_e7f2bc51-d6e7-4f98-8f8d-ac13f931d97a.jpg?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_07_177c4576-d4da-4c77-86ea-879b08f31134.jpg?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_08.jpg?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_09.jpg?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_10.jpg?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_11.jpg?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_12_9b7017e7-737c-49cd-9879
55-6d6dca8a2cdd.jpg?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_14.jpg?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Blue_PLP.png?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Mask_Flamingo_variant.jpg?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Blue_variant.png?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Red_variant.png?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Green_variant.png?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Orange_variant.png?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Purple_variant.png?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_White_variant.png?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Ocean_variant.png?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Sunkissed_variant.png?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Function_variant.png?v=1744744527","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Flamingo_variant.png?v=1744744527"],"featured_image":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Mask_Sky_Blue_Reflection.png?v=1744744527","options":["Size","Color"],"media":[{"alt":null,"id":41577326739768,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Mask_Sky_Blue_Reflection.png?v=1744744527"},"aspect_ratio":1.0,"height":1080,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Mask_Sky_Blue_Reflection.png?v=1744744527","width":1080},{"alt":null,"id":35445450146104,"position":2,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_03.jpg?v=1744744527"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_03.jpg?v=1744744527","width":2160},{"alt":null,"id":35445450080568,"position":3,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_02.jpg?v=1744744527"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_02.jpg?v=1744744527","width":2160},{"alt":null,"id":35445450735928,"position":4,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_04_cab6da7c-a4ad-4b34-a52c-7f28cb6749d4.jpg?v=1744744527"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_04_cab6da7c-a4ad-4b34-a52c-7f28cb6749d4.jpg?v=1744744527","width":2176},{"alt":null,"id":35445450768696,"position":5,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_05_10ea8a25-edfb-4f7f-80a5-ded84575c5c9.jpg?v=1744744527"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_05_10ea8a25-edfb-4f7f-80a5-ded84575c5c9.jpg?v=1744744527","width":2176},{"alt":null,"id":35445450801464,"position":6,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_06_e7f2bc51-d6e7-4f98-8f8d-ac13f931d97a.jpg?v=1744744527"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_06_e7f2bc51-d6e7-4f98-8f8d-ac13f931d97a.jpg?v=1744744527","width":2176},{"alt":null,"id":35445450834232,"position":7,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_07_177c4576-d4da-4c77-86ea-879b08f31134.jpg?v=1744744527"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_07_177c4576-d4da-4c77-86ea-879b08f31134.jpg?v=1744744527","width":2176},{"alt":null,"id":35445450244408,"position":8,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_08.jpg?v=1744744527"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_08.jpg?v=1744744527","width":2160},{"alt":null,"id":35445450342712,"position":9,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_09.jpg?v=1744744527"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_09.jpg?v=1744744527","width":2160},{"alt":null,"id":35445450473784,"position":10,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_10.jpg?v=1744744527"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_10.jpg?v=1744744527","width":2160},{"alt":null,"id":35445450539320,"position":11,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_11.jpg?v=1744744527"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_11.jpg?v=1744744527","width":2160},{"alt":null,"id":35445450637624,"position":12,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_12_9b7017e7-737c-49cd-9879
55-6d6dca8a2cdd.jpg?v=1744744527"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_12_9b7017e7-737c-49cd-9879-6d6dca8a2cdd.jpg?v=1744744527","width":2160},{"alt":null,"id":35436124602680,"position":13,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_14.jpg?v=1744744527"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Mask_14.jpg?v=1744744527","width":2160},{"alt":null,"id":35541683831096,"position":14,"preview_image":{"aspect_ratio":1.0,"height":780,"width":780,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/preview_images\/96786058155a4d7b879b156ec2e33807.thumbnail.0000000000.jpg?v=1695669967"},"aspect_ratio":1.0,"duration":5030,"media_type":"video","sources":[{"format":"mp4","height":480,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/96786058155a4d7b879b156ec2e33807\/96786058155a4d7b879b156ec2e33807.SD-480p-1.5Mbps-18780060.mp4?v=0","width":480},{"format":"mp4","height":720,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/96786058155a4d7b879b156ec2e33807\/96786058155a4d7b879b156ec2e33807.HD-720p-4.5Mbps-18780060.mp4?v=0","width":720},{"format":"m3u8","height":720,"mime_type":"application\/x-mpegURL","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/96786058155a4d7b879b156ec2e33807\/96786058155a4d7b879b156ec2e33807.m3u8?v=0","width":720}]},{"alt":null,"id":36711468335416,"position":15,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Blue_PLP.png?v=1744744527"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Blue_PLP.png?v=1744744527","width":2160},{"alt":null,"id":35705136841016,"position":16,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Mask_Flamingo_variant.jpg?v=1744744527"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Mask_Flamingo_variant.jpg?v=1744744527","width":2160},{"alt":null,"id":36711450575160,"position":17,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Blue_variant.png?v=1744744527"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Blue_variant.png?v=1744744527","width":2160},{"alt":null,"id":36711451984184,"position":18,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Red_variant.png?v=1744744527"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Red_variant.png?v=1744744527","width":2160},{"alt":null,"id":36711452999992,"position":19,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Green_variant.png?v=1744744527"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Green_variant.png?v=1744744527","width":2160},{"alt":null,"id":36711454114104,"position":20,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Orange_variant.png?v=1744744527"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Orange_variant.png?v=1744744527","width":2160},{"alt":null,"id":36711455031608,"position":21,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Purple_variant.png?v=1744744527"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Purple_variant.png?v=1744744527","width":2160},{"alt":null,"id":36711456047416,"position":22,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_White_variant.png?v=1744744527"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_White_variant.png?v=1744744527","width":2160},{"alt":null,"id":36711457489208,"position":23,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Ocean_variant.png?v=1744744527"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Ocean_variant.png?v=1744744527","width":2160},{"alt":null,"id":36711458636088,"position":24,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Sunkissed_variant.png?v=1744744527"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Sunkissed_variant.png?v=1744744527","width":2160},{"alt":null,"id":36711460110648,"position":25,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Function_variant.png?v=1744744527"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Function_variant.png?v=1744744527","width":2160},{"alt":null,"id":36711461060920,"position":26,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Flamingo_variant.png?v=1744744527"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Flamingo_variant.png?v=1744744527","width":2160},{"alt":null,"id":42071124312376,"position":27,"preview_image":{"aspect_ratio":1.0,"height":720,"width":720,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/preview_images\/92b96e986a3b45a9871bbf4fb6a259bb.thumbnail.0000000000.jpg?v=1750081968"},"aspect_ratio":1.0,"duration":5000,"media_type":"video","sources":[{"format":"mp4","height":480,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/92b96e986a3b45a9871bbf4fb6a259bb\/92b96e986a3b45a9871bbf4fb6a259bb.SD-480p-1.2Mbps-49479698.mp4?v=0","width":480},{"format":"mp4","height":720,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/92b96e986a3b45a9871bbf4fb6a259bb\/92b96e986a3b45a9871bbf4fb6a259bb.HD-720p-3.0Mbps-49479698.mp4?v=0","width":720},{"format":"m3u8","height":720,"mime_type":"application\/x-mpegURL","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/92b96e986a3b45a9871bbf4fb6a259bb\/92b96e986a3b45a9871bbf4fb6a259bb.m3u8?v=0","width":720}]}
55],"requires_selling_plan":false,"selling_plan_groups":[{"id":"13fa0effd7ef69d10fdef12ccedec4c2b9c20067","name":"Hair Mask","options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"values":["1 Month(s)","2 Month(s)","3 Month(s)","4 Month(s)","6 Month(s)"]}],"selling_plans":[{"id":691029770552,"name":"Delivery every 1 Month","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"1 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":691029803320,"name":"Delivery every 2 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"2 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":691029836088,"name":"Delivery every 3 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"3 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":694905962808,"name":"Delivery every 4 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"4 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":693003223352,"name":"Delivery every 6 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"6 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}}],"app_id":"294517"}],"content":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eA custom hair mask formulated with argan oil and jojoba esters that acts as a deep conditioning treatment for the days when your hair could use a little extra love. Hydrates and nourishes dry, damaged hair. Size: 7.5 oz\u003c\/span\u003e\u003c\/p\u003e"},{"id":8664884773176,"title":"Custom Leave-in Conditioner","handle":"leave-in-conditioner","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eA custom conditioning cream formulated with avocado oil and coffee seed extract, with a lightweight feel that doubles as a moisture treatment and styling product for wet or dry hair. Size: 8 oz\u003c\/span\u003e\u003c\/p\u003e","published_at":"2023-09-18T14:35:40-04:00","created_at":"2023-09-18T14:35:40-04:00","vendor":"Function of Beauty","type":"leave-in","tags":["Action: Treatment","Haircare","in_configuration","Line: Core","Target: Hair","YCRF_haircare"],"price":2499,"price_min":2499,"price_max":2499,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":46910686527800,"title":"8 oz \/ Dye Free","option1":"8 oz","o
55ption2":"Dye Free","option3":null,"sku":"leave-in-conditioner.8oz.dye-free","requires_shipping":true,"taxable":true,"featured_image":{"id":44255585042744,"product_id":8664884773176,"position":14,"created_at":"2024-01-11T16:40:49-05:00","updated_at":"2025-04-15T15:16:11-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Leave_In_variant.png?v=1744744571","variant_ids":[46910686527800]},"available":true,"name":"Custom Leave-in Conditioner - 8 oz \/ Dye Free","public_title":"8 oz \/ Dye Free","options":["8 oz","Dye Free"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":36711593869624,"position":15,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Leave_In_variant.png?v=1744744571"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691029573944,"selling_plan_group_id":"a55c4112f8bf864248ca78b494c060808a76d8a1"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691029606712,"selling_plan_group_id":"a55c4112f8bf864248ca78b494c060808a76d8a1"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691029639480,"selling_plan_group_id":"a55c4112f8bf864248ca78b494c060808a76d8a1"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694906061112,"selling_plan_group_id":"a55c4112f8bf864248ca78b494c060808a76d8a1"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693003157816,"selling_plan_group_id":"a55c4112f8bf864248ca78b494c060808a76d8a1"}],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/functionofbeauty.com\/cdn\/shop\/files\/Leave-In_Beige_Reflection.png?v=1744744571","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-LeaveIn_03.jpg?v=1744744571","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_04_a0f88339-90f0-40db-be2f-3246bb435b6b.jpg?v=1744744571","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_05_4e140e01-138d-4e29-8cda-38c821ab1535.jpg?v=1744744571","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_06_af5d2cd4-dc6a-4c44-8ae0-dbb78671112e.jpg?v=1744744571","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_07_9d98fac3-15c9-43be-b6d0-889e19fdce52.jpg?v=1744744571","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-LeaveIn_08.jpg?v=1744744571","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-LeaveIn_09.jpg?v=1744744571","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-LeaveIn_10.jpg?v=1744744571","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-LeaveIn_11.jpg?v=1744744571","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-LeaveIn_12.jpg?v=1744744571","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-LeaveIn_14.jpg?v=1744744571","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Leave_In_PLP.png?v=1744744571","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Leave_In_variant.png?v=1744744571"],"featured_image":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Leave-In_Beige_Reflection.png?v=1744744571","options":["Size","Color"],"media":[{"alt":null,"id":41577326969144,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Leave-In_Beige_Reflection.png?v=1744744571"},"aspect_ratio":1.0,"height":1080,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Leave-In_Beige_Reflection.png?v=1744744571","width":1080},{"alt":null,"id":35446586900792,"position":2,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-LeaveIn_03.jpg?v=1744744571"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-LeaveIn_03.jpg?v=1744744571","width":2160},{"alt":null,"id":35446586835256,"position":3,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_04_a0f88339-90f0-40db-be2f-3246bb435b6b.jpg?v=1744744571"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_04_a0f88339-90f0-40db-be2f-3246bb435b6b.jpg?v=1744744571","width":2176},{"alt":null,"id":35446586802488,"position":4,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_05_4e140e01-138d-4e29-8cda-38c821ab1535.jpg?v=1744744571"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_05_4e140e01-138d-4e29-8cda-38c821ab1535.jpg?v=1744744571","width":2176},{"alt":null,"id":35446586769720,"position":5,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_06_af5d2cd4-dc6a-4c44-8ae0-dbb78671112e.jpg?v=1744744571"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_06_af5d2cd4-dc6a-4c44-8ae0-dbb78671112e.jpg?v=1744744571","width":2176},{"alt":null,"id":35446586736952,"position":6,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_07_9d98fac3-15c9-43be-b6d0-889e19fdce52.jpg?v=1744744571"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_07_9d98fac3-15c9-43be-b6d0-889e19fdce52.jpg?v=1744744571","width":2176},{"alt":null,"id":35446587130168,"position":7,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-LeaveIn_08.jpg?v=1744744571"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-LeaveIn_08.jpg?v=1744744571","width":2160},{"alt":null,"id":35446586868024,"position":8,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-LeaveIn_09.jpg?v=1744744571"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-LeaveIn_09.jpg?v=1744744571","width":2160},{"alt":null,"id":35446587064632,"position":9,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-LeaveIn_10.jpg?v=1744744571"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-LeaveIn_10.jpg?v=1744744571","width":2160},{"alt":null,"id":35446587031864,"position":10,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-LeaveIn_11.jpg?v=1744744571"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-LeaveIn_11.jpg?v=1744744571","width":2160},{"alt":null,"id":35446586999096,"position":11,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-LeaveIn_12.jpg?v=1744744571"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-LeaveIn_12.jpg?v=1744744571","width":2160},{"alt":null,"id":35446586966328,"position":12,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-LeaveIn_14.jpg?v=1744744571"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-LeaveIn_14.jpg?v=1744744571","width":2160},{"alt":null,"id":35541724037432,"position":13,"preview_image":{"aspect_ratio":1.0,"height":780,"width":780,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/preview_images\/2fd4cd55784043b9ab2d024da4658d9c.thumbnail.0000000000.jpg?v=1695670141"},"aspect_ratio":1.0,"duration":5030,"media_type":"video","sources":[{"format":"mp4","height":480,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/2fd4cd55784043b9ab2d024da4658d9c\/2fd4cd55784043b9ab2d024da4658d9c.SD-480p-1.5Mbps-18780171.mp4?v=0","width":480},{"format":"mp4","height":720,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/2fd4cd55784043b9ab2d024da4658d9c\/2fd4cd55784043b9ab2d024da4658d9c.HD-720p-4.5Mbps-18780171.mp4?v=0","width":720},{"format":"m3u8","height":720,"mime_type":"application\/x-mpegURL","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/2fd4cd55784043b9ab2d024da4658d9c\/2fd4cd55784043b9ab2d024da4658d9c.m3u8?v=0","width":720}]},{"alt":null,"id":36711598915896,"position":14,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Leave_In_PLP.png?v=1744744571"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Leave_In_PLP.png?v=1744744571","width":2160},{"alt":null,"id":36711593869624,"position":15,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Leave_In_variant.png?v=1744744571"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Leave_In_variant.png?v=1744744571","width":2160},{"alt":null,"id":42071124640056,"position":16,"preview_image":{"aspect_ratio":1.0,"height":720,"width":720,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/preview_images\/446571276e5c4f6a9c23491120a6516b.thumbnail.0000000000.jpg?v=1750081968"},"aspect_ratio":1.0,"duration":5000,"media_type":"video","sources":[{"format":"mp4","height":480,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/446571276e5c4f6a9c23491120a6516b\/446571276e5c4f6a9c23491120a6516b.SD-480p-1.2Mbps-49479699.mp4?v=0","width":480},{"format":"mp4","height":720,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/446571276e5c4f6a9c23491120a6516b\/446571276e5c4f6a9c23491120a6516b.HD-720p-3.0Mbps-49479699.mp4?v=0","width":720},{"format":"m3u8","height":720,"mime_type":"application\/x-mpegURL","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/446571276e5c4f6a9c23491120a6516b\/446571276e5c4f6a9c23491120a6516b.m3u8?v=0","width":720}]}],"requires_selling_plan":false,"selling_plan_groups":[{"id":"a55c4112f8bf864248ca78b494c060808a76d8a1","name":"Leave-in Conditioner","options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"values":["1 Month(s)","2 Month(s)","3 Month(s)","4 Month(s)","6 Month(s)"]}],"selling_plans":[{"id":691029573944,"name":"Delivery every 1 Month","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"1 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}}
55,{"id":691029606712,"name":"Delivery every 2 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"2 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":691029639480,"name":"Delivery every 3 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"3 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":694906061112,"name":"Delivery every 4 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"4 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":693003157816,"name":"Delivery every 6 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"6 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}}],"app_id":"294517"}],"content":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eA custom conditioning cream formulated with avocado oil and coffee seed extract, with a lightweight feel that doubles as a moisture treatment and styling product for wet or dry hair. Size: 8 oz\u003c\/span\u003e\u003c\/p\u003e"},{"id":8664884511032,"title":"Custom Purple Hair Mask","handle":"purple-hair-mask","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eA custom Purple Mask designed to deeply condition dry, damaged strands, while refreshing color and toning brassy hues on blonde, silver, gray, or highlighted hair thanks to neutralizing violet pigments. Leave on hair, especially brassy areas, for 2-3 minutes. Rinse thoroughly. For more intense results, leave in for an additional 1-2 minutes. Rinse your tub, shower, or sink well afterward to prevent staining. Size: 7.5 oz\u003c\/span\u003e\u003c\/p\u003e","published_at":"2023-09-18T14:35:38-04:00","created_at":"2023-09-18T14:35:38-04:00","vendor":"Function of Beauty","type":"mask","tags":["Action: Treatment","Haircare","in_configuration","Line: Core","Target: Hair","YCRF_haircare"],"price":2600,"price_min":2600,"price_max":2600,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":46910686265656,"title":"7.5 oz \/ Dark Purple","option1":"7.5 oz","option2":"Dark Purple","option3":null,"sku":"purple-hair-mask7.5oz.dark-purple","requires_shipping":true,"taxable":true,"featured_image":{"id":44255551914296,"product_id":8664884511032,"position":10,"created_at":"2024-01-11T16:35:19-05:00","updated_at":"2025-04-15T15:17:02-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Purpleblonde_variant.png?v=1744744622","variant_ids":[46910686265656]},"available":true,"name":"Custom Purple Hair Mask - 7.5 oz \/ Dark Purple","public_title":"7.5 oz \/ Dark Purple","options":["7.5 oz","Dark Purple"],"price":2600,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":36711560642872,"position":10,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Purpleblonde_variant.png?v=1744744622"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029082424,"selling_plan_group_id":"5d41c784da8845d1066a71caa6c90538ee87eb47"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029147960,"selling_plan_group_id":"5d41c784da8845d1066a71caa6c90538ee87eb47"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":691029213496,"selling_plan_group_id":"5d41c784da8845d1066a71caa6c90538ee87eb47"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":694906192184,"selling_plan_group_id":"5d41c784da8845d1066a71caa6c90538ee87eb47"},{"price_adjustments":[{"position":1,"price":2600}],"price":2600,"compare_at_price":2600,"per_delivery_price":2600,"selling_plan_id":693003321656,"selling_plan_group_id":"5d41c784da8845d1066a71caa6c90538ee87eb47"}],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/functionofbeauty.com\/cdn\/shop\/files\/Purple_Mask_Reflection.png?v=1744744622","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleHairMask_02.jpg?v=1744744622","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleHairMask_03.jpg?v=1744744622","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleHairMask_04.jpg?v=1744744622","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleHairMask_05.jpg?v=1744744622","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleHairMask_06.jpg?v=1744744622","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleHairMask_07.jpg?v=1744744622","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleHairMask_08.jpg?v=1744744622","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Purpleblonde_PLP.png?v=1744744622","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Purpleblonde_variant.png?v=1744744622"],"featured_image":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Purple_Mask_Reflection.png?v=1744744622","options":["Size","Color"],"media":[{"alt":null,"id":41577327001912,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Purple_Mask_Reflection.png?v=1744744622"},"aspect_ratio":1.0,"height":1080,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Purple_Mask_Reflection.png?v=1744744622","width":1080},{"alt":null,"id":35446733898040,"position":2,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleHairMask_02.jpg?v=1744744622"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleHairMask_02.jpg?v=1744744622","width":2160},{"alt":null,"id":35446733930808,"position":3,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleHairMask_03.jpg?v=1744744622"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleHairMask_03.jpg?v=1744744622","width":2160},{"alt":null,"id":35446733963576,"position":4,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleHairMask_04.jpg?v=1744744622"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleHairMask_04.jpg?v=1744744622","width":2160},{"alt":null,"id":35446733996344,"position":5,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleHairMask_05.jpg?v=1744744622"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleHairMask_05.jpg?v=1744744622","width":2160}
55,{"alt":null,"id":35446734061880,"position":6,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleHairMask_06.jpg?v=1744744622"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleHairMask_06.jpg?v=1744744622","width":2160},{"alt":null,"id":35446734094648,"position":7,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleHairMask_07.jpg?v=1744744622"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleHairMask_07.jpg?v=1744744622","width":2160},{"alt":null,"id":35446734127416,"position":8,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleHairMask_08.jpg?v=1744744622"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleHairMask_08.jpg?v=1744744622","width":2160},{"alt":null,"id":36711564706104,"position":9,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Purpleblonde_PLP.png?v=1744744622"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Purpleblonde_PLP.png?v=1744744622","width":2160},{"alt":null,"id":36711560642872,"position":10,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Purpleblonde_variant.png?v=1744744622"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Hair_Mask_Purpleblonde_variant.png?v=1744744622","width":2160},{"alt":null,"id":42071124541752,"position":11,"preview_image":{"aspect_ratio":1.0,"height":720,"width":720,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/preview_images\/eb42b7dd3a3a4a51997dad206330802e.thumbnail.0000000000.jpg?v=1750081968"},"aspect_ratio":1.0,"duration":5000,"media_type":"video","sources":[{"format":"mp4","height":480,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/eb42b7dd3a3a4a51997dad206330802e\/eb42b7dd3a3a4a51997dad206330802e.SD-480p-1.2Mbps-49479700.mp4?v=0","width":480},{"format":"mp4","height":720,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/eb42b7dd3a3a4a51997dad206330802e\/eb42b7dd3a3a4a51997dad206330802e.HD-720p-3.0Mbps-49479700.mp4?v=0","width":720},{"format":"m3u8","height":720,"mime_type":"application\/x-mpegURL","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/eb42b7dd3a3a4a51997dad206330802e\/eb42b7dd3a3a4a51997dad206330802e.m3u8?v=0","width":720}]}],"requires_selling_plan":false,"selling_plan_groups":[{"id":"5d41c784da8845d1066a71caa6c90538ee87eb47","name":"Purple Hair Mask","options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"values":["1 Month(s)","2 Month(s)","3 Month(s)","4 Month(s)","6 Month(s)"]}],"selling_plans":[{"id":691029082424,"name":"Delivery every 1 Month","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"1 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":691029147960,"name":"Delivery every 2 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"2 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":691029213496,"name":"Delivery every 3 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"3 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":694906192184,"name":"Delivery every 4 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"4 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":693003321656,"name":"Delivery every 6 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"6 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}}],"app_id":"294517"}],"content":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eA custom Purple Mask designed to deeply condition dry, damaged strands, while refreshing color and toning brassy hues on blonde, silver, gray, or highlighted hair thanks to neutralizing violet pigments. Leave on hair, especially brassy areas, for 2-3 minutes. Rinse thoroughly. For more intense results, leave in for an additional 1-2 minutes. Rinse your tub, shower, or sink well afterward to prevent staining. Size: 7.5 oz\u003c\/span\u003e\u003c\/p\u003e"},{"id":8664884412728,"title":"Custom Purple Shampoo","handle":"purple-shampoo","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eA custom Purple Shampoo formulated with neutralizing violet pigments designed to gently cleanse the scalp and tone brassy hues on blonde, silver, gray, or highlighted hair for fresher-looking color. Leave on hair, especially brassy areas, for 2-3 minutes. Rinse thoroughly. For more intense results, leave in for an additional 1-2 minutes. Rinse your tub, shower, or sink well afterward to prevent staining. Size: 11 oz\u003c\/span\u003e\u003c\/p\u003e","published_at":"2023-09-18T14:35:37-04:00","created_at":"2023-09-18T14:35:37-04:00","vendor":"Function of Beauty","type":"shampoo","tags":["Action: Care","badge: EXTRA 10% OFF","Haircare","in_configuration","Line: Core","Target: Hair","YCRF_haircare"],"price":2300,"price_min":2300,"price_max":2900,"available":true,"price_varies":true,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":49220511269176,"title":"11 oz \/ Dark Purple","option1":"11 oz","option2":"Dark Purple","option3":null,"sku":"purple-shampoo.11oz.dark-purple","requires_shipping":true,"taxable":true,"featured_image":{"id":44255501025592,"product_id":8664884412728,"position":9,"created_at":"2024-01-11T16:26:14-05:00","updated_at":"2025-04-15T15:17:28-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Purpleblonde_PLP.png?v=1744744648","variant_ids":[49220511269176]},"available":true,"name":"Custom Purple Shampoo - 11 oz \/ Dark Purple","public_title":"11 oz \/ Dark Purple","options":["11 oz","Dark Purple"],"price":2900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":36711509098808,"position":9,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Purpleblonde_PLP.png?v=1744744648"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030950200,"selling_plan_group_id":"725ee3873563f9d2326151b04641cdd28915c1f7"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030982968,"selling_plan_group_id":"725ee3873563f9d2326151b04641cdd28915c1f7"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691031015736,"selling_plan_group_id":"725ee3873563f9d2326151b04641cdd28915c1f7"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694906224952,"selling_plan_group_id":"725ee3873563f9d2326151b04641cdd28915c1f7"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693003354424,"selling_plan_group_id":"725ee3873563f9d2326151b04641cdd28915c1f7"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910686134584,"title":"8 oz \/ Dark Purple","option1":"8 oz","o
55ption2":"Dark Purple","option3":null,"sku":"purple-shampoo.8oz.dark-purple","requires_shipping":true,"taxable":true,"featured_image":{"id":44255491785016,"product_id":8664884412728,"position":10,"created_at":"2024-01-11T16:24:31-05:00","updated_at":"2025-04-15T15:17:28-04:00","alt":null,"width":4286,"height":5121,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_purpleblonde_variant.png?v=1744744648","variant_ids":[46910686134584]},"available":true,"name":"Custom Purple Shampoo - 8 oz \/ Dark Purple","public_title":"8 oz \/ Dark Purple","options":["8 oz","Dark Purple"],"price":2300,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":36711499628856,"position":10,"preview_image":{"aspect_ratio":0.837,"height":5121,"width":4286,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_purpleblonde_variant.png?v=1744744648"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2300}],"price":2300,"compare_at_price":2300,"per_delivery_price":2300,"selling_plan_id":691030950200,"selling_plan_group_id":"725ee3873563f9d2326151b04641cdd28915c1f7"},{"price_adjustments":[{"position":1,"price":2300}],"price":2300,"compare_at_price":2300,"per_delivery_price":2300,"selling_plan_id":691030982968,"selling_plan_group_id":"725ee3873563f9d2326151b04641cdd28915c1f7"},{"price_adjustments":[{"position":1,"price":2300}],"price":2300,"compare_at_price":2300,"per_delivery_price":2300,"selling_plan_id":691031015736,"selling_plan_group_id":"725ee3873563f9d2326151b04641cdd28915c1f7"},{"price_adjustments":[{"position":1,"price":2300}],"price":2300,"compare_at_price":2300,"per_delivery_price":2300,"selling_plan_id":694906224952,"selling_plan_group_id":"725ee3873563f9d2326151b04641cdd28915c1f7"},{"price_adjustments":[{"position":1,"price":2300}],"price":2300,"compare_at_price":2300,"per_delivery_price":2300,"selling_plan_id":693003354424,"selling_plan_group_id":"725ee3873563f9d2326151b04641cdd28915c1f7"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910686167352,"title":"16 oz \/ Dark Purple","option1":"16 oz","option2":"Dark Purple","option3":null,"sku":"purple-shampoo.16oz.dark-purple","requires_shipping":true,"taxable":true,"featured_image":{"id":44255494635832,"product_id":8664884412728,"position":11,"created_at":"2024-01-11T16:25:01-05:00","updated_at":"2025-04-15T15:17:28-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Purpleblonde_variant.png?v=1744744648","variant_ids":[46910686167352]},"available":true,"name":"Custom Purple Shampoo - 16 oz \/ Dark Purple","public_title":"16 oz \/ Dark Purple","options":["16 oz","Dark Purple"],"price":2900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":36711502545208,"position":11,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Purpleblonde_variant.png?v=1744744648"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030950200,"selling_plan_group_id":"725ee3873563f9d2326151b04641cdd28915c1f7"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030982968,"selling_plan_group_id":"725ee3873563f9d2326151b04641cdd28915c1f7"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691031015736,"selling_plan_group_id":"725ee3873563f9d2326151b04641cdd28915c1f7"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694906224952,"selling_plan_group_id":"725ee3873563f9d2326151b04641cdd28915c1f7"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693003354424,"selling_plan_group_id":"725ee3873563f9d2326151b04641cdd28915c1f7"}],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/functionofbeauty.com\/cdn\/shop\/files\/Purple_Shampoo_Reflection.png?v=1744744648","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleShampoo_02.jpg?v=1744744648","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleShampoo_03.jpg?v=1744744648","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleShampoo_04.jpg?v=1744744648","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleShampoo_05.jpg?v=1744744648","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleShampoo_06.jpg?v=1744744648","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleShampoo_07.jpg?v=1744744648","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleShampoo_08.jpg?v=1744744648","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Purpleblonde_PLP.png?v=1744744648","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_purpleblonde_variant.png?v=1744744648","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Purpleblonde_variant.png?v=1744744648"],"featured_image":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Purple_Shampoo_Reflection.png?v=1744744648","options":["Size","Color"],"media":[{"alt":null,"id":41577327067448,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Purple_Shampoo_Reflection.png?v=1744744648"},"aspect_ratio":1.0,"height":1080,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Purple_Shampoo_Reflection.png?v=1744744648","width":1080},{"alt":null,"id":35446709387576,"position":2,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleShampoo_02.jpg?v=1744744648"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleShampoo_02.jpg?v=1744744648","width":2160},{"alt":null,"id":35446709420344,"position":3,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleShampoo_03.jpg?v=1744744648"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleShampoo_03.jpg?v=1744744648","width":2160},{"alt":null,"id":35446709518648,"position":4,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleShampoo_04.jpg?v=1744744648"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleShampoo_04.jpg?v=1744744648","width":2160},{"alt":null,"id":35446709584184,"position":5,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleShampoo_05.jpg?v=1744744648"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleShampoo_05.jpg?v=1744744648","width":2160},{"alt":null,"id":35446709649720,"position":6,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleShampoo_06.jpg?v=1744744648"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleShampoo_06.jpg?v=1744744648","width":2160},{"alt":null,"id":35446709715256,"position":7,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleShampoo_07.jpg?v=1744744648"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleShampoo_07.jpg?v=1744744648","width":2160},{"alt":null,"id":35446709780792,"position":8,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleShampoo_08.jpg?v=1744744648"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-PurpleShampoo_08.jpg?v=1744744648","width":2160},{"alt":null,"id":36711509098808,"position":9,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Purpleblonde_PLP.png?v=1744744648"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Purpleblonde_PLP.png?v=1744744648","width":2160},{"alt":null,"id":36711499628856,"position":10,"preview_image":{"aspect_ratio":0.837,"height":5121,"width":4286,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_purpleblonde_variant.png?v=1744744648"},"aspect_ratio":0.837,"height":5121,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_purpleblonde_variant.png?v=1744744648","width":4286},{"alt":null,"id":36711502545208,"position":11,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Purpleblonde_variant.png?v=1744744648"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Purpleblonde_variant.png?v=1744744648","width":2160},{"alt":null,"id":42071124443448,"position":12,"preview_image":{"aspect_ratio":1.0,"height":720,"width":720,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/preview_images\/b3d8860dc32f4b9ea7ea8ac94c223f78.thumbnail.0000000000.jpg?v=1750081968"},"aspect_ratio":1.0,"duration":5000,"media_type":"video","sources":[{"format":"mp4","height":480,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/b3d8860dc32f4b9ea7ea8ac94c223f78\/b3d8860dc32f4b9ea7ea8ac94c223f78.SD-480p-1.2Mbps-49479701.mp4?v=0","width":480},{"format":"mp4","height":720,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/b3d8860dc32f4b9ea7ea8ac94c223f78\/b3d8860dc32f4b9ea7ea8ac94c223f78.HD-720p-3.0Mbps-49479701.mp4?v=0","width":720},{"format":"m3u8","height":720,"mime_type":"application\/x-mpegURL","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/b3d8860dc32f4b9ea7ea8ac94c223f78\/b3d8860dc32f4b9ea7ea8ac94c223f78.m3u8?v=0","width":720}]}],"requires_selling_plan":false,"selling_plan_groups":[{"id":"725ee3873563f9d2326151b04641cdd28915c1f7","name":"Purple Shampoo","options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"values":["1 Month(s)","2 Month(s)","3 Month(s)","4 Month(s)","6 Month(s)"]}],"selling_plans":[{"id":691030950200,"name":"Delivery every 1 Month","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"1 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":691030982968,"name":"Delivery every 2 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"2 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":691031015736,"name":"Delivery every 3 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"3 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":694906224952,"name":"Delivery every 4 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"4 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":693003354424,"name":"Delivery every 6 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"6 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}}],"app_id":"294517"}],"content":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eA custom Purple Shampoo formulated with neutralizing violet pigments designed to gently cleanse the scalp and tone brassy hues on blonde, silver, gray, or highlighted hair for fresher-looking color. Leave on hair, especially brassy areas, for 2-3 minutes. Rinse thoroughly. For more intense results, leave in for an additional 1-2 minutes. Rinse your tub, shower, or sink well afterward to prevent staining. Size: 11 oz\u003c\/span\u003e\u003c\/p\u003e"},{"id":8664884052280,"title":"Custom Shampoo","handle":"shampoo","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003e\u003c\/span\u003e\u003cspan data-mce-fragment=\"1\"\u003e\u003c\/span\u003e\u003cspan data-mce-fragment=\"1\"\u003eA custom shampoo that gently cleanses the scalp and hair without stripping, while providing hydration. Formulated to fit your personalized needs and reveal healthy looking hair. Size: 11 oz\u003c\/span\u003e\u003cbr\u003e\u003c\/p\u003e","published_at":"2023-09-18T14:35:25-04:00","created_at":"2023-09-18T14:35:35-04:00","vendor":"Function of Beauty","type":"shampoo","tags":["Action: Care","badge: bestseller","first_time_discount","Haircare","in_configuration","Line: Core","Target: Hair","YCRF_haircare"],"price":2499,"price_min":2499,"price_max":3299,"available":true,"price_varies":true,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":49220485480760,"title":"11 oz \/ Dye Free","option1":"11 oz","option2":"Dye Free","option3":null,"sku":"shampoo.11oz.dye-free","requires_shipping":true,"taxable":true,"featured_image":{"id":44250778403128,"product_id":8664884052280,"position":33,"created_at":"2024-01-11T10:47:41-05:00","updated_at":"2025-10-23T14:21:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_White_variant.png?v=1761243691","variant_ids":[49220485480760]},"available":true,"name":"Custom Shampoo - 11 oz \/ Dye Free","public_title":"11 oz \/ Dye Free","options":["11 oz","Dye Free"],"price":2900,"weight":227,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":36706682143032,"position":34,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_White_variant.png?v=1761243691"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_ru
55le":{"min":1,"max":null,"increment":1}},{"id":49220485447992,"title":"11 oz \/ Purple","option1":"11 oz","option2":"Purple","option3":null,"sku":"shampoo.11oz.purple","requires_shipping":true,"taxable":true,"featured_image":{"id":44250775486776,"product_id":8664884052280,"position":32,"created_at":"2024-01-11T10:47:29-05:00","updated_at":"2025-10-23T14:21:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Purple_variant.png?v=1761243691","variant_ids":[49220485447992]},"available":true,"name":"Custom Shampoo - 11 oz \/ Purple","public_title":"11 oz \/ Purple","options":["11 oz","Purple"],"price":2900,"weight":227,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36706679292216,"position":33,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Purple_variant.png?v=1761243691"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49220485316920,"title":"11 oz \/ Blue","option1":"11 oz","option2":"Blue","option3":null,"sku":"shampoo.11oz.blue","requires_shipping":true,"taxable":true,"featured_image":{"id":46631377535288,"product_id":8664884052280,"position":41,"created_at":"2024-07-11T20:01:21-04:00","updated_at":"2025-07-31T17:59:20-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Blue_0f082857-6b09-46c8-8cd8-75324a2303f8.jpg?v=1753999160","variant_ids":[46910685479224,49220485316920]},"available":true,"name":"Custom Shampoo - 11 oz \/ Blue","public_title":"11 oz \/ Blue","options":["11 oz","Blue"],"price":2900,"weight":227,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39116752978232,"position":42,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Blue_0f082857-6b09-46c8-8cd8-75324a2303f8.jpg?v=1753999160"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49220485349688,"title":"11 oz \/ Red","option1":"11 oz","option2":"Red","option3":null,"sku":"shampoo.11oz.red","requires_shipping":true,"taxable":true,"featured_image":{"id":46631444054328,"product_id":8664884052280,"position":42,"created_at":"2024-0
557-11T20:05:18-04:00","updated_at":"2025-07-31T17:59:20-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Red.jpg?v=1753999160","variant_ids":[46910685511992,49220485349688,51757616791864,51757616824632,51757616857400]},"available":true,"name":"Custom Shampoo - 11 oz \/ Red","public_title":"11 oz \/ Red","options":["11 oz","Red"],"price":2900,"weight":227,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39116785975608,"position":43,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Red.jpg?v=1753999160"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49220485382456,"title":"11 oz \/ Green","option1":"11 oz","option2":"Green","option3":null,"sku":"shampoo.11oz.green","requires_shipping":true,"taxable":true,"featured_image":{"id":46631547011384,"product_id":8664884052280,"position":43,"created_at":"2024-07-11T20:08:08-04:00","updated_at":"2025-07-31T17:59:20-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Green.jpg?v=1753999160","variant_ids":[46910685544760,49220485382456]},"available":true,"name":"Custom Shampoo - 11 oz \/ Green","public_title":"11 oz \/ Green","options":["11 oz","Green"],"price":2900,"weight":227,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39116820021560,"position":44,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Green.jpg?v=1753999160"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49220485513528,"title":"11 oz \/ Ocean","option1":"11 oz","option2":"Ocean","option3":null,"sku":"shampoo.11oz.ocean","requires_shipping":true,"taxable":true,"featured_image":{"id":44250781155640,"product_id":8664884052280,"position":34,"created_at":"2024-01-11T10:47:55-05:00","updated_at":"2025-10-23T14:21:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Ocean_variant.png?v=1761243691","variant_ids":[49220485513528]},"available":true,"name":"Custom Shampoo - 11 oz \/ Ocean","public_title":"11 oz \/ Ocean","options":["11 oz","Ocean"],"price":2900,"weight":227,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36706684895544,"position":35,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Ocean_variant.png?v=1761243691"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49220485546296,"title":"11 oz \/ Magenta","option1":"11 oz","option2":"Magenta","option3":null,"sku":"shampoo.11oz.magenta","requires_shipping":true,"taxable":true,"featured_image":{"id":44250784071992,"product_id":8664884052280,"position":35,"created_at":"2024-01-11T10:48:10-05:00","updated_at":"2025-10-23T14:21:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Magenta_variant.png?v=1761243691","variant_ids":[49220485546296]},"available":true,"name":"Custom Shampoo - 11 oz \/ Magenta","public_title":"11 oz \/ Magenta","options":["11 oz","Magenta"],"price":2900,"weight":227,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36706688172344,"position":36,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Magenta_variant.png?v=1761243691"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49220485644600,"title":"11 oz \/ Flamingo","option1":"11 oz","option2":"Flamingo","option3":null,"sku":"shampoo.11oz.flamingo","requires_shipping":true,"taxable":true,"featured_image":{"id":44250797146424,"product_id":8664884052280,"position":37,"created_at":"2024-01-11T10:48:59-05:00","updated_at":"2025-07-31T17:59:20-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Flam
55ingo_variant.png?v=1753999160","variant_ids":[49220485644600]},"available":true,"name":"Custom Shampoo - 11 oz \/ Flamingo","public_title":"11 oz \/ Flamingo","options":["11 oz","Flamingo"],"price":2900,"weight":227,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36706701672760,"position":38,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Flamingo_variant.png?v=1753999160"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49220485611832,"title":"11 oz \/ Function Green","option1":"11 oz","option2":"Function Green","option3":null,"sku":"shampoo.11oz.function-green","requires_shipping":true,"taxable":true,"featured_image":{"id":44250789839160,"product_id":8664884052280,"position":29,"created_at":"2024-01-11T10:48:38-05:00","updated_at":"2025-10-23T14:28:38-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Function_variant.png?v=1761244118","variant_ids":[49220485611832]},"available":true,"name":"Custom Shampoo - 11 oz \/ Function Green","public_title":"11 oz \/ Function Green","options":["11 oz","Function Green"],"price":2900,"weight":227,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36706694234424,"position":30,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Function_variant.png?v=1761244118"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49220485415224,"title":"11 oz \/ Orange","option1":"11 oz","option2":"Orange","option3":null,"sku":"shampoo.11oz.orange","requires_shipping":true,"taxable":true,"featured_image":{"id":44250773455160,"product_id":8664884052280,"position":31,"created_at":"2024-01-11T10:47:15-05:00","updated_at":"2025-10-23T14:21:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Orange_variant.png?v=1761243691","variant_ids":[49220485415224]},"available":true,"name":"Custom Shampoo - 11 oz \/ Orange","public_title":"11 oz \/ Orange","options":["11 oz","Orange"],"price":2900,"weight":227,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36706677227832,"position":32,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Orange_variant.png?v=1761243691"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49234578932024,"title":"11 oz \/ Black","option1":"11 oz","option2":"Black","option3":null,"sku":"shampoo.11oz.black","requires_shipping":true,"taxable":true,"featured_image":{"id":44250800521528,"product_id":8664884052280,"position":38,"created_at":"2024-01-11T10:49:12-05:00","updated_at":"2025-07-31T17:59:20-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_black_variant.png?v=1753999160","variant_ids":[49234578932024,49234621989176]},"available":true,"name":"Custom Shampoo - 11 oz \/ Black","public_title":"11 oz \/ Black","options":["11 oz","Black"],"price":2900,"weight":227,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36706705604920,"position":39,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_black_variant.png?v=1753999160"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49234580275512,"title":"11 oz \/ Sunkissed","option1":"11 oz","option2":"Sunkissed","option3":null,"sku":"shampoo.11oz.sunkissed","requires_shipping":true,"taxable":true,"featured_image":{"id":46631547044152,"product_id":8664884052280,"position":44,"created_at":"2024-0
557-11T20:08:30-04:00","updated_at":"2025-07-31T17:59:20-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Orange.jpg?v=1753999160","variant_ids":[46910685577528,49234580275512]},"available":true,"name":"Custom Shampoo - 11 oz \/ Sunkissed","public_title":"11 oz \/ Sunkissed","options":["11 oz","Sunkissed"],"price":2900,"weight":227,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39116824707384,"position":45,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Orange.jpg?v=1753999160"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":51757616791864,"title":"11 oz \/ Pink","option1":"11 oz","option2":"Pink","option3":null,"sku":"shampoo.11oz.pink","requires_shipping":true,"taxable":true,"featured_image":{"id":46631444054328,"product_id":8664884052280,"position":42,"created_at":"2024-07-11T20:05:18-04:00","updated_at":"2025-07-31T17:59:20-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Red.jpg?v=1753999160","variant_ids":[46910685511992,49220485349688,51757616791864,51757616824632,51757616857400]},"available":true,"name":"Custom Shampoo - 11 oz \/ Pink","public_title":"11 oz \/ Pink","options":["11 oz","Pink"],"price":2900,"weight":227,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39116785975608,"position":43,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Red.jpg?v=1753999160"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910685249848,"title":"8 oz \/ Dye Free","option1":"8 oz","o
55ption2":"Dye Free","option3":null,"sku":"shampoo.8oz.dye-free","requires_shipping":true,"taxable":true,"featured_image":{"id":44250675511608,"product_id":8664884052280,"position":21,"created_at":"2024-01-11T10:36:48-05:00","updated_at":"2025-10-23T14:28:38-04:00","alt":null,"width":4286,"height":5121,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_white_variant.png?v=1761244118","variant_ids":[46910685249848]},"available":true,"name":"Custom Shampoo - 8 oz \/ Dye Free","public_title":"8 oz \/ Dye Free","options":["8 oz","Dye Free"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36706578530616,"position":22,"preview_image":{"aspect_ratio":0.837,"height":5121,"width":4286,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_white_variant.png?v=1761244118"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910685184312,"title":"8 oz \/ Purple","option1":"8 oz","o
55ption2":"Purple","option3":null,"sku":"shampoo.8oz.purple","requires_shipping":true,"taxable":true,"featured_image":{"id":44250672660792,"product_id":8664884052280,"position":20,"created_at":"2024-01-11T10:36:29-05:00","updated_at":"2025-10-23T14:28:38-04:00","alt":null,"width":4286,"height":5121,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_Purple_variant.png?v=1761244118","variant_ids":[46910685184312]},"available":true,"name":"Custom Shampoo - 8 oz \/ Purple","public_title":"8 oz \/ Purple","options":["8 oz","Purple"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36706575483192,"position":21,"preview_image":{"aspect_ratio":0.837,"height":5121,"width":4286,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_Purple_variant.png?v=1761244118"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910685053240,"title":"8 oz \/ Blue","option1":"8 oz","o
55ption2":"Blue","option3":null,"sku":"shampoo.8oz.blue","requires_shipping":true,"taxable":true,"featured_image":{"id":44250659029304,"product_id":8664884052280,"position":16,"created_at":"2024-01-11T10:35:06-05:00","updated_at":"2025-10-23T14:28:38-04:00","alt":null,"width":4286,"height":5121,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_Blue_variant.png?v=1761244118","variant_ids":[46910685053240]},"available":true,"name":"Custom Shampoo - 8 oz \/ Blue","public_title":"8 oz \/ Blue","options":["8 oz","Blue"],"price":2499,"weight":227,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36706562146616,"position":17,"preview_image":{"aspect_ratio":0.837,"height":5121,"width":4286,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_Blue_variant.png?v=1761244118"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}}
55,{"id":46910685086008,"title":"8 oz \/ Red","option1":"8 oz","option2":"Red","option3":null,"sku":"shampoo.8oz.red","requires_shipping":true,"taxable":true,"featured_image":{"id":44250662699320,"product_id":8664884052280,"position":17,"created_at":"2024-01-11T10:35:30-05:00","updated_at":"2025-10-23T14:28:38-04:00","alt":null,"width":4286,"height":5121,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_Red_variant.png?v=1761244118","variant_ids":[46910685086008]},"available":true,"name":"Custom Shampoo - 8 oz \/ Red","public_title":"8 oz \/ Red","options":["8 oz","Red"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36706565620024,"position":18,"preview_image":{"aspect_ratio":0.837,"height":5121,"width":4286,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_Red_variant.png?v=1761244118"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910685118776,"title":"8 oz \/ Green","option1":"8 oz","o
55ption2":"Green","option3":null,"sku":"shampoo.8oz.green","requires_shipping":true,"taxable":true,"featured_image":{"id":44250664993080,"product_id":8664884052280,"position":18,"created_at":"2024-01-11T10:35:53-05:00","updated_at":"2025-10-23T14:28:38-04:00","alt":null,"width":4286,"height":5121,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_green_variant.png?v=1761244118","variant_ids":[46910685118776]},"available":true,"name":"Custom Shampoo - 8 oz \/ Green","public_title":"8 oz \/ Green","options":["8 oz","Green"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36706567946552,"position":19,"preview_image":{"aspect_ratio":0.837,"height":5121,"width":4286,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_green_variant.png?v=1761244118"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910685315384,"title":"8 oz \/ Ocean","option1":"8 oz","o
55ption2":"Ocean","option3":null,"sku":"shampoo.8oz.ocean","requires_shipping":true,"taxable":true,"featured_image":{"id":44250677313848,"product_id":8664884052280,"position":22,"created_at":"2024-01-11T10:37:06-05:00","updated_at":"2025-10-23T14:28:38-04:00","alt":null,"width":4286,"height":5121,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_ocean_variant.png?v=1761244118","variant_ids":[46910685315384]},"available":true,"name":"Custom Shampoo - 8 oz \/ Ocean","public_title":"8 oz \/ Ocean","options":["8 oz","Ocean"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36706580300088,"position":23,"preview_image":{"aspect_ratio":0.837,"height":5121,"width":4286,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_ocean_variant.png?v=1761244118"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910685348152,"title":"8 oz \/ Magenta","option1":"8 oz","o
55ption2":"Magenta","option3":null,"sku":"shampoo.8oz.magenta","requires_shipping":true,"taxable":true,"featured_image":{"id":44250679148856,"product_id":8664884052280,"position":23,"created_at":"2024-01-11T10:37:22-05:00","updated_at":"2025-10-23T14:28:38-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_Magenta_variant.png?v=1761244118","variant_ids":[46910685348152]},"available":true,"name":"Custom Shampoo - 8 oz \/ Magenta","public_title":"8 oz \/ Magenta","options":["8 oz","Magenta"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36706582135096,"position":24,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_Magenta_variant.png?v=1761244118"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910685446456,"title":"8 oz \/ Flamingo","option1":"8 oz","o
55ption2":"Flamingo","option3":null,"sku":"shampoo.8oz.flamingo","requires_shipping":true,"taxable":true,"featured_image":{"id":44250693894456,"product_id":8664884052280,"position":26,"created_at":"2024-01-11T10:38:50-05:00","updated_at":"2025-10-23T14:28:38-04:00","alt":null,"width":4286,"height":5121,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_flamingo_variant.png?v=1761244118","variant_ids":[46910685446456]},"available":true,"name":"Custom Shampoo - 8 oz \/ Flamingo","public_title":"8 oz \/ Flamingo","options":["8 oz","Flamingo"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36706596913464,"position":27,"preview_image":{"aspect_ratio":0.837,"height":5121,"width":4286,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_flamingo_variant.png?v=1761244118"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910685413688,"title":"8 oz \/ Function Green","option1":"8 oz","o
55ption2":"Function Green","option3":null,"sku":"shampoo.8oz.function-green","requires_shipping":true,"taxable":true,"featured_image":{"id":44250691928376,"product_id":8664884052280,"position":25,"created_at":"2024-01-11T10:38:31-05:00","updated_at":"2025-10-23T14:28:38-04:00","alt":null,"width":4286,"height":5121,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_function_variant.png?v=1761244118","variant_ids":[46910685413688]},"available":true,"name":"Custom Shampoo - 8 oz \/ Function Green","public_title":"8 oz \/ Function Green","options":["8 oz","Function Green"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36706594947384,"position":26,"preview_image":{"aspect_ratio":0.837,"height":5121,"width":4286,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_function_variant.png?v=1761244118"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910685151544,"title":"8 oz \/ Orange","option1":"8 oz","o
55ption2":"Orange","option3":null,"sku":"shampoo.8oz.orange","requires_shipping":true,"taxable":true,"featured_image":{"id":44250667024696,"product_id":8664884052280,"position":19,"created_at":"2024-01-11T10:36:12-05:00","updated_at":"2025-10-23T14:28:38-04:00","alt":null,"width":4286,"height":5121,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_orange_variant.png?v=1761244118","variant_ids":[46910685151544]},"available":true,"name":"Custom Shampoo - 8 oz \/ Orange","public_title":"8 oz \/ Orange","options":["8 oz","Orange"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36706569978168,"position":20,"preview_image":{"aspect_ratio":0.837,"height":5121,"width":4286,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_orange_variant.png?v=1761244118"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49234585190712,"title":"8 oz \/ Black","option1":"8 oz","o
55ption2":"Black","option3":null,"sku":"shampoo.8oz.black","requires_shipping":true,"taxable":true,"featured_image":{"id":43282910609720,"product_id":8664884052280,"position":15,"created_at":"2023-10-06T17:53:15-04:00","updated_at":"2025-10-23T14:28:38-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_8oz_Black_variant.jpg?v=1761244118","variant_ids":[49234585190712]},"available":true,"name":"Custom Shampoo - 8 oz \/ Black","public_title":"8 oz \/ Black","options":["8 oz","Black"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":35704940167480,"position":16,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_8oz_Black_variant.jpg?v=1761244118"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49234610782520,"title":"8 oz \/ Sunkissed","option1":"8 oz","o
55ption2":"Sunkissed","option3":null,"sku":"shampoo.8oz.sunkissed","requires_shipping":true,"taxable":true,"featured_image":{"id":44250685309240,"product_id":8664884052280,"position":24,"created_at":"2024-01-11T10:38:08-05:00","updated_at":"2025-10-23T14:28:38-04:00","alt":null,"width":4286,"height":5121,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_sunkissed_variant.png?v=1761244118","variant_ids":[49234610782520]},"available":true,"name":"Custom Shampoo - 8 oz \/ Sunkissed","public_title":"8 oz \/ Sunkissed","options":["8 oz","Sunkissed"],"price":2499,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36706588229944,"position":25,"preview_image":{"aspect_ratio":0.837,"height":5121,"width":4286,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_sunkissed_variant.png?v=1761244118"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":51757616824632,"title":"8 oz \/ Pink","option1":"8 oz","o
55ption2":"Pink","option3":null,"sku":"shampoo.8oz.pink","requires_shipping":true,"taxable":true,"featured_image":{"id":46631444054328,"product_id":8664884052280,"position":42,"created_at":"2024-07-11T20:05:18-04:00","updated_at":"2025-07-31T17:59:20-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Red.jpg?v=1753999160","variant_ids":[46910685511992,49220485349688,51757616791864,51757616824632,51757616857400]},"available":true,"name":"Custom Shampoo - 8 oz \/ Pink","public_title":"8 oz \/ Pink","options":["8 oz","Pink"],"price":2499,"weight":227,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39116785975608,"position":43,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Red.jpg?v=1753999160"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":2499}],"price":2499,"compare_at_price":2499,"per_delivery_price":2499,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910685643064,"title":"16 oz \/ Dye Free","option1":"16 oz","option2":"Dye Free","option3":null,"sku":"shampoo.16oz.dye-free","requires_shipping":true,"taxable":true,"featured_image":{"id":46631547109688,"product_id":8664884052280,"position":46,"created_at":"2024-07-11T20:09:15-04:00","updated_at":"2025-07-31T17:59:20-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Dye_Free.jpg?v=1753999160","variant_ids":[46910685643064]},"available":true,"name":"Custom Shampoo - 16 oz \/ Dye Free","public_title":"16 oz \/ Dye Free","options":["16 oz","Dye Free"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39116830867768,"position":47,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Dye_Free.jpg?v=1753999160"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910685610296,"title":"16 oz \/ Purple","option1":"16 oz","option2":"Purple","option3":null,"sku":"shampoo.16oz.purple","requires_shipping":true,"taxable":true,"featured_image":{"id":46631547076920,"product_id":8664884052280,"position":45,"created_at":"2024-0
557-11T20:08:51-04:00","updated_at":"2025-07-31T17:59:20-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Purple.jpg?v=1753999160","variant_ids":[46910685610296]},"available":true,"name":"Custom Shampoo - 16 oz \/ Purple","public_title":"16 oz \/ Purple","options":["16 oz","Purple"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39116827689272,"position":46,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Purple.jpg?v=1753999160"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910685479224,"title":"16 oz \/ Blue","option1":"16 oz","option2":"Blue","option3":null,"sku":"shampoo.16oz.blue","requires_shipping":true,"taxable":true,"featured_image":{"id":46631377535288,"product_id":8664884052280,"position":41,"created_at":"2024-07-11T20:01:21-04:00","updated_at":"2025-07-31T17:59:20-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Blue_0f082857-6b09-46c8-8cd8-75324a2303f8.jpg?v=1753999160","variant_ids":[46910685479224,49220485316920]},"available":true,"name":"Custom Shampoo - 16 oz \/ Blue","public_title":"16 oz \/ Blue","options":["16 oz","Blue"],"price":3299,"weight":454,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39116752978232,"position":42,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Blue_0f082857-6b09-46c8-8cd8-75324a2303f8.jpg?v=1753999160"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910685511992,"title":"16 oz \/ Red","option1":"16 oz","option2":"Red","option3":null,"sku":"shampoo.16oz.red","requires_shipping":true,"taxable":true,"featured_image":{"id":46631444054328,"product_id":8664884052280,"position":42,"created_at":"2024-0
557-11T20:05:18-04:00","updated_at":"2025-07-31T17:59:20-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Red.jpg?v=1753999160","variant_ids":[46910685511992,49220485349688,51757616791864,51757616824632,51757616857400]},"available":true,"name":"Custom Shampoo - 16 oz \/ Red","public_title":"16 oz \/ Red","options":["16 oz","Red"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39116785975608,"position":43,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Red.jpg?v=1753999160"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910685544760,"title":"16 oz \/ Green","option1":"16 oz","option2":"Green","option3":null,"sku":"shampoo.16oz.green","requires_shipping":true,"taxable":true,"featured_image":{"id":46631547011384,"product_id":8664884052280,"position":43,"created_at":"2024-07-11T20:08:08-04:00","updated_at":"2025-07-31T17:59:20-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Green.jpg?v=1753999160","variant_ids":[46910685544760,49220485382456]},"available":true,"name":"Custom Shampoo - 16 oz \/ Green","public_title":"16 oz \/ Green","options":["16 oz","Green"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39116820021560,"position":44,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Green.jpg?v=1753999160"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910685708600,"title":"16 oz \/ Ocean","option1":"16 oz","option2":"Ocean","option3":null,"sku":"shampoo.16oz.ocean","requires_shipping":true,"taxable":true,"featured_image":{"id":46631547142456,"product_id":8664884052280,"position":47,"created_at":"2024-0
557-11T20:09:56-04:00","updated_at":"2025-07-31T17:59:20-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Ocean.jpg?v=1753999160","variant_ids":[46910685708600]},"available":true,"name":"Custom Shampoo - 16 oz \/ Ocean","public_title":"16 oz \/ Ocean","options":["16 oz","Ocean"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39116836995384,"position":48,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Ocean.jpg?v=1753999160"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910685774136,"title":"16 oz \/ Magenta","option1":"16 oz","option2":"Magenta","option3":null,"sku":"shampoo.16oz.magenta","requires_shipping":true,"taxable":true,"featured_image":{"id":46631547175224,"product_id":8664884052280,"position":48,"created_at":"2024-07-11T20:10:22-04:00","updated_at":"2025-07-31T17:59:20-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Magenta.jpg?v=1753999160","variant_ids":[46910685774136]},"available":true,"name":"Custom Shampoo - 16 oz \/ Magenta","public_title":"16 oz \/ Magenta","options":["16 oz","Magenta"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39116839944504,"position":49,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Magenta.jpg?v=1753999160"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910685937976,"title":"16 oz \/ Flamingo","option1":"16 oz","option2":"Flamingo","option3":null,"sku":"shampoo.16oz.flamingo","requires_shipping":true,"taxable":true,"featured_image":{"id":46631547273528,"product_id":8664884052280,"position":51,"created_at":"2024-0
557-11T20:11:53-04:00","updated_at":"2025-07-31T17:59:20-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Flamingo.jpg?v=1753999160","variant_ids":[46910685937976]},"available":true,"name":"Custom Shampoo - 16 oz \/ Flamingo","public_title":"16 oz \/ Flamingo","options":["16 oz","Flamingo"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39116852658488,"position":52,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Flamingo.jpg?v=1753999160"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910685872440,"title":"16 oz \/ Function Green","option1":"16 oz","option2":"Function Green","option3":null,"sku":"shampoo.16oz.function-green","requires_shipping":true,"taxable":true,"featured_image":{"id":46631547240760,"product_id":8664884052280,"position":50,"created_at":"2024-07-11T20:11:24-04:00","updated_at":"2025-07-31T17:59:20-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Function.jpg?v=1753999160","variant_ids":[46910685872440]},"available":true,"name":"Custom Shampoo - 16 oz \/ Function Green","public_title":"16 oz \/ Function Green","options":["16 oz","Function Green"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39116849381688,"position":51,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Function.jpg?v=1753999160"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":46910685577528,"title":"16 oz \/ Orange","option1":"16 oz","option2":"Orange","option3":null,"sku":"shampoo.16oz.orange","requires_shipping":true,"taxable":true,"featured_image":{"id":46631547044152,"product_id":8664884052280,"position":44,"created_at":"2024-0
557-11T20:08:30-04:00","updated_at":"2025-07-31T17:59:20-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Orange.jpg?v=1753999160","variant_ids":[46910685577528,49234580275512]},"available":true,"name":"Custom Shampoo - 16 oz \/ Orange","public_title":"16 oz \/ Orange","options":["16 oz","Orange"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39116824707384,"position":45,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Orange.jpg?v=1753999160"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49234621989176,"title":"16 oz \/ Black","option1":"16 oz","option2":"Black","option3":null,"sku":"shampoo.16oz.black","requires_shipping":true,"taxable":true,"featured_image":{"id":44250800521528,"product_id":8664884052280,"position":38,"created_at":"2024-01-11T10:49:12-05:00","updated_at":"2025-07-31T17:59:20-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_black_variant.png?v=1753999160","variant_ids":[49234578932024,49234621989176]},"available":true,"name":"Custom Shampoo - 16 oz \/ Black","public_title":"16 oz \/ Black","options":["16 oz","Black"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36706705604920,"position":39,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_black_variant.png?v=1753999160"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":49234624151864,"title":"16 oz \/ Sunkissed","option1":"16 oz","option2":"Sunkissed","option3":null,"sku":"shampoo.16oz.sunkissed","requires_shipping":true,"taxable":true,"featured_image":{"id":44250786955576,"product_id":8664884052280,"position":36,"created_at":"2024-01-11T10:48:23-05:00","updated_at":"2025-10-23T14:21:31-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Sunkissed_variant.png?v=1761243691","variant_ids":[49234624151864]},"available":true,"name":"Custom Shampoo - 16 oz \/ Sunkissed","public_title":"16 oz \/ Sunkissed","options":["16 oz","Sunkissed"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":36706691285304,"position":37,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Sunkissed_variant.png?v=1761243691"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":51757616857400,"title":"16 oz \/ Pink","option1":"16 oz","option2":"Pink","option3":null,"sku":"shampoo.16oz.pink","requires_shipping":true,"taxable":true,"featured_image":{"id":46631444054328,"product_id":8664884052280,"position":42,"created_at":"2024-0
557-11T20:05:18-04:00","updated_at":"2025-07-31T17:59:20-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Red.jpg?v=1753999160","variant_ids":[46910685511992,49220485349688,51757616791864,51757616824632,51757616857400]},"available":true,"name":"Custom Shampoo - 16 oz \/ Pink","public_title":"16 oz \/ Pink","options":["16 oz","Pink"],"price":3299,"weight":227,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":39116785975608,"position":43,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Red.jpg?v=1753999160"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030753592,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030786360,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":691030819128,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":694906257720,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"},{"price_adjustments":[{"position":1,"price":3299}],"price":3299,"compare_at_price":3299,"per_delivery_price":3299,"selling_plan_id":693003387192,"selling_plan_group_id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4"}],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/functionofbeauty.com\/cdn\/shop\/files\/Shampoo-Flamingo_Reflection_1.png?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_02.jpg?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_03.jpg?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_04.jpg?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_05.jpg?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_06.jpg?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_07.jpg?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_02_67e2422f-5ba8-4215-82f3-307ca5fae2ef.jpg?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_10_edfff6df-446a-418b-804f-a3876aaa2266.jpg?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_08.jpg?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_11_bfa0d410-3e55-47ad-bb2c-6046c14fa2e6.jpg?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_09.jpg?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_12.jpg?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_14.jpg?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_8oz_Black_variant.jpg?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_Blue_variant.png?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_Red_variant.png?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_green_variant.png?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_orange_variant.png?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_Purple_variant.png?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_white_variant.png?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_ocean_variant.png?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_Magenta_variant.png?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_sunkissed_variant.png?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_function_variant.png?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_flamingo_variant.png?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Blue_variant.png?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Red_variant.png?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Function_variant.png?v=1761244118","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Green_variant.png?v=1761243691","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Orange_variant.png?v=1761243691","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Purple_variant.png?v=1761243691","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_White_variant.png?v=1761243691","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Ocean_variant.png?v=1761243691","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Magenta_variant.png?v=1761243691","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Sunkissed_variant.png?v=1761243691","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Flam
55ingo_variant.png?v=1753999160","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_black_variant.png?v=1753999160","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Blue.jpg?v=1753999160","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Blue_d9a5c3e8-d625-4d24-9152-274d5cf36012.jpg?v=1753999160","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Blue_0f082857-6b09-46c8-8cd8-75324a2303f8.jpg?v=1753999160","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Red.jpg?v=1753999160","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Green.jpg?v=1753999160","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Orange.jpg?v=1753999160","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Purple.jpg?v=1753999160","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Dye_Free.jpg?v=1753999160","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Ocean.jpg?v=1753999160","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Magenta.jpg?v=1753999160","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Sunkissed.jpg?v=1753999160","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Function.jpg?v=1753999160","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Flamingo.jpg?v=1753999160","\/\/functionofbeauty.com\/cdn\/shop\/files\/Shampoo-Yellow_Reflection.png?v=1753999160"],"featured_image":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Shampoo-Flamingo_Reflection_1.png?v=1761244118","options":["Size","Color"],"media":[{"alt":null,"id":42071273931064,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1081,"width":1081,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Shampoo-Flamingo_Reflection_1.png?v=1761244118"},"aspect_ratio":1.0,"height":1081,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Shampoo-Flamingo_Reflection_1.png?v=1761244118","width":1081},{"alt":null,"id":35435730043192,"position":2,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_02.jpg?v=1761244118"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_02.jpg?v=1761244118","width":2176},{"alt":null,"id":35435730698552,"position":3,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_03.jpg?v=1761244118"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_03.jpg?v=1761244118","width":2176},{"alt":null,"id":35435731353912,"position":4,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_04.jpg?v=1761244118"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_04.jpg?v=1761244118","width":2176},{"alt":null,"id":35435731648824,"position":5,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_05.jpg?v=1761244118"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_05.jpg?v=1761244118","width":2176},{"alt":null,"id":35435734335800,"position":6,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_06.jpg?v=1761244118"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_06.jpg?v=1761244118","width":2176},{"alt":null,"id":35435734729016,"position":7,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_07.jpg?v=1761244118"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_07.jpg?v=1761244118","width":2176},{"alt":null,"id":43195630846264,"position":8,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_02_67e2422f-5ba8-4215-82f3-307ca5fae2ef.jpg?v=1761244118"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_02_67e2422f-5ba8-4215-82f3-307ca5fae2ef.jpg?v=1761244118","width":2176},{"alt":null,"id":43195630911800,"position":9,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_10_edfff6df-446a-418b-804f-a3876aaa2266.jpg?v=1761244118"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_10_edfff6df-446a-418b-804f-a3876aaa2266.jpg?v=1761244118","width":2176},{"alt":null,"id":35435735155000,"position":10,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_08.jpg?v=1761244118"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_08.jpg?v=1761244118","width":2176},{"alt":null,"id":43195630780728,"position":11,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_11_bfa0d410-3e55-47ad-bb2c-6046c14fa2e6.jpg?v=1761244118"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_11_bfa0d410-3e55-47ad-bb2c-6046c14fa2e6.jpg?v=1761244118","width":2176},{"alt":null,"id":35435735548216,"position":12,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_09.jpg?v=1761244118"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_09.jpg?v=1761244118","width":2176},{"alt":null,"id":35435737907512,"position":13,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_12.jpg?v=1761244118"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_12.jpg?v=1761244118","width":2176},{"alt":null,"id":35435738497336,"position":14,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_14.jpg?v=1761244118"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_14.jpg?v=1761244118","width":2176},{"alt":null,"id":42084713136440,"position":15,"preview_image":{"aspect_ratio":1.0,"height":720,"width":720,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/preview_images\/d312c1ff7d554383bb6b22fec362eefb.thumbnail.0000000000.jpg?v=1750174498"},"aspect_ratio":1.0,"duration":5000,"media_type":"video","sources":[{"format":"mp4","height":480,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/d312c1ff7d554383bb6b22fec362eefb\/d312c1ff7d554383bb6b22fec362eefb.SD-480p-1.2Mbps-49559259.mp4?v=0","width":480},{"format":"mp4","height":720,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/d312c1ff7d554383bb6b22fec362eefb\/d312c1ff7d554383bb6b22fec362eefb.HD-720p-3.0Mbps-49559259.mp4?v=0","width":720},{"format":"m3u8","height":720,"mime_type":"application\/x-mpegURL","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/d312c1ff7d554383bb6b22fec362eefb\/d312c1ff7d554383bb6b22fec362eefb.m3u8?v=0","width":720}]},{"alt":null,"id":35704940167480,"position":16,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_8oz_Black_variant.jpg?v=1761244118"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_8oz_Black_variant.jpg?v=1761244118","width":2160},{"alt":null,"id":36706562146616,"position":17,"preview_image":{"aspect_ratio":0.837,"height":5121,"width":4286,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_Blue_variant.png?v=1761244118"},"aspect_ratio":0.837,"height":5121,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_Blue_variant.png?v=1761244118","width":4286},{"alt":null,"id":36706565620024,"position":18,"preview_image":{"aspect_ratio":0.837,"height":5121,"width":4286,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_Red_variant.png?v=1761244118"},"aspect_ratio":0.837,"height":5121,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_Red_variant.png?v=1761244118","width":4286},{"alt":null,"id":36706567946552,"position":19,"preview_image":{"aspect_ratio":0.837,"height":5121,"width":4286,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_green_variant.png?v=1761244118"},"aspect_ratio":0.837,"height":5121,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_green_variant.png?v=1761244118","width":4286},{"alt":null,"id":36706569978168,"position":20,"preview_image":{"aspect_ratio":0.837,"height":5121,"width":4286,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_orange_variant.png?v=1761244118"},"aspect_ratio":0.837,"height":5121,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_orange_variant.png?v=1761244118","width":4286},{"alt":null,"id":36706575483192,"position":21,"preview_image":{"aspect_ratio":0.837,"height":5121,"width":4286,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_Purple_variant.png?v=1761244118"},"aspect_ratio":0.837,"height":5121,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_Purple_variant.png?v=1761244118","width":4286},{"alt":null,"id":36706578530616,"position":22,"preview_image":{"aspect_ratio":0.837,"height":5121,"width":4286,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_white_variant.png?v=1761244118"},"aspect_ratio":0.837,"height":5121,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_white_variant.png?v=1761244118","width":4286},{"alt":null,"id":36706580300088,"position":23,"preview_image":{"aspect_ratio":0.837,"height":5121,"width":4286,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_ocean_variant.png?v=1761244118"},"aspect_ratio":0.837,"height":5121,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_ocean_variant.png?v=1761244118","width":4286},{"alt":null,"id":36706582135096,"position":24,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_Magenta_variant.png?v=1761244118"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_Magenta_variant.png?v=1761244118","width":2160},{"alt":null,"id":36706588229944,"position":25,"preview_image":{"aspect_ratio":0.837,"height":5121,"width":4286,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_sunkissed_variant.png?v=1761244118"},"aspect_ratio":0.837,"height":5121,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_sunkissed_variant.png?v=1761244118","width":4286},{"alt":null,"id":36706594947384,"position":26,"preview_image":{"aspect_ratio":0.837,"height":5121,"width":4286,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_function_variant.png?v=1761244118"},"aspect_ratio":0.837,"height":5121,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_function_variant.png?v=1761244118","width":4286},{"alt":null,"id":36706596913464,"position":27,"preview_image":{"aspect_ratio":0.837,"height":5121,"width":4286,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_flamingo_variant.png?v=1761244118"},"aspect_ratio":0.837,"height":5121,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_8oz_flamingo_variant.png?v=1761244118","width":4286},{"alt":null,"id":36706666217784,"position":28,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Blue_variant.png?v=1761244118"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Blue_variant.png?v=1761244118","width":2160},{"alt":null,"id":36706670739768,"position":29,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Red_variant.png?v=1761244118"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Red_variant.png?v=1761244118","width":2160},{"alt":null,"id":36706694234424,"position":30,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Function_variant.png?v=1761244118"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Function_variant.png?v=1761244118","width":2160},{"alt":null,"id":36706674671928,"position":31,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Green_variant.png?v=1761243691"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Green_variant.png?v=1761243691","width":2160},{"alt":null,"id":36706677227832,"position":32,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Orange_variant.png?v=1761243691"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Orange_variant.png?v=1761243691","width":2160},{"alt":null,"id":36706679292216,"position":33,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Purple_variant.png?v=1761243691"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Purple_variant.png?v=1761243691","width":2160},{"alt":null,"id":36706682143032,"position":34,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_White_variant.png?v=1761243691"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_White_variant.png?v=1761243691","width":2160},{"alt":null,"id":36706684895544,"position":35,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Ocean_variant.png?v=1761243691"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Ocean_variant.png?v=1761243691","width":2160},{"alt":null,"id":36706688172344,"position":36,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Magenta_variant.png?v=1761243691"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Magenta_variant.png?v=1761243691","width":2160},{"alt":null,"id":36706691285304,"position":37,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Sunkissed_variant.png?v=1761243691"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Sunkissed_variant.png?v=1761243691","width":2160},{"alt":null,"id":36706701672760,"position":38,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Flam
55ingo_variant.png?v=1753999160"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_Flamingo_variant.png?v=1753999160","width":2160},{"alt":null,"id":36706705604920,"position":39,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_black_variant.png?v=1753999160"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Shampoo_16oz_black_variant.png?v=1753999160","width":2160},{"alt":null,"id":39116744589624,"position":40,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Blue.jpg?v=1753999160"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Blue.jpg?v=1753999160","width":2160},{"alt":null,"id":39116747735352,"position":41,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Blue_d9a5c3e8-d625-4d24-9152-274d5cf36012.jpg?v=1753999160"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Blue_d9a5c3e8-d625-4d24-9152-274d5cf36012.jpg?v=1753999160","width":2160},{"alt":null,"id":39116752978232,"position":42,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Blue_0f082857-6b09-46c8-8cd8-75324a2303f8.jpg?v=1753999160"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Blue_0f082857-6b09-46c8-8cd8-75324a2303f8.jpg?v=1753999160","width":2160},{"alt":null,"id":39116785975608,"position":43,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Red.jpg?v=1753999160"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Red.jpg?v=1753999160","width":2160},{"alt":null,"id":39116820021560,"position":44,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Green.jpg?v=1753999160"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Green.jpg?v=1753999160","width":2160},{"alt":null,"id":39116824707384,"position":45,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Orange.jpg?v=1753999160"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Orange.jpg?v=1753999160","width":2160},{"alt":null,"id":39116827689272,"position":46,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Purple.jpg?v=1753999160"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Purple.jpg?v=1753999160","width":2160},{"alt":null,"id":39116830867768,"position":47,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Dye_Free.jpg?v=1753999160"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Dye_Free.jpg?v=1753999160","width":2160},{"alt":null,"id":39116836995384,"position":48,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Ocean.jpg?v=1753999160"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Ocean.jpg?v=1753999160","width":2160},{"alt":null,"id":39116839944504,"position":49,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Magenta.jpg?v=1753999160"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Magenta.jpg?v=1753999160","width":2160},{"alt":null,"id":39116843057464,"position":50,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Sunkissed.jpg?v=1753999160"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Sunkissed.jpg?v=1753999160","width":2160},{"alt":null,"id":39116849381688,"position":51,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Function.jpg?v=1753999160"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Function.jpg?v=1753999160","width":2160},{"alt":null,"id":39116852658488,"position":52,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Flam
55ingo.jpg?v=1753999160"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Shampoo_11oz_Flamingo.jpg?v=1753999160","width":2160},{"alt":null,"id":41577327264056,"position":53,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Shampoo-Yellow_Reflection.png?v=1753999160"},"aspect_ratio":1.0,"height":1080,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Shampoo-Yellow_Reflection.png?v=1753999160","width":1080}],"requires_selling_plan":false,"selling_plan_groups":[{"id":"261596d8bcff70955cc0e8cb2c76e71bfab0a8b4","name":"Shampoo","options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"values":["1 Month(s)","2 Month(s)","3 Month(s)","4 Month(s)","6 Month(s)"]}],"selling_plans":[{"id":691030753592,"name":"Delivery every 1 Month","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"1 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":691030786360,"name":"Delivery every 2 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"2 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":691030819128,"name":"Delivery every 3 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"3 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":694906257720,"name":"Delivery every 4 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"4 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":693003387192,"name":"Delivery every 6 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"6 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}}],"app_id":"294517"}],"content":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003e\u003c\/span\u003e\u003cspan data-mce-fragment=\"1\"\u003e\u003c\/span\u003e\u003cspan data-mce-fragment=\"1\"\u003eA custom shampoo that gently cleanses the scalp and hair without stripping, while providing hydration. Formulated to fit your personalized needs and reveal healthy looking hair. Size: 11 oz\u003c\/span\u003e\u003cbr\u003e\u003c\/p\u003e"},{"id":8664883036472,"title":"Custom Styling Primer","handle":"styling-primer","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eA custom styling primer formulated with provitamin B5 that provides color, UV, and heat protection (up to 450°F). Formulated for your unique hair goals with a personalized level of hold. Size: 6 oz\u003c\/span\u003e\u003c\/p\u003e","published_at":"2023-09-18T14:35:24-04:00","created_at":"2023-09-18T14:35:24-04:00","vendor":"Function of Beauty","type":"styling","tags":["Action: Styling","Haircare","in_configuration","Line: Core","Target: Hair","YCRF_haircare"],"price":3100,"price_min":3100,"price_max":3100,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":47154476810552,"title":"6 oz \/ Rose Gold","option1":"6 oz","option2":"Rose Gold","option3":null,"sku":"styling-primer.6oz.rose-gold","requires_shipping":true,"taxable":true,"featured_image":{"id":44255605227832,"product_id":8664883036472,"position":14,"created_at":"2024-01-11T16:42:56-05:00","updated_at":"2024-01-11T16:42:56-05:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Primer_variant.png?v=1705009376","variant_ids":[47154476810552]},"available":true,"name":"Custom Styling Primer - 6 oz \/ Rose Gold","public_title":"6 oz \/ Rose Gold","options":["6 oz","Rose Gold"],"price":3100,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":36711614185784,"position":14,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Primer_variant.png?v=1705009376"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3100}],"price":3100,"compare_at_price":3100,"per_delivery_price":3100,"selling_plan_id":691029311800,"selling_plan_group_id":"72cf3354c613cf720b339e759180b734dbb34a7c"},{"price_adjustments":[{"position":1,"price":3100}],"price":3100,"compare_at_price":3100,"per_delivery_price":3100,"selling_plan_id":691029377336,"selling_plan_group_id":"72cf3354c613cf720b339e759180b734dbb34a7c"},{"price_adjustments":[{"position":1,"price":3100}],"price":3100,"compare_at_price":3100,"per_delivery_price":3100,"selling_plan_id":691029475640,"selling_plan_group_id":"72cf3354c613cf720b339e759180b734dbb34a7c"},{"price_adjustments":[{"position":1,"price":3100}],"price":3100,"compare_at_price":3100,"per_delivery_price":3100,"selling_plan_id":694906290488,"selling_plan_group_id":"72cf3354c613cf720b339e759180b734dbb34a7c"},{"price_adjustments":[{"position":1,"price":3100}],"price":3100,"compare_at_price":3100,"per_delivery_price":3100,"selling_plan_id":693003583800,"selling_plan_group_id":"72cf3354c613cf720b339e759180b734dbb34a7c"}],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Primer.png?v=1705009355","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Styling-Primer_02.jpg?v=1705009355","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Styling-Primer_03.jpg?v=1705009355","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_04_d2e5d787-2216-43f3-9b02-d1c3b48a0459.jpg?v=1705009355","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_05_b5c6572c-37be-4344-b8f1-6a45aca5efa7.jpg?v=1705009355","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_06_bc4b3c7b-b00e-4919-9234-70deec571a7c.jpg?v=1705009355","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_07_cbffaf81-125b-444c-84da-4e6b6fd47e2b.jpg?v=1705009355","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-StylingPrimer_08.jpg?v=1705009355","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Styling-Primer_09.jpg?v=1705009355","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_10_22c63537-3f95-4333-854b-d9ade4884930.jpg?v=1705009355","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Styling-Primer_11.jpg?v=1705009355","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Styling-Primer_12.jpg?v=1705009355","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-StylingPrimer_14.jpg?v=1705009355","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Primer_variant.png?v=1705009376","\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Primer_PLP.png?v=1705009411","\/\/functionofbeauty.com\/cdn\/shop\/files\/Styling_Primer-Orange_Reflection.png?v=1744213377"],"featured_image":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Primer.png?v=1705009355","options":["Size","Color"],"media":[{"alt":null,"id":36711610450232,"position":1,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Primer.png?v=1705009355"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Primer.png?v=1705009355","width":2160},{"alt":null,"id":35446635168056,"position":2,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Styling-Primer_02.jpg?v=1705009355"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Styling-Primer_02.jpg?v=1705009355","width":2160},{"alt":null,"id":35446635200824,"position":3,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Styling-Primer_03.jpg?v=1705009355"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Styling-Primer_03.jpg?v=1705009355","width":2160},{"alt":null,"id":35446634971448,"position":4,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_04_d2e5d787-2216-43f3-9b02-d1c3b48a0459.jpg?v=1705009355"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_04_d2e5d787-2216-43f3-9b02-d1c3b48a0459.jpg?v=1705009355","width":2176},{"alt":null,"id":35446635004216,"position":5,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_05_b5c6572c-37be-4344-b8f1-6a45aca5efa7.jpg?v=1705009355"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_05_b5c6572c-37be-4344-b8f1-6a45aca5efa7.jpg?v=1705009355","width":2176},{"alt":null,"id":35446635036984,"position":6,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_06_bc4b3c7b-b00e-4919-9234-70deec571a7c.jpg?v=1705009355"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_06_bc4b3c7b-b00e-4919-9234-70deec571a7c.jpg?v=1705009355","width":2176},{"alt":null,"id":35446635069752,"position":7,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_07_cbffaf81-125b-444c-84da-4e6b6fd47e2b.jpg?v=1705009355"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_07_cbffaf81-125b-444c-84da-4e6b6fd47e2b.jpg?v=1705009355","width":2176},{"alt":null,"id":35446635102520,"position":8,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-StylingPrimer_08.jpg?v=1705009355"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-StylingPrimer_08.jpg?v=1705009355","width":2160},{"alt":null,"id":35446795010360,"position":9,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Styling-Primer_09.jpg?v=1705009355"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Styling-Primer_09.jpg?v=1705009355","width":2160},{"alt":null,"id":35446802448696,"position":10,"preview_image":{"aspect_ratio":1.0,"height":2176,"width":2176,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_10_22c63537-3f95-4333-854b-d9ade4884930.jpg?v=1705009355"},"aspect_ratio":1.0,"height":2176,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Shampoo_10_22c63537-3f95-4333-854b-d9ade4884930.jpg?v=1705009355","width":2176},{"alt":null,"id":35446635233592,"position":11,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Styling-Primer_11.jpg?v=1705009355"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Styling-Primer_11.jpg?v=1705009355","width":2160},{"alt":null,"id":35446635266360,"position":12,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Styling-Primer_12.jpg?v=1705009355"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Styling-Primer_12.jpg?v=1705009355","width":2160},{"alt":null,"id":35446635135288,"position":13,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-StylingPrimer_14.jpg?v=1705009355"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-StylingPrimer_14.jpg?v=1705009355","width":2160},{"alt":null,"id":36711614185784,"position":14,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Primer_variant.png?v=1705009376"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Primer_variant.png?v=1705009376","width":2160},{"alt":null,"id":36711617921336,"position":15,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Primer_PLP.png?v=1705009411"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/DTC_Primer_PLP.png?v=1705009411","width":2160},{"alt":null,"id":41577326870840,"position":16,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Styling_Primer-Orange_Reflection.png?v=1744213377"},"aspect_ratio":1.0,"height":1080,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Styling_Primer-Orange_Reflection.png?v=1744213377","width":1080},{"alt":null,"id":42071124508984,"position":17,"preview_image":{"aspect_ratio":1.0,"height":720,"width":720,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/preview_images\/4b997a39fae94874892e6907a07eb7cf.thumbnail.0000000000.jpg?v=1750081968"},"aspect_ratio":1.0,"duration":5050,"media_type":"video","sources":[{"format":"mp4","height":480,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/4b997a39fae94874892e6907a07eb7cf\/4b997a39fae94874892e6907a07eb7cf.SD-480p-1.2Mbps-49479694.mp4?v=0","width":480},{"format":"mp4","height":720,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/4b997a39fae94874892e6907a07eb7cf\/4b997a39fae94874892e6907a07eb7cf.HD-720p-3.0Mbps-49479694.mp4?v=0","width":720},{"format":"m3u8","height":720,"mime_type":"application\/x-mpegURL","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/4b997a39fae94874892e6907a07eb7cf\/4b997a39fae94874892e6907a07eb7cf.m3u8?v=0","width":720}]}],"requires_selling_plan":false,"selling_plan_groups":[{"id":"72cf3354c613cf720b339e759180b734dbb34a7c","name":"Styling Primer","options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"values":["1 Month(s)","2 Month(s)","3 Month(s)","4 Month(s)","6 Month(s)"]}],"selling_plans":[{"id":691029311800,"name":"Delivery every 1 Month","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"1 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":691029377336,"name":"Delivery every 2 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"2 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":691029475640,"name":"Delivery every 3 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"3 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_ty
55pe":"percentage","value":100}},{"id":694906290488,"name":"Delivery every 4 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"4 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":693003583800,"name":"Delivery every 6 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"6 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}}],"app_id":"294517"}],"content":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eA custom styling primer formulated with provitamin B5 that provides color, UV, and heat protection (up to 450°F). Formulated for your unique hair goals with a personalized level of hold. Size: 6 oz\u003c\/span\u003e\u003c\/p\u003e"},{"id":9023840420152,"title":"SOS Custom Repair Shampoo","handle":"sos-shampoo","description":"\u003cspan data-mce-fragment=\"1\"\u003e\u003cspan style=\"font-weight: 400;\" data-mce-fragment=\"1\" data-mce-style=\"font-weight: 400;\"\u003eA sulfate-free, \u003c\/span\u003e\u003cspan style=\"font-weight: 400;\" data-mce-fragment=\"1\" data-mce-style=\"font-weight: 400;\"\u003estrengthening shampoo for stronger, more resilient hair thanks to our U.S. patent pending Biotech Powered Repair\u003c\/span\u003e that works to help repair hair from the inside out. Dermatologist tested and fully customized to the unique needs of your hair type and damage level. \u003c\/span\u003e\u003cspan style=\"font-family: -apple-system, BlinkMacSystemFont, 'San Francisco', 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif; font-size: 0.875rem;\" data-mce-fragment=\"1\" data-mce-style=\"font-family: -apple-system, BlinkMacSystemFont, 'San Francisco', 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif; font-size: 0.875rem;\"\u003eSize: 11oz\u003c\/span\u003e","published_at":"2026-02-09T16:06:09-05:00","created_at":"2024-03-05T13:15:28-05:00","vendor":"Function of Beauty","type":"Shampoo","tags":["Action: Care","first_time_discount","Haircare","in_configuration"],"price":3200,"price_min":3200,"price_max":3200,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":48125591519544,"title":"11 oz \/ Dye Free","option1":"11 oz","option2":"Dye Free","option3":null,"sku":"sos-shampoo.11oz.dye-free","requires_shipping":true,"taxable":true,"featured_image":{"id":45740440191288,"product_id":9023840420152,"position":19,"created_at":"2024-05-02T14:22:08-04:00","updated_at":"2025-04-15T15:14:13-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Shampoo_11oz_Dye_Free-variant.png?v=1744744453","variant_ids":[48125591519544]},"available":true,"name":"SOS Custom Repair Shampoo - 11 oz \/ Dye Free","public_title":"11 oz \/ Dye Free","options":["11 oz","Dye Free"],"price":3200,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":38245090165048,"position":19,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Shampoo_11oz_Dye_Free-variant.png?v=1744744453"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299183928,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299216696,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299249464,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":694906519864,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299282232,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":47937332248888,"title":"11 oz \/ Magenta","option1":"11 oz","option2":"Magenta","option3":null,"sku":"sos-shampoo.11oz.magenta","requires_shipping":true,"taxable":true,"featured_image":{"id":45636205576504,"product_id":9023840420152,"position":15,"created_at":"2024-04-25T07:33:48-04:00","updated_at":"2025-04-15T15:14:13-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_magenta_variant.png?v=1744744453","variant_ids":[47937332248888]},"available":true,"name":"SOS Custom Repair Shampoo - 11 oz \/ Magenta","public_title":"11 oz \/ Magenta","options":["11 oz","Magenta"],"price":3200,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":38133338046776,"position":15,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_magenta_variant.png?v=1744744453"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299183928,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299216696,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299249464,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":694906519864,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299282232,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":47937332281656,"title":"11 oz \/ Purple","option1":"11 oz","option2":"Purple","option3":null,"sku":"sos-shampoo.11oz.purple","requires_shipping":true,"taxable":true,"featured_image":{"id":45636205609272,"product_id":9023840420152,"position":18,"created_at":"2024-04-25T07:34:04-04:00","updated_at":"2025-04-15T15:14:13-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Shampoo_16oz_Purple_variant.png?v=1744744453","variant_ids":[47937332281656]},"available":true,"name":"SOS Custom Repair Shampoo - 11 oz \/ Purple","public_title":"11 oz \/ Purple","options":["11 oz","Purple"],"price":3200,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":38133345911096,"position":18,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Shampoo_16oz_Purple_variant.png?v=1744744453"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299183928,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299216696,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299249464,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":694906519864,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299282232,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":47937332216120,"title":"11 oz \/ Function Green","option1":"11 oz","option2":"Function Green","option3":null,"sku":"sos-shampoo.11oz.function-green","requires_shipping":true,"taxable":true,"featured_image":{"id":45636276650296,"product_id":9023840420152,"position":17,"created_at":"2024-04-25T07:31:33-04:00","updated_at":"2025-04-15T15:14:13-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Shampoo_16oz_Green_variant.png?v=1744744453","variant_ids":[47937332216120]},"available":true,"name":"SOS Custom Repair Shampoo - 11 oz \/ Function Green","public_title":"11 oz \/ Function Green","options":["11 oz","Function Green"],"price":3200,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":38133283815736,"position":17,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Shampoo_16oz_Green_variant.png?v=1744744453"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299183928,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299216696,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299249464,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":694906519864,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299282232,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":47937332183352,"title":"11 oz \/ Orange","option1":"11 oz","option2":"Orange","option3":null,"sku":"sos-shampoo.11oz.orange","requires_shipping":true,"taxable":true,"featured_image":{"id":45636276617528,"product_id":9023840420152,"position":16,"created_at":"2024-04-25T07:31:53-04:00","updated_at":"2025-04-15T15:14:13-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Shampoo_16oz_Orange_variant.png?v=1744744453","variant_ids":[47937332183352]},"available":true,"name":"SOS Custom Repair Shampoo - 11 oz \/ Orange","public_title":"11 oz \/ Orange","options":["11 oz","Orange"],"price":3200,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":38133294268728,"position":16,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Shampoo_16oz_Orange_variant.png?v=1744744453"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299183928,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299216696,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299249464,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":694906519864,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299282232,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"}],"quantity_rule":{"min":1,"max":null,"increment":1}}
55,{"id":50994056200504,"title":"11 oz \/ Blue","option1":"11 oz","option2":"Blue","option3":null,"sku":"sos-shampoo.11oz.blue","requires_shipping":true,"taxable":true,"featured_image":{"id":53323669242168,"product_id":9023840420152,"position":20,"created_at":"2025-08-12T15:02:23-04:00","updated_at":"2025-08-12T15:02:25-04:00","alt":null,"width":1080,"height":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Shampoo-Blue.png?v=1755025345","variant_ids":[50994056200504]},"available":true,"name":"SOS Custom Repair Shampoo - 11 oz \/ Blue","public_title":"11 oz \/ Blue","options":["11 oz","Blue"],"price":3200,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":43358677238072,"position":21,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Shampoo-Blue.png?v=1755025345"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299183928,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299216696,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299249464,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":694906519864,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299282232,"selling_plan_group_id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d"}],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Shampoo-Purple_Reflection.png?v=1744744453","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Shampoo_16oz_Purple_PLP.jpg?v=1744744453","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_02.jpg?v=1744744453","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_03.jpg?v=1744744453","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_04.jpg?v=1744744453","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Shampoo_05.jpg?v=1744744453","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Shampoo_06.jpg?v=1744744453","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Shampoo_07.jpg?v=1744744453","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Shampoo_08.jpg?v=1744744453","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_10.gif?v=1744744453","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_11.jpg?v=1744744453","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_12.jpg?v=1744744453","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-OUR-COMMITMENT-2.jpg?v=1744744453","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SYSTEM.jpg?v=1744744453","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_magenta_variant.png?v=1744744453","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Shampoo_16oz_Orange_variant.png?v=1744744453","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Shampoo_16oz_Green_variant.png?v=1744744453","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Shampoo_16oz_Purple_variant.png?v=1744744453","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Shampoo_11oz_Dye_Free-variant.png?v=1744744453","\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Shampoo-Blue.png?v=1755025345"],"featured_image":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Shampoo-Purple_Reflection.png?v=1744744453","options":["Size","Color"],"media":[{"alt":null,"id":41577327165752,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Shampoo-Purple_Reflection.png?v=1744744453"},"aspect_ratio":1.0,"height":1080,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Shampoo-Purple_Reflection.png?v=1744744453","width":1080},{"alt":null,"id":38133370290488,"position":2,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Shampoo_16oz_Purple_PLP.jpg?v=1744744453"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Shampoo_16oz_Purple_PLP.jpg?v=1744744453","width":2160},{"alt":null,"id":38133040054584,"position":3,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_02.jpg?v=1744744453"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_02.jpg?v=1744744453","width":2160},{"alt":null,"id":38133040087352,"position":4,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_03.jpg?v=1744744453"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_03.jpg?v=1744744453","width":2160},{"alt":null,"id":38133040120120,"position":5,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_04.jpg?v=1744744453"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_04.jpg?v=1744744453","width":2160},{"alt":null,"id":38133040185656,"position":6,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Shampoo_05.jpg?v=1744744453"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Shampoo_05.jpg?v=1744744453","width":2160},{"alt":null,"id":38133040218424,"position":7,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Shampoo_06.jpg?v=1744744453"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Shampoo_06.jpg?v=1744744453","width":2160},{"alt":null,"id":38133040251192,"position":8,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Shampoo_07.jpg?v=1744744453"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Shampoo_07.jpg?v=1744744453","width":2160},{"alt":null,"id":38133040283960,"position":9,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Shampoo_08.jpg?v=1744744453"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Shampoo_08.jpg?v=1744744453","width":2160},{"alt":null,"id":38133040349496,"position":10,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_10.gif?v=1744744453"},"aspect_ratio":1.0,"height":1080,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_10.gif?v=1744744453","width":1080},{"alt":null,"id":38133040382264,"position":11,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_11.jpg?v=1744744453"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_11.jpg?v=1744744453","width":2160},{"alt":null,"id":38133040415032,"position":12,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_12.jpg?v=1744744453"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_12.jpg?v=1744744453","width":2160},{"alt":null,"id":38133039989048,"position":13,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-OUR-COMMITMENT-2.jpg?v=1744744453"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-OUR-COMMITMENT-2.jpg?v=1744744453","width":2160},{"alt":null,"id":38133040447800,"position":14,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SYSTEM.jpg?v=1744744453"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SYSTEM.jpg?v=1744744453","width":2160},{"alt":null,"id":38133338046776,"position":15,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_magenta_variant.png?v=1744744453"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SHAMPOO_magenta_variant.png?v=1744744453","width":2160},{"alt":null,"id":38133294268728,"position":16,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Shampoo_16oz_Orange_variant.png?v=1744744453"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Shampoo_16oz_Orange_variant.png?v=1744744453","width":2160},{"alt":null,"id":38133283815736,"position":17,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Shampoo_16oz_Green_variant.png?v=1744744453"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Shampoo_16oz_Green_variant.png?v=1744744453","width":2160},{"alt":null,"id":38133345911096,"position":18,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Shampoo_16oz_Purple_variant.png?v=1744744453"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Shampoo_16oz_Purple_variant.png?v=1744744453","width":2160},{"alt":null,"id":38245090165048,"position":19,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Shampoo_11oz_Dye_Free-variant.png?v=1744744453"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Shampoo_11oz_Dye_Free-variant.png?v=1744744453","width":2160},{"alt":null,"id":42071124279608,"position":20,"preview_image":{"aspect_ratio":1.0,"height":720,"width":720,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/preview_images\/24cc1feff9374263a60fb48955a6cc05.thumbnail.0000000000.jpg?v=1750081968"},"aspect_ratio":1.0,"duration":4050,"media_type":"video","sources":[{"format":"mp4","height":480,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/24cc1feff9374263a60fb48955a6cc05\/24cc1feff9374263a60fb48955a6cc05.SD-480p-1.2Mbps-49479708.mp4?v=0","width":480},{"format":"mp4","height":720,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/24cc1feff9374263a60fb48955a6cc05\/24cc1feff9374263a60fb48955a6cc05.HD-720p-3.0Mbps-49479708.mp4?v=0","width":720},{"format":"m3u8","height":720,"mime_type":"application\/x-mpegURL","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/24cc1feff9374263a60fb48955a6cc05\/24cc1feff9374263a60fb48955a6cc05.m3u8?v=0","width":720}]},{"alt":null,"id":43358677238072,"position":21,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Shampoo-Blue.png?v=1755025345"},"aspect_ratio":1.0,"height":1080,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Shampoo-Blue.png?v=1755025345","width":1080}],"requires_selling_plan":false,"selling_plan_groups":[{"id":"0b7b5c6911f2c8048ea636e39f9ecf921eda244d","name":"SOS Custom Repair Shampoo","options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"values":["1 Month(s)","2 Month(s)","3 Month(s)","4 Month(s)","6 Month(s)"]}],"selling_plans":[{"id":693299183928,"name":"Delivery every 1 Month","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"1 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":693299216696,"name":"Delivery every 2 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"2 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":693299249464,"name":"Delivery every 3 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"3 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":694906519864,"name":"Delivery every 4 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"4 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":693299282232,"name":"Delivery every 6 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"6 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}}],"app_id":"294517"}],"content":"\u003cspan data-mce-fragment=\"1\"\u003e\u003cspan style=\"font-weight: 400;\" data-mce-fragment=\"1\" data-mce-style=\"font-weight: 400;\"\u003eA sulfate-free, \u003c\/span\u003e\u003cspan style=\"font-weight: 400;\" data-mce-fragment=\"1\" data-mce-style=\"font-weight: 400;\"\u003estrengthening shampoo for stronger, more resilient hair thanks to our U.S. patent pending Biotech Powered Repair\u003c\/span\u003e that works to help repair hair from the inside out. Dermatologist tested and fully customized to the unique needs of your hair type and damage level. \u003c\/span\u003e\u003cspan style=\"font-family: -apple-system, BlinkMacSystemFont, 'San Francisco', 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif; font-size: 0.875rem;\" data-mce-fragment=\"1\" data-mce-style=\"font-family: -apple-system, BlinkMacSystemFont, 'San Francisco', 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif; font-size: 0.875rem;\"\u003eSize: 11oz\u003c\/span\u003e"},{"id":9023840649528,"title":"SOS Custom Repair Leave-in Treatment","handle":"sos-leave-in-treatment","description":"\u003cspan data-mce-fragment=\"1\"\u003eExperience a remarkable hair transformation after JUST one use with our most advanced repair product. This lightweight, cream-gel formula boasts the highest concentration of our cutting-edge Custom Biotech Repair, alongside nutrient-rich antioxidants. Dermatologist tested and fully customized to the unique
55needs of your hair type and damage level. Bonus! This product is 3oz and TSA compliant.\u003c\/span\u003e","published_at":"2024-03-05T13:15:37-05:00","created_at":"2024-03-05T13:15:37-05:00","vendor":"Function of Beauty","type":"leave-in","tags":["badge: damage repair","Haircare","in_configuration","YGroup_SOS Leave-In Treatment"],"price":3400,"price_min":3400,"price_max":3400,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":47937333756216,"title":"3 oz \/ Magenta","option1":"3 oz","option2":"Magenta","option3":null,"sku":"sos-leave-in-treatment.3oz.magenta","requires_shipping":true,"taxable":true,"featured_image":{"id":50065052238136,"product_id":9023840649528,"position":1,"created_at":"2025-04-09T11:42:55-04:00","updated_at":"2025-04-15T15:11:29-04:00","alt":null,"width":1080,"height":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Leave-In_Treatment_Pink_Reflection.png?v=1744744289","variant_ids":[47937333756216]},"available":true,"name":"SOS Custom Repair Leave-in Treatment - 3 oz \/ Magenta","public_title":"3 oz \/ Magenta","options":["3 oz","Magenta"],"price":3400,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":41577326674232,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Leave-In_Treatment_Pink_Reflection.png?v=1744744289"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3400}],"price":3400,"compare_at_price":3400,"per_delivery_price":3400,"selling_plan_id":693299085624,"selling_plan_group_id":"670ba9d41ac08bbe97ad842eaf6229d9bc9ca15d"},{"price_adjustments":[{"position":1,"price":3400}],"price":3400,"compare_at_price":3400,"per_delivery_price":3400,"selling_plan_id":693299118392,"selling_plan_group_id":"670ba9d41ac08bbe97ad842eaf6229d9bc9ca15d"},{"price_adjustments":[{"position":1,"price":3400}],"price":3400,"compare_at_price":3400,"per_delivery_price":3400,"selling_plan_id":693299151160,"selling_plan_group_id":"670ba9d41ac08bbe97ad842eaf6229d9bc9ca15d"},{"price_adjustments":[{"position":1,"price":3400}],"price":3400,"compare_at_price":3400,"per_delivery_price":3400,"selling_plan_id":694906552632,"selling_plan_group_id":"670ba9d41ac08bbe97ad842eaf6229d9bc9ca15d"},{"price_adjustments":[{"position":1,"price":3400}],"price":3400,"compare_at_price":3400,"per_delivery_price":3400,"selling_plan_id":693299380536,"selling_plan_group_id":"670ba9d41ac08bbe97ad842eaf6229d9bc9ca15d"}],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Leave-In_Treatment_Pink_Reflection.png?v=1744744289","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-LIT_PLP.jpg?v=1744744289","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_02.jpg?v=1744744289","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_03.jpg?v=1744744289","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_04.jpg?v=1744744289","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_06.jpg?v=1744744289","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_05.jpg?v=1744744289","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_07.jpg?v=1744744289","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_08.jpg?v=1744744289","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_09.jpg?v=1744744289","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_09.gif?v=1744744289","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_11.jpg?v=1744744289","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_12.jpg?v=1744744289","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_13.jpg?v=1744744289","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_14.jpg?v=1744744289","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-OUR-COMMITMENT-3.jpg?v=1744744289","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SYSTEM-3.jpg?v=1744744289"],"featured_image":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Leave-In_Treatment_Pink_Reflection.png?v=1744744289","options":["Size","Color"],"media":[{"alt":null,"id":41577326674232,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Leave-In_Treatment_Pink_Reflection.png?v=1744744289"},"aspect_ratio":1.0,"height":1080,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Leave-In_Treatment_Pink_Reflection.png?v=1744744289","width":1080},{"alt":null,"id":38133807087928,"position":2,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-LIT_PLP.jpg?v=1744744289"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-LIT_PLP.jpg?v=1744744289","width":2160},{"alt":null,"id":38133807120696,"position":3,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_02.jpg?v=1744744289"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_02.jpg?v=1744744289","width":2160},{"alt":null,"id":38133807153464,"position":4,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_03.jpg?v=1744744289"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_03.jpg?v=1744744289","width":2160},{"alt":null,"id":38133807186232,"position":5,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_04.jpg?v=1744744289"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_04.jpg?v=1744744289","width":2160},{"alt":null,"id":38133807251768,"position":6,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_06.jpg?v=1744744289"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_06.jpg?v=1744744289","width":2160},{"alt":null,"id":38133807219000,"position":7,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_05.jpg?v=1744744289"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_05.jpg?v=1744744289","width":2160},{"alt":null,"id":38133807284536,"position":8,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_07.jpg?v=1744744289"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_07.jpg?v=1744744289","width":2160},{"alt":null,"id":38133807317304,"position":9,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_08.jpg?v=1744744289"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_08.jpg?v=1744744289","width":2160},{"alt":null,"id":38133807382840,"position":10,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_09.jpg?v=1744744289"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_09.jpg?v=1744744289","width":2160},{"alt":null,"id":38133807350072,"position":11,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_09.gif?v=1744744289"},"aspect_ratio":1.0,"height":1080,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_09.gif?v=1744744289","width":1080},{"alt":null,"id":38133807448376,"position":12,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_11.jpg?v=1744744289"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_11.jpg?v=1744744289","width":2160},{"alt":null,"id":38133807481144,"position":13,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_12.jpg?v=1744744289"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_12.jpg?v=1744744289","width":2160},{"alt":null,"id":38133807513912,"position":14,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_13.jpg?v=1744744289"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_13.jpg?v=1744744289","width":2160},{"alt":null,"id":38133807546680,"position":15,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_14.jpg?v=1744744289"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-LIT_14.jpg?v=1744744289","width":2160},{"alt":null,"id":38133807579448,"position":16,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-OUR-COMMITMENT-3.jpg?v=1744744289"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-OUR-COMMITMENT-3.jpg?v=1744744289","width":2160},{"alt":null,"id":38133807612216,"position":17,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SYSTEM-3.jpg?v=1744744289"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SYSTEM-3.jpg?v=1744744289","width":2160},{"alt":null,"id":42071124574520,"position":18,"preview_image":{"aspect_ratio":1.0,"height":720,"width":720,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/preview_images\/e6326dd093ea429c892477023e8a2cba.thumbnail.0000000000.jpg?v=1750081968"},"aspect_ratio":1.0,"duration":5000,"media_type":"video","sources":[{"format":"mp4","height":480,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/e6326dd093ea429c892477023e8a2cba\/e6326dd093ea429c892477023e8a2cba.SD-480p-1.2Mbps-49479706.mp4?v=0","width":480},{"format":"mp4","height":720,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/e6326dd093ea429c892477023e8a2cba\/e6326dd093ea429c892477023e8a2cba.HD-720p-3.0Mbps-49479706.mp4?v=0","width":720},{"format":"m3u8","height":720,"mime_type":"application\/x-mpegURL","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/e6326dd093ea429c892477023e8a2cba\/e6326dd093ea429c892477023e8a2cba.m3u8?v=0","width":720}]}],"requires_selling_plan":false,"selling_plan_groups":[{"id":"670ba9d41ac08bbe97ad842eaf6229d9bc9ca15d","name":"SOS Custom Repair Leave-in Treatment","options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"values":["1 Month(s)","2 Month(s)","3 Month(s)","4 Month(s)","6 Month(s)"]}],"selling_plans":[{"id":693299085624,"name":"Delivery every 1 Month","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"1 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":693299118392,"name":"Delivery every 2 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"2 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":693299151160,"name":"Delivery every 3 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"3 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":694906552632,"name":"Delivery every 4 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"4 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":693299380536,"name":"Delivery every 6 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"6 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}}],"app_id":"294517"}],"content":"\u003cspan data-mce-fragment=\"1\"\u003eExperience a remarkable hair transformation after JUST one use with our most advanced repair product. This lightweight, cream-gel formula boasts the highest concentration of our cutting-edge Custom Biotech Repair, alongside nutrient-rich antioxidants. Dermatologist tested and fully customized to the unique needs of your hair type and damage level. Bonus! This product is 3oz and TSA compliant.\u003c\/span\u003e"},{"id":9023840583992,"title":"SOS Custom Repair Hair Mask","handle":"sos-hair-mask","description":"\u003cp\u003e\u003cspan data-mce-fragment=\"1\"\u003e\u003cspan data-mce-fragment=\"1\" style=\"font-weight: 400;\" data-mce-style=\"font-weight: 400;\"\u003eThis award winning rinse-out mask is a weekly must to intensely recover dry, brittle strands
55with boosted shine thanks to our U.S. patent-pending \u003c\/span\u003eBiotech Powered Custom Repair that works to help repair hair from the inside out.\u2028Dermatologist tested and fully customized to the unique needs of your hair type and damage level. Size: 7.5 oz\u003c\/span\u003e\u003c\/p\u003e","published_at":"2024-03-05T13:15:33-05:00","created_at":"2024-03-05T13:15:33-05:00","vendor":"Function of Beauty","type":"hair mask","tags":["badge:award-winning","Haircare","in_configuration"],"price":3800,"price_min":3800,"price_max":3800,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":48125591748920,"title":"7.5 oz \/ Dye Free","option1":"7.5 oz","option2":"Dye Free","option3":null,"sku":"sos-hair-mask.7.5oz.dye-free","requires_shipping":true,"taxable":true,"featured_image":{"id":45740354175288,"product_id":9023840583992,"position":19,"created_at":"2024-05-02T14:15:09-04:00","updated_at":"2025-04-15T15:12:03-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Mask_Dye_Free-variant.png?v=1744744323","variant_ids":[48125591748920]},"available":true,"name":"SOS Custom Repair Hair Mask - 7.5 oz \/ Dye Free","public_title":"7.5 oz \/ Dye Free","options":["7.5 oz","Dye Free"],"price":3800,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":38245002051896,"position":19,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Mask_Dye_Free-variant.png?v=1744744323"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693298987320,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693299020088,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693299052856,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":694906585400,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693299347768,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":47937333690680,"title":"7.5 oz \/ Purple","option1":"7.5 oz","option2":"Purple","option3":null,"sku":"sos-hair-mask.7.5oz.purple","requires_shipping":true,"taxable":true,"featured_image":{"id":45636594860344,"product_id":9023840583992,"position":18,"created_at":"2024-04-25T08:00:32-04:00","updated_at":"2025-04-15T15:12:03-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Mask_Purple_variant.png?v=1744744323","variant_ids":[47937333690680]},"available":true,"name":"SOS Custom Repair Hair Mask - 7.5 oz \/ Purple","public_title":"7.5 oz \/ Purple","options":["7.5 oz","Purple"],"price":3800,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":38133904015672,"position":18,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Mask_Purple_variant.png?v=1744744323"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693298987320,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693299020088,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693299052856,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":694906585400,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693299347768,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":47937333657912,"title":"7.5 oz \/ Magenta","option1":"7.5 oz","option2":"Magenta","option3":null,"sku":"sos-hair-mask.7.5oz.magenta","requires_shipping":true,"taxable":true,"featured_image":{"id":45636594827576,"product_id":9023840583992,"position":17,"created_at":"2024-04-25T08:00:16-04:00","updated_at":"2025-04-15T15:12:03-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Mask_Pink_variant.png?v=1744744323","variant_ids":[47937333657912]},"available":true,"name":"SOS Custom Repair Hair Mask - 7.5 oz \/ Magenta","public_title":"7.5 oz \/ Magenta","options":["7.5 oz","Magenta"],"price":3800,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":381339
5501623608,"position":17,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Mask_Pink_variant.png?v=1744744323"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693298987320,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693299020088,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693299052856,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":694906585400,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693299347768,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":47937333625144,"title":"7.5 oz \/ Function Green","option1":"7.5 oz","option2":"Function Green","option3":null,"sku":"sos-hair-mask.7.5oz.function-green","requires_shipping":true,"taxable":true,"featured_image":{"id":45636594794808,"product_id":9023840583992,"position":16,"created_at":"2024-04-25T08:00:00-04:00","updated_at":"2025-04-15T15:12:03-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_ECOM_variant.png?v=1744744323","variant_ids":[47937333625144]},"available":true,"name":"SOS Custom Repair Hair Mask - 7.5 oz \/ Function Green","public_title":"7.5 oz \/ Function Green","options":["7.5 oz","Function Green"],"price":3800,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":38133898903864,"position":16,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_ECOM_variant.png?v=1744744323"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693298987320,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693299020088,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693299052856,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":694906585400,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693299347768,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":47937333592376,"title":"7.5 oz \/ Orange","option1":"7.5 oz","option2":"Orange","option3":null,"sku":"sos-hair-mask.7.5oz.orange","requires_shipping":true,"taxable":true,"featured_image":{"id":45636594762040,"product_id":9023840583992,"position":15,"created_at":"2024-04-25T07:59:31-04:00","updated_at":"2025-04-15T15:12:03-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Mask_Orange_variant.png?v=1744744323","variant_ids":[47937333592376]},"available":true,"name":"SOS Custom Repair Hair Mask - 7.5 oz \/ Orange","public_title":"7.5 oz \/ Orange","options":["7.5 oz","Orange"],"price":3800,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":38133892514104,"position":15,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Mask_Orange_variant.png?v=1744744323"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693298987320,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693299020088,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693299052856,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":694906585400,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693299347768,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"}],"quantity_rule":{"min":1,"max":null,"increment":1}}
55,{"id":50994050761016,"title":"7.5 oz \/ Blue","option1":"7.5 oz","option2":"Blue","option3":null,"sku":"sos-hair-mask.7.5oz.blue","requires_shipping":true,"taxable":true,"featured_image":{"id":53323669176632,"product_id":9023840583992,"position":20,"created_at":"2025-08-12T15:02:23-04:00","updated_at":"2025-08-12T15:02:25-04:00","alt":null,"width":1080,"height":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Mask-Blue.png?v=1755025345","variant_ids":[50994050761016]},"available":true,"name":"SOS Custom Repair Hair Mask - 7.5 oz \/ Blue","public_title":"7.5 oz \/ Blue","options":["7.5 oz","Blue"],"price":3800,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":43358677205304,"position":21,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Mask-Blue.png?v=1755025345"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693298987320,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693299020088,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693299052856,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":694906585400,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"},{"price_adjustments":[{"position":1,"price":3800}],"price":3800,"compare_at_price":3800,"per_delivery_price":3800,"selling_plan_id":693299347768,"selling_plan_group_id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8"}],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Mask-Green_Reflection.png?v=1744744323","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_ECOM_PLP.jpg?v=1744744323","\/\/functionofbeauty.com\/cdn\/shop\/files\/Mask_Award_Winner-02-1.jpg?v=1744744323","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_03.jpg?v=1744744323","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_04.jpg?v=1744744323","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Mask_06.jpg?v=1744744323","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Mask_05.jpg?v=1744744323","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Mask_07.jpg?v=1744744323","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Mask_08.jpg?v=1744744323","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_09.jpg?v=1744744323","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_11.jpg?v=1744744323","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_12.jpg?v=1744744323","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-OUR-COMMITMENT-4.jpg?v=1744744323","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SYSTEM-4.jpg?v=1744744323","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Mask_Orange_variant.png?v=1744744323","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_ECOM_variant.png?v=1744744323","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Mask_Pink_variant.png?v=1744744323","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Mask_Purple_variant.png?v=1744744323","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Mask_Dye_Free-variant.png?v=1744744323","\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Mask-Blue.png?v=1755025345"],"featured_image":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Mask-Green_Reflection.png?v=1744744323","options":["Size","Color"],"media":[{"alt":null,"id":41577326772536,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Mask-Green_Reflection.png?v=1744744323"},"aspect_ratio":1.0,"height":1080,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Mask-Green_Reflection.png?v=1744744323","width":1080},{"alt":null,"id":38133881340216,"position":2,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_ECOM_PLP.jpg?v=1744744323"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_ECOM_PLP.jpg?v=1744744323","width":2160},{"alt":null,"id":40586729554232,"position":3,"preview_image":{"aspect_ratio":1.0,"height":3200,"width":3200,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Mask_Award_Winner-02-1.jpg?v=1744744323"},"aspect_ratio":1.0,"height":3200,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/Mask_Award_Winner-02-1.jpg?v=1744744323","width":3200},{"alt":null,"id":38133869871416,"position":4,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_03.jpg?v=1744744323"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_03.jpg?v=1744744323","width":2160},{"alt":null,"id":38133869904184,"position":5,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_04.jpg?v=1744744323"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_04.jpg?v=1744744323","width":2160},{"alt":null,"id":38133869969720,"position":6,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Mask_06.jpg?v=1744744323"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Mask_06.jpg?v=1744744323","width":2160},{"alt":null,"id":38133869936952,"position":7,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Mask_05.jpg?v=1744744323"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Mask_05.jpg?v=1744744323","width":2160},{"alt":null,"id":38133870002488,"position":8,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Mask_07.jpg?v=1744744323"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Mask_07.jpg?v=1744744323","width":2160},{"alt":null,"id":38133870035256,"position":9,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Mask_08.jpg?v=1744744323"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Mask_08.jpg?v=1744744323","width":2160},{"alt":null,"id":38133870068024,"position":10,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_09.jpg?v=1744744323"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_09.jpg?v=1744744323","width":2160},{"alt":null,"id":38133870133560,"position":11,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_11.jpg?v=1744744323"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_11.jpg?v=1744744323","width":2160},{"alt":null,"id":38133870166328,"position":12,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_12.jpg?v=1744744323"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_12.jpg?v=1744744323","width":2160},{"alt":null,"id":38133870199096,"position":13,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-OUR-COMMITMENT-4.jpg?v=1744744323"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-OUR-COMMITMENT-4.jpg?v=1744744323","width":2160},{"alt":null,"id":38133870231864,"position":14,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SYSTEM-4.jpg?v=1744744323"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-SYSTEM-4.jpg?v=1744744323","width":2160},{"alt":null,"id":38133892514104,"position":15,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Mask_Orange_variant.png?v=1744744323"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Mask_Orange_variant.png?v=1744744323","width":2160},{"alt":null,"id":38133898903864,"position":16,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_ECOM_variant.png?v=1744744323"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-MASK_ECOM_variant.png?v=1744744323","width":2160}
55,{"alt":null,"id":38133901623608,"position":17,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Mask_Pink_variant.png?v=1744744323"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Mask_Pink_variant.png?v=1744744323","width":2160},{"alt":null,"id":38133904015672,"position":18,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Mask_Purple_variant.png?v=1744744323"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Mask_Purple_variant.png?v=1744744323","width":2160},{"alt":null,"id":38245002051896,"position":19,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Mask_Dye_Free-variant.png?v=1744744323"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Mask_Dye_Free-variant.png?v=1744744323","width":2160},{"alt":null,"id":42071124672824,"position":20,"preview_image":{"aspect_ratio":1.0,"height":720,"width":720,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/preview_images\/d6b12f8a58d14b82a68584bbb5e32b6b.thumbnail.0000000000.jpg?v=1750081968"},"aspect_ratio":1.0,"duration":5000,"media_type":"video","sources":[{"format":"mp4","height":480,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/d6b12f8a58d14b82a68584bbb5e32b6b\/d6b12f8a58d14b82a68584bbb5e32b6b.SD-480p-1.2Mbps-49479705.mp4?v=0","width":480},{"format":"mp4","height":720,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/d6b12f8a58d14b82a68584bbb5e32b6b\/d6b12f8a58d14b82a68584bbb5e32b6b.HD-720p-3.0Mbps-49479705.mp4?v=0","width":720},{"format":"m3u8","height":720,"mime_type":"application\/x-mpegURL","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/d6b12f8a58d14b82a68584bbb5e32b6b\/d6b12f8a58d14b82a68584bbb5e32b6b.m3u8?v=0","width":720}]},{"alt":null,"id":43358677205304,"position":21,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Mask-Blue.png?v=1755025345"},"aspect_ratio":1.0,"height":1080,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Mask-Blue.png?v=1755025345","width":1080}],"requires_selling_plan":false,"selling_plan_groups":[{"id":"491de2f1b54fa3d4ad865c2390d33294a03f2da8","name":"SOS Custom Repair Hair Mask","options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"values":["1 Month(s)","2 Month(s)","3 Month(s)","4 Month(s)","6 Month(s)"]}],"selling_plans":[{"id":693298987320,"name":"Delivery every 1 Month","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"1 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":693299020088,"name":"Delivery every 2 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"2 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":693299052856,"name":"Delivery every 3 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"3 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":694906585400,"name":"Delivery every 4 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"4 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":693299347768,"name":"Delivery every 6 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"6 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}}],"app_id":"294517"}],"content":"\u003cp\u003e\u003cspan data-mce-fragment=\"1\"\u003e\u003cspan data-mce-fragment=\"1\" style=\"font-weight: 400;\" data-mce-style=\"font-weight: 400;\"\u003eThis award winning rinse-out mask is a weekly must to intensely recover dry, brittle strands
55with boosted shine thanks to our U.S. patent-pending \u003c\/span\u003eBiotech Powered Custom Repair that works to help repair hair from the inside out.\u2028Dermatologist tested and fully customized to the unique needs of your hair type and damage level. Size: 7.5 oz\u003c\/span\u003e\u003c\/p\u003e"},{"id":9023840551224,"title":"SOS Custom Repair Conditioner","handle":"sos-conditioner","description":"\u003cspan data-mce-fragment=\"1\"\u003e\u003cspan style=\"font-weight: 400;\" data-mce-fragment=\"1\" data-mce-style=\"font-weight: 400;\"\u003eA strengthening and nourishing conditioner for stronger, more resilient hair thanks to our U.S.\u003c\/span\u003e patent-pending Biotech Powered Custom Repair that works to help repair hair from the inside out. Dermatologist tested and fully customized to the unique needs of your hair type and damage level. Size: 11 oz\u003c\/span\u003e","published_at":"2026-02-09T16:05:35-05:00","created_at":"2024-03-05T13:15:31-05:00","vendor":"Function of Beauty","type":"conditioner","tags":["first_time_discount","Haircare","in_configuration"],"price":2900,"price_min":2900,"price_max":3200,"available":true,"price_varies":true,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":48125591683384,"title":"11 oz \/ Dye Free","option1":"11 oz","option2":"Dye Free","option3":null,"sku":"sos-conditioner.11oz.dye-free","requires_shipping":true,"taxable":true,"featured_image":{"id":45740445958456,"product_id":9023840551224,"position":16,"created_at":"2024-05-02T14:22:48-04:00","updated_at":"2025-04-15T15:12:32-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_11oz_Dye_Free-variant.png?v=1744744352","variant_ids":[48125591683384]},"available":true,"name":"SOS Custom Repair Conditioner - 11 oz \/ Dye Free","public_title":"11 oz \/ Dye Free","options":["11 oz","Dye Free"],"price":3200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":38245096194360,"position":16,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_11oz_Dye_Free-variant.png?v=1744744352"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693298889016,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693298921784,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693298954552,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":694906618168,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299315000,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":47937333494072,"title":"11 oz \/ Magenta","option1":"11 oz","option2":"Magenta","option3":null,"sku":"sos-conditioner.11oz.magenta","requires_shipping":true,"taxable":true,"featured_image":{"id":45636473848120,"product_id":9023840551224,"position":18,"created_at":"2024-04-25T07:48:17-04:00","updated_at":"2025-04-15T15:12:32-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_16oz_Pink_variant.png?v=1744744352","variant_ids":[47937333494072]},"available":true,"name":"SOS Custom Repair Conditioner - 11 oz \/ Magenta","public_title":"11 oz \/ Magenta","options":["11 oz","Magenta"],"price":3200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":38133760164152,"position":18,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_16oz_Pink_variant.png?v=1744744352"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693298889016,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693298921784,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693298954552,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":694906618168,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299315000,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":47937333526840,"title":"11 oz \/ Purple","option1":"11 oz","option2":"Purple","option3":null,"sku":"sos-conditioner.11oz.purple","requires_shipping":true,"taxable":true,"featured_image":{"id":45636473880888,"product_id":9023840551224,"position":17,"created_at":"2024-04-25T07:48:37-04:00","updated_at":"2025-09-03T19:08:13-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_11oz_Purple_variant.png?v=1756940893","variant_ids":[47937333526840]},"available":true,"name":"SOS Custom Repair Conditioner - 11 oz \/ Purple","public_title":"11 oz \/ Purple","options":["11 oz","Purple"],"price":3200,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":38133763146040,"position":17,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_11oz_Purple_variant.png?v=1756940893"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693298889016,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693298921784,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693298954552,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":694906618168,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299315000,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":47937333461304,"title":"11 oz \/ Function Green","option1":"11 oz","option2":"Function Green","option3":null,"sku":"sos-conditioner.11oz.function-green","requires_shipping":true,"taxable":true,"featured_image":{"id":45636473815352,"product_id":9023840551224,"position":15,"created_at":"2024-04-25T07:48:03-04:00","updated_at":"2025-04-15T15:12:32-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_16oz_Green_variant.png?v=1744744352","variant_ids":[47937333461304]},"available":true,"name":"SOS Custom Repair Conditioner - 11 oz \/ Function Green","public_title":"11 oz \/ Function Green","options":["11 oz","Function Green"],"price":3200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":38133757870392,"position":15,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_16oz_Green_variant.png?v=1744744352"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693298889016,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693298921784,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693298954552,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":694906618168,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299315000,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"}],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":47937333428536,"title":"11 oz \/ Orange","option1":"11 oz","option2":"Orange","option3":null,"sku":"sos-conditioner.11oz.orange","requires_shipping":true,"taxable":true,"featured_image":{"id":45636473782584,"product_id":9023840551224,"position":14,"created_at":"2024-04-25T07:47:31-04:00","updated_at":"2025-04-15T15:12:32-04:00","alt":null,"width":2160,"height":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_16oz_Orange_variant.png?v=1744744352","variant_ids":[47937333428536]},"available":true,"name":"SOS Custom Repair Conditioner - 11 oz \/ Orange","public_title":"11 oz \/ Orange","options":["11 oz","Orange"],"price":2900,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":38133752267064,"position":14,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_16oz_Orange_variant.png?v=1744744352"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693298889016,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693298921784,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693298954552,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":694906618168,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":2900}],"price":2900,"compare_at_price":2900,"per_delivery_price":2900,"selling_plan_id":693299315000,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"}],"quantity_rule":{"min":1,"max":null,"increment":1}}
55,{"id":50994052759864,"title":"11 oz \/ Blue","option1":"11 oz","option2":"Blue","option3":null,"sku":"sos-conditioner.11oz.blue","requires_shipping":true,"taxable":true,"featured_image":{"id":53323669274936,"product_id":9023840551224,"position":19,"created_at":"2025-08-12T15:02:23-04:00","updated_at":"2025-08-12T15:02:25-04:00","alt":null,"width":1080,"height":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Conditioner-Blue.png?v=1755025345","variant_ids":[50994052759864]},"available":true,"name":"SOS Custom Repair Conditioner - 11 oz \/ Blue","public_title":"11 oz \/ Blue","options":["11 oz","Blue"],"price":3200,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":43358677270840,"position":20,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Conditioner-Blue.png?v=1755025345"}},"requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693298889016,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693298921784,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693298954552,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":694906618168,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"},{"price_adjustments":[{"position":1,"price":3200}],"price":3200,"compare_at_price":3200,"per_delivery_price":3200,"selling_plan_id":693299315000,"selling_plan_group_id":"244d80468611b24b61e8d00fef5557495de8d8a4"}],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Conditioner-Orange_Reflection.png?v=1744744352","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_16oz_Orange_PLP.jpg?v=1744744352","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-CONDITIONER_02.jpg?v=1744744352","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Conditioner_03.jpg?v=1744744352","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-CONDITIONER_ECOMM_04.jpg?v=1744744352","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Conditioner_06.jpg?v=1744744352","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Conditioner_05.jpg?v=1744744352","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Conditioner_07.jpg?v=1744744352","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Conditioner_08.jpg?v=1744744352","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-CONDITIONER_09.jpg?v=1744744352","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-CONDITIONER_10.gif?v=1744744352","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-CONDITIONER_11.jpg?v=1744744352","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-CONDITIONER_12.jpg?v=1744744352","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_16oz_Orange_variant.png?v=1744744352","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_16oz_Green_variant.png?v=1744744352","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_11oz_Dye_Free-variant.png?v=1744744352","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_11oz_Purple_variant.png?v=1756940893","\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_16oz_Pink_variant.png?v=1744744352","\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Conditioner-Blue.png?v=1755025345"],"featured_image":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Conditioner-Orange_Reflection.png?v=1744744352","o
55ptions":["Size","Color"],"media":[{"alt":null,"id":41577327231288,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Conditioner-Orange_Reflection.png?v=1744744352"},"aspect_ratio":1.0,"height":1080,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Conditioner-Orange_Reflection.png?v=1744744352","width":1080},{"alt":null,"id":38133742600504,"position":2,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_16oz_Orange_PLP.jpg?v=1744744352"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_16oz_Orange_PLP.jpg?v=1744744352","width":2160},{"alt":null,"id":38133644591416,"position":3,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-CONDITIONER_02.jpg?v=1744744352"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-CONDITIONER_02.jpg?v=1744744352","width":2160},{"alt":null,"id":38133644624184,"position":4,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Conditioner_03.jpg?v=1744744352"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Conditioner_03.jpg?v=1744744352","width":2160},{"alt":null,"id":38133644951864,"position":5,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-CONDITIONER_ECOMM_04.jpg?v=1744744352"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-CONDITIONER_ECOMM_04.jpg?v=1744744352","width":2160},{"alt":null,"id":38133644689720,"position":6,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Conditioner_06.jpg?v=1744744352"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Conditioner_06.jpg?v=1744744352","width":2160},{"alt":null,"id":38133644656952,"position":7,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Conditioner_05.jpg?v=1744744352"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Conditioner_05.jpg?v=1744744352","width":2160},{"alt":null,"id":38133644755256,"position":8,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Conditioner_07.jpg?v=1744744352"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Conditioner_07.jpg?v=1744744352","width":2160},{"alt":null,"id":38133644788024,"position":9,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Conditioner_08.jpg?v=1744744352"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-Conditioner_08.jpg?v=1744744352","width":2160},{"alt":null,"id":38133644820792,"position":10,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-CONDITIONER_09.jpg?v=1744744352"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-CONDITIONER_09.jpg?v=1744744352","width":2160},{"alt":null,"id":38133644853560,"position":11,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-CONDITIONER_10.gif?v=1744744352"},"aspect_ratio":1.0,"height":1080,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-CONDITIONER_10.gif?v=1744744352","width":1080},{"alt":null,"id":38133644886328,"position":12,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-CONDITIONER_11.jpg?v=1744744352"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-CONDITIONER_11.jpg?v=1744744352","width":2160},{"alt":null,"id":38133644919096,"position":13,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-CONDITIONER_12.jpg?v=1744744352"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-PDP-Recovery-CONDITIONER_12.jpg?v=1744744352","width":2160},{"alt":null,"id":38133752267064,"position":14,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_16oz_Orange_variant.png?v=1744744352"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_16oz_Orange_variant.png?v=1744744352","width":2160},{"alt":null,"id":38133757870392,"position":15,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_16oz_Green_variant.png?v=1744744352"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_16oz_Green_variant.png?v=1744744352","width":2160},{"alt":null,"id":38245096194360,"position":16,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_11oz_Dye_Free-variant.png?v=1744744352"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_11oz_Dye_Free-variant.png?v=1744744352","width":2160},{"alt":null,"id":38133763146040,"position":17,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_11oz_Purple_variant.png?v=1756940893"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_11oz_Purple_variant.png?v=1756940893","width":2160},{"alt":null,"id":38133760164152,"position":18,"preview_image":{"aspect_ratio":1.0,"height":2160,"width":2160,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_16oz_Pink_variant.png?v=1744744352"},"aspect_ratio":1.0,"height":2160,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/FOB-ECOMM-Recovery-Conditioner_16oz_Pink_variant.png?v=1744744352","width":2160},{"alt":null,"id":42071124181304,"position":19,"preview_image":{"aspect_ratio":1.0,"height":720,"width":720,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/preview_images\/f50043a88f924186a7527485056b3c63.thumbnail.0000000000.jpg?v=1750081967"},"aspect_ratio":1.0,"duration":2920,"media_type":"video","sources":[{"format":"mp4","height":480,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/f50043a88f924186a7527485056b3c63\/f50043a88f924186a7527485056b3c63.SD-480p-1.2Mbps-49479707.mp4?v=0","width":480},{"format":"mp4","height":720,"mime_type":"video\/mp4","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/f50043a88f924186a7527485056b3c63\/f50043a88f924186a7527485056b3c63.HD-720p-3.0Mbps-49479707.mp4?v=0","width":720},{"format":"m3u8","height":720,"mime_type":"application\/x-mpegURL","url":"\/\/functionofbeauty.com\/cdn\/shop\/videos\/c\/vp\/f50043a88f924186a7527485056b3c63\/f50043a88f924186a7527485056b3c63.m3u8?v=0","width":720}]},{"alt":null,"id":43358677270840,"position":20,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Conditioner-Blue.png?v=1755025345"},"aspect_ratio":1.0,"height":1080,"media_type":"image","src":"\/\/functionofbeauty.com\/cdn\/shop\/files\/SOS_Conditioner-Blue.png?v=1755025345","width":1080}],"requires_selling_plan":false,"selling_plan_groups":[{"id":"244d80468611b24b61e8d00fef5557495de8d8a4","name":"SOS Custom Repair Conditioner","options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"values":["1 Month(s)","2 Month(s)","3 Month(s)","4 Month(s)","6 Month(s)"]}],"selling_plans":[{"id":693298889016,"name":"Delivery every 1 Month","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"1 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":693298921784,"name":"Delivery every 2 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"2 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":693298954552,"name":"Delivery every 3 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"3 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":694906618168,"name":"Delivery every 4 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"4 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}}
55,{"id":693299315000,"name":"Delivery every 6 Months","description":null,"options":[{"name":"1 Month(s), 2 Month(s), 3 Month(s), 4 Month(s), 6 Month(s)","position":1,"value":"6 Month(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":0}],"checkout_charge":{"value_type":"percentage","value":100}}],"app_id":"294517"}],"content":"\u003cspan data-mce-fragment=\"1\"\u003e\u003cspan style=\"font-weight: 400;\" data-mce-fragment=\"1\" data-mce-style=\"font-weight: 400;\"\u003eA strengthening and nourishing conditioner for stronger, more resilient hair thanks to our U.S.\u003c\/span\u003e patent-pending Biotech Powered Custom Repair that works to help repair hair from the inside out. Dermatologist tested and fully customized to the unique needs of your hair type and damage level. Size: 11 oz\u003c\/span\u003e"}], 56 specific_collection_discount_list: [{"id":482719007032,"handle":"regimen","title":"regimen","updated_at":"2026-09-24T07:07:36-04:00","body_html":"","published_at":"2024-10-07T10:42:36-04:00","sort_order":"alpha-asc","template_suffix":"regimen","disjunctive":true,"rules":[{"column":"tag","relation":"equals","condition":"in_configuration"}],"published_scope":"web"}], 57 specific_discount_value: 20, 58 specific_discount_text: '', 59 enable_specific_discount_one_time: false, 60 enable_specific_discount_subscriptions: true, 61 freshdesk_domain: 'functionofbeauty.freshdesk.com' , 62 enable_twenty_five_on_three: false, 63 enable_twenty_seventy: false, 64 enable_discount_regimen:false, 65 discount_products_quantity_regimen:0, 66 discount_percentage_regimen:20, 67 discount_shampoo_conditioner: 20, 68 cancel_sub_text: '<h2 class="cancel-title-warning ">Are you sure?</h2><p class="cancel-text-warning">We wanted to let you know that we are discontinuing sizes of one or more products in your subscription. We are only offering 11 oz sizes on our Custom & Purple Shampoos and Conditioners, and in our Bestseller pre-formulated products. Prices for our 11 oz products are $29.</p><p class="cancel-text-warning">If you cancel, you will lose the ability to keep receiving these products in either 16oz or 8oz. These sizes will not return.</p><p class="cancel-text-warning">Have questions about this?</p>', 69 cancel_sub_link_url: '/pages/contact-us', 70 cancel_sub_link_label: 'Contact us', 71 cancel_sub_text_color: '<p>One or more of the colors you selected for custom products in this subscription is being discontinued. If you cancel this subscription, you will no longer be able to choose this color in the future.</p>', 72 cancel_sub_link_url_color: '', 73 cancel_sub_link_label_color: '', 74 delete_card_text_on_edit: 'This subscription contains discontinued 8oz or 16oz products. If you would like to make any edits to this subscription but keep these 8oz or 16oz products, please reach out to our customer service team at [email protected].', 75 delete_card_text_on_edit_color: '<p>One or more of the colors you selected for custom products in this subscription is being discontinued. If you cancel this subscription, you will no longer be able to choose this color in the future.</p>', 76 core_reform_colors_remove: 'Black, Sunkissed', 77 show_best_seller_on_shop_all: 'false', 78 shop_permanent_domain: "fob-admin.myshopify.com", 79 page_metafield_allowed_regions: null, 80 free_sample_product: '', 81 customer_loyalty: '', 82 recommendation_header: 'Inspired by your routine', 83 enable_cancel_prevention_24_hours: false, 84 text_cancel_prevention_24_hours: 'This order is already in progress and can no longer be canceled. Please reach out to customer support if you need help.', 85 cancel_sub_discount_error_title: 'Oops!' || '', 86 cancel_sub_discount_error_description: "Something went wrong. Please reach out to Customer \u003ca href=\"https:\/\/functionofbeauty.com\/pages\/contact-us\"\u003eSupport\u003c\/a\u003e if the problem persists.", 87 cart_popup_title: 'Added to Cart', 88 cart_popup_description: 'Your products have been added to your cart.', 89 cart_popup_button_1_text: 'Continue Shopping', 90 cart_popup_button_2_text: 'View Cart', 91 cart_continue_shopping_url: '/pages/shop-all' 92 } 93 94 window.localStorage.setItem('fob-settings', JSON.stringify(settings)); 95 window.localStorage.setItem('storefront-domain', 'functionofbeauty.com'); 96 </script>
96 97 98
98<script> 99 window.customer = {}; 100 window.customer.id = ; 101 </script>
101 102 103 104 <meta charset="utf-8"> 105<meta http-equiv="X-UA-Compatible" content="IE=edge"> 106<meta name="viewport" content="width=device-width, initial-scale=1.0, height=device-height, minimum-scale=1.0"> 107<meta name="theme-color" content=""> 108 109<link rel="canonical" href="https://functionofbeauty.com/pages/store-locator"> 110 111 112 <meta name="robots" content="index,follow"> 113 114 115 116 <link rel="shortcut icon" href="//functionofbeauty.com/cdn/shop/files/logo_32x32.png?v=1696690657" type="image/png"> 117 118 119 120 121 122 123 124 125 126 <title> 127 Store Locator Page 128 129 130 131 – Function of Beauty 132 133 </title> 134 135 136 137 138 139 140 <meta name="description" content="Find Function of Beauty in a store near you!  Loading store locator from Stockist store locator..."> 141 142 143 144 145 146 147<meta property="og:site_name" content="Function of Beauty"> 148<meta property="og:url" content="https://functionofbeauty.com/pages/store-locator"> 149<meta property="og:title" content="Store Locator Page"> 150<meta property="og:type" content="website"> 151<meta property="og:description" content="Find Function of Beauty in a store near you!  Loading store locator from Stockist store locator..."><meta property="og:image" content="https://functionofbeauty.com/cdn/shop/files/FUNCTION_LINK_1200x628_47b7742f-3e1f-47ba-83cb-5182d8d05ebb_1024x1024.png?v=1698694256"> 152 153<meta name="description" content="Find Function of Beauty in a store near you!  Loading store locator from Stockist store locator..."> 154<meta name="twitter:site" content="@"> 155<meta name="twitter:card" content="summary_large_image"> 156<meta name="twitter:title" content="Store Locator Page"> 157<meta name="twitter:description" content="Find Function of Beauty in a store near you!  Loading store locator from Stockist store locator..."> 158 159
160<script> 161 (function () { 162 var root = document.documentElement; 163 164 try { 165 var vv = window.visualViewport; 166 167 root.style.setProperty('--vh', (vv.height / 100) + 'px'); 168 root.style.setProperty('--vw', (vv.width / 100) + 'px'); 169 vv.addEventListener('resize', () => { 170 root.style.setProperty('--vh', (vv.height / 100) + 'px'); 171 root.style.setProperty('--vw', (vv.width / 100) + 'px'); 172 }); 173 } catch (_) { 174 // VisualViewport not supported, use `document.documentElement.clientHeight` instead 175 root.style.setProperty('--vh', (root.clientHeight / 100) + 'px'); 176 root.style.setProperty('--vw', (root.clientWidth / 100) + 'px'); 177 window.addEventListener('resize', () => { 178 root.style.setProperty('--vh', (root.clientHeight / 100) + 'px'); 179 root.style.setProperty('--vw', (root.clientWidth / 100) + 'px'); 180 }); 181 } 182 })(); 183</script>
183 184 185 186<style> 187 :root { 188 --black: #000000; 189 --white: #ffffff; 190 } 191</style> 192 193 194 195<link rel="stylesheet" href="//functionofbeauty.com/cdn/shop/t/807/assets/theme.css?v=66168105974688568211786549187" data-href="assets/theme.css" > 196<meta name="google-site-verification" content="GooGhywoiu9839t543j0s7543uw1. Please grant Admin access for user [email protected] in Google Ads account 432-235-7782 - Date 07/20/2026."> 197 198<!-- Osano -->
199<script src="https://cmp.osano.com/AzZMz2TUXmyvO3nft/ffb4dce1-6aab-4c71-80d3-ea735f891c9a/osano.js"></script>
199 200<!-- End Osano --> 201 202<!-- Yottaa -->
203<script src="https://rapid-cdn.yottaa.com/rapid/lib/y4-_IDbyr73GPg.js"></script>
203 204<!-- End Yottaa --> 205 206<!-- Google Tag Manager -->
207<script>
vendor: 335 bytes, lines 207-211
207(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 208 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 209 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 210 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 211})(window,document,'script','dataLayer','
211GTM-5VDHCDS4
vendor: 3 bytes, line 211
211');
211</script>
211 212<!-- End Google Tag Manager --> 213 214<!-- Hotjar Tracking Code -->
215<script>
vendor: 115 bytes, lines 215-218
215 216 (function(h,o,t,j,a,r){ 217 h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)}; 218 h._hjSettings={hjid:
2181683527
vendor: 240 bytes, lines 218-223
218,hjsv:6}; 219 a=o.getElementsByTagName('head')[0]; 220 r=o.createElement('script');r.async=1; 221 r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; 222 a.appendChild(r); 223 })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
224</script>
224 225<!-- End Hotjar Tracking Code --> 226
227<script type="text/javascript"> 228 ;window.NREUM||(NREUM={});NREUM.init={distributed_tracing:{enabled:true},privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]}}; 229 230 ;NREUM.loader_config={accountID:"2930607",trustKey:"2930607",agentID:"601421503",licenseKey:"NRJS-63e7894b1fd281b8465",applicationID:"601421503"}; 231 ;NREUM.info={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",licenseKey:"NRJS-63e7894b1fd281b8465",applicationID:"601421503",sa:1}; 232 ;/*! For license information please see nr-loader-spa-1.243.1.min.js.LICENSE.txt */ 233 (()=>{"use strict";var e,t,r={234:(e,t,r)=>{r.d(t,{P_:()=>g,Mt:()=>v,C5:()=>s,DL:()=>w,OP:()=>S,lF:()=>N,Yu:()=>x,Dg:()=>m,CX:()=>c,GE:()=>A,sU:()=>j});var n=r(8632),i=r(9567);const o={beacon:n.ce.beacon,errorBeacon:n.ce.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.D)(t,o),(0,n.Qy)(e,a[e],"info")}const u=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var d=r(7056),l=r(50);const f=()=>{const e={mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{proxy:{assets:void 0,beacon:void 0},privacy:{cookies_enabled:!0},ajax:{deny_list:void 0,block_internal:!0,enabled:!0,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},session:{domain:void 0,expiresMs:d.oD,inactiveMs:d.Hb},ssl:void 0,obfuscate:void 0,jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},metrics:{enabled:!0,autoStart:!0},page_action:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,long_task:!1,autoStart:!0},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},harvest:{tooManyRequestsDelay:60},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,sampling_rate:50,error_sampling_rate:50,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){u(t)?e.mask_selector=t+",[data-nr-mask]":null===t?e.mask_selector=t:(0,l.Z)("An invalid session_replay.mask_selector was provided and will not be used",t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){u(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.Z)("An invalid session_replay.block_selector was provided and will not be used",t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.Z)("An invalid session_replay.mask_input_option was provided and will not be used",t)}},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0}}},h={},p="All configuration objects require an agent identifier!";function g(e){if(!e)throw new Error(p);if(!h[e])throw new Error("Configuration for ".concat(e," was never set"));return h[e]}function m(e,t){if(!e)throw new Error(p);h[e]=(0,i.D)(t,f()),(0,n.Qy)(e,h[e],"config")}function v(e,t){if(!e)throw new Error(p);var r=g(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}const b={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},y={};function w(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!y[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return y[e]}function A(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");y[e]=(0,i.D)(t,b),(0,n.Qy)(e,y[e],"loader_config")}const x=(0,n.mF)().o;var E=r(385),_=r(6818);const T={buildEnv:_.Re,customTransaction:void 0,disabled:!1,distMethod:_.gF,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,offset:M
233ath.floor(E._A?.performance?.timeOrigin||E._A?.performance?.timing?.navigationStart||Date.now()),onerror:void 0,origin:""+E._A.location,ptid:void 0,releaseIds:{},session:void 0,xhrWrappable:"function"==typeof E._A.XMLHttpRequest?.prototype?.addEventListener,version:_.q4,denyList:void 0},D={};function S(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!D[e])throw new Error("Runtime for ".concat(e," was never set"));return D[e]}function j(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");D[e]=(0,i.D)(t,T),(0,n.Qy)(e,D[e],"runtime")}function N(e){return function(e){try{const t=s(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}(e)}},9567:(e,t,r)=>{r.d(t,{D:()=>i});var n=r(50);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.Z)("Setting a Configurable requires an object as input");if(!t||"object"!=typeof t)return(0,n.Z)("Setting a Configurable requires a model to set its initial properties");const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.Z)("An error occurred while setting a property of a Configurable",e)}return r}catch(e){(0,n.Z)("An error occured while setting a Configurable",e)}}},6818:(e,t,r)=>{r.d(t,{Re:()=>i,gF:()=>o,q4:()=>n});const n="1.243.1",i="PROD",o="CDN"},385:(e,t,r)=>{r.d(t,{FN:()=>s,IF:()=>d,Nk:()=>f,Tt:()=>c,_A:()=>o,cv:()=>h,iS:()=>a,il:()=>n,ux:()=>u,v6:()=>i,w1:()=>l});const n="undefined"!=typeof window&&!!window.document,i="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),o=n?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),a=Boolean("hidden"===o?.document?.visibilityState),s=""+o?.location,c=/iPad|iPhone|iPod/.test(o.navigator?.userAgent),u=c&&"undefined"==typeof SharedWorker,d=(()=>{const e=o.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),l=Boolean(n&&window.document.documentMode),f=!!o.navigator?.sendBeacon,h=Math.floor(o?.performance?.timeOrigin||o?.performance?.timing?.navigationStart||Date.now())},1117:(e,t,r)=>{r.d(t,{w:()=>o});var n=r(50);const i={agentIdentifier:"",ee:void 0};class o{constructor(e){try{if("object"!=typeof e)return(0,n.Z)("shared context requires an object as input");this.sharedContext={},Object.assign(this.sharedContext,i),Object.entries(e).forEach((e=>{let[t,r]=e;Object.keys(i).includes(t)&&(this.sharedContext[t]=r)}))}catch(e){(0,n.Z)("An error occured while setting SharedContext",e)}}}},8e3:(e,t,r)=>{r.d(t,{L:()=>d,R:()=>c});var n=r(8325),i=r(1284),o=r(4322),a=r(3325);const s={};function c(e,t){const r={staged:!1,priority:a.p[t]||0};u(e),s[e].get(t)||s[e].set(t,r)}function u(e){e&&(s[e]||(s[e]=new Map))}function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"feature";if(u(e),!e||!s[e].get(t))return a(t);s[e].get(t).staged=!0;const r=[...s[e]];function a(t){const r=e?n.ee.get(e):n.ee,a=o.X.handlers;if(r.backlog&&a){var s=r.backlog[t],c=a[t];if(c){for(var u=0;s&&u<s.length;++u)l(s[u],c);(0,i.D)(c,(function(e,t){(0,i.D)(t,(function(t,r){r[0].on(e,r[1])}))}))}delete a[t],r.backlog[t]=null,r.emit("drain-"+t,[])}}r.every((e=>{let[t,r]=e;return r.staged}))&&(r.sort(((e,t)=>e[1].priority-t[1].priority)),r.forEach((t=>{let[r]=t;s[e].delete(r),a(r)})))}function l(e,t){var r=e[1];(0,i.D)(t[r],(function(t,r){var n=e[0];if(r[0]===n){var i=r[1],o=e[3],a=e[2];i.apply(o,a)}}))}},8325:(e,t,r)=>{r.d(t,{A:()=>c,ee:()=>u});var n=r(8632),i=r(2210),o=r(234);class a{constructor(e){this.contextId=e}}var s=r(3117);const c="nr@context:".concat(s.a),u=function e(t,r){var n={},s={},d={},f=!1;try{f=16===r.length&&(0,o.OP)(r).isolatedBacklog}catch(e){}var h={on:g,addEventListener:g,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=p(n),c=m(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var f=b()[s[e]];f&&f.push([h,e,r,a]);return a},get:v,listeners:m,context:p,buffer:function(e,t){const r=b();if(t=t||"feature",h.aborted)return;Object.entries(e||{}
233).forEach((e=>{let[n,i]=e;s[i]=t,t in r||(r[t]=[])}))},abort:l,aborted:!1,isBuffering:function(e){return!!b()[s[e]]},debugId:r,backlog:f?{}:t&&"object"==typeof t.backlog?t.backlog:{}};return h;function p(e){return e&&e instanceof a?e:e?(0,i.X)(e,c,(()=>new a(c))):new a(c)}function g(e,t){n[e]=m(e).concat(t)}function m(e){return n[e]||[]}function v(t){return d[t]=d[t]||e(h,t)}function b(){return h.backlog}}(void 0,"globalEE"),d=(0,n.fP)();function l(){u.aborted=!0,u.backlog={}}d.ee||(d.ee=u)},5546:(e,t,r)=>{r.d(t,{E:()=>n,p:()=>i});var n=r(8325).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},4322:(e,t,r)=>{r.d(t,{X:()=>o});var n=r(5546);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.E,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.E);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3239:(e,t,r)=>{r.d(t,{bP:()=>s,iz:()=>c,m$:()=>a});var n=r(385);let i=!1,o=!1;try{const e={get passive(){return i=!0,!1},get signal(){return o=!0,!1}};n._A.addEventListener("test",null,e),n._A.removeEventListener("test",null,e)}catch(e){}function a(e,t){return i||o?{capture:!!e,passive:i,signal:t}:!!e}function s(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;window.addEventListener(e,t,a(r,n))}function c(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;document.addEventListener(e,t,a(r,n))}},3117:(e,t,r)=>{r.d(t,{a:()=>n});const n=(0,r(4402).Rl)()},4402:(e,t,r)=>{r.d(t,{Ht:()=>u,M:()=>c,Rl:()=>a,ky:()=>s});var n=r(385);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n._A?.crypto||n._A?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(31))),i.split("").map((e=>"x"===e?o(t,++r).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n._A?.crypto||n._A?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(31)));const a=[];for(var s=0;s<e;s++)a.push(o(r,++i).toString(16));return a.join("")}function c(){return s(16)}function u(){return s(32)}},7056:(e,t,r)=>{r.d(t,{Bq:()=>n,Hb:()=>o,oD:()=>i});const n="NRBA",i=144e5,o=18e5},7894:(e,t,r)=>{function n(){return Math.round(performance.now())}r.d(t,{z:()=>n})},7243:(e,t,r)=>{r.d(t,{e:()=>o});var n=r(385),i={};function o(e){if(e in i)return i[e];if(0===(e||"").indexOf("data:"))return{protocol:"data"};let t;var r=n._A?.location,o={};if(n.il)t=document.createElement("a"),t.href=e;else try{t=new URL(e,r.href)}catch(e){return o}o.port=t.port;var a=t.href.split("://");!o.port&&a[1]&&(o.port=a[1].split("/")[0].split("@").pop().split(":")[1]),o.port&&"0"!==o.port||(o.port="https"===a[0]?"443":"80"),o.hostname=t.hostname||r.hostname,o.pathname=t.pathname,o.protocol=a[0],"/"!==o.pathname.charAt(0)&&(o.pathname="/"+o.pathname);var s=!t.protocol||":"===t.protocol||t.protocol===r.protocol,c=t.hostname===r.hostname&&t.port===r.port;return o.sameOrigin=s&&(!t.hostname||c),"/"===o.pathname&&(i[e]=o),o}},50:(e,t,r)=>{function n(e,t){"function"==typeof console.warn&&(console.warn("New Relic: ".concat(e)),t&&console.warn(t))}r.d(t,{Z:()=>n})},2587:(e,t,r)=>{r.d(t,{N:()=>c,T:()=>u});var n=r(8325),i=r(5546),o=r(3325);const a={stn:[o.D.sessionTrace],err:[o.D.jserrors,o.D.metrics],ins:[o.D.pageAction],spa:[o.D.spa],sr:[o.D.sessionReplay,o.D.sessionTrace]},s=new Set;function c(e,t){const r=n.ee.get(t);e&&"object"==typeof e&&(s.has(t)||Object.entries(e).forEach((e=>{let[t,n]=e;a[t]?a[t].forEach((e=>{n?(0,i.p)("feat-"+t,[],void 0,e,r):(0,i.p)("block-"+t,[],void 0,e,r),(0,i.p)("rumresp-"+t,[Boolean(n)],void 0,e,r)})):n&&(0,i.p)("feat-"+t,[],void 0,void 0,r),u[t]=Boolean(n)})),Object.keys(a).forEach((e=>{void 0===u[e]&&(a[e]?.forEach((t=>(0,i.p)("rumresp-"+e,[!1],void 0,t,r))),u[e]=!1)})),s.add(t))}const u={}},2210:(e,t,r)=>{r.d(t,{X:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},1284:(e,t,r)=>{r.d(t,{D:()=>n});const n=(e,t)=>Object.entries(e||{}).map((e=>{let[r,n]=e;return t(r,n)}))},4351:(e,t,r)=>{r.d(t,{P:()=>o});var n=r(8325);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}}}},3960:(e,t,r)=>{r.d(t,{K:()=>a,b:()=>o});var n=r(3239);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.bP)("load",e,t)}function a(e){if(i())return e();(0,n.iz)("DOMContentLoaded",e)}},8632:(e,t,r)=>{r.d(t,{EZ:()=>u,Qy:()=>c,ce:()=>o,fP:()=>a,gG:()=>d,mF:()=>s});var n=r(7894),i=r(385);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return i._A.NREUM||(i._A.NREUM={}),void 0===i._A.newrelic&&(i._A.newrelic=i._A.NREUM),i._A.NREUM}function s(){let e=a();return e.o||(e.o={ST:i._A.setTimeout,SI:i._A.setImmediate,CT:i._A.clearTimeout,XHR:i._A.XMLHttpRequest,REQ:i._A.Request,EV:i._A.Event,PR:i._A.Promise,MO:i._A.MutationObserver,FETCH:i._A.fetch}),e}function c(e,t,r){let i=a();const o=i.initializedAgents||{},s=o[e]||{};return Object.keys(s).length||(s.initializedAt={ms:(0,n.z)(),date:new Date}),i.initializedAgents={...o,[e]:{...s,[r]:t}},i}function u(e,t){a()[e]=t}function d(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},7956:(e,t,r)=>{r.d(t,{N:()=>i});var n=r(3239);function i(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;(0,n.iz)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},1214:(e,t,r)=>{r.d(t,{em:()=>b,u5:()=>S,QU:()=>C,_L:()=>I,Gm:()=>H,Lg:()=>L,BV:()=>G,Kf:()=>K});var n=r(8325),i=r(3117);const o="nr@original:".concat(i.a);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}
233(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}var l=r(2210),f=r(385);const h={},p=f._A.XMLHttpRequest,g="addEventListener",m="removeEventListener",v="nr@wrapped:".concat(n.A);function b(e){var t=function(e){return(e||n.ee).get("events")}(e);if(h[t.debugId]++)return t;h[t.debugId]=1;var r=c(t,!0);function i(e){r.inPlace(e,[g,m],"-",o)}function o(e,t){return e[1]}return"getPrototypeOf"in Object&&(f.il&&y(document,i),y(f._A,i),y(p.prototype,i)),t.on(g+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,l.X)(n,v,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(m+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function y(e,t){let r=e;for(;"object"==typeof r&&!Object.prototype.hasOwnProperty.call(r,g);)r=Object.getPrototypeOf(r);for(var n=arguments.length,i=new Array(n>2?n-2:0),o=2;o<n;o++)i[o-2]=arguments[o];r&&t(r,...i)}var w="fetch-",A=w+"body-",x=["arrayBuffer","blob","json","text","formData"],E=f._A.Request,_=f._A.Response,T="prototype";const D={};function S(e){const t=function(e){return(e||n.ee).get("fetch")}(e);if(!(E&&_&&f._A.fetch))return t;if(D[t.debugId]++)return t;function r(e,r,i){var o=e[r];"function"==typeof o&&(e[r]=function(){var e,r=[...arguments],a={};t.emit(i+"before-start",[r],a),a[n.A]&&a[n.A].dt&&(e=a[n.A].dt);var s=o.apply(this,r);return t.emit(i+"start",[r,e],s),s.then((function(e){return t.emit(i+"end",[null,e],s),e}),(function(e){throw t.emit(i+"end",[e],s),e}))})}return D[t.debugId]=1,x.forEach((e=>{r(E[T],e,A),r(_[T],e,A)})),r(f._A,"fetch",w),t.on(w+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(w+"done",[null,r],n)}else t.emit(w+"done",[e],n)})),t}const j={},N=["pushState","replaceState"];function C(e){const t=function(e){return(e||n.ee).get("history")}(e);return!f.il||j[t.debugId]++||(j[t.debugId]=1,c(t).inPlace(window.history,N,"-")),t}var O=r(3239);const P={},R=["appendChild","insertBefore","replaceChild"];function I(e){const t=function(e){return(e||n.ee).get("jsonp")}(e);if(!f.il||P[t.debugId])return t;P[t.debugId]=!0;var r=c(t),i=/[?&](?:callback|cb)=([^&#]+)/,o=/(.*)\.([^.]+)/,a=/^(\w+)(\.|$)(.*)$/;function s(e,t){if(!e)return t;const r=e.match(a),n=r[1];return s(r[3],t[n])}return r.inPlace(Node.prototype,R,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var n=(a=e.src,c=a.match(i),c?c[1]:null);var a,c;if(!n)return;var u=function(e){var t=e.match(o);if(t&&t.length>=3)return{key:t[2],parent:s(t[1],window)};return{key:e,parent:window}}(n);if("function"!=typeof u.parent[u.key])return;var d={};function l(){t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,O.m$)(!1)),e.removeEventListener("error",f,(0,O.m$)(!1))}function f(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,O.m$)(!1)),e.removeEventListener("error",f,(0,O.m$)(!1))}
233r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",l,(0,O.m$)(!1)),e.addEventListener("error",f,(0,O.m$)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}const k={};function H(e){const t=function(e){return(e||n.ee).get("mutation")}(e);if(!f.il||k[t.debugId])return t;k[t.debugId]=!0;var r=c(t),i=f._A.MutationObserver;return i&&(window.MutationObserver=function(e){return this instanceof i?new i(r(e,"fn-")):i.apply(this,arguments)},MutationObserver.prototype=i.prototype),t}const z={};function L(e){const t=function(e){return(e||n.ee).get("promise")}(e);if(z[t.debugId])return t;z[t.debugId]=!0;var r=t.context,i=c(t),a=f._A.Promise;return a&&function(){function e(r){var n=t.context(),o=i(r,"executor-",n,null,!1);const s=Reflect.construct(a,[o],e);return t.context(s).getCtx=function(){return n},s}f._A.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return a.toString()},Object.setPrototypeOf(e,a),["all","race"].forEach((function(r){const n=a[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=a[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=a.prototype;const n=a.prototype.then;a.prototype.then=function(){var e=this,o=r(e);o.promise=e;for(var a=arguments.length,s=new Array(a),c=0;c<a;c++)s[c]=arguments[c];s[0]=i(s[0],"cb-",o,null,!1),s[1]=i(s[1],"cb-",o,null,!1);const u=n.apply(this,s);return o.nextPromise=u,t.emit("propagate",[e,!0],u,!1,!1),u},a.prototype.then[o]=n,t.on("executor-start",(function(e){e[0]=i(e[0],"resolve-",this,null,!1),e[1]=i(e[1],"resolve-",this,null,!1)})),t.on("executor-err",(function(e,t,r){e[1](r)})),t.on("cb-end",(function(e,r,n){t.emit("propagate",[n,!0],this.nextPromise,!1,!1)})),t.on("propagate",(function(e,r,n){this.getCtx&&!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r&&r.getCtx?r.getCtx():this})}))}(),t}const M={},B="setTimeout",F="setInterval",U="clearTimeout",Z="-start",V="-",q=[B,"setImmediate",F,U,"clearImmediate"];function G(e){const t=function(e){return(e||n.ee).get("timer")}(e);if(M[t.debugId]++)return t;M[t.debugId]=1;var r=c(t);return r.inPlace(f._A,q.slice(0,2),B+V),r.inPlace(f._A,q.slice(2,3),F+V),r.inPlace(f._A,q.slice(3),U+V),t.on(F+Z,(function(e,t,n){e[0]=r(e[0],"fn-",null,n)})),t.on(B+Z,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],"fn-",this,n)})),t}var W=r(50);const X={},Q=["open","send"];function K(e){var t=e||n.ee;const r=function(e){return(e||n.ee).get("xhr")}(t);if(X[r.debugId]++)return r;X[r.debugId]=1,b(t);var i=c(r),o=f._A.XMLHttpRequest,a=f._A.MutationObserver,s=f._A.Promise,u=f._A.setInterval,d="readystatechange",l=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],h=[],p=f._A.XMLHttpRequest=function(e){const t=new o(e),n=r.context(t);try{r.emit("new-xhr",[t],n),t.addEventListener(d,(a=n,function(){var e=this;e.readyState>3&&!a.resolved&&(a.resolved=!0,r.emit("xhr-resolved",[],e)),i.inPlace(e,l,"fn-",A)}),(0,O.m$)(!1))}catch(e){(0,W.Z)("An error occurred while intercepting XHR",e);try{r.emit("internal-error",[e])}catch(e){}}var a;return t};function g(e,t){i.inPlace(t,["onreadystatechange"],"fn-",A)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,p),p.prototype=o.prototype,i.inPlace(p.prototype,Q,"-xhr-",A),r.on("send-xhr-start",(function(e,t){g(e,t),function(e){h.push(e),a&&(m?m.then(w):u?u(w):(v=-v,y.data=v))}(t)})),r.on("open-xhr-start",g),a){var m=s&&s.resolve();if(!u&&!s){var v=1,y=document.createTextNode(v);new a(w).observe(y,{characterData:!0})}}else t.on("fn-end",(function(e){e[0]&&e[0].type===d||w()}));function w(){for(var e=0;e<h.length;e++)g(0,h[e]);h.length&&(h=[])}function A(e,t){return t}return r}},7825:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.ajax},6660:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.jserrors},3081:(e,t,r)=>{r.d(t,{gF:()=>o,mY:()=>i,t9:()=>n,vz:()=>s,xS:()=>a});const n=r(3325).D.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},4649:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.pageAction},7633:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.pageViewEvent},9251:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.pageViewTiming},7144:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.sessionReplay},3614:(e,t,r)=>{r.d(t,{BST_RESOURCE:()=>i,END:()=>s,FEATURE_NAME:()=>n,FN_END:()=>u,FN_START:()=>c,PUSH_STATE:()=>d,RESOURCE:()=>o,START:()=>a});const n=r(3325).D.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState"},7836:(e,t,r)=>{r.d(t,{BODY:()=>x,CB_END:()=>E,CB_START:()=>u,END:()=>A,FEATURE_NAME:()=>i,FETCH:()=>T,FETCH_BODY:()=>v,FETCH_DONE:()=>m,FETCH_START:()=>g,FN_END:()=>c,FN_START:()=>s,INTERACTION:()=>f,INTERACTION_API:()=>d,INTERACTION_EVENTS:()=>o,JSONP_END:()=>b,JSONP_NODE:()=>p,JS_TIME:()=>_,MAX_TIMER_BUDGET:()=>a,REMAINING:()=>l,SPA_NODE:()=>h,START:()=>w,originalSetTimeout:()=>y});var n=r(234);
233const i=r(3325).D.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",l="remaining",f="interaction",h="spaNode",p="jsonpNode",g="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=n.Yu.ST,w="-start",A="-end",x="-body",E="cb"+A,_="jsTime",T="fetch"},5938:(e,t,r)=>{r.d(t,{W:()=>i});var n=r(8325);class i{constructor(e,t,r){this.agentIdentifier=e,this.aggregator=t,this.ee=n.ee.get(e),this.featureName=r,this.blocked=!1}}},7530:(e,t,r)=>{r.d(t,{j:()=>b});var n=r(3325),i=r(234),o=r(5546),a=r(8325),s=r(7894),c=r(8e3),u=r(3960),d=r(385),l=r(50),f=r(3081),h=r(8632);function p(){const e=(0,h.gG)();["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start"].forEach((t=>{e[t]=function(){for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];return function(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];let o=[];return Object.values(e.initializedAgents).forEach((e=>{e.exposed&&e.api[t]&&o.push(e.api[t](...n))})),o.length>1?o:o[0]}(t,...n)}}))}var g=r(2587);const m=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let v=!1;function b(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},b=arguments.length>2?arguments[2]:void 0,y=arguments.length>3?arguments[3]:void 0,{init:w,info:A,loader_config:x,runtime:E={loaderType:b},exposed:_=!0}=t;const T=(0,h.gG)();A||(w=T.init,A=T.info,x=T.loader_config),(0,i.Dg)(e,w||{}),(0,i.GE)(e,x||{}),A.jsAttributes??={},d.v6&&(A.jsAttributes.isWorker=!0),(0,i.CX)(e,A);const D=(0,i.P_)(e),S=[A.beacon,A.errorBeacon];v||(v=!0,D.proxy.assets&&(m(D.proxy.assets),S.push(D.proxy.assets)),D.proxy.beacon&&S.push(D.proxy.beacon)),E.denyList=[...D.ajax.deny_list||[],...D.ajax.block_internal?S:[]],(0,i.sU)(e,E),p();const j=function(e,t){t||(0,c.R)(e,"api");const h={};var p=a.ee.get(e),g=p.get("tracer"),m="api-",v=m+"ixn-";function b(t,r,n,o){const a=(0,i.C5)(e);return null===r?delete a.jsAttributes[t]:(0,i.CX)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),A(m,n,!0,o||null===r?"session":void 0)(t,r)}function y(){}["setErrorHandler","finished","addToTrace","addRelease"].forEach((e=>{h[e]=A(m,e,!0,"api")})),h.addPageAction=A(m,"addPageAction",!0,n.D.pageAction),h.setCurrentRouteName=A(m,"routeName",!0,n.D.spa),h.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,i.OP)(e).customTransaction=(r||"http://custom.transaction")+t,A(m,"setPageViewName",!0)()},h.setCustomAttribute=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"==typeof e){if(["string","number"].includes(typeof t)||null===t)return b(e,t,"setCustomAttribute",r);(0,l.Z)("Failed to execute setCustomAttribute.\nNon-null value must be a string or number type, but a type of <".concat(typeof t,"> was provided."))}else(0,l.Z)("Failed to execute setCustomAttribute.\nName must be a string type, but a type of <".concat(typeof e,"> was provided."))},h.setUserId=function(e){if("string"==typeof e||null===e)return b("enduser.id",e,"setUserId",!0);(0,l.Z)("Failed to execute setUserId.\nNon-null value must be a string type, but a type of <".concat(typeof e,"> was provided."))},h.setApplicationVersion=function(e){if("string"==typeof e||null===e)return b("application.version",e,"setApplicationVersion",!1);(0,l.Z)("Failed to execute setApplicationVersion. Expected <String | null>, but got <".concat(typeof e,">."))},h.start=e=>{try{const t=e?"defined":"undefined";(0,o.p)(f.xS,["API/start/".concat(t,"/called")],void 0,n.D.metrics,p);const r=Object.values(n.D);if(void 0===e)e=r;else{if((e=Array.isArray(e)&&e.length?e:[e]).some((e=>!r.includes(e))))return(0,l.Z)("Invalid feature name supplied. Acceptable feature names are: ".concat(r));e.includes(n.D.pageViewEvent)||e.push(n.D.pageViewEvent)}e.forEach((e=>{p.emit("".concat(e,"-opt-in"))}))}catch(e){(0,l.Z)("An unexpected issue occurred",e)}},h.interaction=function(){return(new y).get()};var w=y.prototype={createTracer:function(e,t){var r={},i=this,a="function"==typeof t;return(0,o.p)(v+"tracer",[(0,s.z)(),e,r],i,n.D.spa,p),function(){if(g.emit((a?"":"no-")+"fn-start",[(0,s.z)(),i,a],r),a)try{return t.apply(this,arguments)}catch(e){throw g.emit("fn-err",[arguments,this,e],r),e}finally{g.emit("fn-end",[(0,s.z)()],r)}}}};
233function A(e,t,r,i){return function(){return(0,o.p)(f.xS,["API/"+t+"/called"],void 0,n.D.metrics,p),i&&(0,o.p)(e+t,[(0,s.z)(),...arguments],r?null:this,i,p),r?void 0:this}}function x(){r.e(111).then(r.bind(r,7438)).then((t=>{let{setAPI:r}=t;r(e),(0,c.L)(e,"api")})).catch((()=>(0,l.Z)("Downloading runtime APIs failed...")))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{w[e]=A(v,e,void 0,n.D.spa)})),h.noticeError=function(e,t){"string"==typeof e&&(e=new Error(e)),(0,o.p)(f.xS,["API/noticeError/called"],void 0,n.D.metrics,p),(0,o.p)("err",[e,(0,s.z)(),!1,t],void 0,n.D.jserrors,p)},d.il?(0,u.b)((()=>x()),!0):x(),h}(e,y);return(0,h.Qy)(e,j,"api"),(0,h.Qy)(e,_,"exposed"),(0,h.EZ)("activatedFeatures",g.T),j}},3325:(e,t,r)=>{r.d(t,{D:()=>n,p:()=>i});const n={ajax:"ajax",jserrors:"jserrors",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.ajax]:5,[n.sessionTrace]:6,[n.pageAction]:7,[n.spa]:8,[n.sessionReplay]:9}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({111:"nr-spa",164:"nr-spa-compressor",433:"nr-spa-recorder"}[e]+"-1.243.1.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.243.1.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}s||(c=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r),e[r]=[n];var f=(t,n)=>{s.onerror=s.onload=null,clearTimeout(h);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},h=setTimeout(f.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=f.bind(null,s.onerror),s.onload=f.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={801:0,92:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.243.1.PROD"]=self["webpackChunk:NRBA-1.243.1.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{var e=i(50);class t{addPageAction(t,r){(0,e.Z)("Call to agent api addPageAction failed. The session trace feature is not currently initialized.")}setPageViewName(t,r){(0,e.Z)("Call to agent api setPageViewName failed. The page view feature is not currently initialized.")}setCustomAttribute(t,r,n){(0,e.Z)("Call to agent api setCustomAttribute failed. The js errors feature is not currently initialized.")}noticeError(t,r){(0,e.Z)("Call to agent api noticeError failed. The js errors feature is not currently initialized.")}setUserId(t){(0,e.Z)("Call to agent api setUserId failed. The js errors feature is not currently initialized.")}setApplicationVersion(t){(0,e.Z)("Call to agent api setApplicationVersion failed. The agent is not currently initialized.")}setErrorHandler(t){(0,e.Z)("Call to agent api setErrorHandler failed. The js errors feature is not currently initialized.")}finished(t){(0,e.Z)("Call to agent api finished failed. The page action feature is not currently initialized.")}addRelease(t,r){(0,e.Z)("Call to agent api addRelease failed. The agent is not currently initialized.")}start(t){(0,e.Z)("Call to agent api addRelease failed. The agent is not currently initialized.")}}var r=i(3325),n=i(234);const o=Object.values(r.D);function a(e){const t={};return o.forEach((r=>{t[r]=function(e,t){return!1!==(0,n.Mt)(t,"".concat(e,".enabled"))}(r,e)})),t}var s=i(7530);var c=i(8e3),u=i(5938),d=i(3960),l=i(385);class f extends u.W{constructor(e,t,r){let i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];super(e,t,r),this.auto=i,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===(0,n.Mt)(this.agentIdentifier,"".concat(this.featureName,".autoStart"))&&(this.auto=!1),this.auto&&(0,c.R)(e,r)}importAggregator(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.featAggregate)return;if(!this.auto)return void this.ee.on("".concat(this.featureName,"-opt-in"),(()=>{(0,c.R)(this.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator()}));const r=l.il&&!0===(0,n.Mt)(this.agentIdentifier,"privacy.cookies_enabled");let o;this.onAggregateImported=new Promise((e=>{o=e}));const a=async()=>{let n;try{if(r){const{setupAgentSession:e}=await i.e(111).then(i.bind(i,3228));n=e(this.agentIdentifier)}}catch(t){(0,e.Z)("A problem occurred when starting up session manager. This page will not start or extend any session.",t)}
233try{if(!this.shouldImportAgg(this.featureName,n))return(0,c.L)(this.agentIdentifier,this.featureName),void o(!1);const{lazyFeatureLoader:e}=await i.e(111).then(i.bind(i,8582)),{Aggregate:r}=await e(this.featureName,"aggregate");this.featAggregate=new r(this.agentIdentifier,this.aggregator,t),o(!0)}catch(t){(0,e.Z)("Downloading and initializing ".concat(this.featureName," failed..."),t),this.abortHandler?.(),(0,c.L)(this.agentIdentifier,this.featureName),o(!1)}};l.il?(0,d.b)((()=>a()),!0):a()}shouldImportAgg(e,t){return e!==r.D.sessionReplay||!!n.Yu.MO&&(!1!==(0,n.Mt)(this.agentIdentifier,"session_trace.enabled")&&(!!t?.isNew||!!t?.state.sessionReplay))}}var h=i(7633);class p extends f{static featureName=h.t;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,h.t,r),this.importAggregator()}}var g=i(1117),m=i(1284);class v extends g.w{constructor(e){super(e),this.aggregatedData={}}store(e,t,r,n,i){var o=this.getBucket(e,t,r,i);return o.metrics=function(e,t){t||(t={count:0});return t.count+=1,(0,m.D)(e,(function(e,r){t[e]=b(r,t[e])})),t}(n,o.metrics),o}merge(e,t,r,n,i){var o=this.getBucket(e,t,n,i);if(o.metrics){var a=o.metrics;a.count+=r.count,(0,m.D)(r,(function(e,t){if("count"!==e){var n=a[e],i=r[e];i&&!i.c?a[e]=b(i.t,n):a[e]=function(e,t){if(!t)return e;t.c||(t=y(t.t));return t.min=Math.min(e.min,t.min),t.max=Math.max(e.max,t.max),t.t+=e.t,t.sos+=e.sos,t.c+=e.c,t}(i,a[e])}}))}else o.metrics=r}storeMetric(e,t,r,n){var i=this.getBucket(e,t,r);return i.stats=b(n,i.stats),i}getBucket(e,t,r,n){this.aggregatedData[e]||(this.aggregatedData[e]={});var i=this.aggregatedData[e][t];return i||(i=this.aggregatedData[e][t]={params:r||{}},n&&(i.custom=n)),i}get(e,t){return t?this.aggregatedData[e]&&this.aggregatedData[e][t]:this.aggregatedData[e]}take(e){for(var t={},r="",n=!1,i=0;i<e.length;i++)t[r=e[i]]=w(this.aggregatedData[r]),t[r].length&&(n=!0),delete this.aggregatedData[r];return n?t:null}}function b(e,t){return null==e?function(e){e?e.c++:e={c:1};return e}(t):t?(t.c||(t=y(t.t)),t.c+=1,t.t+=e,t.sos+=e*e,e>t.max&&(t.max=e),e<t.min&&(t.min=e),t):{t:e}}function y(e){return{t:e,min:e,max:e,sos:e*e,c:1}}function w(e){return"object"!=typeof e?[]:(0,m.D)(e,A)}function A(e,t){return t}var x=i(8632),E=i(4402),_=i(4351);var T=i(5546),D=i(7956),S=i(3239),j=i(7894),N=i(9251);class C extends f{static featureName=N.t;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,N.t,r),l.il&&((0,D.N)((()=>(0,T.p)("docHidden",[(0,j.z)()],void 0,N.t,this.ee)),!0),(0,S.bP)("pagehide",(()=>(0,T.p)("winPagehide",[(0,j.z)()],void 0,N.t,this.ee))),this.importAggregator())}}var O=i(3081);class P extends f{static featureName=O.t9;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,O.t9,r),this.importAggregator()}}var R=i(6660);class I{constructor(e,t,r,n){this.name="UncaughtError",this.message=e,this.sourceURL=t,this.line=r,this.column=n}}class k extends f{static featureName=R.t;#e=new Set;constructor(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,R.t,n);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("fn-err",((e,t,n)=>{this.abortHandler&&!this.#e.has(n)&&(this.#e.add(n),(0,T.p)("err",[this.#t(n),(0,j.z)()],void 0,r.D.jserrors,this.ee))})),this.ee.on("internal-error",(e=>{this.abortHandler&&(0,T.p)("ierr",[this.#t(e),(0,j.z)(),!0],void 0,r.D.jserrors,this.ee)})),l._A.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,T.p)("err",[this.#r(e),(0,j.z)(),!1,{unhandledPromiseRejection:1}],void 0,r.D.jserrors,this.ee)}),(0,S.m$)(!1,this.removeOnAbort?.signal)),l._A.addEventListener("error",(e=>{this.abortHandler&&(this.#e.has(e.error)?this.#e.delete(e.error):(0,T.p)("err",[this.#n(e),(0,j.z)()],void 0,r.D.jserrors,this.ee))}),(0,S.m$)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#i,this.importAggregator()}#i(){this.removeOnAbort?.abort(),this.#e.clear(),this.abortHandler=void 0}#t(e){return e instanceof Error?e:void 0!==e?.message?new I(e.message,e.filename||e.sourceURL,e.lineno||e.line,e.colno||e.col):new I("string"==typeof e?e:(0,_.P)(e))}#r(e){let t="Unhandled Promise Rejection: ";if(e?.reason instanceof Error)try{return e.reason.message=t+e.reason.message,e.reason}catch(t){return e.reason}if(void 0===e.reason)return new I(t);const r=this.#t(e.reason);return r.message=t+r.message,r}#n(e){return e.error instanceof Error?e.error:new I(e.message,e.filename,e.lineno,e.colno)}}var H=i(2210);let z=1;const L="nr@id";function M(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===l._A?0:(0,H.X)(e,L,(function(){return z++}))}function B(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,_.P)(e).length}catch(e){return}}}var F=i(1214),U=i(7243);class Z{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,n.DL)(this.agentIdentifier);if(!t)return null;var r=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!r||!i)return null;var a=(0,E.M)(),s=(0,E.Ht)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,r,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,r,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof l._A?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,_.P)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,n.Mt)(this.agentIdentifier,"distributed_tracing")&&(r=(0,n.P_)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var i=0;i<r.allowed_origins.length;i++){var o=(0,U.e)(r.allowed_origins[i]);if(e.hostname===o.hostname&&e.protocol===o.protocol&&e.port===o.port){t=!0;break}}return t}isDtEnabled(){var e=(0,n.Mt)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,n.Mt)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,n.Mt)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,n.Mt)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var V=i(7825),q=["load","error","abort","timeout"],G=q.length,W=n.Yu.REQ,X=n.Yu.XHR;class Q extends f{static featureName=V.t;constructor(e,t){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(super(e,t,V.t,i),(0,n.OP)(e).xhrWrappable){this.dt=new Z(e),this.handler=(e,t,r,n)=>(0,T.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};l._A?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const n={status:t.responseStatus},i={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};K(n,t.name),this.handler("xhr",[n,i,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,r.D.ajax)}}))}catch(e){}(0,F.u5)(this.ee),(0,F.Kf)(this.ee),function(e,t,i,o){function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=x,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){E(t,e)}),(0,S.m$)(!1)),l.IF||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,S.m$)(!1))}function s(e){this.params={method:e[0]},K(this,e[1]),this.metrics={}}function c(t,r){var i=(0,n.DL)(e);i.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",i.xpid);var a=o.generateTracePayload(this.parsedOrigin);if(a){var s=!1;a.newrelicHeader&&(r.setRequestHeader("newrelic",a.newrelicHeader),s=!0),a.traceContextParentHeader&&(r.setRequestHeader("traceparent",a.traceContextParentHeader),a.traceContextStateHeader&&r.setRequestHeader("tracestate",a.traceContextStateHeader),s=!0),s&&(this.dt=a)}}function u(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=B(i);a&&(n.txSize=a)}this.startTime=(0,j.z)(),this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"
233!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<G;s++)r.addEventListener(q[s],this.listener,(0,S.m$)(!1))}function d(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function f(e,t){var r=""+M(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function h(e,t){var r=""+M(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function p(){this.endTime=(0,j.z)()}function g(e,r){r instanceof X&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function m(e,r){r instanceof X&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function v(e,t,r){t instanceof X&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,j.z)()))}function b(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,j.z)()-this.xhrCbStart,this.onload,r],r)}function y(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&l.il&&(t=""+l._A.location.href):e[0]&&e[0].url?t=e[0].url:l._A?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,U.e)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=o.generateTracePayload(this.parsedOrigin);if(n&&(n.newrelicHeader||n.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,n)&&(this.dt=n);else{var i={};for(var a in r)i[a]=r[a];i.headers=new Headers(r.headers||{}),s(i.headers,n)&&(this.dt=n),e.length>1?e[1]=i:e.push(i)}}function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function w(e,t){this.params={},this.metrics={},this.startTime=(0,j.z)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof W?r=i.url:l._A?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),K(this,r);var o=(""+(i&&i instanceof W&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.txSize=B(n.body)||0}function A(e,t){var n;this.endTime=(0,j.z)(),this.params||(this.params={}),this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);var o={txSize:this.txSize,rxSize:n,duration:(0,j.z)()-this.startTime};i("xhr",[this.params,o,this.startTime,this.endTime,"fetch"],this,r.D.ajax)}function x(e){var t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(var o=0;o<G;o++)e.removeEventListener(q[o],this.listener,!1);t.aborted||(n.duration=(0,j.z)()-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):E(this,e),n.cbTime=this.cbTime,i("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,r.D.ajax))}}function E(e,t){e.params.status=t.status;var r=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?B(e.response):"text"===r||""===r||void 0===r?B(e.responseText):void 0}(t,e.lastSize);if(r&&(e.metrics.rxSize=r),e.sameOrigin){var n=t.getResponseHeader("X-NewRelic-App-Data");n&&(e.params.cat=n.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",a),t.on("open-xhr-start",s),t.on("open-xhr-end",c),t.on("send-xhr-start",u),t.on("xhr-cb-time",d),t.on("xhr-load-added",f),t.on("xhr-load-removed",h),t.on("xhr-resolved",p),t.on("addEventListener-end",g),t.on("removeEventListener-end",m),t.on("fn-end",b),t.on("fetch-before-start",y),t.on("fetch-start",w),t.on("fn-start",v),t.on("fetch-done",A)}(e,this.ee,this.handler,this.dt),this.importAggregator()}}}function K(e,t){var r=(0,U.e)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var Y=i(3614);const{BST_RESOURCE:J,RESOURCE:ee,START:te,END:re,FEATURE_NAME:ne,FN_END:ie,FN_START:oe,PUSH_STATE:ae}=Y;var se=i(7144);class ce extends f{static featureName=se.t;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,se.t,r),this.importAggregator()}}var ue=i(7836);const{FEATURE_NAME:de,START:le,END:fe,BODY:he,CB_END:pe,JS_TIME:ge,FETCH:me,FN_START:ve,CB_START:be,FN_END:ye}=ue;var we=i(4649);class Ae extends f{static featureName=we.t;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,we.t,r),this.importAggregator()}}new class extends t{constructor(t){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,E.ky)(16);super(),l._A?(this.agentIdentifier=r,this.sharedAggregator=new v({agentIdentifier:this.agentIdentifier}),this.features={},this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(p),Object.assign(this,(0,s.j)(this.agentIdentifier,t,t.loaderType||"agent")),this.run()):(0,e.Z)("Failed to initial the agent. Could not determine the runtime environment.")}get config(){return{info:(0,n.C5)(this.agentIdentifier),init:(0,n.P_)(this.agentIdentifier),loader_config:(0,n.DL)(this.agentIdentifier),runtime:(0,n.OP)(this.agentIdentifier)}}run(){const t="features";try{const n=a(this.agentIdentifier),i=[...this.desiredFeatures];i.sort(((e,t)=>
233r.p[e.featureName]-r.p[t.featureName])),i.forEach((t=>{if(n[t.featureName]||t.featureName===r.D.pageViewEvent){const i=function(e){switch(e){case r.D.ajax:return[r.D.jserrors];case r.D.sessionTrace:return[r.D.ajax,r.D.pageViewEvent];case r.D.sessionReplay:return[r.D.sessionTrace];case r.D.pageViewTiming:return[r.D.pageViewEvent];default:return[]}}(t.featureName);i.every((e=>n[e]))||(0,e.Z)("".concat(t.featureName," is enabled but one or more dependent features has been disabled (").concat((0,_.P)(i),"). This may cause unintended consequences or missing data...")),this.features[t.featureName]=new t(this.agentIdentifier,this.sharedAggregator)}})),(0,x.Qy)(this.agentIdentifier,this.features,t)}catch(r){(0,e.Z)("Failed to initialize all enabled instrument classes (agent aborted) -",r);for(const e in this.features)this.features[e].abortHandler?.();const n=(0,x.fP)();return delete n.initializedAgents[this.agentIdentifier]?.api,delete n.initializedAgents[this.agentIdentifier]?.[t],delete this.sharedAggregator,n.ee?.abort(),delete n.ee?.get(this.agentIdentifier),!1}}addToTrace(t){(0,e.Z)("Call to agent api addToTrace failed. The page action feature is not currently initialized.")}setCurrentRouteName(t){(0,e.Z)("Call to agent api setCurrentRouteName failed. The spa feature is not currently initialized.")}interaction(){(0,e.Z)("Call to agent api interaction failed. The spa feature is not currently initialized.")}}({features:[Q,p,C,class extends f{static featureName=ne;constructor(e,t){if(super(e,t,ne,!(arguments.length>2&&void 0!==arguments[2])||arguments[2]),!l.il)return;const n=this.ee;let i;(0,F.QU)(n),this.eventsEE=(0,F.em)(n),this.eventsEE.on(oe,(function(e,t){this.bstStart=(0,j.z)()})),this.eventsEE.on(ie,(function(e,t){(0,T.p)("bst",[e[0],t,this.bstStart,(0,j.z)()],void 0,r.D.sessionTrace,n)})),n.on(ae+te,(function(e){this.time=(0,j.z)(),this.startPath=location.pathname+location.hash})),n.on(ae+re,(function(e){(0,T.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,r.D.sessionTrace,n)}));try{i=new PerformanceObserver((e=>{const t=e.getEntries();(0,T.p)(J,[t],void 0,r.D.sessionTrace,n)})),i.observe({type:ee,buffered:!0})}catch(e){}this.importAggregator({resourceObserver:i})}},ce,P,Ae,k,class extends f{static featureName=de;constructor(e,t){if(super(e,t,de,!(arguments.length>2&&void 0!==arguments[2])||arguments[2]),!l.il)return;if(!(0,n.OP)(e).xhrWrappable)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,i=0;const o=this.ee.get("tracer"),a=(0,F._L)(this.ee),s=(0,F.Lg)(this.ee),c=(0,F.BV)(this.ee),u=(0,F.Kf)(this.ee),d=this.ee.get("events"),f=(0,F.u5)(this.ee),h=(0,F.QU)(this.ee),p=(0,F.Gm)(this.ee);function g(e,t){h.emit("newURL",[""+window.location,t])}function m(){i++,r=window.location.hash,this[ve]=(0,j.z)()}function v(){i--,window.location.hash!==r&&g(0,!0);var e=(0,j.z)();this[ge]=~~this[ge]+e-this[ve],this[ye]=e}function b(e,t){e.on(t,(function(){this[t]=(0,j.z)()}))}this.ee.on(ve,m),s.on(be,m),a.on(be,m),this.ee.on(ye,v),s.on(pe,v),a.on(pe,v),this.ee.buffer([ve,ye,"xhr-resolved"],this.featureName),d.buffer([ve],this.featureName),c.buffer(["setTimeout"+fe,"clearTimeout"+le,ve],this.featureName),u.buffer([ve,"new-xhr","send-xhr"+le],this.featureName),f.buffer([me+le,me+"-done",me+he+le,me+he+fe],this.featureName),h.buffer(["newURL"],this.featureName),p.buffer([ve],this.featureName),s.buffer(["propagate",be,pe,"executor-err","resolve"+le],this.featureName),o.buffer([ve,"no-"+ve],this.featureName),a.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),b(f,me+le),b(f,me+"-done"),b(a,"new-jsonp"),b(a,"jsonp-end"),b(a,"cb-start"),h.on("pushState-end",g),h.on("replaceState-end",g),window.addEventListener("hashchange",g,(0,S.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",g,(0,S.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){g(0,i>1)}),(0,S.m$)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#i,this.importAggregator()}#i(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}],loaderType:"spa"})})()})(); 234</script>
234 235<!-- test --> 236<!-- Freshchat Widget Tracking Start -->
237<script> 238 window.fcSettings = { 239 token: "8a0babb2-23ab-4418-bdaa-4894a040694e", 240 host: "https://functionofbeauty.freshchat.com", 241 onInit: function() { 242 window.fcWidget.on("widget:loaded", function(resp) { 243 window.fcWidget.on("user:created", function(resp) { 244 console.log("User created."); 245 dataLayer.push({'event': 'User created'}); 246 }); 247 window.fcWidget.on("widget:opened", function(resp) { 248 console.log('Widget Opened'); 249 dataLayer.push({'event': 'Widget Open'}); 250 }); 251 window.fcWidget.on("widget:closed", function(resp) { 252 console.log('Widget Closed'); 253 dataLayer.push({'event': 'Widget Close'}); 254 }); 255 }); 256 } 257 }; 258</script>
258 259<!-- Freshchat Widget Tracking End --> 260 261 262 263
263<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
263<meta name="facebook-domain-verification" content="k0lbdfm47n2kgskazw8ttmvrmpk5lh"> 264<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/69081399608/digital_wallets/dialog"> 265<meta id="in-context-paypal-metadata" data-shop-id="69081399608" data-venmo-supported="true" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 266<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
266<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=5094637880"></script>
266 267<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
268<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=5094637880&shop_id=69081399608" crossorigin="anonymous"></script>
vendor: 1 bytes, line 268
268
269<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":69081399608,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/69081399608","merchantName":"Function of Beauty","requiredBillingContactFields":["postalAddress","email"],"requiredShippingContactFields":["postalAddress","email"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Function of Beauty","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 269
269
270<script id="shopify-features" type="application/json">{"accessToken":"f5e9c31913ce7ab727d6396f6df2bb55","betas":["rich-media-storefront-analytics"],"domain":"functionofbeauty.com","predictiveSearch":true,"shopId":69081399608,"locale":"en"}</script>
vendor: 1 bytes, line 270
270
271<script>var Shopify = Shopify || {}; 272Shopify.shop = "fob-admin.myshopify.com"; 273Shopify.locale = "en"; 274Shopify.currency = {"active":"USD","rate":"1.0"}; 275Shopify.country = "US"; 276Shopify.theme = {"name":"Release v3.2.1","id":189794025784,"schema_name":"X","schema_version":"2.1.0","theme_store_id":null,"role":"main"}; 277Shopify.theme.handle = "null"; 278Shopify.theme.style = {"id":null,"handle":null}; 279Shopify.cdnHost = "functionofbeauty.com/cdn"; 280Shopify.routes = Shopify.routes || {}; 281Shopify.routes.root = "/"; 282Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 283Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 284Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 285Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 285
285
286<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 286
286
287<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 287
287
288<script> 289 window.ShopifyPay = window.ShopifyPay || {}; 290 window.ShopifyPay.apiHost = "shop.app\/pay"; 291 window.ShopifyPay.redirectState = null; 292</script>
vendor: 1 bytes, line 292
292
293<script> 294 window.Shopify = window.Shopify || {}; 295 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 296 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 297 window.Shopify.SignInWithShop.eligible = true; 298</script>
vendor: 1 bytes, line 298
298
299<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 299
299
300<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 300
300
301<script type="module"> 302 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 303 304 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 305 306</script>
vendor: 1 bytes, line 306
306
307<script> 308 window.Shopify = window.Shopify || {}; 309 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 310 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]}; 311</script>
vendor: 1 bytes, line 311
311
312<script>(function() { 313 var isLoaded = false; 314 function asyncLoad() { 315 if (isLoaded) return; 316 isLoaded = true; 317 var urls = ["https:\/\/static.rechargecdn.com\/assets\/js\/widget.min.js?shop=fob-admin.myshopify.com","https:\/\/load.csell.co\/assets\/js\/cross-sell.js?shop=fob-admin.myshopify.com","https:\/\/load.csell.co\/assets\/v2\/js\/core\/xsell.js?shop=fob-admin.myshopify.com","https:\/\/cdn.attn.tv\/functionofbeauty\/dtag.js?shop=fob-admin.myshopify.com","https:\/\/container.pepperjam.com\/2941462100.js?shop=fob-admin.myshopify.com","https:\/\/cdn.attn.tv\/functionofbeauty\/dtag.js?shop=fob-admin.myshopify.com","\/\/cdn.shopify.com\/proxy\/9602568d29cabadb55bfcf0bd0f2bfe79eeb39909478dfe5cc97652323f8f6cb\/cdn.bogos.io\/script_tag\/secomapp.scripttag.js?shop=fob-admin.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","\/\/cdn.shopify.com\/proxy\/bdf8c4426da23958a8f3080b2e673f40efb275a80f339f0549dbdd3dc8aa3122\/apps.bazaarvoice.com\/deployments\/functionofbeauty\/main_site\/production\/en_US\/bv.js?shop=fob-admin.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA"]; 318 for (var i = 0; i < urls.length; i++) { 319 var s = document.createElement('script'); 320 s.type = 'text/javascript'; 321 s.async = true; 322 s.src = urls[i]; 323 var x = document.getElementsByTagName('script')[0]; 324 x.parentNode.insertBefore(s, x); 325 } 326 }; 327 if(window.attachEvent) { 328 window.attachEvent('onload', asyncLoad); 329 } else { 330 window.addEventListener('load', asyncLoad, false); 331 } 332})();</script>
vendor: 1 bytes, line 332
332
333<script id="__st">var __st={"a":69081399608,"offset":-14400,"reqid":"91cf97bd-c141-4a1f-a867-1523c19bcdae-1790293526","pageurl":"functionofbeauty.com\/pages\/store-locator","s":"pages-127769444664","u":"0a72127c73f4","p":"page","rtyp":"page","rid":127769444664};</script>
vendor: 1 bytes, line 333
333
334<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 334
334
335<script id="form-persister">!function(){'use strict';const t='contact',e='new_comment',n=[[t,t],['blogs',e],['comments',e],[t,'customer']],o='password',r='form_key',c=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',o],s=()=>{try{return window.sessionStorage}catch{return}},i='__shopify_v',u=t=>t.elements[r],a=function(){const t=[...n].map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(',');var e;return e=t,()=>e?[...document.querySelectorAll(e)].map((t=>t.form)):[]}();function m(t){const e=u(t);a().includes(t)&&(!e||!e.value)&&function(t){try{if(!s())return;!function(t){const e=s();if(!e)return;const n=u(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){u(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:r})),t.elements[r].value=e}(t,e),function(t,e){const n=s();if(!n)return;const r=[...t.querySelectorAll(`input[type='${o}']`)].map((({name:t})=>t)),u=[...c,...r],a={};for(const[o,c]of new FormData(t).entries())u.includes(o)||(a[o]=c);n.setItem(e,JSON.stringify({[i]:1,action:t.action,data:a}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(t)}const f=t=>{if('true'===t.dataset.persistBound)return;const e=function(t,e){const n=function(t){return'function'==typeof t.submit?t.submit:HTMLFormElement.prototype.submit}(t).bind(t);return function(){let t;return()=>{t||(t=!0,(()=>{try{e(),n()}catch(t){(t=>{console.error('form submit failed',t)})(t)}})(),setTimeout((()=>t=!1),250))}}()}(t,(()=>{m(t)}));!function(t,e){if('function'==typeof t.submit&&'function'==typeof e)try{t.submit=e}catch{}}(t,e),t.addEventListener('submit',(t=>{t.preventDefault(),e()})),t.dataset.persistBound='true'};!function(){function t(t){const e=(t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form})(t);e&&m(e)}document.addEventListener('submit',t),document.addEventListener('DOMContentLoaded',(()=>{const e=a();for(const t of e)f(t);var n;n=document.body,new window.MutationObserver((t=>{for(const e of t)if('childList'===e.type&&e.addedNodes.length)for(const t of e.addedNodes)1===t.nodeType&&'FORM'===t.tagName&&a().includes(t)&&f(t)})).observe(n,{childList:!0,subtree:!0,attributes:!1}),document.removeEventListener('submit',t)}))}()}();</script>
vendor: 1 bytes, line 335
335
336<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//functionofbeauty.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 336
336
337<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//functionofbeauty.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
337<script crossorigin="anonymous" defer="defer" src="//functionofbeauty.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 337
337
338<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 338
338
339<script> 340 window.Shopify = window.Shopify || {}; 341 window.Shopify.MCP = window.Shopify.MCP || {}; 342 window.Shopify.MCP.enabled = true; 343 window.Shopify.MCP.shop = "fob-admin.myshopify.com"; 344 window.Shopify.MCP.mcpEndpoint = "https:\/\/functionofbeauty.com\/api\/mcp"; 345 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 346</script>
vendor: 1 bytes, line 346
346
347<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/functionofbeauty.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 348</script>
vendor: 1 bytes, line 348
348
349<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://functionofbeauty.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 350</script>
vendor: 1 bytes, line 350
350
351<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 352 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 353</script>
vendor: 1 bytes, line 353
353
354<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 355</script>
355 356<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://functionofbeauty.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 357<style id="shopify-accelerated-checkout-cart"> 358 #shopify-buyer-consent { 359 margin-top: 1em; 360 display: inline-block; 361 width: 100%; 362} 363 364#shopify-buyer-consent.hidden { 365 display: none; 366} 367 368#shopify-subscription-policy-button { 369 background: none; 370 border: none; 371 padding: 0; 372 text-decoration: underline; 373 font-size: inherit; 374 cursor: pointer; 375} 376 377#shopify-subscription-policy-button::before { 378 box-shadow: none; 379} 380 381 </style> 382
383<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
383 384 385
385<script src="https://static.rechargecdn.com/assets/storefront/recharge-client-1.10.0.min.js"></script>
385 386<!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 387 388 389 390 391 392 393 394 395 396 397 398 399
399<script async src="https://static.klaviyo.com/onsite/js/MNYXv9/klaviyo.js?company_id=MNYXv9"></script>
399 400
400<script>!function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}();</script>
400 401 402 403 404 405 406 407
407<script> 408 window.klaviyoReviewsProductDesignMode = false 409 </script>
409 410 411 412 413 <!-- BEGIN app snippet: customer-hub-data -->
413<script> 414 if (!window.customerHub) { 415 window.customerHub = {}; 416 } 417 window.customerHub.storefrontRoutes = { 418 login: "https://functionofbeauty.com/customer_authentication/redirect?locale=en®ion_country=US?return_url=%2F%23k-hub", 419 register: "https://shopify.com/69081399608/account?locale=en&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJmb2ItYWRtaW4ubXlzaG9waWZ5LmNvbSIsImZsYWdzIjpbXSwiZXhwIjoxNzkwODk4MzI2LCJuYmYiOjE3OTAyOTM1MjZ9.sVZBTzaQqza_9NCNerPDNEvv-5XD9lw9n9vGQ8nWJrg?return_url=%2F%23k-hub", 420 logout: "/account/logout", 421 profile: "/account", 422 addresses: "/account/addresses", 423 }; 424 425 window.customerHub.userId = null; 426 427 window.customerHub.storeDomain = "fob-admin.myshopify.com"; 428 429 430 431 432 window.customerHub.storeLocale = { 433 currentLanguage: 'en', 434 currentCountry: 'US', 435 availableLanguages: [ 436 437 { 438 iso_code: 'en', 439 endonym_name: 'English' 440 } 441 442 ], 443 availableCountries: [ 444 445 { 446 iso_code: 'AU', 447 name: 'Australia', 448 currency_code: 'AUD' 449 }, 450 451 { 452 iso_code: 'AT', 453 name: 'Austria', 454 currency_code: 'EUR' 455 }, 456 457 { 458 iso_code: 'BE', 459 name: 'Belgium', 460 currency_code: 'EUR' 461 }, 462 463 { 464 iso_code: 'BG', 465 name: 'Bulgaria', 466 currency_code: 'EUR' 467 }, 468 469 { 470 iso_code: 'CA', 471 name: 'Canada', 472 currency_code: 'USD' 473 }, 474 475 { 476 iso_code: 'CL', 477 name: 'Chile', 478 currency_code: 'USD' 479 }, 480 481 { 482 iso_code: 'CO', 483 name: 'Colombia', 484 currency_code: 'USD' 485 }, 486 487 { 488 iso_code: 'HR', 489 name: 'Croatia', 490 currency_code: 'EUR' 491 }, 492 493 { 494 iso_code: 'CY', 495 name: 'Cyprus', 496 currency_code: 'EUR' 497 }, 498 499 { 500 iso_code: 'CZ', 501 name: 'Czechia', 502 currency_code: 'EUR' 503 }, 504 505 { 506 iso_code: 'DK', 507 name: 'Denmark', 508 currency_code: 'DKK' 509 }, 510 511 { 512 iso_code: 'EE', 513 name: 'Estonia', 514 currency_code: 'EUR' 515 }, 516 517 { 518 iso_code: 'FI', 519 name: 'Finland', 520 currency_code: 'EUR' 521 }, 522 523 { 524 iso_code: 'FR', 525 name: 'France', 526 currency_code: 'EUR' 527 }, 528 529 { 530 iso_code: 'DE', 531 name: 'Germany', 532 currency_code: 'EUR' 533 }, 534 535 { 536 iso_code: 'GR', 537 name: 'Greece', 538 currency_code: 'EUR' 539 }, 540 541 { 542 iso_code: 'GG', 543 name: 'Guernsey', 544 currency_code: 'GBP' 545 }, 546 547 { 548 iso_code: 'HK', 549 name: 'Hong Kong SAR', 550 currency_code: 'HKD' 551 }, 552 553 { 554 iso_code: 'HU', 555 name: 'Hungary', 556 currency_code: 'EUR' 557 }, 558 559 { 560 iso_code: 'IS', 561 name: 'Iceland', 562 currency_code: 'USD' 563 }, 564 565 { 566 iso_code: 'IE', 567 name: 'Ireland', 568 currency_code: 'EUR' 569 }, 570 571 { 572 iso_code: 'IM', 573 name: 'Isle of Man', 574 currency_code: 'GBP' 575 }, 576 577 { 578 iso_code: 'IL', 579 name: 'Israel', 580 currency_code: 'ILS' 581 }, 582 583 { 584 iso_code: 'IT', 585 name: 'Italy', 586 currency_code: 'EUR' 587 }, 588 589 { 590 iso_code: 'JP', 591 name: 'Japan', 592 currency_code: 'JPY' 593 }, 594 595 { 596 iso_code: 'JE', 597 name: 'Jersey', 598 currency_code: 'GBP' 599 }, 600 601 { 602 iso_code: 'LV', 603 name: 'Latvia', 604 currency_code: 'EUR' 605 }, 606 607 { 608 iso_code: 'LT', 609 name: 'Lithuania', 610 currency_code: 'EUR' 611 }, 612 613 { 614 iso_code: 'LU', 615 name: 'Luxembourg', 616 currency_code: 'EUR' 617 }, 618 619 { 620 iso_code: 'MT', 621 name: 'Malta', 622 currency_code: 'EUR' 623 }, 624 625 { 626 iso_code: 'MX', 627 name: 'Mexico', 628 currency_code: 'USD' 629 }, 630 631 { 632 iso_code: 'NL', 633 name: 'Netherlands', 634 currency_code: 'EUR' 635 }, 636 637 { 638 iso_code: 'NZ', 639 name: 'New Zealand', 640 currency_code: 'NZD' 641 }, 642 643 { 644 iso_code: 'NO', 645 name: 'Norway', 646 currency_code: 'NOK' 647 }, 648 649 { 650 iso_code: 'PL', 651 name: 'Poland', 652 currency_code: 'EUR' 653 }, 654 655 { 656 iso_code: 'PT', 657 name: 'Portugal', 658 currency_code: 'EUR' 659 }, 660 661 { 662 iso_code: 'RO', 663 name: 'Romania', 664 currency_code: 'EUR' 665 }, 666 667 { 668 iso_code: 'SG', 669 name: 'Singapore', 670 currency_code: 'SGD' 671 }, 672 673 { 674 iso_code: 'SK', 675 name: 'Slovakia', 676 currency_code: 'EUR' 677 }, 678 679 { 680 iso_code: 'SI', 681 name: 'Slovenia', 682 currency_code: 'EUR' 683 }, 684 685 { 686 iso_code: 'KR', 687 name: 'South Korea', 688 currency_code: 'USD' 689 }, 690 691 { 692 iso_code: 'ES', 693 name: 'Spain', 694 currency_code: 'EUR' 695 }, 696 697 { 698 iso_code: 'SE', 699 name: 'Sweden', 700 currency_code: 'SEK' 701 }, 702 703 { 704 iso_code: 'CH', 705 name: 'Switzerland', 706 currency_code: 'CHF' 707 }, 708 709 { 710 iso_code: 'TW', 711 name: 'Taiwan', 712 currency_code: 'TWD' 713 }, 714 715 { 716 iso_code: 'AE', 717 name: 'United Arab Emirates', 718 currency_code: 'USD' 719 }, 720 721 { 722 iso_code: 'GB', 723 name: 'United Kingdom', 724 currency_code: 'GBP' 725 }, 726 727 { 728 iso_code: 'US', 729 name: 'United States', 730 currency_code: 'USD' 731 } 732 733 ] 734 }; 735 736</script>
736 737<!-- END app snippet --> 738 739 740 741 742 743 744 745<!-- END app block --><!-- BEGIN app block: shopify://apps/gorgias-live-chat-helpdesk/blocks/gorgias/a66db725-7b96-4e3f-916e-6c8e6f87aaaa -->
746<script defer data-gorgias-loader-chat src="https://config.gorgias.chat/bundle-loader/shopify/fob-admin.myshopify.com"></script>
746 747 748
749<script defer data-gorgias-loader-convert src="https://content.9gtb.com/loader.js"></script>
749 750 751
752<script defer data-gorgias-loader-mailto-replace src="https://config.gorgias.help/api/contact-forms/replace-mailto-script.js?shopName=fob-admin"></script>
752 753 754 755<!-- END app block --><!-- BEGIN app block: shopify://apps/attentive/blocks/attn-tag/8df62c72-8fe4-407e-a5b3-72132be30a0d -->
755<script type="text/javascript" src="https://afuit.functionofbeauty.com/providers/atLabel/load" onerror=" var fallbackScript = document.createElement('script'); fallbackScript.src = 'https://cdn.attn.tv/functionofbeauty/dtag.js'; document.head.appendChild(fallbackScript);" data-source="loaded?source=app-embed" defer="defer"></script>
755 756 757 758<!-- END app block --><!-- BEGIN app block: shopify://apps/microsoft-clarity/blocks/clarity_js/31c3d126-8116-4b4a-8ba1-baeda7c4aeea -->
759<script type="text/javascript"> 760 (function (c, l, a, r, i, t, y) { 761 c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments); }; 762 t = l.createElement(r); t.async = 1; t.src = "https://www.clarity.ms/tag/" + i + "?ref=shopify"; 763 y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y); 764 765 c.Shopify.loadFeatures([{ name: "consent-tracking-api", version: "0.1" }], error => { 766 if (error) { 767 console.error("Error loading Shopify features:", error); 768 return; 769 } 770 771 c[a]('consentv2', { 772 ad_Storage: c.Shopify.customerPrivacy.marketingAllowed() ? "granted" : "denied", 773 analytics_Storage: c.Shopify.customerPrivacy.analyticsProcessingAllowed() ? "granted" : "denied", 774 source: 101, 775 }); 776 }); 777 778 l.addEventListener("visitorConsentCollected", function (e) { 779 c[a]('consentv2', { 780 ad_Storage: e.detail.marketingAllowed ? "granted" : "denied", 781 analytics_Storage: e.detail.analyticsAllowed ? "granted" : "denied", 782 source: 101, 783 }); 784 }); 785 })(window, document, "clarity", "script", "suda1fa1nd"); 786</script>
786 787 788 789 790<!-- END app block --><!-- BEGIN app block: shopify://apps/microsoft-clarity/blocks/brandAgents_js/31c3d126-8116-4b4a-8ba1-baeda7c4aeea --> 791 792 793
794<script type="text/javascript"> 795 (function(d){ 796 var s = d.createElement('script'); 797 s.async = true; 798 s.src = "https://adsagentclientafd-b7hqhjdrf3fpeqh2.b01.azurefd.net/frontendInjection.js"; 799 var firstScript = d.getElementsByTagName('script')[0]; 800 firstScript.parentNode.insertBefore(s, firstScript); 801 })(document); 802</script>
802 803 804 805 806<!-- END app block --><!-- BEGIN app block: shopify://apps/wingify/blocks/vwo-smartcode/2ce905b2-3842-4d20-b6b0-8c51fc208426 --> 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 <!-- BEGIN app snippet: smartcode-vwo-2x --> 828 <!-- Start VWO Async SmartCode --> 829 <link rel="preconnect" href="https://dev.visualwebsiteoptimizer.com" /> 830
830<script type='text/javascript' id='vwoCode'> 831 window._vwo_code || 832 (function () { 833 var w=window, 834 d=document; 835 var account_id=846410, 836 version=2.2, 837 settings_tolerance=2000, 838 hide_element='body', 839 hide_element_style = 'opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important'; 840 /* DO NOT EDIT BELOW THIS LINE */ 841 var f=0, v; 842 if(f=!1,v=d.querySelector('#vwoCode'),cc={},-1<d.URL.indexOf('__vwo_disable__')||w._vwo_code)return;try{var e=JSON.parse(localStorage.getItem('_vwo_'+account_id+'_config'));cc=e&&'object'==typeof e?e:{}}catch(e){}function r(t){try{return decodeURIComponent(t)}catch(e){return t}}var s=function(){var e={combination:[],combinationChoose:[],split:[],exclude:[],uuid:null,consent:null,optOut:null},t=d.cookie||'';if(!t)return e;for(var n,i,o=/(?:^|;\s*)(?:(_vis_opt_exp_(\d+)_combi=([^;]*))|(_vis_opt_exp_(\d+)_combi_choose=([^;]*))|(_vis_opt_exp_(\d+)_split=([^:;]*))|(_vis_opt_exp_(\d+)_exclude=[^;]*)|(_vis_opt_out=([^;]*))|(_vwo_global_opt_out=[^;]*)|(_vwo_uuid=([^;]*))|(_vwo_consent=([^;]*)))/g;null!==(n=o.exec(t));)try{n[1]?e.combination.push({id:n[2],value:r(n[3])}):n[4]?e.combinationChoose.push({id:n[5],value:r(n[6])}):n[7]?e.split.push({id:n[8],value:r(n[9])}):n[10]?e.exclude.push({id:n[11]}):n[12]?e.optOut=r(n[13]):n[14]?e.optOut=!0:n[15]?e.uuid=r(n[16]):n[17]&&(i=r(n[18]),e.consent=i&&3<=i.length?i.substring(0,3):null)}catch(e){}return e}();function i(){var e=function(){if(w.VWO&&Array.isArray(w.VWO))for(var e=0;e<w.VWO.length;e++){var t=w.VWO[e];if(Array.isArray(t)&&('setVisitorId'===t[0]||'setSessionId'===t[0]))return!0}return!1}(),t='a='+account_id+'&u='+encodeURIComponent(w._vis_opt_url||d.URL)+'&vn='+version+'&ph=1'+('undefined'!=typeof platform?'&p='+platform:'')+'&st='+w.performance.now();e||((n=function(){var e,t=[],n={},i=w.VWO&&w.VWO.appliedCampaigns||{};for(e in i){var o=i[e]&&i[e].v;o&&(t.push(e+'-'+o+'-1'),n[e]=!0)}if(s&&s.combination)for(var r=0;r<s.combination.length;r++){var a=s.combination[r];n[a.id]||t.push(a.id+'-'+a.value)}return t.join('|')}())&&(t+='&c='+n),(n=function(){var e=[],t={};if(s&&s.combinationChoose)for(var n=0;n<s.combinationChoose.length;n++){var i=s.combinationChoose[n];e.push(i.id+'-'+i.value),t[i.id]=!0}if(s&&s.split)for(var o=0;o<s.split.length;o++)t[(i=s.split[o]).id]||e.push(i.id+'-'+i.value);return e.join('|')}())&&(t+='&cc='+n),(n=function(){var e={},t=[];if(w.VWO&&Array.isArray(w.VWO))for(var n=0;n<w.VWO.length;n++){var i=w.VWO[n];if(Array.isArray(i)&&'setVariation'===i[0]&&i[1]&&Array.isArray(i[1]))for(var o=0;o<i[1].length;o++){var r,a=i[1][o];a&&'object'==typeof a&&(r=a.e,a=a.v,r&&a&&(e[r]=a))}}for(r in e)t.push(r+'-'+e[r]);return t.join('|')}())&&(t+='&sv='+n)),s&&s.optOut&&(t+='&o='+s.optOut);var n=function(){var e=[],t={};if(s&&s.exclude)for(var n=0;n<s.exclude.length;n++){var i=s.exclude[n];t[i.id]||(e.push(i.id),t[i.id]=!0)}return e.join('|')}();return n&&(t+='&e='+n),s&&s.uuid&&(t+='&id='+s.uuid),s&&s.consent&&(t+='&consent='+s.consent),w.name&&-1<w.name.indexOf('_vis_preview')&&(t+='&pM=true'),w.VWO&&w.VWO.ed&&(t+='&ed='+w.VWO.ed),t}code={nonce:v&&v.nonce,library_tolerance:function(){return'undefined'!=typeof library_tolerance?library_tolerance:void 0},settings_tolerance:function(){return cc.sT||settings_tolerance},hide_element_style:function(){return'{'+(cc.hES||hide_element_style)+'}'},hide_element:function(){return performance.getEntriesByName('first-contentful-paint')[0]?'':'string'==typeof cc.hE?cc.hE:hide_element},getVersion:function(){return version},finish:function(e){var t;f||(f=!0,(t=d.getElementById('_vis_opt_path_hides'))&&t.parentNode.removeChild(t),e&&((new Image).src='https://dev.visualwebsiteoptimizer.com/ee.gif?a='+account_id+e))},finished:function(){return f},addScript:function(e){var t=d.createElement('script');t.type='text/javascript',e.src?t.src=e.src:t.text=e.text,v&&t.setAttribute('nonce',v.nonce),d.getElementsByTagName('head')[0].appendChild(t)},load:function(e,t){t=t||{};var n=new XMLHttpRequest;n.open('GET',e,!0),n.withCredentials=!t.dSC,n.responseType=t.responseType||'text',n.onload=function(){if(t.onloadCb)return t.onloadCb(n,e);200===n.status?_vwo_code.addScript({text:n.responseText}):_vwo_code.finish('&e=loading_failure:'+e)},n.onerror=function(){if(t.onerrorCb)return t.onerrorCb(e);_vwo_code.finish('&e=loading_failure:'+e)},n.send()},init:function(){var e,t=this.settings_tolerance();w._vwo_settings_timer=setTimeout(function(){_vwo_code.finish()}
842,t),'body'!==this.hide_element()?(n=d.createElement('style'),e=(t=this.hide_element())?t+this.hide_element_style():'',t=d.getElementsByTagName('head')[0],n.setAttribute('id','_vis_opt_path_hides'),v&&n.setAttribute('nonce',v.nonce),n.setAttribute('type','text/css'),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(d.createTextNode(e)),t.appendChild(n)):(n=d.getElementsByTagName('head')[0],(e=d.createElement('div')).style.cssText='z-index: 2147483647 !important;position: fixed !important;left: 0 !important;top: 0 !important;width: 100% !important;height: 100% !important;background: white !important;',e.setAttribute('id','_vis_opt_path_hides'),e.classList.add('_vis_hide_layer'),n.parentNode.insertBefore(e,n.nextSibling));var n='https://dev.visualwebsiteoptimizer.com/j.php?'+i();-1!==w.location.search.indexOf('_vwo_xhr')?this.addScript({src:n}):this.load(n+'&x=true',{l:1})}};w._vwo_code=code;code.init();})(); 843 </script>
843 844 <!-- End VWO Async SmartCode --> 845 846<!-- END app snippet --> 847 848 849 850 851<!-- END app block --><!-- BEGIN app block: shopify://apps/yotpo-product-reviews/blocks/settings/eb7dfd7d-db44-4334-bc49-c893b51b36cf --> 852 853 854
854<script type="text/javascript" src="https://cdn-widgetsrepository.yotpo.com/v1/loader/yJU0TDaMDv1A8nN6qmKN13sVp0FNRrAHt0bwo9e5?languageCode=en" async></script>
854 855 856 857 858 859<!-- END app block -->
859<script src="https://cdn.shopify.com/extensions/01a04338-bc1f-71ce-b6bf-1bdd8c114a83/genesis-717/assets/vqb-extension.js" type="text/javascript" defer="defer"></script>
859 860<link href="https://cdn.shopify.com/extensions/01a04338-bc1f-71ce-b6bf-1bdd8c114a83/genesis-717/assets/vqb-style.css" rel="stylesheet" type="text/css" media="all"> 861<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
862<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 69081399608,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "page"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 862
862
863<script> 864 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 865</script>
vendor: 1 bytes, line 865
865
866<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
866).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 69081399608,storefrontBaseUrl: "https://functionofbeauty.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://functionofbeauty.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"3004203320","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"GT-WF8DFFL4\\\"],\\\"target_country\\\":\\\"ZZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":\\\"MC-7FMJQNR9CF\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":\\\"MC-7FMJQNR9CF\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":\\\"MC-7FMJQNR9CF\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"2798715192","configuration":"{\"tenantId\":\"150539\",\"tenantIdSign\":\"v1_423c89b81488626def3f275e12d661a107b938f6\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"07f832d1c7a598f6666d7fd5554ed235","type":"APP","apiClientId":53516632065,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2699460920","configuration":"{\"accountID\":\"7482\",\"integrationId\":\"7482\",\"brandId\":\"7268\",\"environment\":\"prod\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"f28c8e4372c74ce89d6ccedbdfdb52da","type":"APP","apiClientId":222583193
86661,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2212856120","configuration":"{\"locale\":\"en_US\",\"client\":\"functionofbeauty\",\"environment\":\"production\",\"deployment_zone\":\"main_site\",\"use_external_ids\":\"false\",\"storefront_api_key\":\"8ca48e5de0f7d6882d5c76708f2a21d6\",\"product_metafield_key\":\"none\",\"product_metafield_namespace\":\"none\",\"multi_locale_enabled\":\"false\",\"locale_mapping\":\"{}\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"e9849bbfb1381d47503a57eebf3a7a78","type":"APP","apiClientId":1888040,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1897300280","configuration":"{\"accountID\":\"MNYXv9\",\"webPixelConfig\":\"eyJlbmFibGVBZGRlZFRvQ2FydEV2ZW50cyI6IHRydWV9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c63c5b72c8d77be5f2d27d14c081da38","type":"APP","apiClientId":123074,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"1716945208","configuration":"{\"projectId\":\"suda1fa1nd\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d8a2bb2ccbb513dc8e8b6937f4b8033e","type":"APP","apiClientId":240074326017,"privacyPurposes":[],"capabilities":["advanced_dom_events"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1125122360","configuration":"{\"pixel_id\":\"561375624028505\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"850985272","configuration":"{\"vwoAccountId\":\"846410\",\"eventConfiguration\":\"{\\\"ece\\\":1,\\\"pv\\\":1,\\\"prv\\\":1,\\\"patc\\\":1,\\\"prfc\\\":1,\\\"cv\\\":1,\\\"cs\\\":1,\\\"cc\\\":1}\",\"dataUri\":\"dev.visualwebsiteoptimizer.com\",\"customCodeConfig\":\"{\\\"customCodeEnabled\\\":false,\\\"customCode\\\":\\\"vwo.addShopifyMiddleware((payload) =\\u003e { let newPayload = payload; return newPayload;});\\\"}\",\"cookieConsentConfig\":\"{\\\"consentRequired\\\":false,\\\"consentCategories\\\":{\\\"analytics\\\":false,\\\"marketing\\\":false,\\\"personalization\\\":false}}\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"17c0617486e219f692914ca1feba2253","type":"APP","apiClientId":68559962113,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"393249080","configuration":"{\"shopName\":\"fob-admin.myshopify.com\",\"environment\":\"production\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0bcc8e5fa4beebb3e5395b84207d055f","type":"APP","apiClientId":2619571,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"}
866,{"id":"138510648","configuration":"{\"env\":\"prod\"}","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"8a9a175b11d15038a70fe78d09c59720","type":"APP","apiClientId":3977633,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"70418744","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"12","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"GTM GA4 - Checkout"},{"id":"121864504","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"Ascend"},{"id":"157745464","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Attentive (Enhanced) "},{"id":"180158776","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"AddShoppers Tag"},{"id":"186581304","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"3","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Klaviyo - Scripts"},{"id":"212762936","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"TYB - Obsessions Affiliate"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Function of Beauty","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"fob-admin.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/functionofbeauty.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"8664884904248","handle":"hair-serum","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46910687084856","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8664885788984","handle":"cowash","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46910688362808","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8664886346040","handle":"conditioner","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"49220493050168","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8664885002552","handle":"hair-mask","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46910687183160","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8664884773176","handle":"leave-in-conditioner","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46910686527800","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8664884511032","handle":"purple-hair-mask","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46910686265656","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8664884412728","handle":"purple-shampoo","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"49220511269176","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8664884052280","handle":"shampoo","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"49220485480760","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8664883036472","handle":"styling-primer","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47154476810552","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9023840420152","handle":"sos-shampoo","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"48125591519544","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9023840649528","handle":"sos-leave-in-treatment","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47937333756216","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9023840583992","handle":"sos-hair-mask","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"48125591748920","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9023840551224","handle":"sos-conditioner","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"48125591683384","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8664886608184","handle":"comb","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46910691115320","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://functionofbeauty.com/cdn","c8540278we853e1abpb62b2c4amde256306",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"189794025784","themePublished":"true","eventMetadataId":"68d4e4b4-eccc-423c-a886-75bebb7d5980","pageType":"page","resourceId":"127769444664","shopId":"69081399608","storefrontBaseUrl":"https:\/\/functionofbeauty.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"c8540278we853e1abpb62b2c4amde256306","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
866<script> 867 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 868 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 869 window.ShopifyAnalytics.meta.currency = 'USD'; 870 var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":127769444664,"requestId":"91cf97bd-c141-4a1f-a867-1523c19bcdae-1790293526"}}; 871 for (var attr in meta) { 872 window.ShopifyAnalytics.meta[attr] = meta[attr]; 873 } 874</script>
vendor: 1 bytes, line 874
874
875<script class="analytics"> 876 (function () { 877 var customDocumentWrite = function(content) { 878 var jquery = null; 879 880 if (window.jQuery) { 881 jquery = window.jQuery; 882 } else if (window.Checkout && window.Checkout.$) { 883 jquery = window.Checkout.$; 884 } 885 886 if (jquery) { 887 jquery('body').append(content); 888 } 889 }; 890 891 var hasLoggedConversion = function(token) { 892 if (token) { 893 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 894 } 895 return false; 896 } 897 898 var setCookieIfConversion = function(token) { 899 if (token) { 900 var twoMonthsFromNow = new Date(Date.now()); 901 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 902 903 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 904 } 905 } 906 907 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 908 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 909 if (trekkie.integrations) { 910 return; 911 } 912 trekkie.methods = [ 913 'identify', 914 'page', 915 'ready', 916 'track', 917 'trackForm', 918 'trackLink' 919 ]; 920 trekkie.factory = function(method) { 921 return function() { 922 var args = Array.prototype.slice.call(arguments); 923 args.unshift(method); 924 trekkie.push(args); 925 if (method == 'track' || method == 'page') { 926 var pageUrl; 927 try { 928 pageUrl = window.location.href; 929 } catch (e) {} 930 var pageReferrer; 931 try { 932 pageReferrer = document.referrer; 933 } catch (e) {} 934 try { 935 if (window.__TREKKIE_SHIM_QUEUE == null) { 936 window.__TREKKIE_SHIM_QUEUE = []; 937 } 938 window.__TREKKIE_SHIM_QUEUE.push({ 939 from: 'trekkie-stub', 940 method: method, 941 args: args.slice(1), 942 pageContext: { 943 url: pageUrl, 944 referrer: pageReferrer 945 } 946 }); 947 } catch (e) { 948 // no-op 949 } 950 } 951 return trekkie; 952 }; 953 }; 954 for (var i = 0; i < trekkie.methods.length; i++) { 955 var key = trekkie.methods[i]; 956 trekkie[key] = trekkie.factory(key); 957 } 958 trekkie.load = function(config) { 959 trekkie.config = config || {}; 960 trekkie.config.initialDocumentCookie = document.cookie; 961 var first = document.getElementsByTagName('script')[0]; 962var script = document.createElement('script'); 963script.type = 'text/javascript'; 964script.onerror = function(e) { 965 var scriptFallback = document.createElement('script'); 966 scriptFallback.type = 'text/javascript'; 967 scriptFallback.onerror = function(error) { 968 var Monorail = { 969 produce: function produce(monorailDomain, schemaId, payload) { 970 var currentMs = new Date().getTime(); 971 var event = { 972 schema_id: schemaId, 973 payload: payload, 974 metadata: { 975 event_created_at_ms: currentMs, 976 event_sent_at_ms: currentMs 977 } 978 }; 979 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 980 }, 981 sendRequest: function sendRequest(endpointUrl, payload) { 982 // Try the sendBeacon API 983 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 984 var blobData = new window.Blob([payload], { 985 type: 'text/plain' 986 }); 987 988 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 989 return true; 990 } // sendBeacon was not successful 991 992 } // XHR beacon 993 994 var xhr = new XMLHttpRequest(); 995 996 try { 997 xhr.open('POST', endpointUrl); 998 xhr.setRequestHeader('Content-Type', 'text/plain'); 999 xhr.send(payload); 1000 } catch (e) { 1001 console.log(e); 1002 } 1003 1004 return false; 1005 }, 1006 isIos12: function isIos12() { 1007 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 1008 } 1009 }; 1010 Monorail.produce('monorail-edge.shopifysvc.com', 1011 'trekkie_storefront_load_errors/1.1', 1012 {shop_id: 69081399608, 1013 theme_id: 189794025784, 1014 app_name: "storefront", 1015 context_url: window.location.href, 1016 source_url: "//functionofbeauty.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js"}); 1017 1018 }; 1019 scriptFallback.async = true; 1020 scriptFallback.src = '//functionofbeauty.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 1021 first.parentNode.insertBefore(scriptFallback, first); 1022}; 1023script.async = true; 1024script.src = '//functionofbeauty.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 1025first.parentNode.insertBefore(script, first); 1026 1027 }; 1028 trekkie.load( 1029 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":69081399608,"isMerchantRequest":null,"themeId":189794025784,"themeCityHash":"15057737898921247163","contentLanguage":"en","currency":"USD","eventMetadataId":"68d4e4b4-eccc-423c-a886-75bebb7d5980"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 1030 ); 1031 1032 var loaded = false;
1033 trekkie.ready(function() { 1034 if (loaded) return; 1035 loaded = true; 1036 1037 window.ShopifyAnalytics.lib = window.trekkie; 1038 1039 var originalDocumentWrite = document.write; 1040 document.write = customDocumentWrite; 1041 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 1042 document.write = originalDocumentWrite; 1043 1044 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 1045 var token = match? match[1]: undefined; 1046 if (!hasLoggedConversion(token)) { 1047 setCookieIfConversion(token); 1048 1049 } 1050 }); 1051 1052 window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":127769444664,"requestId":"91cf97bd-c141-4a1f-a867-1523c19bcdae-1790293526","shopifyEmitted":true}); 1053 1054 var eventsListenerScript = document.createElement('script'); 1055 eventsListenerScript.async = true; 1056 eventsListenerScript.src = "//functionofbeauty.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 1057 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 1058})();</script>
vendor: 1 bytes, line 1058
1058
1059<script 1060 defer 1061 src="https://functionofbeauty.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 1062 data-application="storefront-renderer" 1063 data-shop-id="69081399608" 1064 data-render-region="gcp-us-central1" 1065 data-page-type="page" 1066 data-theme-instance-id="189794025784" 1067 data-theme-name="X" 1068 data-theme-version="2.1.0" 1069 data-monorail-region="shop_domain" 1070 data-resource-timing-sampling-rate="10" 1071 data-shs="true" 1072 data-shs-beacon="true" 1073 data-shs-export-with-fetch="true" 1074 data-shs-logs-sample-rate="1" 1075 data-shs-beacon-endpoint="https://functionofbeauty.com/api/collect" 1076></script>
1076 1077<meta name="shopify-y" content="4342d9ae-84cc-4873-a680-d8766fdee4ac" data-expiration="1821851126000"><meta name="shopify-s" content="9925b57d-2683-42e5-b8ad-f9744158230b" data-expiration="1790295326000"><meta name="new-cookie-storage-activated" content="t"> 1078</head> 1079<body id="store-locator-page" class=" template-page template-suffix-location page-store-locator-page page-store-locator" data-tempsuffix="location"> 1080<a class="in-page-link visually-hidden skip-link" href="#MainContent">Skip to content</a> 1081<button id="global-overlay" class=""></button> 1082 1083 1084 <!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 1084-1085
1084 1085<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
1085GTM-5VDHCDS4
vendor: 83 bytes, line 1085
1085" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1086<!-- End Google Tag Manager (noscript) --> 1087 1088<!-- AddShoppers -->
1089<script> 1090(function() { 1091 var script = document.createElement('script'); 1092 script.id = 'minty-onsite-script'; 1093 script.src = 'https://cdn.addshoppers.com/minty/shopify-onsite/executeminty.js'; 1094 script.async = true; 1095 script.defer = true; 1096 document.head.appendChild(script); 1097})(); 1098</script>
1098 1099<!-- End AddShoppers --> 1100 1101 1102<!-- Search Drawer --> 1103<div 1104 id='SearchBar' 1105 class='drawer drawer-top margin-promo-bar' 1106 role='dialog' 1107> 1108 <div class="predictive-search-bar-form"> 1109 <form action="/search" method="get" role="search" class="search-form" id="SearchBarForm"> 1110 1111 <button type="submit" class="btn search__button" aria-label="Search"> 1112 <span class="icon-fallback-text">Search</span> 1113 </button> 1114 1115 <input 1116 id="Search" 1117 type="search" 1118 name="q" 1119 value="" 1120 role="combobox" 1121 aria-expanded="false" 1122 aria-owns="predictive-search-results" 1123 aria-controls="predictive-search-results" 1124 aria-haspopup="listbox" 1125 aria-autocomplete="list" 1126 placeholder="Search by product or keyword" 1127 > 1128 <input name="options[prefix]" type="hidden" value="last"> 1129 1130 <button type="reset" class="btn reset__button body-font-2 hidden" aria-label="Reset"> 1131 <span class="icon-fallback-text">Clear All</span> 1132 </button> 1133 1134 </form> 1135 1136 1137 <button class="drawer-close" type="button"><span class="visually-hidden">Close drawer</span></button> 1138 1139 <div id="predictive-search" tabindex="-1" class="predictive-search predictive-search-bar--search-template"></div> 1140 1141</div> 1142 1143</div> 1144 1145<!-- Cart Drawer --> 1146<div id='MiniCart' class='drawer drawer-right' role='dialog'> 1147 <button type='button' class='drawer-close'> 1148 <span class='visually-hidden'>Close drawer</span> 1149 </button> 1150 <div class='drawer-title'> 1151 <a href='/cart'> 1152 My Bag 1153 <span 1154 >(<span class='minicart-count'>0</span>)</span 1155 > 1156 </a> 1157 </div> 1158 <div id='CartContainer' class='minicart-container'> 1159 1160 1161 1162<div> 1163 <form class="cart cart-empty" action="/cart" method="post" novalidate> 1164 <div class="cart-items-wrapper"> 1165 <div class="cart-items"> 1166 <h1 class="page-title cart-only">Your cart</h1> 1167 1168 <p class="cart-empty-message title-font-9">Your cart is currently empty.</p> 1169 1170 </div> 1171 </div> 1172 1173 <div class="cart-summary-wrapper"> 1174 <div class="cart-summary"> 1175 <h2 class="summary-title cart-only">Order Details</h2> 1176 <div class="total"> 1177 <span class="total-label">Subtotal</span> 1178 <span class="total-price"> 1179 <div class="spinner"><div></div><div></div><div></div><div></div></div> 1180 1181 <span>$0.00</span> 1182 </span> 1183 </div> 1184 1185 <p class="shipping-message">Shipping & Taxes Calculated at Checkout</p> 1186 1187 1188 1189 <div style="margin-top: 10px;"> 1190 <form method="post" action="/cart" id="cart_form" accept-charset="UTF-8" class="shopify-cart-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="cart" /><input type="hidden" name="utf8" value="â" /> 1191 <!-- cart subtotal --> 1192 1193 </form> 1194 </div> 1195 1196 <div class="cart-actions"> 1197 <noscript> 1198 <button type="submit" name="update" class="cta-1 update-cart-btn" value="Update">Update</button> 1199 </noscript> 1200 <button type="submit" name="checkout" class="cta-1 checkout-button" value="Proceed to Checkout">Proceed to Checkout</button> 1201 </div> 1202 </div> 1203 </div> 1204 </form> 1205</div> 1206 1207 </div> 1208</div> 1209 1210<!-- Mobile Drawer --> 1211<div 1212 id='MobileNav' 1213 class='drawer drawer-left margin-promo-bar-mobile' 1214 role='dialog' 1215> 1216 <!-- Mobile Search Drawer --> 1217 <div 1218 class='mobile-search-bar hidden extra-button' 1219 role='dialog' 1220 > 1221 <div class="predictive-search-bar-form"> 1222 <form action="/search" method="get" role="search" class="search-form" id="SearchBarForm"> 1223 1224 <input 1225 id="SearchMobile" 1226 type="search" 1227 name="q" 1228 value="" 1229 role="combobox" 1230 aria-expanded="false" 1231 aria-owns="predictive-search-results" 1232 aria-controls="predictive-search-results" 1233 aria-haspopup="listbox"
1234 aria-autocomplete="list" 1235 placeholder="Search by product or keyword" 1236 > 1237 <input name="options[prefix]" type="hidden" value="last"> 1238 1239 <button type="reset" class="btn reset__button hidden" aria-label="Reset"> 1240 <span class="icon-fallback-text">Clear All</span> 1241 </button> 1242 1243 <button type="submit" class="btn search__button" aria-label="Search"> 1244 <span class="icon-fallback-text">Search</span> 1245 </button> 1246 1247 </form> 1248 1249 <button class="search-close" type="button"><span class="visually-hidden">Close drawer</span></button> 1250</div> 1251 1252 </div> 1253 1254 <div 1255 id='predictive-search' 1256 tabindex='-1' 1257 class='predictive-search predictive-search-bar--search-template hidden' 1258 ></div> 1259 1260 <div class='header-utilities margin-promo-bar'> 1261 1262 1263 <div class='header-block block-account'> 1264 <a 1265 href='#' 1266 data-hydrogen-account-url 1267 class='block-title ' 1268 >Sign In</a> 1269 </div> 1270 1271 <div class='mobile-search-trigger'> 1272 <button class='search-open'> 1273 <span>Search</span> 1274 </button> 1275 </div> 1276 1277 <div class='quiz-btn-container show-button'> 1278 1279 <a class='extra-link cta-1' href='/pages/hair-quiz'>TAKE THE QUIZ</a> 1280 1281 </div> 1282 1283 1284 1285 </div> 1286</div> 1287 1288<div id="shopify-section-promo-drawer" class="shopify-section"> 1289<div id="PromoDrawer" class="drawer drawer-left" role="dialog"> 1290 <button type="button" class="drawer-close"> 1291 <span class="visually-hidden">Close drawer</span> 1292 </button> 1293 <p class="drawer-title"></p> 1294 <div class="drawer-blocks"> 1295 1296 1297 <div class="promo-drawer-block"> 1298 1299 <p class="headline">20% OFF SITEWIDE ð TODAY ONLY</p> 1300 1301 1302 <p class="subheadline">*Offer valid on eligible hair masks from 09/24/2026 10:00 am EST to 09/24/2026 11:59 pm PST. Promotion automatically applied at checkout. Promo is a one-time offer and does not apply to subsequent orders or active subscriptions. Not valid on gift cards or previous orders. Can not combine with first time subscriber intro offer. Can not be combined with any other offers except when specified. Details of the offer are subject to change. Other conditions may apply.</p> 1303 1304 1305 1306 </div> 1307 1308 1309 1310 <div class="promo-drawer-block"> 1311 1312 <p class="headline">Subscribe & Save</p> 1313 1314 1315 <p class="subheadline">Get 20% off your first subscription</p> 1316 1317 1318 1319 </div> 1320 1321 1322 1323 <div class="promo-drawer-block"> 1324 1325 <p class="headline">Free Shipping on Orders Over $75</p> 1326 1327 1328 <p class="subheadline">Free standard shipping applies to one-off orders over $75 shipping to the United States or Canada. Offer excludes subscription orders and expedited shipping methods. Terms and conditions apply.</p> 1329 1330 1331 1332 </div> 1333 1334 1335 </div> 1336</div> 1337 1338</div> 1339 1340<!-- Site header --> 1341<header role='banner' class='site-header style-2 '> 1342 <div id="shopify-section-promo-banner" class="shopify-section"> 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359<style> #shopify-section-promo-banner .promo-text-wrapper {padding: 10px 0; text-align: center; font-weight: bolder; font-family: GT-America-Standard-Regular, HelveticaNeue, Helvetica Neue, Helvetica, Arial, sans-serif; font-size: 28px; line-height: 44px; letter-spacing: 0.5px;} #shopify-section-promo-banner span {font-size: 16px;} #shopify-section-promo-banner span {text-align: center;} #shopify-section-promo-banner span {padding-bottom: 20 px;} @media only screen and (max-width: 600px) {#shopify-section-promo-banner .slider-promo-banner .promo-banner-slide {height: 55px !important; padding: 0 15px; }} </style></div> 1360 1361 <div class='header-content'> 1362 1363 <div class='h1' itemscope itemtype='http://schema.org/Organization'> 1364 1365 <span class='screen-reader-text'>Function of Beauty</span> 1366 <a 1367 href='/' 1368 itemprop='url' 1369 aria-label='Function of Beauty Logo' 1370 class='site-logo' 1371 > 1372 1373 </a> 1374 1375 </div> 1376 1377 1378 <div class='header-utilities'> 1379 1380 <a class='extra-link cta-5' href='/pages/hair-quiz'>TAKE THE QUIZ</a> 1381 1382 1383 <div class='header-block block-mobile-nav'> 1384 <button class='block-title menu-toggle' aria-controls='NavDrawer' aria-label='Menu' aria-expanded='false'>
1385 <span class='animated-hamburger'> <span></span><span></span><span></span> </span> 1386 </button> 1387 </div> 1388 1389 <div class='header-block block-search has-dropdown'> 1390 <button class='block-title search-toggle'> 1391 <span class='icon-fallback-text'>Search</span> 1392 </button> 1393 <div class='block-content'> 1394 <div class="predictive-search-bar-form"> 1395 <form action="/search" method="get" role="search" class="search-form" id="SearchBarForm"> 1396 1397 <button type="submit" class="btn search__button" aria-label="Search"> 1398 <span class="icon-fallback-text">Search</span> 1399 </button> 1400 1401 <input 1402 id="SearchInline" 1403 type="search" 1404 name="q" 1405 value="" 1406 role="combobox" 1407 aria-expanded="false" 1408 aria-owns="predictive-search-results" 1409 aria-controls="predictive-search-results" 1410 aria-haspopup="listbox" 1411 aria-autocomplete="list" 1412 placeholder="Search by product or keyword" 1413 > 1414 <input name="options[prefix]" type="hidden" value="last"> 1415 1416 <button type="reset" class="btn reset__button body-font-2 hidden" aria-label="Reset"> 1417 <span class="icon-fallback-text">Clear All</span> 1418 </button> 1419 1420 </form> 1421 1422 1423 <button class="drawer-close" type="button"><span class="visually-hidden">Close drawer</span></button> 1424 1425 <div id="predictive-search" tabindex="-1" class="predictive-search predictive-search-bar--search-template"></div> 1426 1427</div> 1428 1429 </div> 1430 </div> 1431 1432 <div class='header-block block-account'> 1433 <a 1434 href='#' 1435 data-hydrogen-account-url 1436 class='block-title-flex' 1437 > 1438 <span class='user-icon'></span> 1439 <span class='user-title'>My Account</span> 1440 </a> 1441 </div> 1442 1443 1444 1445 <div 1446 class='header-block block-minicart' 1447 > 1448 <a class='block-title' href='/cart'> 1449 <span id='CartTitle'>Cart</span> 1450 <span id='CartCount' class='minicart-count'>0</span> 1451 <span id='CartCost' class='minicart-cost'>$0.00</span> 1452 </a> 1453 </div> 1454 </div> 1455 <!-- Utility End --> 1456 1457 <!-- Nav Support Nested Menu --> 1458 <div id="shopify-section-navigation" class="shopify-section"> 1459 1460 1461<nav test="b" id="navBarB" class="nav-bar" role="navigation"> 1462 <div class="inner-wrapper"> 1463 <div class="site-nav"> 1464 1465 1466 1467 1468 1469 1470 1471 1472 <div class="level-1 title-font-10" data-link-levels="0"> 1473 <a class="nav-link" href="/" data-gtm-track="navbar-item" > 1474 <span>Home</span> 1475 </a> 1476 1477 </div> 1478 1479 1480 </div> 1481 </div> 1482 </nav> 1483</div> 1484 <!-- Nav End --> 1485 </div> 1486</header> 1487 1488 1489<main role="main" id="MainContent" class= "main-content-margin"> 1490 <div id="shopify-section-template--27717821694264__four_image_block_MbLW9c" class="shopify-section"> 1491 1492 1493 1494 1495 1496 1497 <section class="landing-page four-image-block module-template--27717821694264__four_image_block_MbLW9c location "> 1498 <div class="content"> 1499 1500 <p class="title title-font-5" style="text-align:center;">Find Us Online At:</> 1501 1502 1503 1504 <div class="slider-container drag-to-scroll"> 1505 <div class="testimonials-carousel-module-slider"> 1506 1507<div class="block category" track_id="walmart"> 1508 1509<a href="https://www.walmart.com/brand/functionofbeauty/10041277"> 1510 <div class="image"> 1511 1512 1513<picture 1514 class=" 1515 responsive"data-handle="files-appicon-walmart-250-png" 1516 data-handle-mobile="files-appicon-walmart-250-png" 1517> 1518 1519 <source 1520 media="(max-width: 450px)" 1521 srcset="//functionofbeauty.com/cdn/shop/files/AppIcon-Walmart-250_1x.png?v=1741383526 1522" 1523 data-srcset="//functionofbeauty.com/cdn/shop/files/AppIcon-Walmart-250_768x.png?v=1741383526, 1524 //functionofbeauty.com/cdn/shop/files/[email protected]?v=1741383526 2x" 1525 > 1526 1527 1528 1529 <source 1530 media="(max-width: 1024px)" 1531 srcset="//functionofbeauty.com/cdn/shop/files/AppIcon-Walmart-250_1x.png?v=1741383526 1532" 1533 data-srcset="//functionofbeauty.com/cdn/shop/files/AppIcon-Walmart-250_768x.png?v=1741383526, 1534 //functionofbeauty.com/cdn/shop/files/[email protected]?v=1741383526 2x" 1535 > 1536 1537 1538 <source 1539 media="(min-width: 1025px)" 1540 srcset="//functionofbeauty.com/cdn/shop/files/AppIcon-Walmart-250_1x.png?v=1741383526 1541" 1542 data-srcset="//functionofbeauty.com/cdn/shop/files/AppIcon-Walmart-250_768x.png?v=1741383526, 1543 //functionofbeauty.com/cdn/shop/files/[email protected]?v=1741383526 2x" 1544 > 1545 1546 <img 1547 class="lazy" 1548 src="//functionofbeauty.com/cdn/shop/files/AppIcon-Walmart-250_1x.png?v=1741383526 1549" 1550 data-src="//functionofbeauty.com/cdn/shop/files/AppIcon-Walmart-250_768x.png?v=1741383526 1551" 1552 alt="" 1553 > 1554 1555 1556</picture> 1557 </div> 1558 </a><div class="text"> 1559 1560 1561 <a href="https://www.walmart.com/brand/functionofbeauty/10041277" class="cta-link-1">Walmart.com</a> 1562 1563 </div> 1564 </div> 1565<div class="block category" track_id="target"> 1566 1567<a href="https://www.target.com/b/function-of-beauty/-/N-q643leattf0"> 1568 <div class="image"> 1569 1570 1571<picture 1572 class=" 1573 responsive"data-handle="files-appicon-target-250-png" 1574 data-handle-mobile="files-appicon-target-250-png" 1575> 1576 1577 <source 1578 media="(max-width: 450px)" 1579 srcset="//functionofbeauty.com/cdn/shop/files/AppIcon-Target-250_1x.png?v=1741383526 1580" 1581 data-srcset="//functionofbeauty.com/cdn/shop/files/AppIcon-Target-250_768x.png?v=1741383526, 1582 //functionofbeauty.com/cdn/shop/files/[email protected]?v=1741383526 2x" 1583 > 1584 1585 1586 1587 <source 1588 media="(max-width: 1024px)" 1589 srcset="//functionofbeauty.com/cdn/shop/files/AppIcon-Target-250_1x.png?v=1741383526 1590" 1591 data-srcset="//functionofbeauty.com/cdn/shop/files/AppIcon-Target-250_768x.png?v=1741383526, 1592 //functionofbeauty.com/cdn/shop/files/[email protected]?v=1741383526 2x" 1593 > 1594 1595 1596 <source 1597 media="(min-width: 1025px)" 1598 srcset="//functionofbeauty.com/cdn/shop/files/AppIcon-Target-250_1x.png?v=1741383526 1599" 1600 data-srcset="//functionofbeauty.com/cdn/shop/files/AppIcon-Target-250_768x.png?v=1741383526, 1601 //functionofbeauty.com/cdn/shop/files/[email protected]?v=1741383526 2x" 1602 > 1603 1604 <img 1605 class="lazy" 1606 src="//functionofbeauty.com/cdn/shop/files/AppIcon-Target-250_1x.png?v=1741383526 1607" 1608 data-src="//functionofbeauty.com/cdn/shop/files/AppIcon-Target-250_768x.png?v=1741383526 1609" 1610 alt="" 1611 > 1612 1613 1614</picture> 1615 </div> 1616 </a><div class="text"> 1617 1618 1619 <a href="https://www.target.com/b/function-of-beauty/-/N-q643leattf0" class="cta-link-1">Target.com</a> 1620 1621 </div> 1622 </div> 1623<div class="block category" track_id="amazon"> 1624 1625<a href="https://www.amazon.com/stores/page/3307E055-BC8E-4760-ABC5-859F8F33AB59?maas=maas_adg_607B3F90B0AD45DB18D53532C25AA54B_afap_abs&ref_=aa_maas&tag=maas"> 1626 <div class="image"> 1627 1628 1629<picture 1630 class=" 1631 responsive"data-handle="files-appicon-amazon-250-png" 1632 data-handle-mobile="files-appicon-amazon-250-png" 1633> 1634 1635 <source 1636 media="(max-width: 450px)" 1637 srcset="//functionofbeauty.com/cdn/shop/files/AppIcon-Amazon-250_1x.png?v=1741383526 1638" 1639 data-srcset="//functionofbeauty.com/cdn/shop/files/AppIcon-Amazon-250_768x.png?v=1741383526, 1640 //functionofbeauty.com/cdn/shop/files/[email protected]?v=1741383526 2x" 1641 > 1642 1643 1644 1645 <source 1646 media="(max-width: 1024px)" 1647 srcset="//functionofbeauty.com/cdn/shop/files/AppIcon-Amazon-250_1x.png?v=1741383526 1648" 1649 data-srcset="//functionofbeauty.com/cdn/shop/files/AppIcon-Amazon-250_768x.png?v=1741383526, 1650 //functionofbeauty.com/cdn/shop/files/[email protected]?v=1741383526 2x" 1651 > 1652 1653 1654 <source 1655 media="(min-width: 1025px)" 1656 srcset="//functionofbeauty.com/cdn/shop/files/AppIcon-Amazon-250_1x.png?v=1741383526 1657" 1658 data-srcset="//functionofbeauty.com/cdn/shop/files/AppIcon-Amazon-250_768x.png?v=1741383526, 1659 //functionofbeauty.com/cdn/shop/files/[email protected]?v=1741383526 2x" 1660 > 1661 1662 <img 1663 class="lazy" 1664 src="//functionofbeauty.com/cdn/shop/files/AppIcon-Amazon-250_1x.png?v=1741383526 1665" 1666 data-src="//functionofbeauty.com/cdn/shop/files/AppIcon-Amazon-250_768x.png?v=1741383526 1667" 1668 alt="" 1669 > 1670 1671 1672</picture> 1673 </div> 1674 </a><div class="text"> 1675 1676 1677 <a href="https://www.amazon.com/stores/page/3307E055-BC8E-4760-ABC5-859F8F33AB59?maas=maas_adg_607B3F90B0AD45DB18D53532C25AA54B_afap_abs&ref_=aa_maas&tag=maas" class="cta-link-1">Amazon</a> 1678 1679 </div> 1680 </div> 1681<div class="block category" track_id=""> 1682 1683<a href="https://www.heb.com/store-locations"> 1684 <div class="image"> 1685 1686 1687<picture 1688 class=" 1689 responsive"data-handle="files-82210a6b7169e420956284f80a2f71d0-jpg" 1690 data-handle-mobile="files-82210a6b7169e420956284f80a2f71d0-jpg" 1691> 1692 1693 <source 1694 media="(max-width: 450px)" 1695 srcset="//functionofbeauty.com/cdn/shop/files/82210a6b7169e420956284f80a2f71d0_1x.jpg?v=1741693546 1696" 1697 data-srcset="//functionofbeauty.com/cdn/shop/files/82210a6b7169e420956284f80a2f71d0_768x.jpg?v=1741693546, 1698 //functionofbeauty.com/cdn/shop/files/[email protected]?v=1741693546 2x" 1699 > 1700 1701 1702 1703 <source 1704 media="(max-width: 1024px)" 1705 srcset="//functionofbeauty.com/cdn/shop/files/82210a6b7169e420956284f80a2f71d0_1x.jpg?v=1741693546 1706" 1707 data-srcset="//functionofbeauty.com/cdn/shop/files/82210a6b7169e420956284f80a2f71d0_768x.jpg?v=1741693546, 1708 //functionofbeauty.com/cdn/shop/files/[email protected]?v=1741693546 2x" 1709 > 1710 1711 1712 <source 1713 media="(min-width: 1025px)" 1714 srcset="//functionofbeauty.com/cdn/shop/files/82210a6b7169e420956284f80a2f71d0_1x.jpg?v=1741693546 1715" 1716 data-srcset="//functionofbeauty.com/cdn/shop/files/82210a6b7169e420956284f80a2f71d0_768x.jpg?v=1741693546, 1717 //functionofbeauty.com/cdn/shop/files/[email protected]?v=1741693546 2x" 1718 > 1719 1720 <img 1721 class="lazy" 1722 src="//functionofbeauty.com/cdn/shop/files/82210a6b7169e420956284f80a2f71d0_1x.jpg?v=1741693546 1723" 1724 data-src="//functionofbeauty.com/cdn/shop/files/82210a6b7169e420956284f80a2f71d0_768x.jpg?v=1741693546 1725" 1726 alt="" 1727 > 1728 1729 1730</picture> 1731 </div> 1732 </a><div class="text"> 1733 1734 1735 <a href="https://www.heb.com/store-locations" class="cta-link-1">H-E-B</a> 1736 1737 </div> 1738 </div> 1739<div class="block category" track_id=""> 1740 1741<a href="https://www.meijer.com/shopping/search.html?text=function%20of%20beauty"> 1742 <div class="image"> 1743 1744 1745<picture 1746 class=" 1747 responsive"data-handle="files-meijer_logo_2-png" 1748 data-handle-mobile="files-meijer_logo_2-png" 1749> 1750 1751 <source 1752 media="(max-width: 450px)" 1753 srcset="//functionofbeauty.com/cdn/shop/files/Meijer_Logo_2_1x.png?v=1741694733 1754" 1755 data-srcset="//functionofbeauty.com/cdn/shop/files/Meijer_Logo_2_768x.png?v=1741694733, 1756 //functionofbeauty.com/cdn/shop/files/[email protected]?v=1741694733 2x" 1757 > 1758 1759 1760 1761 <source 1762 media="(max-width: 1024px)" 1763 srcset="//functionofbeauty.com/cdn/shop/files/Meijer_Logo_2_1x.png?v=1741694733 1764" 1765 data-srcset="//functionofbeauty.com/cdn/shop/files/Meijer_Logo_2_768x.png?v=1741694733, 1766 //functionofbeauty.com/cdn/shop/files/[email protected]?v=1741694733 2x" 1767 > 1768 1769 1770 <source 1771 media="(min-width: 1025px)" 1772 srcset="//functionofbeauty.com/cdn/shop/files/Meijer_Logo_2_1x.png?v=1741694733 1773" 1774 data-srcset="//functionofbeauty.com/cdn/shop/files/Meijer_Logo_2_768x.png?v=1741694733, 1775 //functionofbeauty.com/cdn/shop/files/[email protected]?v=1741694733 2x" 1776 > 1777 1778 <img 1779 class="lazy" 1780 src="//functionofbeauty.com/cdn/shop/files/Meijer_Logo_2_1x.png?v=1741694733 1781" 1782 data-src="//functionofbeauty.com/cdn/shop/files/Meijer_Logo_2_768x.png?v=1741694733 1783" 1784 alt="" 1785 > 1786 1787 1788</picture> 1789 </div> 1790 </a><div class="text"> 1791 1792 1793 <a href="https://www.meijer.com/shopping/search.html?text=function%20of%20beauty" class="cta-link-1">Meijer</a> 1794 1795 </div> 1796 </div> 1797 </div> 1798 </div> 1799 </div> 1800 </section> 1801 1802 1803<style> 1804 .module-template--27717821694264__four_image_block_MbLW9c.four-image-block { 1805 background: #fbf5f0; 1806 } 1807 .four-image-block { 1808 padding: 32px 0 20px 0; 1809 .content{ 1810 margin: 0 auto; 1811 max-width: 1440px; 1812 display: flex; 1813 flex-direction: column; 1814 position: relative; 1815 .title{ 1816 padding: 0 12px; 1817 margin-bottom: 20px; 1818 } 1819 .subheadline{ 1820 padding: 0 12px; 1821 margin-top: -8px; 1822 margin-bottom: 32px; 1823 } 1824 .slider-container{ 1825 overflow: auto hidden; 1826 padding: 0 12px; 1827 &::-webkit-scrollbar {
1828 display: none; 1829 } 1830 .testimonials-carousel-module-slider{ 1831 width: 100%; 1832 display: grid; 1833 grid-template-columns: 1fr 1fr; 1834 grid-column-gap: 15px; 1835 grid-row-gap: 15px; 1836 } 1837 .block{ 1838 width: 100%; 1839 position: relative; 1840 display: flex; 1841 flex-direction: column; 1842 &.category{ 1843 .above-image-cta{ 1844 background: $lightBlue2; 1845 border-top-left-radius: 11px; 1846 border-top-right-radius: 11px; 1847 text-align: center; 1848 padding: 10px; 1849 a{ 1850 display: flex; 1851 align-items: center; 1852 justify-content: center; 1853 } 1854 } 1855 .image{ 1856 position: relative; 1857 picture{ 1858 img{ 1859 aspect-ratio: 1; 1860 border-radius: 11px; 1861 } 1862 } 1863 } 1864 .text{ 1865 margin-top: 17px; 1866 text-align: center; 1867 a{ 1868 width: fit-content; 1869 margin: 7px auto; 1870 } 1871 } 1872 .hover-cta{ 1873 display: none; 1874 } 1875 .hover-overlay{ 1876 display: none; 1877 } 1878 } 1879 &.you{ 1880 .link{ 1881 position: absolute; 1882 top: 12px; 1883 left: 12px; 1884 color: $white; 1885 z-index: 10; 1886 } 1887 .image{ 1888 min-width: 272px; 1889 position: relative; 1890 picture{ 1891 img{ 1892 aspect-ratio: 0.8; 1893 border-top-left-radius: 11px; 1894 border-top-right-radius: 11px; 1895 } 1896 } 1897 .video-wrapper{ 1898 border-top-left-radius: 11px; 1899 border-top-right-radius: 11px; 1900 } 1901 } 1902 .text{ 1903 padding: 25px 12px 17px 12px; 1904 background: $cream; 1905 border-bottom-left-radius: 11px; 1906 border-bottom-right-radius: 11px; 1907 text-align: center; 1908 display: flex; 1909 flex-direction: column; 1910 height: 100%; 1911 justify-content: center; 1912 .author{ 1913 @include body-font-5; 1914 margin-top: 22px; 1915 } 1916 } 1917 } 1918 1919 } 1920 } 1921 } 1922 } 1923 @media (min-width: 1025px) { 1924 .module-template--27717821694264__four_image_block_MbLW9c.four-image-block { 1925 background: #fbf5f0; 1926 } 1927 .four-image-block 1928 .content 1929 .slider-container 1930 .testimonials-carousel-module-slider { 1931 display: flex; 1932 gap: 12px; 1933 flex-wrap: nowrap; 1934 margin: 0 auto; 1935 width: fit-content; 1936 max-width: 1440px; 1937 } 1938 .four-image-block { 1939 .content { 1940 padding: 0 48px; 1941 } 1942 } 1943 1944 } 1945</style> 1946
1947<script> 1948 document.addEventListener('DOMContentLoaded', () => { 1949 console.log("Google Tag begin"); 1950 const targetElements = document.querySelectorAll('[track_id]'); 1951 1952 console.log("Google Tag found", targetElements); 1953 targetElements.forEach(element => { 1954 const targetId = element.getAttribute('track_id'); 1955 1956 if (targetId) { 1957 element.addEventListener('click', () => { 1958 console.log("Google Tag click"); 1959 1960 if (window.dataLayer) { 1961 window.dataLayer.push({ 1962 event: 'PageImageButtonClick', 1963 targetId: targetId, 1964 timestamp: new Date().toISOString() 1965 }); 1966 console.log(`Google Tag event sent for targetId: ${targetId}`); 1967 } else { 1968 console.warn('Google Tag is not initialized ...'); 1969 } 1970 }); 1971 } 1972 }); 1973 1974 1975 console.log("Meta begin") 1976 1977 console.log("Meta found", targetElements) 1978 targetElements.forEach(element => { 1979 const targetId = element.getAttribute('track_id'); 1980 1981 if (targetId) { 1982 element.addEventListener('click', () => { 1983 console.log("Meta click ") 1984 if (typeof fbq === 'function') { 1985 fbq('trackCustom', 'PageImageButtonClick', { 1986 targetId, 1987 timestamp: new Date().toISOString() 1988 }); 1989 console.log(`Meta Pixel event sent for targetId: ${targetId}`); 1990 } else { 1991 console.warn('Meta Pixel is not initialized ...'); 1992 } 1993 }); 1994 } 1995 }); 1996 }); 1997 1998</script>
1998 1999<style> #shopify-section-template--27717821694264__four_image_block_MbLW9c .testimonials-carousel-module-slider {display: grid; grid-template-columns: repeat(auto-fit, minmax(72px, 1fr)); gap: 16px;} @media (max-width: 767px) {#shopify-section-template--27717821694264__four_image_block_MbLW9c .testimonials-carousel-module-slider {grid-template-columns: repeat(3, 1fr); } #shopify-section-template--27717821694264__four_image_block_MbLW9c .block.category img, #shopify-section-template--27717821694264__four_image_block_MbLW9c .block.category picture img {max-width: 128px !important; max-height: 128px !important; width: auto !important; height: auto !important; object-fit: contain; }} </style></div><div id="shopify-section-template--27717821694264__additional_module_map_iGBUYn" class="shopify-section"> 2000 2001 2002<section class="additional-module-map" id="map-module"> 2003 <div class="content"> 2004 2005 <p class="title title-font-5">Find Us In-Store Near You:</> 2006 2007 <div class="map"> 2008 <!-- Start Stockist.co widget --> 2009<stockist-store-locator data-stockist-widget-tag="u18803"> 2010 Loading store locator from <a href="https://stockist.co">Stockist store locator</a>... 2011</stockist-store-locator>
2012<script async src="https://stockist.co/embed/v1/widget.min.js"></script>
2012 2013<!-- End Stockist.co widget --> 2014 </div> 2015 </div> 2016</section> <style> #shopify-section-template--27717821694264__additional_module_map_iGBUYn .additional-module-map {padding-top: 60px; padding-bottom: 40px; padding-left: 20px; padding-right: 20px;} </style></div> 2017</main> 2018 2019<footer class="site-footer" role="contentinfo"> 2020 2021 2022 2023 <div class="social-wrapper"> 2024 <div class="social-icons"> 2025 2026 2027 <a href="https://www.instagram.com/functionofbeauty" class="social-instagram" title="Function of Beauty on Instagram"> 2028 <span class="icon-fallback-text">Instagram</span> 2029 </a> 2030 2031 2032 2033 2034 <a href="https://www.tiktok.com/@functionofbeauty" class="social-tiktok" title="Function of Beauty on Tiktok"> 2035 <span class="icon-fallback-text">Tiktok</span> 2036 </a> 2037 2038 2039 2040 2041 <a href="https://www.facebook.com/functionofbeauty/" class="social-facebook" title="Function of Beauty on Facebook"> 2042 <span class="icon-fallback-text">Facebook</span> 2043 </a> 2044 2045 2046 2047 2048 <a href="https://www.threads.net/@functionofbeauty" class="social-threads" title="Function of Beauty on Threads"> 2049 <span class="icon-fallback-text">Threads</span> 2050 </a> 2051 2052 2053 2054 2055 <a href="https://www.youtube.com/@functionofbeauty1072" class="social-youtube" title="Function of Beauty on YouTube"> 2056 <span class="icon-fallback-text">YouTube</span> 2057 </a> 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 </div> 2076 </div> 2077 2078 2079 2080 <div class="footer-part footer-slim"> 2081 <div class="footer-wrapper"> 2082 <div class="footer-block link-wrapper"><form method="post" action="/localization" id="FooterCountryForm" accept-charset="UTF-8" class="locale-selectors__container" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/pages/store-locator" /><input type="hidden" name="country_code" value="US"><div class="locale-selectors__container" style="background-color: rgb(254, 235, 227);"> 2083 <div class="locale-selectors__content" style="max-width: 1440px; margin-left: 35.5px; margin-right: 35.5px;"> 2084 <input name="_method" type="hidden" value="PUT"> 2085 <input name="source" type="hidden" value="geolocation_selector"> 2086 <input name="return_to" type="hidden" value="/pages/store-locator"> 2087 <label class="locale-selectors__label" id="country_code_label" for="country_code"> 2088 <select id="country_code" class="locale-selectors__selector" name="country_code"> 2089 2090 2091 <option value="AU">Australia (AUD $)</option> 2092 2093 2094 2095 <option value="AT">Austria (EUR â¬)</option> 2096 2097 2098 2099 <option value="BE">Belgium (EUR â¬)</option> 2100 2101 2102 2103 <option value="BG">Bulgaria (EUR â¬)</option> 2104 2105 2106 2107 <option value="CA">Canada (USD $)</option> 2108 2109 2110 2111 <option value="CL">Chile (USD $)</option> 2112 2113 2114 2115 <option value="CO">Colombia (USD $)</option> 2116 2117 2118 2119 <option value="HR">Croatia (EUR â¬)</option> 2120 2121 2122 2123 <option value="CY">Cyprus (EUR â¬)</option> 2124 2125 2126 2127 <option value="CZ">Czechia (EUR â¬)</option> 2128 2129 2130 2131 <option value="DK">Denmark (DKK kr.)</option> 2132 2133 2134 2135 <option value="EE">Estonia (EUR â¬)</option> 2136 2137 2138 2139 <option value="FI">Finland (EUR â¬)</option> 2140 2141 2142 2143 <option value="FR">France (EUR â¬)</option> 2144 2145 2146 2147 <option value="DE">Germany (EUR â¬)</option> 2148 2149 2150 2151 <option value="GR">Greece (EUR â¬)</option> 2152 2153 2154 2155 <option value="GG">Guernsey (GBP £)</option> 2156 2157 2158 2159 <option value="HK">Hong Kong SAR (HKD $)</option> 2160 2161 2162 2163 <option value="HU">Hungary (EUR â¬)</option> 2164 2165 2166 2167 <option value="IS">Iceland (USD $)</option> 2168 2169 2170 2171 <option value="IE">Ireland (EUR â¬)</option> 2172 2173 2174 2175 <option value="IM">Isle of Man (GBP £)</option> 2176 2177 2178 2179 <option value="IL">
2179Israel (ILS âª)</option> 2180 2181 2182 2183 <option value="IT">Italy (EUR â¬)</option> 2184 2185 2186 2187 <option value="JP">Japan (JPY Â¥)</option> 2188 2189 2190 2191 <option value="JE">Jersey (GBP £)</option> 2192 2193 2194 2195 <option value="LV">Latvia (EUR â¬)</option> 2196 2197 2198 2199 <option value="LT">Lithuania (EUR â¬)</option> 2200 2201 2202 2203 <option value="LU">Luxembourg (EUR â¬)</option> 2204 2205 2206 2207 <option value="MT">Malta (EUR â¬)</option> 2208 2209 2210 2211 <option value="MX">Mexico (USD $)</option> 2212 2213 2214 2215 <option value="NL">Netherlands (EUR â¬)</option> 2216 2217 2218 2219 <option value="NZ">New Zealand (NZD $)</option> 2220 2221 2222 2223 <option value="NO">Norway (NOK kr)</option> 2224 2225 2226 2227 <option value="PL">Poland (EUR â¬)</option> 2228 2229 2230 2231 <option value="PT">Portugal (EUR â¬)</option> 2232 2233 2234 2235 <option value="RO">Romania (EUR â¬)</option> 2236 2237 2238 2239 <option value="SG">Singapore (SGD $)</option> 2240 2241 2242 2243 <option value="SK">Slovakia (EUR â¬)</option> 2244 2245 2246 2247 <option value="SI">Slovenia (EUR â¬)</option> 2248 2249 2250 2251 <option value="KR">South Korea (USD $)</option> 2252 2253 2254 2255 <option value="ES">Spain (EUR â¬)</option> 2256 2257 2258 2259 <option value="SE">Sweden (SEK kr)</option> 2260 2261 2262 2263 <option value="CH">Switzerland (CHF CHF)</option> 2264 2265 2266 2267 <option value="TW">Taiwan (TWD $)</option> 2268 2269 2270 2271 <option value="AE">United Arab Emirates (USD $)</option> 2272 2273 2274 2275 <option value="GB">United Kingdom (GBP £)</option> 2276 2277 2278 2279 <option value="US" selected>United States (USD $)</option> 2280 2281 2282 </select> 2283 </label> 2284 </div> 2285</div> 2286
2287<script> 2288 document.addEventListener('DOMContentLoaded', function() { 2289 const countrySelect = document.getElementById('country_code'); 2290 const countryForm = document.getElementById('FooterCountryForm'); 2291 2292 if (countrySelect && countryForm) { 2293 countrySelect.addEventListener('change', function(e) { 2294 // Update the hidden input value 2295 const hiddenInput = countryForm.querySelector('input[name="country_code"]'); 2296 if (hiddenInput) { 2297 hiddenInput.value = e.target.value; 2298 } 2299 // Submit the form 2300 countryForm.submit(); 2301 }); 2302 } 2303 }); 2304</script>
2304 2305</form><p class="info">© 2026 All Rights Reserved</p> 2306 <a class="link osano-footer" href="#" onclick="Osano.cm.showDrawer('osano-cm-dom-info-dialog-open')"> 2307 Privacy Choices 2308 <img src="//functionofbeauty.com/cdn/shop/files/privacyoptions_small.png?v=7275071221864303671" width="30" height="14"> 2309 </a> 2310 2311 <a class="link" href="/pages/terms-conditions">Terms & Conditions</a> 2312 2313 <a class="link" href="/pages/privacy-policy">Privacy Policy</a> 2314 2315 2316 </div> 2317 </div> 2318 </div> 2319</footer> 2320 2321<div id="responsive-indicator" class="hide"></div> 2322 2323
2324<script> 2325(function(){ 2326 if (window.xsellModal) { console.log('xsellModal: helper already present, skipping initialization'); return; } // don't overwrite 2327 console.log('xsellModal: helper initializing'); 2328 2329 // Internal state 2330 var openCallbacks = []; 2331 var closeCallbacks = []; 2332 var currentModal = null; 2333 var attachedAddHandler = null; 2334 var tempInjectedContext = null; 2335 var originalModalBodyHTML = null; 2336 // persist modal style backups across functions so restore works 2337 var _xsell_helper_prevModalStyle = null; 2338 var _xsell_helper_prevModalEnabledAttr = null; 2339 // helpers/state for color-image syncing inside xsell modal 2340 var xsellColorHelpers = null; 2341 2342 function findModal() { 2343 return document.querySelector('.xsell__modal-content.xsell__modal-more-info-open') || document.querySelector('.xsell__modal-content.xsell__modal-more-info-open, .xsell__modal-content.xsell__modal-open'); 2344 } 2345 2346 function handleModalOpen(modalEl) { 2347 currentModal = modalEl; 2348 try { console.log('xsellModal: modal opened', modalEl, window.xsellModal && window.xsellModal.getData && window.xsellModal.getData()); } catch(e){} 2349 2350 2351 // Hide the gallery div if present 2352 try { 2353 var galleryEl = modalEl.querySelector('.xsell__modal-more-info-gallery'); 2354 if (galleryEl) { 2355 galleryEl.style.display = 'none'; 2356 console.log('xsellModal: hid gallery element'); 2357 } 2358 } catch(e) { 2359 console.warn('xsellModal: failed to hide gallery', e); 2360 } 2361 2362 // Hide the "more info" form if present 2363 try { 2364 var formEl = modalEl.querySelector('.xsell__modal-more-info-form'); 2365 if (formEl) { 2366 formEl.style.display = 'none'; 2367 console.log('xsellModal: hid more-info form'); 2368 } 2369 } catch(e) { 2370 console.warn('xsellModal: failed to hide more-info form', e); 2371 } 2372 2373 attachAddToCartInterceptor(modalEl); 2374 openCallbacks.forEach(function(cb){ try{ cb(modalEl); }catch(e){ console.error('xsellModal.onOpen callback error', e); } }); 2375 } 2376 2377 function handleModalClose() { 2378 var modalEl = currentModal; 2379 try { console.log('xsellModal: modal closed', modalEl); } catch(e){} 2380 detachAddToCartInterceptor(); 2381 currentModal = null; 2382 closeCallbacks.forEach(function(cb){ try{ cb(modalEl); }catch(e){ console.error('xsellModal.onClose callback error', e); } }); 2383 } 2384 2385 // Attach/Detach interceptor for #xsell__modal-add-to-cart inside the xsell modal 2386 function attachAddToCartInterceptor(modalEl) { 2387 detachAddToCartInterceptor(); 2388 if (!modalEl) return; 2389 var addBtn = modalEl.querySelector('#xsell__modal-add-to-cart'); 2390 if (!addBtn) { 2391 // sometimes the button may be outside or created later; try to observe few moments 2392 console.log('xsellModal: add-to-cart button not found in modal, will attempt to query later'); 2393 var retryCount = 0; 2394 var retryTimer = setInterval(function(){ 2395 retryCount++; 2396 addBtn = modalEl.querySelector('#xsell__modal-add-to-cart'); 2397 if (addBtn) { 2398 clearInterval(retryTimer); 2399 internalAttach(addBtn); 2400 } else if (retryCount > 10) { 2401 clearInterval(retryTimer); 2402 } 2403 }, 200); 2404 return; 2405 } 2406 2407 internalAttach(addBtn); 2408 2409 function internalAttach(addBtn){ 2410 attachedAddHandler = function(e){ 2411 e.preventDefault(); 2412 e.stopPropagation(); 2413 try{ 2414 handleXsellAddToCartClick(e, modalEl); 2415 }catch(err){ 2416 console.error('xsellModal: error in add-to-cart interceptor', err); 2417 } 2418 }; 2419 addBtn.addEventListener('click', attachedAddHandler, true); 2420 console.log('xsellModal: attached add-to-cart interceptor'); 2421 } 2422 } 2423 2424 function detachAddToCartInterceptor(){ 2425 if (currentModal && attachedAddHandler) { 2426 var btn = currentModal.querySelector('#xsell__modal-add-to-cart'); 2427 if (btn) btn.removeEventListener('click', attachedAddHandler, true); 2428 } 2429 attachedAddHandler = null; 2430 } 2431 2432 // Main handler: show customization modal and add product on submit 2433 async function handleXsellAddToCartClick(e, modalEl){ 2434 console.log('xsellModal: intercepted xsell add-to-cart click'); 2435 2436 // Determine product handle 2437 var handle = window.xsellModal && window.xsellModal._lastQuickviewHandle; 2438 if (!handle) { 2439 // try to read from the link inside the card 2440 var link = modalEl.querySelector('[data-xs-link], [data-xs-quickview]'); 2441 if (link) { 2442 handle = link.getAttribute('data-xs-quickview') || link.getAttribute('data-xs-link'); 2443 if (handle && handle.indexOf('/products/') === 0) handle = handle.split('/products/')[1].split(/[?#]/)[0]; 2444 } 2445 } 2446 2447 if (!handle) { 2448 console.warn('xsellModal: could not determine product handle for xsell add'); 2449 return; 2450 } 2451 2452 // Fetch product JSON with metafields using custom template 2453 var product; 2454 var productWithMetafieldsUrl = '/products/' + handle + '?view=metafields'; 2455 2456 try { 2457 console.log('xsellModal: fetching product with metafields from', productWithMetafieldsUrl); 2458 var res = await fetch(productWithMetafieldsUrl, { credentials: 'same-origin' }); 2459 if (res.ok) { 2460 var text = await res.text(); 2461 product = JSON.parse(text); 2462 if (product.error) { 2463 console.warn('xsellModal: product metafields endpoint returned error', product.error); 2464 product = null; 2465 } else { 2466 console.log('xsellModal: loaded product with metafields', product); 2467 } 2468 } 2469 } catch (err) { 2470 console.warn('xsellModal: failed to load product with metafields', err); 2471 product = null; 2472 } 2473 2474 // Fallback to standard .js endpoint if metafields fetch failed 2475 if (!product) { 2476 var productJsonUrl = '/products/' + handle + '.js';
2477 try { 2478 console.log('xsellModal: falling back to standard product JSON'); 2479 res = await fetch(productJsonUrl, { credentials: 'same-origin' }); 2480 if (!res.ok) throw new Error('Failed to fetch product JSON'); 2481 product = await res.json(); 2482 console.log('xsellModal: loaded product without metafields', product); 2483 } catch (err) { 2484 console.error('xsellModal: failed to load product JSON for', handle, err); 2485 return; 2486 } 2487 } 2488 2489 // Build a temporary line item representation similar to cart-context expects 2490 var variant = (product.variants && product.variants[0]) || { id: null }; 2491 var fakeKey = 'xsell-temp-' + Date.now(); 2492 var fakeLineItem = { 2493 id: variant.id, 2494 key: fakeKey, 2495 properties: { 2496 __product_handle: handle, 2497 __profile_type: 'hair', 2498 __profile_name: 'of beauty' 2499 }, 2500 product_title: product.title, 2501 variants: product.variants || [] 2502 }; 2503 2504 // Instead of creating a separate customization modal, inject the customization-details component 2505 // directly inside the xsell modal's description wrapper. This avoids extra stacking contexts. 2506 var descriptionWrapper = modalEl.querySelector('.xsell__modal-more-info-description-wrapper') || modalEl.querySelector('.xsell__modal-content__body') || modalEl; 2507 if (!descriptionWrapper) { 2508 console.error('xsellModal: target description wrapper not found in xsell modal'); 2509 return; 2510 } 2511 2512 // Save original HTML so we can restore later 2513 var modalBody = descriptionWrapper; 2514 if (!originalModalBodyHTML) originalModalBodyHTML = modalBody.innerHTML; 2515 2516 // IMPORTANT: Build complete HTML string with ALL attributes and data elements 2517 // BEFORE parsing, so the custom element constructor has everything it needs 2518 2519 console.log('xsellModal: preparing quiz data for', handle); 2520 2521 // Prepare product data 2522 var productsData = JSON.stringify([{ 2523 productType: product.product_type || '', 2524 id: product.id, 2525 title: product.title, 2526 handle: product.handle, 2527 price: product.price, 2528 vendor: product.vendor || '', 2529 available: product.available !== false, 2530 variants: product.variants || [], 2531 images: product.images || [], 2532 tags: product.tags || [], 2533 selling_plan_groups: product.selling_plan_groups || [] 2534 }]); 2535 2536 // Prepare variants data 2537 var variantsForQuiz = []; 2538 try { 2539 if (product.variants && product.variants.length > 0) { 2540 var firstOption1 = product.variants[0].option1; 2541 variantsForQuiz = product.variants 2542 .filter(function(v){ return v.option1 === firstOption1 && v.available; }) 2543 .map(function(v){ 2544 return { 2545 id: String(v.id), 2546 sku: v.sku || '', 2547 color: v.option2 || '', 2548 value: v.option2 || '', 2549 image: (v.featured_image && v.featured_image.src) || '', 2550 enable: v.available !== false 2551 }; 2552 }); 2553 } 2554 } catch(e){ console.warn('xsellModal: failed to process variants', e); } 2555 var variantsData = JSON.stringify(variantsForQuiz); 2556 2557 // Fetch metafields for quiz options 2558 // Images are already transformed to proper URLs by the Liquid template 2559 var metafields = product.metafields || {}; 2560 2561 // Extract quiz data arrays directly (already formatted correctly from Liquid) 2562 var hairGoalsData = []; 2563 try { 2564 hairGoalsData = (metafields.custom && metafields.custom.mini_quiz_hair_goals) || []; 2565 if (!Array.isArray(hairGoalsData)) hairGoalsData = []; 2566 } catch(e){ console.warn('xsellModal: failed to process hair goals', e); } 2567 2568 var hairTypesData = []; 2569 try { 2570 hairTypesData = (metafields.custom && metafields.custom.mini_quiz_hair_types) || []; 2571 if (!Array.isArray(hairTypesData)) hairTypesData = []; 2572 } catch(e){ console.warn('xsellModal: failed to process hair types', e); } 2573 2574 var scalpTypeData = []; 2575 try { 2576 scalpTypeData = (metafields.custom && metafields.custom.mini_quiz_scalp_types) || []; 2577 if (!Array.isArray(scalpTypeData)) scalpTypeData = []; 2578 } catch(e){ console.warn('xsellModal: failed to process scalp types', e); } 2579 2580 var hairThicknessData = []; 2581 try { 2582 hairThicknessData = (metafields.custom && metafields.custom.mini_quiz_hair_thickness) || []; 2583 if (!Array.isArray(hairThicknessData)) hairThicknessData = []; 2584 } catch(e){ console.warn('xsellModal: failed to process hair thickness', e); } 2585 2586 var fragrancesData = []; 2587 try { 2588 fragrancesData = (metafields.custom && metafields.custom.mini_quiz_fragrances) || []; 2589 if (!Array.isArray(fragrancesData)) fragrancesData = []; 2590 } catch(e){ console.warn('xsellModal: failed to process fragrances', e); } 2591 2592 var stylingGoalsData = []; 2593 try { 2594 stylingGoalsData = (metafields.custom && metafields.custom.mini_quiz_styling_goals) || []; 2595 if (!Array.isArray(stylingGoalsData)) stylingGoalsData = []; 2596 } catch(e){ console.warn('xsellModal: failed to process styling goals', e); } 2597 2598 var holdStrengthData = []; 2599 try { 2600 holdStrengthData = (metafields.custom && metafields.custom.mini_quiz_hold_levels) || []; 2601 if (!Array.isArray(holdStrengthData)) holdStrengthData = []; 2602 } catch(e){ console.warn('xsellModal: failed to process hold strength', e); } 2603 2604 var bodyMoistureData = []; 2605 try { 2606 bodyMoistureData = (metafields.custom && metafields.custom.mini_quiz_body_moisture_level) || []; 2607 if (!Array.isArray(bodyMoistureData)) bodyMoistureData = []; 2608 } catch(e){ console.warn('xsellModal: failed to process body moisture', e); } 2609 2610 var damageData = []; 2611 try { 2612 damageData = (metafields.custom && metafields.custom.mini_quiz_damage) || []; 2613 if (!Array.isArray(damageData)) damageData = []; 2614 } catch(e){ console.warn('xsellModal: failed to process damage level', e); } 2615 2616 // Layout configuration 2617 var layoutData = []; 2618 try { 2619 var layoutMeta = metafields.custom && metafields.custom.mini_quiz_layout; 2620 if (layoutMeta && Array.isArray(layoutMeta)) { 2621 layoutData = layoutMeta; 2622 } else { 2623 // Create default layout if not specified 2624 // Standard order for hair products: hairTypes, scalpType, hairThickness, hairGoals, fragrances 2625 layoutData = []; 2626 if (hairTypesData.length > 0) { 2627 layoutData.push({ property: 'hairTypes', inputType: 'dropdown' }); 2628 } 2629 if (scalpTypeData.length > 0) { 2630 layoutData.push({ property: 'scalpType', inputType: 'dropdown' }); 2631 } 2632 if (hairThicknessData.length > 0) { 2633 layoutData.push({ property: 'hairThickness', inputType: 'dropdown' }); 2634 } 2635 if (hairGoalsData.length > 0) { 2636 layoutData.push({ property: 'hairGoals', inputType: 'button' }); 2637 } 2638 if (fragrancesData.length > 0) { 2639 layoutData.push({ property: 'fragrances', inputType: 'dropdown' }); 2640 } 2641 if (stylingGoalsData.length > 0) { 2642 layoutData.push({ property: 'stylingGoals', inputType: 'button' }); 2643 } 2644 if (holdStrengthData.length > 0) { 2645 layoutData.push({ property: 'holdStrength', inputType: 'dropdown' }); 2646 } 2647 if (bodyMoistureData.length > 0) { 2648 layoutData.push({ property: 'bodyMoisture', inputType: 'dropdown' }); 2649 } 2650 if (damageData.length > 0) { 2651 layoutData.push({ property: 'damage', inputType: 'dropdown' }); 2652 } 2653 console.log('xsellModal: created default layout', layoutData); 2654 } 2655 } catch(e){ console.warn('xsellModal: failed to process layout', e); } 2656 2657 // Silicone free setting 2658 var siliconeFreeData = {}; 2659 try { 2660 var siliconeFreeMeta = metafields.custom && metafields.custom.mini_quiz_silicone_free; 2661 if (siliconeFreeMeta) siliconeFreeData = siliconeFreeMeta; 2662 } catch(e){ console.warn('xsellModal: failed to process silicone free', e); } 2663 2664 // Discount subscription 2665 var discountData = ''; 2666 try { 2667 var discountMeta = metafields.custom && metafields.custom.product_mini_quiz_discount; 2668 if (discountMeta) discountData = discountMeta; 2669 } catch(e){ console.warn('xsellModal: failed to process discount', e); } 2670 2671 console.log('xsellModal: quiz data prepared with', { 2672 hairGoals: hairGoalsData.length, 2673 hairTypes: hairTypesData.length, 2674 scalpType: scalpTypeData.length, 2675 hairThickness: hairThicknessData.length, 2676 fragrances: fragrancesData.length, 2677 stylingGoals: stylingGoalsData.length, 2678 holdStrength: holdStrengthData.length, 2679 bodyMoisture: bodyMoistureData.length, 2680 damage: damageData.length, 2681 variants: variantsForQuiz.length, 2682 layout: layoutData.length + ' fields' 2683 }); 2684 console.log('xsellModal: layout configuration', layoutData); 2685 2686 // Build complete HTML string with actual metafield data 2687 var shortFragranceAttr = (handle && handle.includes('sos')) ? ' short-fragrance-list' : ''; 2688 2689 // Check if product template_suffix is "retail" to hide profile customizations 2690 var isRetail = false;
2691 try { 2692 isRetail = product.template_suffix === 'retail'; 2693 if (isRetail) { 2694 console.log('xsellModal: retail product detected, hiding profile name and customizations'); 2695 } 2696 } catch(e){ console.warn('xsellModal: failed to check template_suffix', e); } 2697 2698 var retailAttrs = isRetail ? ' show-profile-name="false" show-customizations="false" force-add-to-cart="true" after-add-to-cart-action="redirect_to_checkout"' : ''; 2699 2700 var quizHTMLString = 2701 '<mini-quiz-basic-component ' + 2702 'show-big-quiz-link="false" quiz-type="standard" product-handle="' + handle + 2703 '" price="' + (product.price || '') + '" variant-id="' + variant.id + 2704 '" after-add-to-cart-action="stay_on_pdp" show-quantity-input' + shortFragranceAttr + retailAttrs + '>' + 2705 '<data name="products" type="json" style="display:none">' + productsData + '</data>' + 2706 '<data name="variants" type="json" style="display:none">' + variantsData + '</data>' + 2707 '<data name="hairTypes" type="json" style="display:none">' + JSON.stringify(hairTypesData) + '</data>' + 2708 '<data name="hairThickness" type="json" style="display:none">' + JSON.stringify(hairThicknessData) + '</data>' + 2709 '<data name="scalpType" type="json" style="display:none">' + JSON.stringify(scalpTypeData) + '</data>' + 2710 '<data name="fragrances" type="json" style="display:none">' + JSON.stringify(fragrancesData) + '</data>' + 2711 '<data name="stylingGoals" type="json" style="display:none">' + JSON.stringify(stylingGoalsData) + '</data>' + 2712 '<data name="hairGoals" type="json" style="display:none">' + JSON.stringify(hairGoalsData) + '</data>' + 2713 '<data name="holdStrength" type="json" style="display:none">' + JSON.stringify(holdStrengthData) + '</data>' + 2714 '<data name="bodyMoisture" type="json" style="display:none">' + JSON.stringify(bodyMoistureData) + '</data>' + 2715 (damageData.length > 0 ? '<data name="damage" type="json" style="display:none">' + JSON.stringify(damageData) + '</data>' : '') + 2716 '<data name="defaultValuesMiniQuiz" type="json" style="display:none">{}</data>' + 2717 '<data name="metafieldLayout" type="json" style="display:none">' + JSON.stringify(layoutData) + '</data>' + 2718 '<data name="metafieldSiliconeFree" type="json" style="display:none">' + JSON.stringify(siliconeFreeData) + '</data>' + 2719 (discountData ? '<data name="discountSubscriptionMetafield" type="string" style="display:none">' + discountData + '</data>' : '') + 2720 '</mini-quiz-basic-component>'; 2721 2722 // Create cart-context-xsell wrapper and parse the quiz HTML 2723 var cartContextXsellEl = document.createElement('cart-context-xsell'); 2724 cartContextXsellEl.setAttribute('line-items', JSON.stringify([fakeLineItem])); 2725 cartContextXsellEl.innerHTML = quizHTMLString; 2726 2727 // Get reference to the quiz element 2728 var quizEl = cartContextXsellEl.querySelector('mini-quiz-basic-component'); 2729 2730 // clear and append the wrapper 2731 modalBody.innerHTML = ''; 2732 modalBody.appendChild(cartContextXsellEl); 2733 2734 // SHOW LOADER IMMEDIATELY on featured image container while components initialize 2735 // This ensures user sees loading feedback during component initialization delays 2736 try { 2737 // Use the parent images container for better visibility 2738 var featuredImageContainerImmediate = modalEl.querySelector('.xsell__modal-more-info-images'); 2739 if (!featuredImageContainerImmediate) { 2740 // Fallback to featured image if parent not found 2741 featuredImageContainerImmediate = modalEl.querySelector('.xsell__modal-more-info-featured-image'); 2742 } 2743 console.log('xsellModal: using loader container', featuredImageContainerImmediate ? featuredImageContainerImmediate.className : 'not found'); 2744 if (featuredImageContainerImmediate) { 2745 console.log('xsellModal: showing loader immediately on modal injection'); 2746 var loaderHostImmediate = featuredImageContainerImmediate; 2747 2748 // Ensure loader styles exist 2749 if (!document.getElementById('xsell-modal-loader-styles')) { 2750 var ss = document.createElement('style'); 2751 ss.id = 'xsell-modal-loader-styles'; 2752 ss.textContent = '.xsell-featured-image-loader{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,0.9); z-index:100000; } .xsell-featured-image-loader.hidden{ display:none !important; } .xsell-featured-image-loader .spinner{ width:48px; height:48px; border-radius:50%; border:5px solid rgba(0,0,0,0.1); border-top-color:rgba(0,0,0,0.7); animation:xsellSpin 0.8s linear infinite; } @keyframes xsellSpin{ to{ transform:rotate(360deg); } }'; 2753 document.head.appendChild(ss); 2754 } 2755 2756 // Ensure container is positioned 2757 try { 2758 if (getComputedStyle(loaderHostImmediate).position === 'static') { 2759 loaderHostImmediate.style.position = 'relative'; 2760 } 2761 } catch(e){} 2762 2763 // Create and show loader immediately 2764 var immediateLoader = loaderHostImmediate.querySelector('.xsell-featured-image-loader'); 2765 if (!immediateLoader) { 2766 immediateLoader = document.createElement('div'); 2767 immediateLoader.className = 'xsell-featured-image-loader'; 2768 immediateLoader.innerHTML = '<div class="spinner" aria-hidden="true"></div>'; 2769 loaderHostImmediate.appendChild(immediateLoader); 2770 } else { 2771 immediateLoader.classList.remove('hidden'); 2772 } 2773 console.log('xsellModal: loader is now visible during component initialization on', loaderHostImmediate.className); 2774 } 2775 } catch(e) { 2776 console.warn('xsellModal: failed to show immediate loader', e); 2777 } 2778 2779 // --- FAST PATH: attach immediate click delegation to the injected cartContextXsellEl so 2780 // color clicks are handled as soon as user interacts (before web components are upgraded) 2781 try { 2782 if (!xsellColorHelpers) { 2783 xsellColorHelpers = { listeners: [], observer: null, pollTimer: null, docListener: null, prevOnSelectedMap: new WeakMap() }; 2784 } 2785 2786 // parse variants quickly from the injected data (we already created variantsData above) 2787 var quickVariants = [];
2788 try { quickVariants = variantsData ? JSON.parse(variantsData) : []; } catch(e){ quickVariants = []; } 2789 2790 // Query the parent images container for better loader visibility 2791 var featuredImageContainerEarly = modalEl.querySelector('.xsell__modal-more-info-images'); 2792 if (!featuredImageContainerEarly) { 2793 // Fallback to featured-image child if parent not found 2794 featuredImageContainerEarly = modalEl.querySelector('.xsell__modal-more-info-featured-image'); 2795 } 2796 console.log('xsellModal: using loader container', featuredImageContainerEarly ? featuredImageContainerEarly.className : 'not found'); 2797 2798 // Helper: show loader overlay immediately on featured image container/host 2799 function showImageLoaderNow(container) { 2800 try { 2801 // Try parent container first for better visibility 2802 if (!container) container = modalEl && modalEl.querySelector && modalEl.querySelector('.xsell__modal-more-info-images'); 2803 if (!container) container = modalEl && modalEl.querySelector && modalEl.querySelector('.xsell__modal-more-info-featured-image'); 2804 if (!container) container = document.querySelector('.xsell__modal-more-info-images'); 2805 if (!container) container = document.querySelector('.xsell__modal-more-info-featured-image'); 2806 if (!container) return null; 2807 2808 var host = container; 2809 // Don't try to use parent if we're already on the images container 2810 try { 2811 if (host.tagName && host.tagName.toLowerCase() === 'img') { 2812 host = host.parentElement || host; 2813 } 2814 } catch(e){} 2815 2816 if (!document.getElementById('xsell-modal-loader-styles')) { 2817 var ss = document.createElement('style'); 2818 ss.id = 'xsell-modal-loader-styles'; 2819 ss.textContent = '.xsell-featured-image-loader{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,0.9); z-index:100000; } .xsell-featured-image-loader.hidden{ display:none !important; } .xsell-featured-image-loader .spinner{ width:48px; height:48px; border-radius:50%; border:5px solid rgba(0,0,0,0.1); border-top-color:rgba(0,0,0,0.7); animation:xsellSpin 0.8s linear infinite; } @keyframes xsellSpin{ to{ transform:rotate(360deg); } }'; 2820 document.head.appendChild(ss); 2821 } 2822 2823 var loader = host.querySelector('.xsell-featured-image-loader'); 2824 if (!loader) { 2825 loader = document.createElement('div'); 2826 loader.className = 'xsell-featured-image-loader hidden'; 2827 loader.innerHTML = '<div class="spinner" aria-hidden="true"></div>'; 2828 try { if (getComputedStyle(host).position === 'static') host.style.position = 'relative'; } catch(e){} 2829 try { loader.style.zIndex = '100000'; } catch(e){} 2830 host.appendChild(loader); 2831 } 2832 if (loader._hideTimer) try { clearTimeout(loader._hideTimer); } catch(e){} 2833 loader.classList.remove('hidden'); 2834 loader._hideTimer = setTimeout(function(){ try { loader.classList.add('hidden'); } catch(e){} }, 6000); 2835 return loader; 2836 } catch(e){ return null; } 2837 } 2838 2839 // Show loader immediately on the featured image container if it exists 2840 // We'll show it now and let the image loading functions handle hiding it 2841 if (featuredImageContainerEarly) { 2842 try { 2843 console.log('xsellModal: initializing loader on featured image container'); 2844 // Just ensure the loader element exists and is ready 2845 // Don't show it yet - let the actual image loading trigger it 2846 var loaderHost = featuredImageContainerEarly; 2847 try { if (loaderHost.tagName && loaderHost.tagName.toLowerCase() === 'img') loaderHost = loaderHost.parentElement || loaderHost; } catch(e){} 2848 var existingLoader = loaderHost.querySelector('.xsell-featured-image-loader'); 2849 if (!existingLoader) { 2850 existingLoader = document.createElement('div'); 2851 existingLoader.className = 'xsell-featured-image-loader hidden'; 2852 existingLoader.innerHTML = '<div class="spinner" aria-hidden="true"></div>'; 2853 try { if (getComputedStyle(loaderHost).position === 'static') loaderHost.style.position = 'relative'; } catch(e){} 2854 try { existingLoader.style.zIndex = '100000'; } catch(e){} 2855 loaderHost.appendChild(existingLoader); 2856 console.log('xsellModal: loader element created and ready'); 2857 } 2858 } catch(e){ 2859 console.warn('xsellModal: failed to initialize loader', e); 2860 } 2861 } 2862 2863 function quickSetFeaturedImageUrl(url){ 2864 if (!url) return; 2865 try { 2866 // try to locate the featured image container now - prioritize parent images container 2867 var container = featuredImageContainerEarly; 2868 if (!container) container = modalEl && modalEl.querySelector && modalEl.querySelector('.xsell__modal-more-info-images'); 2869 if (!container) container = modalEl && modalEl.querySelector && modalEl.querySelector('.xsell__modal-more-info-featured-image'); 2870 if (!container) container = document.querySelector('.xsell__modal-more-info-images'); 2871 if (!container) container = document.querySelector('.xsell__modal-more-info-featured-image'); 2872 if (!container) return; 2873 2874 // ensure loader styles exist 2875 if (!document.getElementById('xsell-modal-loader-styles')) { 2876 var ss = document.createElement('style'); ss.id = 'xsell-modal-loader-styles'; ss.textContent = 2877 '.xsell-featured-image-loader{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,0.9); z-index:100000; }' + 2878 '.xsell-featured-image-loader.hidden{ display:none !important; }' + 2879 '.xsell-featured-image-loader .spinner{ width:48px; height:48px; border-radius:50%; border:5px solid rgba(0,0,0,0.1); border-top-color:rgba(0,0,0,0.7); animation:xsellSpin 0.8s linear infinite; }' + 2880 '@keyframes xsellSpin{ to{ transform:rotate(360deg); } }'; 2881 document.head.appendChild(ss); 2882 } 2883 2884 // create or find loader overlay in the featured image container 2885 var loaderHost = container; 2886 // Only try to use parent if container is an img element 2887 try { 2888 if (loaderHost && loaderHost.tagName && loaderHost.tagName.toLowerCase() === 'img') { 2889 loaderHost = loaderHost.parentElement || loaderHost; 2890 } 2891 } catch(e){} 2892 var loaderEl = loaderHost.querySelector('.xsell-featured-image-loader'); 2893 if (!loaderEl) { 2894 loaderEl = document.createElement('div'); 2895 loaderEl.className = 'xsell-featured-image-loader hidden'; 2896 loaderEl.innerHTML = '<div class="spinner" aria-hidden="true"></div>'; 2897 // ensure the host is positioned relatively to contain the absolute loader 2898 try { if (getComputedStyle(loaderHost).position === 'static') loaderHost.style.position = 'relative'; } catch(e){} 2899 // ensure loader is above most theme elements 2900 try { loaderEl.style.zIndex = '100000'; } catch(e){} 2901 loaderHost.appendChild(loaderEl); 2902 } 2903 // show loader immediately and record show time for GUARANTEED minimum display duration 2904 loaderEl.classList.remove('hidden'); 2905 console.log('xsellModal: showing image loader for', url); 2906 var loaderShowTime = Date.now(); 2907 var minDisplayTime = 500; // INCREASED to 500ms for better visibility 2908 2909 // Clear any existing timers 2910 if (loaderEl._hideTimer) try { clearTimeout(loaderEl._hideTimer); } catch(e){} 2911 if (loaderEl._minDisplayTimer) try { clearTimeout(loaderEl._minDisplayTimer); } catch(e){} 2912 2913 // Safety timeout (6s) 2914 loaderEl._hideTimer = setTimeout(function(){ try { loaderEl.classList.add('hidden'); } catch(e){} }, 6000); 2915 2916 // Track if image has loaded (for both sync and async loads) 2917 var imageHasLoaded = false;
2918 2919 // GUARANTEED minimum display time - loader won't hide until this timer completes AND quiz is ready 2920 loaderEl._minDisplayTimer = setTimeout(function() { 2921 // After minimum time, hide loader only if image has loaded AND quiz is ready 2922 if (imageHasLoaded && window._xsellQuizReady !== false) { 2923 try { 2924 if (loaderEl._hideTimer) { clearTimeout(loaderEl._hideTimer); loaderEl._hideTimer = null; } 2925 loaderEl.classList.add('hidden'); 2926 console.log('xsellModal: hiding image loader for', url, 'after', Date.now() - loaderShowTime, 'ms'); 2927 } catch(e){} 2928 } else { 2929 // Image still loading or quiz not ready, wait for it 2930 if (!imageHasLoaded) console.log('xsellModal: minimum time passed but image still loading', url); 2931 if (window._xsellQuizReady === false) console.log('xsellModal: minimum time passed but quiz not ready yet', url); 2932 2933 // Check again after a delay 2934 setTimeout(function checkAgain() { 2935 if (imageHasLoaded && window._xsellQuizReady !== false) { 2936 try { 2937 if (loaderEl._hideTimer) { clearTimeout(loaderEl._hideTimer); loaderEl._hideTimer = null; } 2938 loaderEl.classList.add('hidden'); 2939 console.log('xsellModal: hiding image loader after quiz ready for', url, 'after', Date.now() - loaderShowTime, 'ms'); 2940 } catch(e){} 2941 } else { 2942 // Still not ready, check again 2943 setTimeout(checkAgain, 200); 2944 } 2945 }, 200); 2946 } 2947 }, minDisplayTime); 2948 2949 // Helper to mark image as loaded and hide loader if minimum time has passed AND quiz is ready 2950 var markImageLoaded = function() { 2951 imageHasLoaded = true; 2952 var elapsed = Date.now() - loaderShowTime; 2953 if (elapsed >= minDisplayTime && window._xsellQuizReady !== false) { 2954 // Minimum time passed AND quiz ready, hide now 2955 try { 2956 if (loaderEl._hideTimer) { clearTimeout(loaderEl._hideTimer); loaderEl._hideTimer = null; } 2957 if (loaderEl._minDisplayTimer) { clearTimeout(loaderEl._minDisplayTimer); loaderEl._minDisplayTimer = null; } 2958 loaderEl.classList.add('hidden'); 2959 console.log('xsellModal: hiding image loader for', url, 'after', elapsed, 'ms'); 2960 } catch(e){} 2961 } else { 2962 // Either minimum time hasn't passed or quiz not ready yet 2963 if (elapsed < minDisplayTime) console.log('xsellModal: image loaded but waiting for minimum display time', url); 2964 if (window._xsellQuizReady === false) console.log('xsellModal: image loaded but waiting for quiz ready', url); 2965 } 2966 // The minDisplayTimer will handle hiding when conditions are met 2967 }; 2968 2969 var imgEl = container.querySelector('img'); 2970 2971 // If the img element already exists and has this exact URL and is loaded, mark as loaded 2972 try { 2973 if (imgEl && imgEl.src && imgEl.src.indexOf(url) !== -1 && imgEl.complete && imgEl.naturalHeight > 0) { 2974 console.log('xsellModal: image already showing', url); 2975 markImageLoaded(); 2976 return; 2977 } 2978 } catch(e){} 2979 2980 // Update the image src immediately if element exists (browser will use cache) 2981 if (imgEl && imgEl.src !== url) { 2982 imgEl.src = url; 2983 } 2984 2985 // Wait for the image to actually load (even from cache) before marking as loaded 2986 if (imgEl) { 2987 // Use requestAnimationFrame to check after browser has a chance to load from cache 2988 requestAnimationFrame(function() { 2989 if (imgEl.complete && imgEl.naturalHeight > 0) { 2990 // Already loaded (cached) - checked after RAF 2991 console.log('xsellModal: image loaded from cache', url); 2992 markImageLoaded(); 2993 } else { 2994 // Wait for load event 2995 var onLoadHandler = function() { 2996 console.log('xsellModal: image loaded via event', url); 2997 markImageLoaded(); 2998 }; 2999 imgEl.addEventListener('load', onLoadHandler, { once: true }); 3000 imgEl.addEventListener('error', onLoadHandler, { once: true }); 3001 } 3002 }); 3003 } else { 3004 // No img element, try background image 3005 var bgTarget = container.querySelector('.background-image') || container; 3006 var tmp = new Image(); 3007 tmp.onload = function(){ 3008 try { bgTarget.style.backgroundImage = 'url("' + url + '")'; } catch(e){} 3009 markImageLoaded(); 3010 }; 3011 tmp.onerror = function(){ markImageLoaded(); }; 3012 tmp.src = url; 3013 } 3014 } catch(e){} 3015 } 3016 3017 function quickNormalize(s){ return String(s || '').toLowerCase().replace(/[^a-z0-9]+/g,'').trim(); } 3018 function quickFindImageForColor(color){ 3019 if (!color) return null; 3020 var c = quickNormalize(color); 3021 for (var qi = 0; qi < quickVariants.length; qi++){ 3022 var vv = quickVariants[qi] || {};
3023 var raw = vv.color || vv.value || vv.title || ''; 3024 var val = quickNormalize(raw); 3025 if (!val) continue; 3026 if (val === c) return (typeof vv.image === 'string') ? vv.image : (vv.image && (vv.image.src || vv.image.url)) || null; 3027 if (val.indexOf(c) !== -1) return (typeof vv.image === 'string') ? vv.image : (vv.image && (vv.image.src || vv.image.url)) || null; 3028 if (c.indexOf(val) !== -1) return (typeof vv.image === 'string') ? vv.image : (vv.image && (vv.image.src || vv.image.url)) || null; 3029 } 3030 return null; 3031 } 3032 3033 // container-level click delegation to immediately respond to color swatch clicks inside injected component 3034 var containerClickEarly = function(ev){ 3035 try { 3036 var el = ev.target && ev.target.closest && ev.target.closest('[data-color], [data-value], [data-variant-option-value], .color-swatch, .swatch, button[data-color]'); 3037 if (!el) return; 3038 // ensure within our injected context 3039 if (!cartContextXsellEl.contains(el)) return; 3040 var c = el.getAttribute('data-color') || el.getAttribute('data-value') || el.getAttribute('data-variant-option-value') || el.getAttribute('value') || el.getAttribute('aria-label') || el.textContent || null; 3041 if (!c) return; 3042 var img = quickFindImageForColor(c.trim()); 3043 if (img) { 3044 // show loader immediately so user sees activity before image fetch completes 3045 showImageLoaderNow(featuredImageContainerEarly || modalEl && modalEl.querySelector && modalEl.querySelector('.xsell__modal-more-info-featured-image')); 3046 quickSetFeaturedImageUrl(img); 3047 } 3048 } catch(e){} 3049 }; 3050 cartContextXsellEl.addEventListener('click', containerClickEarly, true); 3051 xsellColorHelpers.listeners.push({ el: cartContextXsellEl, ev: 'click', fn: containerClickEarly }); 3052 console.log('xsellModal: added early container click delegation to detect colors before upgrade'); 3053 3054 // Also attach pointerdown and mouseover to react faster (touch and hover) and try to set initial image 3055 try { 3056 var pointerHandler = function(ev){ 3057 try { 3058 var el = ev.target && ev.target.closest && ev.target.closest('[data-color], [data-value], [data-variant-option-value], .color-swatch, .swatch, button[data-color]'); 3059 if (!el) return; 3060 if (!cartContextXsellEl.contains(el)) return; 3061 var c = el.getAttribute('data-color') || el.getAttribute('data-value') || el.getAttribute('data-variant-option-value') || el.getAttribute('value') || el.getAttribute('aria-label') || el.textContent || null; 3062 if (!c) return; 3063 var img = quickFindImageForColor(c.trim()); 3064 if (img) { 3065 showImageLoaderNow(featuredImageContainerEarly || modalEl && modalEl.querySelector && modalEl.querySelector('.xsell__modal-more-info-featured-image')); 3066 quickSetFeaturedImageUrl(img); 3067 } 3068 } catch(e){} 3069 }; 3070 cartContextXsellEl.addEventListener('pointerdown', pointerHandler, true); 3071 xsellColorHelpers.listeners.push({ el: cartContextXsellEl, ev: 'pointerdown', fn: pointerHandler }); 3072 3073 var hoverHandler = function(ev){ 3074 try { 3075 var el = ev.target && ev.target.closest && ev.target.closest('[data-color], [data-value], [data-variant-option-value], .color-swatch, .swatch, button[data-color]'); 3076 if (!el) return; 3077 if (!cartContextXsellEl.contains(el)) return; 3078 var c = el.getAttribute('data-color') || el.getAttribute('data-value') || el.getAttribute('data-variant-option-value') || el.getAttribute('value') || el.getAttribute('aria-label') || el.textContent || null; 3079 if (!c) return; 3080 var img = quickFindImageForColor(c.trim()); 3081 if (img) { 3082 showImageLoaderNow(featuredImageContainerEarly || modalEl && modalEl.querySelector && modalEl.querySelector('.xsell__modal-more-info-featured-image')); 3083 quickSetFeaturedImageUrl(img); 3084 } 3085 } catch(e){} 3086 }; 3087 cartContextXsellEl.addEventListener('mouseover', hoverHandler, true); 3088 xsellColorHelpers.listeners.push({ el: cartContextXsellEl, ev: 'mouseover', fn: hoverHandler }); 3089 } catch(e){/* ignore */} 3090 3091 // Preload variant images (non-blocking) to reduce image load delay when switching
3092 try { 3093 // Start a parallel preloader with limited concurrency so image downloads start immediately 3094 xsellColorHelpers.preloaded = xsellColorHelpers.preloaded || []; 3095 xsellColorHelpers._preloadControllers = xsellColorHelpers._preloadControllers || []; 3096 xsellColorHelpers._preloadObjectUrls = xsellColorHelpers._preloadObjectUrls || []; 3097 3098 var preloadUrls = []; 3099 for (var p = 0; p < quickVariants.length; p++) { 3100 try { 3101 var _url = quickVariants[p] && (quickVariants[p].image || (quickVariants[p].image && (quickVariants[p].image.src || quickVariants[p].image.url))); 3102 if (_url) preloadUrls.push(_url); 3103 } catch(e){} 3104 } 3105 3106 function preloadImagesParallel(urls, concurrency) { 3107 if (!urls || urls.length === 0) return; 3108 concurrency = Math.max(1, concurrency || 6); 3109 var idx = 0; 3110 var active = 0; 3111 3112 function scheduleNext() { 3113 while (active < concurrency && idx < urls.length) { 3114 (function(url){ 3115 idx++; active++; 3116 var controller = new AbortController(); 3117 xsellColorHelpers._preloadControllers.push(controller); 3118 3119 // Try fetch -> blob -> objectURL -> Image for best parallel fetching and caching 3120 fetch(url, { signal: controller.signal, cache: 'force-cache' }) 3121 .then(function(res){ if (!res.ok) throw new Error('fetch failed'); return res.blob(); }) 3122 .then(function(blob){ 3123 try { 3124 var objUrl = URL.createObjectURL(blob); 3125 xsellColorHelpers._preloadObjectUrls.push(objUrl); 3126 var img = new Image(); 3127 img.src = objUrl; 3128 xsellColorHelpers.preloaded.push(img); 3129 // record original url mapping for diagnostics 3130 try { xsellColorHelpers.preloadedUrls = xsellColorHelpers.preloadedUrls || []; xsellColorHelpers.preloadedUrls.push(url); } catch(e){} 3131 console.log('xsellModal: preloaded image', url); 3132 } catch(e){ 3133 // object URL creation failed; fallback to Image src = url 3134 try { var img2 = new Image(); img2.src = url; xsellColorHelpers.preloaded.push(img2); xsellColorHelpers.preloadedUrls = xsellColorHelpers.preloadedUrls || []; xsellColorHelpers.preloadedUrls.push(url); console.log('xsellModal: preloaded image via Image fallback', url); } catch(e){} 3135 } 3136 }) 3137 .catch(function(){ 3138 // network/fetch failed (CORS or other); fallback to classic Image() which often succeeds 3139 try { var img3 = new Image(); img3.src = url; xsellColorHelpers.preloaded.push(img3); xsellColorHelpers.preloadedUrls = xsellColorHelpers.preloadedUrls || []; xsellColorHelpers.preloadedUrls.push(url); console.log('xsellModal: preloaded image via Image fallback (catch)', url); } catch(e){} 3140 }) 3141 .finally(function(){ active--; scheduleNext(); }); 3142 })(urls[idx]); 3143 } 3144 } 3145 3146 scheduleNext(); 3147 } 3148 3149 // Start parallel preloading (concurrency tuned to 6-8 for browsers) 3150 preloadImagesParallel(preloadUrls, 8); 3151 } catch(e){} 3152 3153 // Try to set an initial featured image from variants data (best-effort) 3154 try { 3155 if (quickVariants && quickVariants.length > 0) { 3156 var firstWithImage = null; 3157 for (var fi = 0; fi < quickVariants.length; fi++) { 3158 var vv = quickVariants[fi] || {}; 3159 var u = vv.image || (vv.image && (vv.image.src || vv.image.url)) || null; 3160 if (u) { firstWithImage = u; break; } 3161 } 3162 if (firstWithImage) { 3163 // Show loader before setting the initial image 3164 showImageLoaderNow(featuredImageContainerEarly || modalEl && modalEl.querySelector && modalEl.querySelector('.xsell__modal-more-info-featured-image')); 3165 quickSetFeaturedImageUrl(firstWithImage); 3166 } 3167 } 3168 } catch(e){} 3169 3170 } catch(e){ console.warn('xsellModal: failed to attach early color click handler', e); } 3171 3172 // Ensure the xsell modal itself is on top while we display the injected UI 3173 try {
3174 try { modalEl.style.zIndex = '2147483647'; } catch(e){} 3175 try { modalEl.style.position = modalEl.style.position || 'relative'; } catch(e){} 3176 document.body.classList.add('xsell-modal-helper-open'); 3177 } catch(e) {} 3178 3179 console.log('xsellModal: injected mini-quiz-basic-component into xsell modal for', handle); 3180 3181 // Enforcement loop: some themes mutate inline styles or create new stacking contexts after we set them. 3182 // Reapply the high z-index and fixed positioning until the modal is closed (or timeout) so the helper reliably stays on top. 3183 (function startEnforcement() { 3184 var tries = 0; 3185 var maxTries = 80; // ~16 seconds 3186 var enforcementInterval = setInterval(function(){ 3187 tries++; 3188 try { 3189 var portal = document.getElementById('xsell-modal-helper-portal'); 3190 if (portal) { 3191 portal.style.zIndex = '2147483647'; 3192 portal.style.position = 'fixed'; 3193 portal.style.inset = '0'; 3194 portal.style.width = '100%'; 3195 portal.style.height = '100%'; 3196 } 3197 // Only enforce on the xsell modal host and its body wrapper; leave the injected component in normal flow. 3198 if (modalEl && modalEl.style) { 3199 modalEl.style.zIndex = '2147483647'; 3200 modalEl.style.position = modalEl.style.position || 'relative'; 3201 } 3202 if (modalBody && modalBody.style) { 3203 modalBody.style.zIndex = '2147483647'; 3204 modalBody.style.pointerEvents = 'auto'; 3205 modalBody.style.position = modalBody.style.position || 'relative'; 3206 } 3207 } catch (e) {} 3208 3209 // stop when modal removed or disabled attribute cleared 3210 var stillOpen = false; 3211 try { stillOpen = (modalEl && (modalEl.getAttribute('enabled') === 'true' || modalEl.enabled === true)); } catch(e) { stillOpen = false; } 3212 if (!stillOpen || tries > maxTries) { 3213 clearInterval(enforcementInterval); 3214 } 3215 }, 200); 3216 })(); 3217 3218 console.log('xsellModal: injected temporary cart-context for', handle); 3219 3220 // Wait until mini-quiz-basic-component web component is initialized and its shadowRoot is available 3221 // Ensure the project's web components are registered/upgraded before we try to interact with them. 3222 // Many themes load the main bundle later; if the elements are not yet defined our injected 3223 // nodes won't be upgraded and will not render the shadow DOM. Wait for registration 3224 // with a small timeout fallback so we don't block forever. 3225 try { 3226 if (window.customElements && typeof window.customElements.whenDefined === 'function') { 3227 await Promise.race([ 3228 (async function(){ 3229 // wait for localized components we'll use for xsell 3230 await Promise.all([ 3231 window.customElements.whenDefined('cart-context-xsell'), 3232 window.customElements.whenDefined('mini-quiz-basic-component') 3233 ]); 3234 })(), 3235 new Promise(function(r){ setTimeout(r, 8000); }) 3236 ]); 3237 } 3238 } catch(e) { console.warn('xsellModal: error while waiting for custom elements', e); } 3239 3240 // If definitions are already present, try to upgrade the injected elements immediately so they run 3241 // their lifecycle callbacks without waiting for a later mutation. 3242 try { 3243 if (window.customElements && typeof window.customElements.get === 'function' && typeof window.customElements.upgrade === 'function') { 3244 if (window.customElements.get('mini-quiz-basic-component')) { 3245 try { window.customElements.upgrade(quizEl); } catch(e){} 3246 } 3247 if (window.customElements.get('cart-context-xsell')) { 3248 try { window.customElements.upgrade(cartContextXsellEl); } catch(e){} 3249 } 3250 } 3251 } catch(e) { console.warn('xsellModal: error while attempting to upgrade injected elements', e); } 3252 3253 await waitForElement(quizEl, 8000); 3254 // Give some time for component to initialize and render 3255 await smallDelay(200); 3256 3257 // Ensure quiz is ready: poll until shadowRoot or expected nodes exist 3258 // Set a global flag to prevent loader from hiding until quiz is ready 3259 window._xsellQuizReady = false;
3260 3261 try { 3262 var quizReady = false; 3263 var quizPollTries = 0; 3264 while (!quizReady && quizPollTries < 40) { // ~8s 3265 quizPollTries++; 3266 try { 3267 if (quizEl && (quizEl.shadowRoot || quizEl.querySelector('color-selection') || quizEl.querySelector('[data-variant-option-value]') || quizEl.querySelector('[data-color]'))) { 3268 quizReady = true; break; 3269 } 3270 } catch(e){} 3271 await smallDelay(200); 3272 } 3273 if (!quizReady) console.log('xsellModal: quiz readiness poll timed out after', quizPollTries * 200, 'ms'); 3274 else console.log('xsellModal: quiz ready after', quizPollTries * 200, 'ms'); 3275 3276 // Mark quiz as ready - now loaders can start their hide timers 3277 window._xsellQuizReady = true; 3278 3279 3280 // Now that quiz is ready, if there's an initial image to load, trigger it 3281 // This ensures the loader was visible during entire quiz initialization 3282 console.log('xsellModal: quiz ready, now loading initial image if needed'); 3283 3284 } catch(e) { 3285 console.warn('xsellModal: quiz readiness poll failed', e); 3286 window._xsellQuizReady = true; // Allow loader to hide even on error 3287 } 3288 3289 // --- Color -> Featured Image syncing for xsell modal --- 3290 try { 3291 console.log('xsellModal: wiring color->image sync (start)'); 3292 // Parse injected variants data (we injected a <data name="variants"> element earlier) 3293 var variantsDataEl = cartContextXsellEl.querySelector('data[name="variants"]'); 3294 var xsellVariants = [];
3295 try { if (variantsDataEl && variantsDataEl.textContent) xsellVariants = JSON.parse(variantsDataEl.textContent); } catch(e){ xsellVariants = xsellVariants || []; console.warn('xsellModal: failed parsing variants JSON', e); } 3296 console.log('xsellModal: xsellVariants count=', (xsellVariants && xsellVariants.length) || 0); 3297 3298 // Query parent images container first, fallback to featured-image child 3299 var featuredImageContainer = modalEl.querySelector('.xsell__modal-more-info-images'); 3300 if (!featuredImageContainer) { 3301 featuredImageContainer = modalEl.querySelector('.xsell__modal-more-info-featured-image'); 3302 } 3303 console.log('xsellModal: featuredImageContainer=', featuredImageContainer); 3304 if (!featuredImageContainer) console.log('xsellModal: featured image container not found'); 3305 3306 function setFeaturedImageUrl(url) { 3307 if (!url) return; 3308 try { 3309 // re-query the featuredImageContainer in case it's been added/changed - prioritize parent 3310 var container = featuredImageContainer; 3311 if (!container) container = currentModal && currentModal.querySelector && currentModal.querySelector('.xsell__modal-more-info-images'); 3312 if (!container) container = currentModal && currentModal.querySelector && currentModal.querySelector('.xsell__modal-more-info-featured-image'); 3313 if (!container) container = document.querySelector('.xsell__modal-more-info-images'); 3314 if (!container) container = document.querySelector('.xsell__modal-more-info-featured-image'); 3315 if (!container) return; 3316 3317 console.log('xsellModal: setFeaturedImageUrl ->', url); 3318 3319 // ensure loader styles exist 3320 if (!document.getElementById('xsell-modal-loader-styles')) { 3321 var ss = document.createElement('style'); ss.id = 'xsell-modal-loader-styles'; ss.textContent = 3322 '.xsell-featured-image-loader{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,0.9); z-index:100000; }' + 3323 '.xsell-featured-image-loader.hidden{ display:none !important; }' + 3324 '.xsell-featured-image-loader .spinner{ width:48px; height:48px; border-radius:50%; border:5px solid rgba(0,0,0,0.1); border-top-color:rgba(0,0,0,0.7); animation:xsellSpin 0.8s linear infinite; }' + 3325 '@keyframes xsellSpin{ to{ transform:rotate(360deg); } }'; 3326 document.head.appendChild(ss); 3327 } 3328 3329 // create or find loader overlay in the featured image container 3330 var loaderHostMain = container; 3331 // Only use parent if container is an img element 3332 try { 3333 if (loaderHostMain && loaderHostMain.tagName && loaderHostMain.tagName.toLowerCase() === 'img') { 3334 loaderHostMain = loaderHostMain.parentElement || loaderHostMain; 3335 } 3336 } catch(e){} 3337 var loader = loaderHostMain.querySelector('.xsell-featured-image-loader'); 3338 if (!loader) { 3339 loader = document.createElement('div'); 3340 loader.className = 'xsell-featured-image-loader hidden'; 3341 loader.innerHTML = '<div class="spinner" aria-hidden="true"></div>'; 3342 try { if (getComputedStyle(loaderHostMain).position === 'static') loaderHostMain.style.position = 'relative'; } catch(e){} 3343 try { loader.style.zIndex = '100000'; } catch(e){} 3344 loaderHostMain.appendChild(loader); 3345 } 3346 // show loader immediately and record show time for GUARANTEED minimum display duration 3347 loader.classList.remove('hidden'); 3348 console.log('xsellModal: showing image loader for', url); 3349 var loaderShowTime = Date.now(); 3350 var minDisplayTime = 500; // INCREASED to 500ms for better visibility 3351 3352 // Clear any existing timers 3353 if (loader._hideTimer) try { clearTimeout(loader._hideTimer); } catch(e){} 3354 if (loader._minDisplayTimer) try { clearTimeout(loader._minDisplayTimer); } catch(e){} 3355 3356 // Safety timeout (6s) 3357 loader._hideTimer = setTimeout(function(){ try { loader.classList.add('hidden'); } catch(e){} }, 6000); 3358 3359 // Track if image has loaded (for both sync and async loads) 3360 var imageHasLoaded = false;
3361 3362 // GUARANTEED minimum display time - loader won't hide until this timer completes AND quiz is ready 3363 loader._minDisplayTimer = setTimeout(function() { 3364 // After minimum time, hide loader only if image has loaded AND quiz is ready 3365 if (imageHasLoaded && window._xsellQuizReady !== false) { 3366 try { 3367 if (loader._hideTimer) { clearTimeout(loader._hideTimer); loader._hideTimer = null; } 3368 loader.classList.add('hidden'); 3369 console.log('xsellModal: hiding image loader for', url, 'after', Date.now() - loaderShowTime, 'ms'); 3370 } catch(e){} 3371 } else { 3372 // Image still loading or quiz not ready, wait for it 3373 if (!imageHasLoaded) console.log('xsellModal: minimum time passed but image still loading', url); 3374 if (window._xsellQuizReady === false) console.log('xsellModal: minimum time passed but quiz not ready yet', url); 3375 3376 // Check again after a delay 3377 setTimeout(function checkAgain() { 3378 if (imageHasLoaded && window._xsellQuizReady !== false) { 3379 try { 3380 if (loader._hideTimer) { clearTimeout(loader._hideTimer); loader._hideTimer = null; } 3381 loader.classList.add('hidden'); 3382 console.log('xsellModal: hiding image loader after quiz ready for', url, 'after', Date.now() - loaderShowTime, 'ms'); 3383 } catch(e){} 3384 } else { 3385 // Still not ready, check again 3386 setTimeout(checkAgain, 200); 3387 } 3388 }, 200); 3389 } 3390 }, minDisplayTime); 3391 3392 // Helper to mark image as loaded and hide loader if minimum time has passed AND quiz is ready 3393 var markImageLoaded = function() { 3394 imageHasLoaded = true; 3395 var elapsed = Date.now() - loaderShowTime; 3396 if (elapsed >= minDisplayTime && window._xsellQuizReady !== false) { 3397 // Minimum time passed AND quiz ready, hide now 3398 try { 3399 if (loader._hideTimer) { clearTimeout(loader._hideTimer); loader._hideTimer = null; } 3400 if (loader._minDisplayTimer) { clearTimeout(loader._minDisplayTimer); loader._minDisplayTimer = null; } 3401 loader.classList.add('hidden'); 3402 console.log('xsellModal: hiding image loader for', url, 'after', elapsed, 'ms'); 3403 } catch(e){} 3404 } else { 3405 // Either minimum time hasn't passed or quiz not ready yet 3406 if (elapsed < minDisplayTime) console.log('xsellModal: image loaded but waiting for minimum display time', url); 3407 if (window._xsellQuizReady === false) console.log('xsellModal: image loaded but waiting for quiz ready', url); 3408 } 3409 // The minDisplayTimer will handle hiding when conditions are met 3410 }; 3411 3412 var imgEl = container.querySelector('img'); 3413 3414 // If the img element already exists and has this exact URL and is loaded, mark as loaded 3415 try { 3416 if (imgEl && imgEl.src && imgEl.src.indexOf(url) !== -1 && imgEl.complete && imgEl.naturalHeight > 0) { 3417 console.log('xsellModal: image already showing', url); 3418 markImageLoaded(); 3419 return; 3420 } 3421 } catch(e){} 3422 3423 // Update the image src immediately if element exists (browser will use cache) 3424 if (imgEl && imgEl.src !== url) { 3425 imgEl.src = url; 3426 } 3427 3428 // Wait for the image to actually load (even from cache) before marking as loaded 3429 if (imgEl) { 3430 // Use requestAnimationFrame to check after browser has a chance to load from cache 3431 requestAnimationFrame(function() { 3432 if (imgEl.complete && imgEl.naturalHeight > 0) { 3433 // Already loaded (cached) - checked after RAF 3434 console.log('xsellModal: image loaded from cache', url); 3435 markImageLoaded(); 3436 } else { 3437 // Wait for load event 3438 var onLoadHandler = function() { 3439 console.log('xsellModal: image loaded via event', url); 3440 markImageLoaded(); 3441 }; 3442 imgEl.addEventListener('load', onLoadHandler, { once: true }); 3443 imgEl.addEventListener('error', onLoadHandler, { once: true }); 3444 } 3445 }); 3446 } else { 3447 // No img element, try background image 3448 var bgTarget = container.querySelector('.background-image') || container; 3449 var tmp = new Image(); 3450 tmp.onload = function(){ 3451 try { bgTarget.style.backgroundImage = 'url("' + url + '")'; } catch(e){} 3452 markImageLoaded(); 3453 }; 3454 tmp.onerror = function(){ markImageLoaded(); }; 3455 tmp.src = url; 3456 } 3457 } catch(e) { console.warn('xsellModal: setFeaturedImageUrl error', e); } 3458 } 3459 3460 function findImageForColor(color) { 3461 if (!color) return null; 3462 var normalize = function(s){ return String(s || '').toLowerCase().replace(/[^a-z0-9]+/g,'').trim(); }; 3463 var c = normalize(color); 3464 for (var i = 0; i < xsellVariants.length; i++) { 3465 var v = xsellVariants[i] || {}; 3466 // variant value may be in v.color, v.value, v.valueText, or v.title 3467 var raw = v.color || v.value || v.valueText || v.title || ''; 3468 var val = normalize(raw); 3469 if (!val) continue; 3470 // exact match 3471 if (val === c) return (typeof v.image === 'string') ? v.image : (v.image && (v.image.src || v.image.url)) || null; 3472 // contains match (e.g., 'darkblonde' contains 'blonde') 3473 if (val.indexOf(c) !== -1) return (typeof v.image === 'string') ? v.image : (v.image && (v.image.src || v.image.url)) || null; 3474 // reverse contains (color contains variant value) 3475 if (c.indexOf(val) !== -1) return (typeof v.image === 'string') ? v.image : (v.image && (v.image.src || v.image.url)) || null; 3476 } 3477 return null; 3478 } 3479 3480 function handleColorSelected(color) { 3481 try { 3482 if (!color) return; 3483 console.log('xsellModal: detected color selection ->', color); 3484 var img = findImageForColor(color); 3485 if (img) { 3486 setFeaturedImageUrl(img); 3487 } else { 3488 console.log('xsellModal: no image found for color', color); 3489 } 3490 } catch(e) { console.warn('xsellModal: handleColorSelected error', e); } 3491 } 3492 3493 // prepare helpers object for cleanup (initialization moved later to include prevOnSelectedMap) 3494 // xsellColorHelpers will be created below with a WeakMap for previous handlers 3495 3496 // Strategy 1: listen to a dedicated color-selection custom element inside the quiz shadowRoot
3497 try { 3498 var colorSel = quizEl && quizEl.shadowRoot && quizEl.shadowRoot.querySelector('color-selection'); 3499 if (colorSel) { 3500 console.log('xsellModal: color-selection element found inside quiz (Strategy 1)'); 3501 try { 3502 // follow the same contract used inside mini-quiz: use onSelected if present, otherwise attach an event listener 3503 var handler = function(color){ try { handleColorSelected(color); } catch(e){} }; 3504 3505 // If the element exposes a JS property 'onSelected', preserve and replace it 3506 try { 3507 var prev = null; 3508 try { prev = colorSel.onSelected || null; } catch(e) { prev = null; } 3509 // store per-element previous handler for robust restore 3510 try { xsellColorHelpers.prevOnSelectedMap.set(colorSel, prev); } catch(e){} 3511 3512 if (typeof colorSel.onSelected !== 'undefined') { 3513 try { 3514 colorSel.onSelected = handler; 3515 xsellColorHelpers.listeners.push({ el: colorSel, ev: 'onSelected', fn: handler, prev: prev }); 3516 console.log('xsellModal: assigned onSelected handler on color-selection element'); 3517 } catch(e) { 3518 console.warn('xsellModal: failed to assign onSelected property, will try event listener as fallback', e); 3519 // fallthrough to event listener approach below 3520 } 3521 } 3522 } catch(e) { console.warn('xsellModal: error while assigning onSelected', e); } 3523 3524 // If the component dispatches a custom event when selection changes, listen for it 3525 try { 3526 // common event names: 'selected', 'change', 'colorchange' 3527 var eventNames = ['selected', 'change', 'colorchange', 'selectionchange']; 3528 var attachedEvent = false; 3529 for (var i = 0; i < eventNames.length; i++) { 3530 var evName = eventNames[i]; 3531 try { 3532 var evFn = function(e){ 3533 try { 3534 // event detail might carry color 3535 var color = (e && (e.detail && (e.detail.color || e.detail.value))) || null; 3536 if (!color && e && e.target) { 3537 color = e.target.selectedColor || e.target.getAttribute && e.target.getAttribute('selected-color'); 3538 } 3539 if (color) handleColorSelected(color); 3540 } catch(err){} 3541 }; 3542 colorSel.addEventListener(evName, evFn); 3543 xsellColorHelpers.listeners.push({ el: colorSel, ev: evName, fn: evFn }); 3544 attachedEvent = true; 3545 console.log('xsellModal: attached event listener', evName, 'on color-selection element'); 3546 } catch(err) { /* ignore and try next */ } 3547 } 3548 3549 // If we neither set onSelected nor attached any event, fallback to polling that element's properties 3550 if (!attachedEvent && (typeof colorSel.onSelected === 'undefined' || xsellColorHelpers.prevOnSelectedMap.get(colorSel) === undefined)) { 3551 try { 3552 xsellColorHelpers.pollTimer = setInterval(function(){ try { var sc = colorSel.selectedColor || (colorSel.getAttribute && colorSel.getAttribute('selected-color')); if (sc) handleColorSelected(sc); } catch(e){} }, 250); 3553 console.log('xsellModal: started polling color-selection element for selectedColor'); 3554 } catch(e){} 3555 } 3556 3557 // initial selectedColor 3558 try { 3559 var initSc = null; 3560 try { initSc = colorSel.selectedColor || (colorSel.getAttribute && colorSel.getAttribute('selected-color')); } catch(e) { initSc = null; } 3561 if (initSc) handleColorSelected(initSc); 3562 } catch(e){} 3563 3564 } catch(e) { 3565 console.warn('xsellModal: failed to attach events to color-selection', e); 3566 // fallback to polling 3567 try { xsellColorHelpers.pollTimer = setInterval(function(){ try { var sc = colorSel.selectedColor || (colorSel.getAttribute && colorSel.getAttribute('selected-color')); if (sc) handleColorSelected(sc); } catch(e){} }, 250); } catch(e){} 3568 } 3569 } catch(e) { 3570 console.warn('xsellModal: exception while wiring color-selection', e); 3571 } 3572 } 3573 } catch(e) { console.warn('xsellModal: error querying color-selection', e); } 3574 3575 // Strategy 2: attach click listeners to likely swatch/button elements inside the quiz shadowRoot
3576 try { 3577 if (quizEl && quizEl.shadowRoot) { 3578 var swatches = quizEl.shadowRoot.querySelectorAll('[data-color], [data-value], .color-swatch, .swatch, [data-variant-option-value], button[data-color]'); 3579 console.log('xsellModal: swatches found inside quiz shadowRoot:', swatches.length); 3580 if (swatches && swatches.length > 0) { 3581 Array.prototype.forEach.call(swatches, function(s){ 3582 try { 3583 var fn = function(ev){ 3584 var c = s.getAttribute('data-color') || s.getAttribute('data-value') || s.getAttribute('data-variant-option-value') || s.getAttribute('value') || s.getAttribute('aria-label') || s.textContent || null; 3585 if (c) handleColorSelected(c.trim()); 3586 }; 3587 s.addEventListener('click', fn); 3588 xsellColorHelpers.listeners.push({ el: s, ev: 'click', fn: fn }); 3589 } catch(e){ /* ignore */ } 3590 }); 3591 // attempt to derive initially selected swatch 3592 try { 3593 var sel = quizEl.shadowRoot.querySelector('.selected, .is-selected, [aria-pressed="true"]'); 3594 if (sel) { 3595 var c = sel.getAttribute('data-color') || sel.getAttribute('data-value') || sel.getAttribute('data-variant-option-value') || sel.getAttribute('value') || sel.getAttribute('aria-label') || sel.textContent || null; 3596 if (c) handleColorSelected(c.trim()); 3597 } 3598 } catch(e){} 3599 } 3600 } 3601 } catch(e) { console.warn('xsellModal: error wiring swatch click listeners', e); } 3602 3603 // Strategy 3: fallback observer â watch shadowRoot for changes (selected class added) and react 3604 try { 3605 if (quizEl && quizEl.shadowRoot && typeof MutationObserver === 'function') { 3606 var quizObserver = new MutationObserver(function(mutations){ 3607 try { 3608 var sel = quizEl.shadowRoot.querySelector('.selected, .is-selected, [aria-pressed="true"]'); 3609 if (sel) { 3610 var c = sel.getAttribute('data-color') || sel.getAttribute('data-value') || sel.getAttribute('data-variant-option-value') || sel.getAttribute('value') || sel.getAttribute('aria-label') || sel.textContent || null; 3611 if (c) handleColorSelected(c.trim()); 3612 } 3613 } catch(e){} 3614 }); 3615 quizObserver.observe(quizEl.shadowRoot, { childList: true, subtree: true, attributes: true, attributeFilter: ['class', 'aria-pressed'] }); 3616 xsellColorHelpers.observer = quizObserver; 3617 console.log('xsellModal: mutation observer attached to quiz shadowRoot'); 3618 } 3619 } catch(e) { console.warn('xsellModal: failed to attach MutationObserver inside quiz', e); } 3620 3621 // Strategy 4: as last resort, poll the component's state (if it exposes selected color or regimen object) 3622 try { 3623 if (!xsellColorHelpers.pollTimer) { 3624 xsellColorHelpers.pollTimer = setInterval(function(){ 3625 try { 3626 var sc = null; 3627 if (typeof quizEl.getRegimenObject === 'function') { 3628 var ro = quizEl.getRegimenObject(); 3629 if (ro && ro.color) sc = ro.color; 3630 } 3631 if (!sc && quizEl && quizEl.shadowRoot) { 3632 var sel = quizEl.shadowRoot.querySelector('.selected, .is-selected, [aria-pressed="true"]'); 3633 if (sel) sc = sel.getAttribute('data-color') || sel.getAttribute('data-value') || sel.textContent; 3634 } 3635 if (sc) handleColorSelected(sc); 3636 } catch(e){} 3637 }, 350); 3638 console.log('xsellModal: started polling quiz for selected color'); 3639 } 3640 } catch(e) { console.warn('xsellModal: failed to start polling', e); } 3641 3642 // Strategy 5: document-scoped click fallback â listen to clicks inside modal on elements that may represent colors 3643 try { 3644 var docFn = function(ev){ 3645 try { 3646 var el = ev.target.closest && ev.target.closest('[data-color], [data-value], [data-variant-option-value], .color-swatch, .swatch, button[data-color]'); 3647 if (!el) return; 3648 // ensure the clicked element is inside our modal 3649 if (!modalEl.contains(el)) return; 3650 var c = el.getAttribute('data-color') || el.getAttribute('data-value') || el.getAttribute('data-variant-option-value') || el.getAttribute('value') || el.getAttribute('aria-label') || el.textContent || null; 3651 if (c) handleColorSelected(c.trim()); 3652 } catch(e){} 3653 }; 3654 document.addEventListener('click', docFn, true); 3655 xsellColorHelpers.docListener = docFn; 3656 console.log('xsellModal: added document-scoped click fallback for color swatches'); 3657 } catch(e) { console.warn('xsellModal: failed to attach document click fallback', e); } 3658 3659 } catch(e) { console.warn('xsellModal: failed to wire color->image sync', e); } 3660 3661 // Override the quiz button click handler to add product to cart and close modal 3662 // The mini-quiz-basic-component has a button that triggers add-to-cart 3663 var addToCartBtn = null; 3664 try { 3665 addToCartBtn = quizEl.shadowRoot && quizEl.shadowRoot.querySelector('button[type="submit"]'); 3666 } catch(e){} 3667 3668 if (!addToCartBtn) { 3669 console.warn('xsellModal: could not find add-to-cart button in mini-quiz-basic-component'); 3670 return; 3671 } 3672 3673 // Override button click to use our custom add-to-cart logic 3674 var originalClickHandler = async function(e){ 3675 e.preventDefault(); 3676 e.stopPropagation(); 3677 console.log('xsellModal: mini-quiz-basic button clicked for xsell add'); 3678 3679 // Update button text
3680 try { addToCartBtn.querySelector('.add-to-cart-text').innerText = 'Adding...'; } catch(e){} 3681 try { addToCartBtn.setAttribute('disabled', 'true'); } catch(e){} 3682 3683 // Use the component's built-in method to get regimen object with all quiz selections 3684 var regimenObject = {}; 3685 try { 3686 if (typeof quizEl.getRegimenObject === 'function') { 3687 regimenObject = quizEl.getRegimenObject(); 3688 console.log('xsellModal: got regimen object from component', regimenObject); 3689 } 3690 } catch(err){ 3691 console.warn('xsellModal: failed to get regimen object, will use fallback', err); 3692 } 3693 3694 // Determine selected color variant if available 3695 var colorSelected = null; 3696 var selectedVariantId = variant.id; 3697 try { 3698 var colorSel = quizEl.shadowRoot && quizEl.shadowRoot.querySelector('color-selection'); 3699 if (colorSel && colorSel.selectedColor) { 3700 colorSelected = colorSel.selectedColor; 3701 // Find variant matching the selected color 3702 var matchingVariant = product.variants.find(function(v){ 3703 return v.title && v.title.includes(colorSelected); 3704 }); 3705 if (matchingVariant) selectedVariantId = matchingVariant.id; 3706 } 3707 } catch(e){ console.warn('xsellModal: error getting color selection', e); } 3708 3709 // Build properties from regimen object 3710 var properties = regimenObject || {}; 3711 3712 // POST to /cart/add.js 3713 try { 3714 const payload = { id: selectedVariantId, quantity: quizEl.quantity || 1, properties: properties }; 3715 console.log('xsellModal: adding to cart payload', payload); 3716 3717 // Prefer using site's ShopifyAPI if available so existing side-effects (free sample, tracking) 3718 let addRes; 3719 let addedData; 3720 if (window.ShopifyAPI && typeof window.ShopifyAPI.addToCart === 'function') { 3721 addRes = await window.ShopifyAPI.addToCart({ items: [payload] }); 3722 // window.ShopifyAPI.addToCart returns a fetch Response or {error} 3723 if (addRes && addRes.error) throw addRes.error; 3724 // If it's a Response, parse JSON 3725 try { addedData = addRes && typeof addRes.json === 'function' ? await addRes.json() : addRes; } catch(e) { addedData = addRes; } 3726 console.log('xsellModal: product added successfully via ShopifyAPI', addedData); 3727 } else { 3728 addRes = await fetch('/cart/add.js', { 3729 method: 'POST', 3730 headers: { 'Content-Type': 'application/json' }, 3731 body: JSON.stringify(payload), 3732 credentials: 'same-origin' 3733 }); 3734 if (!addRes.ok) throw new Error('Add to cart failed ' + addRes.status); 3735 addedData = await addRes.json(); 3736 console.log('xsellModal: product added successfully', addedData); 3737 } 3738 3739 // Optionally trigger site cart update helpers 3740 try { if (typeof cartCountItems === 'function') cartCountItems(); } catch(e){} 3741 try { if (typeof cartInsertAttributes === 'function') cartInsertAttributes(); } catch(e){} 3742 3743 // Update button to show success 3744 try { addToCartBtn.querySelector('.add-to-cart-text').innerText = 'Added!'; } catch(e){} 3745 3746 // Close the xsell modal after adding to cart 3747 try { 3748 await smallDelay(200); 3749 // Trigger the close button click to use the same close behavior 3750 var closeBtn = modalEl.querySelector('.close-btn, .modal-close, .xsell-modal-close, .xsell__modal-close'); 3751 if (closeBtn) { 3752 closeBtn.click(); 3753 console.log('xsellModal: triggered close button click after adding to cart'); 3754 } else { 3755 // Fallback if close button not found 3756 restoreModalBody(); 3757 try { modalEl.removeAttribute('enabled'); } catch(e) {} 3758 console.log('xsellModal: closed modal directly (no close button found)'); 3759 } 3760 } catch(e) { 3761 console.warn('xsellModal: failed to close modal', e); 3762 } 3763 3764 } catch (err) { 3765 console.error('xsellModal: failed to add product to cart', err); 3766 try { addToCartBtn.querySelector('.add-to-cart-text').innerText = 'Add to Cart'; } catch(e){} 3767 try { addToCartBtn.removeAttribute('disabled'); } catch(e){} 3768 } 3769 }; 3770 3771 // Replace the button's click handlers with our custom one 3772 // First, clone the button to remove all existing event listeners 3773 var newAddToCartBtn = addToCartBtn.cloneNode(true); 3774 addToCartBtn.parentNode.replaceChild(newAddToCartBtn, addToCartBtn); 3775 addToCartBtn = newAddToCartBtn; 3776 3777 // Add our custom click handler 3778 addToCartBtn.addEventListener('click', originalClickHandler); 3779 console.log('xsellModal: wired custom click handler to mini-quiz-basic button'); 3780 3781 // Wire close handler on the xsell modal close button to restore content
3782 var closeBtn = modalEl.querySelector('.close-btn, .modal-close, .xsell-modal-close'); 3783 if (closeBtn) { 3784 var closeHandler = function(){ 3785 restoreModalBody(); 3786 try { if (modalEl && modalEl.removeAttribute) modalEl.removeAttribute('enabled'); } catch(e){} 3787 closeBtn.removeEventListener('click', closeHandler); 3788 }; 3789 closeBtn.addEventListener('click', closeHandler); 3790 } 3791 } 3792 3793 function restoreModalBody(){ 3794 // Restore the original content saved from the xsell modal description wrapper 3795 try { 3796 var modalEl = currentModal || findModal(); 3797 if (!modalEl) return; 3798 var descriptionWrapper = modalEl.querySelector('.xsell__modal-more-info-description-wrapper') || modalEl.querySelector('.xsell__modal-content__body') || modalEl; 3799 if (!descriptionWrapper) return; 3800 if (originalModalBodyHTML !== null) { 3801 descriptionWrapper.innerHTML = originalModalBodyHTML; 3802 } 3803 try { cleanupXsellColorHelpers(); } catch(e){} 3804 // remove helper styling flag 3805 document.body.classList.remove('xsell-modal-helper-open'); 3806 } catch(e) { 3807 console.warn('xsellModal: restore failed', e); 3808 } finally { 3809 // cleanup references 3810 tempInjectedContext = null; 3811 originalModalBodyHTML = null; 3812 _xsell_helper_prevModalStyle = null; 3813 _xsell_helper_prevModalEnabledAttr = null; 3814 } 3815 } 3816 3817 // cleanup function for color->image syncing helpers 3818 function cleanupXsellColorHelpers(){ 3819 try { 3820 if (!xsellColorHelpers) return; 3821 if (xsellColorHelpers.pollTimer) try { clearInterval(xsellColorHelpers.pollTimer); } catch(e){} 3822 if (xsellColorHelpers.observer && typeof xsellColorHelpers.observer.disconnect === 'function') try { xsellColorHelpers.observer.disconnect(); } catch(e){} 3823 if (xsellColorHelpers.listeners && Array.isArray(xsellColorHelpers.listeners)) { 3824 xsellColorHelpers.listeners.forEach(function(l){ 3825 try { 3826 if (!l || !l.el) return; 3827 if (l.ev === 'onSelected') { 3828 // restore previous handler if available (per-element) 3829 try { 3830 var prev = (xsellColorHelpers.prevOnSelectedMap && xsellColorHelpers.prevOnSelectedMap.get && xsellColorHelpers.prevOnSelectedMap.get(l.el)) || null; 3831 try { l.el.onSelected = prev; } catch(e) { /* ignore */ } 3832 console.log('xsellModal: restored onSelected on color-selection element', l.el, !!prev); 3833 } catch(e) { /* ignore */ } 3834 } else { 3835 try { l.el.removeEventListener(l.ev, l.fn); } catch(e) {} 3836 } 3837 } catch(e){} 3838 }); 3839 } 3840 // remove document-scoped click listener 3841 try { 3842 if (xsellColorHelpers.docListener) { 3843 document.removeEventListener('click', xsellColorHelpers.docListener, true); 3844 } 3845 } catch(e){} 3846 // Abort any preloading fetches and revoke created object URLs 3847 try { 3848 if (xsellColorHelpers._preloadControllers && Array.isArray(xsellColorHelpers._preloadControllers)) { 3849 xsellColorHelpers._preloadControllers.forEach(function(c){ try { if (c && typeof c.abort === 'function') c.abort(); } catch(e){} }); 3850 } 3851 } catch(e){} 3852 try { 3853 if (xsellColorHelpers._preloadObjectUrls && Array.isArray(xsellColorHelpers._preloadObjectUrls)) { 3854 xsellColorHelpers._preloadObjectUrls.forEach(function(u){ try { if (u) URL.revokeObjectURL(u); } catch(e){} }); 3855 } 3856 } catch(e){} 3857 try { if (xsellColorHelpers.preloaded && Array.isArray(xsellColorHelpers.preloaded)) xsellColorHelpers.preloaded.length = 0; } catch(e){} 3858 } catch(e){} 3859 xsellColorHelpers = null; 3860 } 3861 3862 // small helper to wait for an element to be upgraded/connected 3863 function waitForElement(el, timeout) { 3864 timeout = typeof timeout === 'number' ? timeout : 2000; 3865 return new Promise(function(resolve, reject){ 3866 var waited = 0; 3867 var interval = 50; 3868 var t = setInterval(function(){ 3869 waited += interval; 3870 // consider ready when shadowRoot exists (web component initialized) 3871 // or when the custom element is defined and the element is connected in DOM. 3872 try { 3873 var tag = el && el.tagName && el.tagName.toLowerCase(); 3874 var isDefined = window.customElements && tag && window.customElements.get(tag); 3875 if (el && el.shadowRoot) { 3876 clearInterval(t); resolve(el); 3877 return; 3878 } 3879 if (el && isDefined && document.contains(el)) { 3880 // element is upgraded (or at least the definition exists) and it's in DOM 3881 clearInterval(t); resolve(el); 3882 return; 3883 } 3884 } catch(e) {} 3885 3886 if (waited >= timeout) { 3887 clearInterval(t); resolve(el); // resolve anyway to avoid blocking 3888 } 3889 }, interval); 3890 }); 3891 } 3892 3893 function smallDelay(ms){ return new Promise(r => setTimeout(r, ms)); } 3894 3895 // Observe the DOM for modal insertion / class changes 3896 var observer = new MutationObserver(function(){ 3897 var modal = findModal(); 3898 if (modal && modal !== currentModal) { 3899 handleModalOpen(modal); 3900 } 3901 if (!modal && currentModal) { 3902 // modal removed / closed 3903 handleModalClose(); 3904 } 3905 }); 3906 3907 // Start observing when DOM ready 3908 function startObserver() { 3909 try { 3910 observer.observe(document.documentElement || document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['class'] }); 3911 console.log('xsellModal: observer started'); 3912 // initial check 3913 var m = findModal(); 3914 if (m) handleModalOpen(m); 3915 } catch (e) { 3916 console.error('xsellModal observer failed to start', e); 3917 } 3918 } 3919 3920 if (document.readyState === 'loading') { 3921 document.addEventListener('DOMContentLoaded', startObserver); 3922 } else { 3923 startObserver(); 3924 } 3925 3926 // Utility helpers to access content inside the modal 3927 function getModalElement() { return currentModal || findModal(); } 3928 3929 function getContentElement() { 3930 var el = getModalElement(); 3931 if (!el) return null;
3932 // common internal content container 3933 return el.querySelector('.xsell__modal-body, .xsell__modal-content__body, .xsell-modal-body') || el; 3934 } 3935 3936 function getTitleEl() { 3937 var c = getContentElement(); 3938 return c && (c.querySelector('.xsell-modal-title, .modal-title, h1, h2, .producttitle') || null); 3939 } 3940 3941 function getImageEl() { 3942 var c = getContentElement(); 3943 return c && (c.querySelector('img') || null); 3944 } 3945 3946 function getPriceEl() { 3947 var c = getContentElement(); 3948 return c && (c.querySelector('.money, .price, .product-price') || null); 3949 } 3950 3951 function getAddToCartButton() { 3952 var c = getContentElement(); 3953 return c && (c.querySelector('form[action*="cart"] [type="submit"], button.add-to-cart, button[name="add"], #xsell__modal-add-to-cart') || null); 3954 } 3955 3956 // Expose public API 3957 window.xsellModal = { 3958 // subscribe to open event: cb(modalEl) 3959 onOpen: function(cb){ if (typeof cb === 'function') openCallbacks.push(cb); }, 3960 // subscribe to close event: cb(modalEl) 3961 onClose: function(cb){ if (typeof cb === 'function' ) closeCallbacks.push(cb); }, 3962 // get the modal element or null 3963 getModalElement: getModalElement, 3964 // get common sub-elements 3965 getContentElement: getContentElement, 3966 getTitleEl: getTitleEl, 3967 getImageEl: getImageEl, 3968 getPriceEl: getPriceEl, 3969 getAddToCartButton: getAddToCartButton, 3970 // convenience: returns an object with discovered data (strings or null) 3971 getData: function(){ 3972 var el = getModalElement(); 3973 if (!el) return null; 3974 return { 3975 title: (getTitleEl() && getTitleEl().textContent.trim()) || null, 3976 imageSrc: (getImageEl() && (getImageEl().getAttribute('src') || getImageEl().getAttribute('data-src'))) || null, 3977 priceText: (getPriceEl() && getPriceEl().textContent.trim()) || null, 3978 addToCartButton: getAddToCartButton() 3979 }; 3980 }, 3981 3982 // Debug helper: force the injected portal/modal to the front (call from console) 3983 bringToFront: function(){
3984 try { 3985 var modalEl = currentModal || findModal(); 3986 if (!modalEl) { 3987 console.warn('xsellModal: no active xsell modal to bring to front'); 3988 return; 3989 } 3990 try { modalEl.style.zIndex = '2147483647'; } catch(e){} 3991 try { modalEl.style.position = modalEl.style.position || 'relative'; } catch(e){} 3992 var desc = modalEl.querySelector('.xsell__modal-more-info-description-wrapper') || modalEl.querySelector('.xsell__modal-content__body') || modalEl; 3993 if (desc) { 3994 try { desc.style.zIndex = '2147483647'; } catch(e){} 3995 try { desc.style.position = desc.style.position || 'relative'; } catch(e){} 3996 try { desc.style.pointerEvents = 'auto'; } catch(e){} 3997 } 3998 console.log('xsellModal: bringToFront applied to xsell modal'); 3999 } catch(e){ console.warn('xsellModal: bringToFront failed', e); } 4000 }, 4001 4002 // helper to wait for next open (returns a Promise) 4003 waitForOpen: function(timeout){ 4004 timeout = typeof timeout === 'number' ? timeout : 5000; 4005 return new Promise(function(resolve, reject){ 4006 var m = getModalElement(); 4007 if (m) return resolve(m); 4008 var to = setTimeout(function(){ 4009 // remove listener 4010 var idx = openCallbacks.indexOf(onOpenCb); if (idx !== -1) openCallbacks.splice(idx,1); 4011 reject(new Error('timeout waiting for xsell modal open')); 4012 }, timeout); 4013 function onOpenCb(modalEl){ clearTimeout(to); var idx = openCallbacks.indexOf(onOpenCb); if (idx !== -1) openCallbacks.splice(idx,1); resolve(modalEl); } 4014 openCallbacks.push(onOpenCb); 4015 }); 4016 }, 4017 // Debug helpers 4018 debugShowLoader: function(url){ 4019 try { 4020 var container = (currentModal && currentModal.querySelector && currentModal.querySelector('.xsell__modal-more-info-featured-image')) || document.querySelector('.xsell__modal-more-info-featured-image'); 4021 if (!container) { console.warn('xsellModal.debugShowLoader: featured-image container not found'); return false; } 4022 if (!document.getElementById('xsell-modal-loader-styles')) { 4023 var ss = document.createElement('style'); ss.id = 'xsell-modal-loader-styles'; ss.textContent = '.xsell-featured-image-loader{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,0.6); z-index:1000; } .xsell-featured-image-loader.hidden{ display:none !important; } .xsell-featured-image-loader .spinner{ width:36px; height:36px; border-radius:50%; border:4px solid rgba(0,0,0,0.12); border-top-color:rgba(0,0,0,0.6); animation:xsellSpin 0.8s linear infinite; } @keyframes xsellSpin{ to{ transform:rotate(360deg); } }'; 4024 document.head.appendChild(ss); 4025 } 4026 var loader = container.querySelector('.xsell-featured-image-loader'); 4027 if (!loader) { loader = document.createElement('div'); loader.className = 'xsell-featured-image-loader'; loader.innerHTML = '<div class="spinner" aria-hidden="true"></div>'; try{ if (getComputedStyle(container).position === 'static') container.style.position = 'relative'; }catch(e){} container.appendChild(loader); } 4028 loader.classList.remove('hidden'); 4029 console.log('xsellModal.debugShowLoader: shown loader for', url); 4030 return true; 4031 } catch(e) { console.error('xsellModal.debugShowLoader error', e); return false; } 4032 }, 4033 getPreloadedUrls: function(){ try { return (xsellColorHelpers && xsellColorHelpers.preloadedUrls) || []; } catch(e){ return []; } }, 4034 // Debug: force re-evaluate and show modal loader (for diagnostics) 4035 debugForceLoader: function(){
4036 try { 4037 var modalEl = currentModal || findModal(); 4038 if (!modalEl) { 4039 console.warn('xsellModal: no active xsell modal to force loader'); 4040 return; 4041 } 4042 var loaderEl = modalEl.querySelector('.xsell-featured-image-loader'); 4043 if (loaderEl) { 4044 loaderEl.classList.remove('hidden'); 4045 console.log('xsellModal: loader forced visible'); 4046 } else { 4047 console.warn('xsellModal: loader element not found'); 4048 } 4049 } catch(e) { 4050 console.error('xsellModal.debugForceLoader error', e); 4051 } 4052 } 4053 }; 4054 4055 // Optional: detect clicks on quickview buttons and mark last requested handle 4056 window.xsellModal._lastQuickviewHandle = null; 4057 document.addEventListener('click', function(e){ 4058 var btn = e.target.closest('[data-xs-quickview], .xsell-quickview__overlay-btn'); 4059 if (!btn) return; 4060 var handle = btn.getAttribute('data-xs-quickview') || btn.getAttribute('data-xs-link') || btn.getAttribute('data-qs-handle'); 4061 if (handle) { 4062 // normalize to product handle if a url path is passed 4063 try{ 4064 if (handle.indexOf('/products/') === 0) handle = handle.split('/products/')[1].split(/[?#]/)[0]; 4065 }catch(e){} 4066 window.xsellModal._lastQuickviewHandle = handle; 4067 try { console.log('xsellModal: quickview clicked', handle, btn); } catch(e) {} 4068 } 4069 }, true); 4070 4071})(); 4072</script>
4072 4073 4074
4075<script id="back-in-stock-helper"> 4076 var _BISConfig = _BISConfig || {}; 4077 4078 4079 4080 4081</script>
4081 4082 4083
4084<script type="text/javascript"> 4085 document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); 4086 4087 window.theme = { 4088 configs: { 4089 cookieBannerEnabled:false}, 4090 strings: { 4091 addToCart: "Add to Cart", 4092 soldOut: "Sold Out", 4093 unavailable: "Unavailable" 4094 }, 4095 moneyFormat: "${{amount}}", 4096 moneyWithCurrencyFormat: "${{amount}} USD" 4097 }; 4098 4099 // 1R global helper javascript 4100 var ORW = (function (ORW) { return ORW; } (ORW || {})); 4101 window.ORW = ORW; 4102 ORW.storeName = 'Function of Beauty'; 4103 ORW.storeUrl = 'https://functionofbeauty.com'; 4104 ORW.responsive = ''; 4105 ORW.responsiveSizes = { 4106 medium : 768, 4107 large : 1024, 4108 xlarge : 1200, 4109 xxlarge : 1440 4110 }; 4111 ORW.template = { 4112 directory: null, 4113 name: "page", 4114 suffix: "location", 4115 }; 4116 ORW.breakpoint = '(min-width: 1025px)'; 4117 ORW.hideTrailingZeros = true; 4118 ORW.placeholder = "//functionofbeauty.com/cdn/shop/files/placeholder_500x.jpg?v=110267"; 4119 ORW.assetsUrl = "//functionofbeauty.com/cdn/shop/t/807/assets/theme.js?v=154669814888287452531786549189"; 4120 ORW.appUrl = ORW.assetsUrl.split('theme.js')[0]; 4121 ORW.appUrlHash = ORW.assetsUrl.split('theme.js')[1]; 4122 ORW.performance = { 4123 webVitalsEnable: false, 4124 webVitalsClientId: '', 4125 webVitalsUrl: 'https://rum-beacon.1rw.us/', 4126 webVitalsReportType: 'logging', 4127 }; 4128 ORW.routes = { 4129 cartAddURL: '/cart/add', 4130 cartChangeURL: '/cart/change', 4131 cartUpdateURL: '/cart/update', 4132 cartURL: '/cart', 4133 predictiveSearchURL: '/search/suggest', 4134 }; 4135 4136 4137 ORW.formatMoney = function(money){ 4138 // Reads in money in $104.00 format, not 104 4139 if(ORW.hideTrailingZeros){ 4140 return money.replace(/((\,00)|(\.00))$/g, ''); 4141 }else{ 4142 return money; 4143 } 4144 }; 4145 4146 ORW.utilities = { 4147 'isMobile' : function() { 4148 var check = false; 4149 (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))check = true})(navigator.userAgent||navigator.vendor||window.opera); 4150 return check; 4151 }, 4152 'isTouchEnabled' : function() { 4153 return 'ontouchstart' in document.documentElement; 4154 }, 4155 'getUrlParam' : function(url, sParam, value) { 4156 var sPageURL = url != undefined ? url : decodeURIComponent(window.location.search.substring(1)); 4157 if (sPageURL.indexOf("?") >= 0) { sPageURL = sPageURL.replace("?", "&"); } 4158 var sURLVariables = sPageURL.split('&'), 4159 sParameterName, 4160 i; 4161 4162 for (i = 0; i < sURLVariables.length; i++) { 4163 sParameterName = sURLVariables[i].split('='); 4164 if (sParameterName[0] === sParam) { 4165 if (value && sParameterName[1] !== undefined) { 4166 var st1 = sParameterName[0] + '=' + sParameterName[1]; 4167 var st2 = sParameterName[0] + '=' + value; 4168 return url.replace(st1, st2); 4169 } else { 4170 return sParameterName[1] === undefined ? true : sParameterName[1]; 4171 } 4172 } 4173 } 4174 }, 4175 'updateUrlParam' : function(url, sParam, value) { 4176 url = url ? url : window.location.href; 4177 var newurl = url; 4178 var currentHandle = ORW.utilities.getUrlParam(url,sParam); 4179 if (currentHandle) { 4180 // Replace 4181 newurl = ORW.utilities.getUrlParam(url,sParam,value); 4182 } else {
4183 // Create new depends on current params and url structure 4184 if (url.indexOf('?') > 0) { 4185 newurl += '&' + sParam + '=' + value; 4186 }else{ 4187 newurl += '?' + sParam + '=' + value; 4188 } 4189 } 4190 return newurl; 4191 }, 4192 'setCookie' : function(name,value,days,domain,path = null) { 4193 if (days) { 4194 var date = new Date(); 4195 date.setTime(date.getTime()+(days*24*60*60*1000)); 4196 var expires = "; expires="+date.toGMTString(); 4197 } else { 4198 var expires = ""; 4199 } 4200 4201 if (domain && path) { 4202 document.cookie = name+"="+value+expires+"; path="+path+"; domain=" + domain; 4203 } else if(domain) { 4204 document.cookie = name+"="+value+expires+"; domain=" + domain; 4205 } else { 4206 document.cookie = name+"="+value+expires+"; path=/"; 4207 } 4208 }, 4209 'getCookie' : function(name) { 4210 var nameEQ = name + "="; 4211 var ca = document.cookie.split(';'); 4212 for(var i=0;i < ca.length;i++) { 4213 var c = ca[i]; 4214 while (c.charAt(0)==' ') c = c.substring(1,c.length); 4215 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 4216 } 4217 return null; 4218 }, 4219 'deleteCookie' : function(name) { 4220 this.setCookie(name,"",-1); 4221 }, 4222 'searchCookie' : function(term) { 4223 var ca = document.cookie.split(';'); 4224 for(var i=0;i < ca.length;i++) { 4225 var c = ca[i]; 4226 while (c.charAt(0)==' ') c = c.substring(1,c.length); 4227 var s = c.split('='); 4228 if (s.length > 0 && s[0].indexOf(term) > -1) return s[0]; 4229 } 4230 return null; 4231 } 4232 } 4233 4234 // Site-wide GA4 / GTM variables 4235 ORW.enableGTM = true; 4236 ORW.marketingSettings = { 4237 promoParentClass: 'ga-promo-element', 4238 dataAttributePromo: '[data-ga-promo-json]', 4239 shopCurrency: 'USD', 4240 cartCurrency: 'USD' 4241 } 4242 4243 // GWP 4244 ORW.GWP = { 4245 enable: 'false', 4246 free_product: 'comb' 4247 } 4248 4249 // Debugging flag 4250 ORW.debugging = ORW.utilities.getCookie('1r_debugging'); 4251 4252 enableLiveChat = false; 4253 ORW.enableLiveChat = !!enableLiveChat; 4254 4255 ORW.localization = ORW.utilities.getCookie('localization'); 4256 4257 ORW.enable_review = true; 4258 ORW.enable_regimen_reviews = true; 4259 4260 ORW.euMarketRestrictions = {"excludedCountries":["AT","BE","BG","CY","CZ","DE","DK","EE","ES","FI","FR","GR","HR","HU","IE","IT","LT","LU","LV","MT","NL","PL","PT","RO","SE","SI","SK"],"products":[{"productHandle":"styling-primer","fragrancesToExclude":["peach"],"colorsToExclude":[]},{"productHandle":"hair-mask","fragrancesToExclude":["vanilla suede"],"colorsToExclude":[]},{"productHandle":"purple-hair-mask","fragrancesToExclude":["vanilla suede"],"colorsToExclude":[]}]}; 4261 ORW.customerCountryCode = "US"; 4262 4263</script>
4263 4264 4265 4266 4267
4268<script src="//functionofbeauty.com/cdn/shop/t/807/assets/vendor.js?v=47304656581546717091786549189"></script>
4268<script src="//functionofbeauty.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js"></script>
vendor: 1 bytes, line 4268
4268
4269<script defer src="//functionofbeauty.com/cdn/shop/t/807/assets/theme.js?v=154669814888287452531786549189"></script>
4269 4270 4271 4272 4273
4274<script> 4275 function checkAllHaveSOS(array) { 4276 return !array.some(item => !item.handle.includes('sos')); 4277 } 4278 4279 function checkForSOS(array) { 4280 return array.some(item => item.handle.includes('sos')); 4281 } 4282 4283 let cartUpdateExecuted = false; 4284 4285 function cartInsertAttributes() { 4286 if (cartUpdateExecuted) return; 4287 4288 cartUpdateExecuted = true; 4289 4290 fetch(`${window.location.origin}/cart.js`) 4291 .then(res => res.clone().json().then(data => { 4292 4293 if (data.items.length < 1) { 4294 cartUpdateExecuted = false; 4295 return; 4296 } 4297 4298 if (data.items.length >= 1) { 4299 const containsSosProducts = checkForSOS(data?.items); 4300 const allproductsIsSos = containsSosProducts && checkAllHaveSOS(data?.items) ? 'sos' : 'sos mixed'; 4301 const formData = new FormData(); 4302 const contains_sos_products = containsSosProducts ? allproductsIsSos : "no sos"; 4303 formData.append("attributes[Contains SOS]", contains_sos_products); 4304 fetch(`${window.location.origin}/cart/update.js`, { 4305 method: 'POST', 4306 body: formData 4307 }).finally(() => { 4308 cartUpdateExecuted = false; 4309 }); 4310 } 4311 })); 4312 } 4313 4314 function cartCountItems() { 4315 const cartCount = document.querySelector('#CartCount') 4316 if ( cartCount ) { 4317 fetch(`${window.location.origin}/cart.js`) 4318 .then(res => res.clone().json().then(data => { 4319 cartCount.innerHTML = `${data.item_count}` 4320 })); 4321 } 4322 } 4323 4324 (function (ns, fetch) { 4325 ns.fetch = function() { 4326 const response = fetch.apply(this, arguments); 4327 response.then(res => { 4328 if (res.url.includes('cart/add') || res.url.includes('cart/update') || res.url.includes('cart/clear') || res.url.includes('cart/change') || res.url.includes('cart/checkout')) { 4329 cartInsertAttributes(); 4330 cartCountItems(); 4331 } 4332 }); 4333 return response; 4334 } 4335 }(window, window.fetch)); 4336</script>
4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371<style> .osano-cm-widget {display: none;} #vqb-main {scroll-margin-top: 70px;} @media (max-width: 767px) {.whai-slide.whai-slide-question, .whai-slide.whai-slide-group {margin-top: 56px; }} </style> 4372<div id="shopify-block-AVjZKZ1hoN3ZOc25Cb__8133853093390032344" class="shopify-block shopify-app-block"> 4373 <askwhai-quiz></askwhai-quiz> 4374 4375 4376</div><div id="shopify-block-AdjkraUk3aFVvenQ3d__8605505498557855500" class="shopify-block shopify-app-block bogos-shopify-block"> 4377 4378 4379<div id="secomapp_freegifts_version" data-version="3.0"></div> 4380 4381 <!-- BEGIN app snippet: freegifts-snippet --><link href="//cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/glider.min.css" rel="stylesheet" type="text/css" media="all" /> 4382<link href="//cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/freegifts-main.min.css" rel="stylesheet" type="text/css" media="all" /> 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395<style id="sca_fg_custom_style"> 4396 4397 .freegifts-main-container .fg-section-title, .freegifts-main-container .bogos-slider-info-title { color: #121212; } 4398 .freegifts-main-container .product-title, .freegifts-main-container .bogos-gift-product-title { color: #000000; } 4399 .freegifts-main-container .original-price, .freegifts-main-container .bogos-gift-item-compare-price { color: #121212; } 4400 .freegifts-main-container .gift-price, .freegifts-main-container .bogos-gift-item-price { color: #ea5455; } 4401 .freegifts-main-container .btn-add-to-cart { color: #FFFFFF; background-color: #8ae5d3; } 4402 .freegifts-main-container .bogos-slider-offer-badge { background: #FFEF9D } 4403 .freegifts-main-container .bogos-slider-offer-badge.success { background: #CDFEE1 } 4404 .freegifts-main-container .bogos-slider-offer-title { color: #000000 } 4405 .freegifts-main-container .btn-add-to-cart svg path { fill: #FFFFFF; } 4406 .bogos-gift-select-variant-title { color: #005BD3; } 4407 .bogos-gift-select-variant-title-contain::after { border-color: #005BD3; } 4408 4409 .fg-gift-thumbnail-offer-title { color: #000000; } 4410 .fg-gift-thumbnail-container { border-color: #8A8A8A; } 4411 .fg-gift-thumbnail-offer-time { background-color: #000000; } 4412 #sca-gift-thumbnail .sca-gift-image { width: 100px; max-height: 100px; } 4413 4414 #sca-gift-icon .sca-gift-icon-img { width: 50px; max-height: 50px; } 4415 .sca-gift-icon-collection-page .sca-gift-icon-collection-img { width: 50px; max-height: 50px; } 4416 4417 #sca-promotion-glider { color: #ffffff; background-color: #F72119; } 4418 4419 4420 #sca-fg-today-offer-iframe .sca-fg-header { background-color: #FFFFFF; } 4421 #sca-fg-today-offer-iframe .sca-fg-body { background-color: #FFFFFF; } 4422 #sca-fg-today-offer-iframe .sca-fg-today-offer-title { color: #5E5873 !important; } 4423 #sca-fg-today-offer-iframe .sca-fg-today-offer-subtitle { color: #b9b9c3 !important; } 4424 #sca-fg-today-offer-iframe .sca-offer-title { color: #82868b; } 4425 #sca-fg-today-offer-widget { height: 70px !important; width: 70px !important; } 4426 .sca-fg-icon-success-anim { box-shadow: inset 0 0 0 #69CE82; } 4427 @-webkit-keyframes animated-checkmark-fill { to { box-shadow: inset 0 0 0 30px #69CE82; } } 4428 @keyframes animated-checkmark-fill { to { box-shadow: inset 0 0 0 30px #69CE82; } } 4429 .sca-fg-icon-success-circle { stroke: #69CE82; } 4430 #sca-fg-today-offer-iframe .sca-fg-offer .sca-offer-header-container { background-color: #ebe9f1 } 4431 #sca-fg-today-offer-iframe .sca-fg-offer.sca-offer-archived .sca-offer-header-container { background-color: #69CE8225 } 4432 #sca-fg-today-offer-iframe .sca-gift-product-title { color: #303030} 4433 #sca-fg-today-offer-iframe .sca-gift-product-discount-price { color: #24B263 } 4434 #sca-fg-today-offer-iframe .sca-gift-product-original-price { color: #616161 } 4435 #sca-fg-today-offer-iframe .sca-offer-info .sca-offer-subtitle { color: #616161 } 4436 4437 4438 .bogos-bundles-widget { background-color: #F3F3F3; } 4439 .bogos-bundles-widget-body .bogos-bundle-item { background-color: #FFFFFF; } 4440 .bogos-bundles-widget .bogos-bundles-widget-title { color: #303030; } 4441 .bogos-bundles-widget .bogos-bundles-widget-description { color: #616161; } 4442 .bogos-bundle-item .bogos-bundle-item-title { color: #303030; } 4443 .bogos-bundle-item .bogos-bundle-item-discount-price, .bogos-bundles-widget .bogos-bundles-total-discount-price { color: #005BD3; } 4444 .bogos-bundle-item .bogos-bundle-item-original-price, .bogos-bundles-widget .bogos-bundles-total-original-price { color: #005BD3; } 4445 .bogos-bundles-widget-footer .bogos-bundles-button-add { color: #FFFFFF; background-color: #303030; } 4446 .bogos-bundles-widget .bogos-bundle-shipping-discount-container { background-color: #DEE6FF; } 4447 .bogos-bundles-widget .bogos-bundle-shipping-discount-title { color: #2332D5; } 4448 4449 .bogos-bundles-quantity-break-widget { background-color: #F3F3F3; } 4450 .bogos-bundles-quantity-break-widget-title { color: #303030; } 4451 .bogos-bundles-quantity-break-widget-description { color: #303030; } 4452 .bogos-bundle-quantity-break-item-original-price, .bogos-bundles-quantity-break-origin-price { color: #B5B5B5; } 4453 .bogos-bundles-quantity-break-button-add { background: #303030; color: #FFFFFF; } 4454 .bogos-bundle-quantity-break_item-container { background: #FFFFFF; } 4455 .bogos-bundle-quantity-break-label { background: #303030; color: #FFFFFF; } 4456 .bogos-bundle-quantity-break-tag { background: #F1F1F1; color: #303030; } 4457 .bogos-bundle-quantity-break-sub-title { color: #616161; } 4458 .bogos-bundles-quantity-break-discount-price { color: #303030; } 4459 .bogos-bundle-quantity-break-title { color: #303030; } 4460 .bogos-bundle-quantity-break-item-discount-price { color: #303030; } 4461 4462 .bogos-volume-discount-widget.default-layout { background-color: #F3F3F3; } 4463 .bogos-volume-discount-widget.default-layout .bogos-volume-discount-widget-title { color: #303030; } 4464 .bogos-volume-discount-widget.default-layout .bogos-volume-discount-widget-description { color: #303030; } 4465 .bogos-volume-discount-widget.default-layout .bogos-volume-discount-item-original-price , .bogos-volume-discount-origin-price { color: #303030; } 4466 .bogos-volume-discount-widget.default-layout .bogos-volume-discount-button-add { background: #303030; color: #FFFFFF; } 4467 .bogos-volume-discount-widget.default-layout .bogos-volume-discount_item-container { background: #FFFFFF; } 4468 .bogos-volume-discount-widget.default-layout .bogos-volume-discount-label { background: #303030; color: #FFFFFF; } 4469 .bogos-volume-discount-widget.default-layout .bogos-volume-discount-tag { background: #F1F1F1; color: #303030; } 4470 .bogos-volume-discount-widget.default-layout .bogos-volume-discount-sub-title { color: #616161; } 4471 .bogos-volume-discount-widget.default-layout .bogos-volume-discount-item-discount-price { color: #303030; } 4472 .bogos-volume-discount-widget.default-layout .bogos-volume-discount-tier-price-primary span { color: #303030; } 4473 .bogos-volume-discount-widget.default-layout .bogos-volume-discount-discount-price { color: #303030; } 4474 .bogos-volume-discount-widget.default-layout .bogos-volume-discount-title { color: #303030; } 4475 .bogos-volume-discount-widget.default-layout .bogos-volume-discount-origin-price, .bogos-volume-discount-widget.default-layout .bogos-volume-discount-item-original-price { color: #B5B5B5; } 4476 .bogos-volume-discount-widget.table-layout .bogos-volume-discount-widget-header { background-color: #F3F3F3; } 4477 .bogos-volume-discount-widget.table-layout .bogos-volume-discount-widget-title { color: #303030; } 4478 .bogos-volume-discount-widget.table-layout .bogos-volume-discount-widget-description { color: #303030; } 4479 .bogos-volume-discount-table-container.line-style .bogos-volume-discount-item { background-color: #FFFFFF; } 4480 .bogos-volume-discount-widget.table-layout, .bogos-volume-discount-widget.table-layout .bogos-volume-discount-item, .bogos-volume-discount-widget-body .bogos-volume-discount-tier-info, .bogos-volume-discount-widget.table-layout .bogos-volume-discount-widget-header { border-color: #E0E0E0; } 4481 .bogos-volume-discount-widget.table-layout .bogos-volume-discount-title { color: #303030; } 4482 .bogos-volume-discount-widget.table-layout .bogos-volume-discount-description { color: #616161; } 4483 .bogos-volume-discount-widget.table-layout .bogos-volume-discount-tag { background-color: #F1F1F1; color: #303030; } 4484 .bogos-volume-discount-widget.table-layout .bogos-volume-discount-tier-discount-text { color: #303030; } 4485 .bogos-volume-discount-widget.table-layout .bogos-volume-discount-tier-label { color: #FFFFFF; background-color: #303030; } 4486 .bogos-volume-discount-widget.table-layout .bogos-volume-discount-tier-discount-price { color: #303030; } 4487 .bogos-volume-discount-widget.table-layout .bogos-volume-discount-tier-price-primary span { color: #303030; } 4488 .bogos-volume-discount-widget.table-layout .bogos-volume-discount-tier-origin-price { color: #B5B5B5; } 4489 .bogos-volume-discount-table-container.is-hidden-line .bogos-volume-discount-tier-info { border-color: transparent; } 4490 .bogos-volume-discount-widget.table-layout .bogos-volume-discount-table-container.zebra-style .bogos-volume-discount-item:nth-child(odd) { background-color: #FFFFFF; } 4491 .bogos-volume-discount-widget.table-layout .bogos-volume-discount-table-container.zebra-style .bogos-volume-discount-item:nth-child(even) { background-color: #F5F5F5; } 4492 .bogos-volume-discount-widget .bogos-vl-tb-shipping-label { color: #2332D5; } 4493 .bogos-volume-discount-widget .bogos-vl-shipping-label { color: #2332D5; } 4494 .bogos-volume-discount-widget .bogos-vl-shipping-container { background-color: DEE6FF; } 4495 .bogos-volume-discount-widget.default-layout .bogos-vl-subscription-option-title { color: #303030; } 4496 .bogos-volume-discount-widget.default-layout .bogos-vl-subscription-section-title { color: #303030; } 4497 .bogos-volume-discount-widget.default-layout .bogos-vl-subscription-input-c
4497heckbox:checked { background-color: #8051FF; border-color: #8051FF;} 4498 .bogos-volume-discount-widget.default-layout input[type=radio]:checked { background-color: #8051FF; border-color: #8051FF;} 4499 4500 .bogos-mix-match-widget { background-color: #F3F3F3; ; } 4501 .bogos-mix-match-widget .bogos-mix-item { background-color: #FFFFFF; } 4502 .bogos-mix-match-widget .bogos-mix-match-widget-title { color: #303030; } 4503 .bogos-mix-match-widget .bogos-mix-match-widget-description { color: #616161; } 4504 .bogos-mix-match-widget .bogos-mix-item-title { color: #303030; } 4505 .bogos-mix-match-widget .bogos-mix-item-discount-price { color: #303030; } 4506 .bogos-mix-match-widget .bogos-mix-item-original-price { color: #B5B5B5; } 4507 .bogos-mix-match-widget .bogos-mix-match-button-add { color: #FFFFFF; background-color: #303030; } 4508 .bogos-mix-match-widget .bogos-mix-match-badge-item { background-color: #FFF8DB; } 4509 .bogos-mix-match-widget .bogos-mix-match-badge-item.success { background-color: #CDFEE1; } 4510 .bogos-mix-match-widget .bogos-mix-match-badge-item .bogos-mix-match-badge-title { color: #4F4700; } 4511 .bogos-mix-match-widget .bogos-mix-match-badge-item.success .bogos-mix-match-badge-title { color: #29845A; } 4512 .bogos-mix-match-widget .bogos-mix-match-shipping-discount-container { background-color: #DEE6FF; } 4513 .bogos-mix-match-widget .bogos-mix-match-shipping-discount-title { color: #2332D5; } 4514 4515 .bogos-bundle-page-container .bogos-bp-steps-bar, .bogos-bundle-page-container .bogos-bp-step-bar-single { background-color: #F3F3F3; } 4516 .bogos-bundle-page-container .bogos-bp-step-title { color: #303030; } 4517 .bogos-bp-steps-container .bogos-bp-step-item.active { border-bottom: solid 3px #303030; } 4518 .bogos-bundle-page-container .bogos-bp-header-title { color: #303030; } 4519 .bogos-bundle-page-container .bogos-bp-header-subtitle { color: #303030; } 4520 .bogos-bundle-page-container .bogos-bp-step-header-title { color: #303030; } 4521 .bogos-bundle-page-container .bogos-bp-step-header-subtitle { color: #616161; } 4522 .bogos-bundle-page-container .bogos-bp-product-title, .bogos-step-item .bogos-step-item-title, .bogos-product-detail-modal .bogos-product-title { color: #303030; } 4523 .bogos-step-items-container .bogos-step-item-variant-title { color: #616161; } 4524 .bogos-bundle-page-container .bogos-bp-product-price, .bogos-step-item .bogos-step-item-discount-price, .bogos-bp-widget-footer .bogos-bp-total-discount-price { color: #303030; } 4525 .bogos-step-item .bogos-step-item-original-price, .bogos-bp-widget-footer .bogos-bp-total-original-price { color: #808080; } 4526 .bogos-bundle-page-container .bogos-bp-btn-add-product, .bogos-product-detail-modal .bogos-product-add-btn { background-color: #303030; color: #FFFFFF } 4527 .bogos-bp-widget-container .bogos-bp-widget { background-color: #F3F3F3; ; } 4528 .bogos-bp-widget .bogos-bp-widget-title { color: #303030; } 4529 .bogos-bp-widget .bogos-bp-widget-description { color: #303030; } 4530 .bogos-step-items-product-require.success .bogos-step-items-product-require-title { color: #2332D5; } 4531 .bogos-bp-widget .bogos-bp-button-add { background-color: #303030; color: #FFFFFF; } 4532 .bogos-bp-widget-badges-container .bogos-bp-widget-badge-item { background-color: #FFF8DB; } 4533 .bogos-bp-widget-badges-container .bogos-bp-widget-badge-item.success { background-color: #CDFEE1; } 4534 .bogos-bp-widget-badges-container .bogos-bp-widget-badge-title { color: #4F4700; } 4535 .bogos-bp-widget-badge-item.success .bogos-bp-widget-badge-title { color: #29845A; } 4536 .bogos-bp-widget .bogos-bundle-page-shipping-discount-container { background-color: #DEE6FF; } 4537 .bogos-bp-widget .bogos-bundle-page-shipping-discount-title { color: #2332D5; } 4538 4539 .bogos-fbt-upsell-container { background: #F6F6F6; border-radius: 15px; } 4540 .bogos-fbt-header-title { color: #303030; } 4541 .bogos-fbt-header-description { color: #303030; } 4542 .bogos-fbt-footer-discounted-price { color: #303030; } 4543 .bogos-fbt-footer-original-price { color: #616161; } 4544 .bogos-fbt-footer-button-add { background: #303030; color: #FFFFFF; } 4545 .bogos-fbt-product-title {color: #303030; } 4546 .bogos-fbt-upsell-product-discounted-price {color: #303030; } 4547 .bogos-fbt-upsell-product-original-price {color: #808080; } 4548 .is-cheapest-free-label {color: #FFFFFF ;background-color: #FFAA00;} 4549 .is-cheapest-free {background-color: rgba(255, 170, 0, 0.2);} 4550 .bogos-fbt-this-item {background-color: #D1D1D1;color: #303030;} 4551 .bogos-fbt-upsell-body-item-checkbox {border-color: #303030;} 4552 .bogos-fbt-upsell-body-item-checkbox:checked {border-color: #303030; background-color: #303030;} 4553 .bogos-fbt-shipping-discount-container { background-color: #DEE6FF; } 4554 .bogos-fbt-shipping-discount-title { color: #2332D5; } 4555 .bogos-fbt-upsell-body-stack-meta .bogos-fbt-upsell-img-wrapper, .bogos-fbt-upsell-body-classic-item-img-wrapper .bogos-fbt-upsell-body-classic-item-img {width: 60px; height: 60px;} 4556 .bogos-fbt-upsell-container img.bogos-fbt-upsell-img {border-radius: 7.5px;} 4557 4558 .bogos-cheapest-discount {background-color: #ffffff; border-color: #888888;} 4559 .bogos-cheapest-discount .bogos-cheapest-title { color: #303030; } 4560 .bogos-cheapest-list-product-modal .bogos-cheapest-title { color: #303030; } 4561 .bogos-cheapest-discount .bogos-cheapest-description { color: #616161; } 4562 .bogos-cheapest-product-card .bogos-cheapest-product-title { color: #303030; } 4563 .bogos-cheapest-product-card .bogos-cheapest-product-price { color: #303030; } 4564 .bogos-cheapest-product-card .bogos-cheapest-select-variant-title { color: #303030; } 4565 .bogos-cheapest-product-card .bogos-cheapest-product-add-btn { color: #ffffff; background-color: #303030} 4566 .bogos-cheapest-label-item.active .bogos-cheapest-label { color: #303030; } 4567 .bogos-cheapest-label-item.active #bogos-active-icon path { fill: #3
456703030; } 4568 .bogos-cheapest-label-item.excluded .bogos-cheapest-label { color: #CCCCCC; } 4569 .bogos-cheapest-label-item.excluded #bogos-excluded-icon path { fill: #CCCCCC; } 4570 .bogos-cheapest-label-item:not(.active):not(.excluded) #bogos-uncheck-icon path { fill: #4A4A4A; } 4571 .bogos-cheapest-label-item:not(.active):not(.excluded) .bogos-cheapest-label { color: #303030; } 4572 .bogos-cheapest-discount .bogos-cheapest-label-container:not(:has(.bogos-cheapest-discount-bullet-items)) {background-color: #F6F6F6;} 4573 .bogos-cheapest-discount .bogos-cheapest-discount-bullet-item {color: #808080;} 4574 .bogos-cheapest-discount .bogos-cheapest-products-describe {color: #616161;} 4575 .bogos-cheapest-discount .bogos-cheapest-products-more-btn {color: #303030;} 4576 4577 .bogos-select-option-custom-item:not(.bogos-option-default):not(.bogos-active):not(has(.sca-d-none)) {background-color: #F0F0F0; color: #303030;} 4578 .bogos-select-option-custom-item:not(.bogos-option-default).bogos-active:not(has(.sca-d-none)) {background-color: #F0F0F0; color: #303030;} 4579 .bogos-select-option-custom-item:not(.bogos-option-default).bogos-active {border: 0.5px solid #303030;} 4580 .bogos-select-option-custom-item.bogos-option-default:not(.bogos-active) .bogos-option-value-title {background-color: #F0F0F0; color: #303030;} 4581 .bogos-select-option-custom-item.bogos-option-default.bogos-active .bogos-option-value-title {background-color: #F0F0F0; color: #303030;} 4582 .bogos-select-option-custom-item.bogos-option-default.bogos-active {border: 0.5px solid #303030;} 4583 .bogos-mix-item-select-variant-option:hover, .bogos-gift-select-variant-option:hover, .bogos-bundle-select-variant-option:hover, .bogos-vl-select-variant-option:hover, .bogos-fbt-variant-item:hover, .bogos-pa-variant-item:hover, .bogos-pa-variant-item.active {background-color: #F0F0F0;} 4584 4585 4586 4587</style>
4587<script id="sca_fg_custom_script" data-cmp-vendor="bogos" data-cmp-ab="0"> 4588 4589 4590</script>
4590 4591
4592<script src="https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/glider.min.js" defer></script>
vendor: 1 bytes, line 4592
4592
4593<script src="https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/lz-string.min.js" defer></script>
4593 4594 4595<div id="freegifts-main-popup-container" class="freegifts-main-container sca-modal-fg" 4596 data-animation="slideInOutTop"></div> 4597<div id="sca-fg-notifications" class="sca-fg-notifications"></div> 4598 4599<div id="bogos-to-widget-icon-wrap" style="display:none"></div> 4600<div id="bogos-to-widget-iframe" style="visibility:hidden;opacity:0;position:fixed"></div> 4601 4602<div id="sca-fg-today-offer-widget"></div> 4603<div id="sca-fg-today-offer-iframe"></div> 4604 4605<div id="bogos-mix-match-main-collection-popup-container" class="sca-modal-fg"></div> 4606<div id="bogos-main-popup-product-detail-container" data-animation="slideInOutTop"></div> 4607<div id="bogos-main-popup-more-product-container" data-animation="slideInOutTop"></div> 4608 4609<div id="bogos-cart-discount-congrats-msg-wrap"></div> 4610
4611<script type="text/javascript" data-cmp-vendor="bogos" data-cmp-ab="0"> 4612 if (typeof Shopify === "undefined") window.Shopify = {}; 4613 Shopify.cartItems = []; 4614 Shopify.current_product = {}; 4615 Shopify.current_collection = {}; 4616 Shopify.products = {}; 4617 4618 // current product or collection 4619 Shopify.current_product = {...null}; 4620 4621 4622 Shopify.current_collection = {...null}; 4623 4624 window.SECOMAPP = window.SECOMAPP || {}; 4625 SECOMAPP.fg_codes = []; 4626 SECOMAPP.activateOnlyOnePromoCode = false; 4627 4628 SECOMAPP.localization = [];SECOMAPP.localization.push({ 4629 ...{"shop_locale":{"locale":"en","enabled":true,"primary":true,"published":true}}, 4630 root_url: "/" 4631 }); 4632 4633 SECOMAPP.fgData = {...{"appearance":{"bundle":{"color":{"theme_color":"neutral","item_name_color":"#303030","title_text_color":"#303030","button_text_color":"#FFFFFF","bundle_price_color":"#005BD3","original_price_color":"#005BD3","description_text_color":"#616161","button_background_color":"#303030","widget_background_color":"#F3F3F3","item_card_background_color":"#FFFFFF"},"content":{"button_text":"Add bundle to cart","show_description":true,"total_price_text":"Total bundle price","select_variant_text":"Select variant","show_discount_each_item":true,"show_discount_on_button":true}},"gift_icon":{"product_page":{"gift_icon":{"size":"50","status":true},"gift_thumbnail":{"size":"100","title":"Free Gift","status":true}},"gift_icon_path":"images\/fg-icons\/fg-icon-red.png","collection_page":{"size":"50","status":true},"shopify_gift_icon_path":"fg-icon-red.png"},"mix_match":{"color":{"theme_color":"neutral","item_name_color":"#303030","title_text_color":"#303030","button_text_color":"#FFFFFF","bundle_price_color":"#303030","original_price_color":"#B5B5B5","description_text_color":"#616161","button_background_color":"#303030","widget_background_color":"#F3F3F3","default_label_text_color":"#4F4700","success_label_text_color":"#29845A","item_card_background_color":"#FFFFFF","default_label_background_color":"#FFF8DB","success_label_background_color":"#CDFEE1"},"others":{"hidden_brand_mark":false},"content":{"tier_style":"label","button_text":"Add bundle to cart","out_stock_text":"Out of stock!","mix_item_header":"Mix item {{itemIndex}}","show_description":true,"total_price_text":"Total bundle price","select_product_text":"Choose from {{number}} product(s)","select_variant_title":"Variant","select_collection_text":"Choose from {{number}} collection(s)","show_discount_each_item":true,"show_discount_on_button":true}},"fbt_upsell":{"color":{"item_name":"#303030","item_price":"#303030","theme_color":"neutral","widget_title":"#303030","widget_subtitle":"#303030","atc_button_color":"#303030","item_price_after":"#303030","item_price_before":"#808080","total_price_after":"#303030","widget_background":"#F6F6F6","total_price_before":"#616161","atc_button_text_color":"#FFFFFF"},"content":{"button_text":"Add selected items","total_price_text":"Total price"},"general":{"widget_layout":"classic","maximum_display":3,"show_discount_amount":true,"show_discount_each_item":true}},"bundle_page":{"color":{"theme_color":"neutral","step_text_color":"#303030","atc_button_color":"#303030","step_title_color":"#303030","cart_button_color":"#303030","page_heading_color":"#303030","product_title_color":"#303030","required_text_color":"#2332D5","variant_title_color":"#616161","original_price_color":"#808080","side_bar_title_color":"#303030","step_highlight_color":"#303030","atc_button_text_color":"#FFFFFF","cart_button_text_color":"#FFFFFF","discounted_price_color":"#303030","page_sub_heading_color":"#303030","step_description_color":"#616161","default_label_text_color":"#4F4700","success_label_text_color":"#29845A","side_bar_background_color":"#F3F3F3","side_bar_description_color":"#303030","default_step_background_color":"#F3F3F3","default_label_background_color":"#FFF8DB","success_label_background_color":"#CDFEE1"},"others":{"hidden_brand_mark":false},"content":{"step_text":"Step {{index}}","tier_style":"progress","load_more_text":"Load more","out_stock_text":"Out of stock","read_more_text":"See more","step_icon_path":"images\/step-icons\/step-icon-1.png","atc_button_text":"Add to bundle","blank_step_text":"Add product to this step","cart_button_text":"Add bundle to cart","show_description":true,"total_price_text":"Total bundle price","summary_title_text":"Your bundle","choose_variant_text":"Choose variant","required_product_text":"{{number}} item(s) required","shopify_step_icon_path":"step-icon-1.png","summary_description_text":"Choose items from this page to make your own bundle"}},"gift_slider":{"color":{"add_to_cart_color":"#FFFFFF","offer_title_color":"#000000","product_title_color":"#000000","original_price_color":"#121212","add_to_cart_btn_color":"#8ae5d3","discounted_price_color":"#ea5455","gift_slider_title_color":"#121212","notify_add_gift_active_state_color":"#CDFEE1","notify_add_gift_normal_state_color":"#FFEF9D"},"others":{"gift_img_size":"\u0026width=480\u0026height=480","hidden_brand_mark":false,"disable_use_old_version":false},"general":{"running_text":null,"show_gift_type":"all_in_one","select_gift_btn":"Select variants","show_pagination":true,"use_old_version":false,"gift_popup_title":"Customize Your Free Body Wash","show_product_title":true,"show_variant_title":true,"add_to_cart_btn_title":"Add to cart","number_product_slider":2,"show_gift_for_customer":"by_variants","enable_add_multiple_gifts":true}
4633,"pages_display":{"pages":["cart"],"custom":[]},"notify_gift_can_add":{"enable":true,"number_gifts_added":"You have added {{number}} gift product(s)","number_gifts_can_be_added":"You can add {{number}} gift product(s)"},"notify_offer_available":{"text":"ð You have qualified for {{qualifiedOffers}} offer(s)!","enable":true},"disable_slider_checkbox":{"text":"Don't show this offer again","time":60,"enable":true}},"today_offer":{"widget_info":{"show_widget":false,"widget_title":"TODAY OFFER","widget_position":"bottom_right","widget_subtitle":"Claim these exclusive offers today","icon_widget_title":"Today offer","widget_icon_style":"icon"},"widget_color":{"offer_title_color":"#82868b","widget_title_color":"#5E5873","offer_default_color":"#ebe9f1","offer_success_color":"#69CE82","body_background_color":"#FFFFFF","widget_subtitle_color":"#b9b9c3","header_background_color":"#FFFFFF"},"widget_icon_path":"images\/widget-icons\/widget-icon-1.png","shopify_widget_icon_path":"widget-icon-1.png"},"cart_discount":{"color":{"widget":{"line_color":"#D0D0D0","theme_color":"blue","open_icon_color":"#616161","tier_text_color":"#303030","title_text_color":"#2332D5","active_icon_color":"#008000","excluded_tier_color":"#cccccc","widget_border_color":"#7B84E6","open_tier_text_color":"#303030","tier_background_color":"#FFFFFF","active_tier_text_color":"#008000","description_text_color":"#616161","widget_background_color":"#FFFFFF"},"congrats":{"theme_color":"blue","background_color":"#EEEFFB","title_text_color":"#2332D5","description_text_color":"#303030"}},"content":{"widget":{"icon":"https:\/\/d33a6lvgbd0fej.cloudfront.net\/bogos-images\/1772523961.png","divide_tiers":false,"widget_style":"style_1","discount_tier_style":"checklist","widget_border_radius":12},"congrats":{"title":"Congratulations!","position":"bottom_right","appear_for":5,"description":"You got {{discount_amount}} off!","border_radius":12}}},"quantity_break":{"color":{"tag_color":"#F1F1F1","tier_price":"#303030","tier_title":"#303030","label_color":"#303030","theme_color":"neutral","bundle_price":"#303030","bundle_title":"#303030","tag_text_color":"#303030","label_text_color":"#FFFFFF","tier_description":"#616161","button_text_color":"#FFFFFF","bundle_description":"#303030","button_background_color":"#303030","widget_background_color":"#F3F3F3","item_card_background_color":"#FFFFFF"},"content":{"button_text":"Add bundles to cart","show_description":true,"total_price_text":"Total price","select_variant_text":"Select variant"}},"select_variant":{"type":"variant","color":{"active_tab_text":"#303030","default_tab_text":"#303030","active_tab_border":"#303030","active_tab_background":"#F0F0F0","active_item_background":"#F0F0F0","default_tab_background":"#F0F0F0"},"config":[]},"checkout_upsell":{"color":{"button_style":"primary","widget_price_color":"base","widget_background_color":"base"},"content":{"widget_message":"You may also like","widget_button_text":"Add to cart"},"general":{"widget_layout":"carousel","widget_position ":"left","widget_active_message":true,"widget_active_compare_at_price":true}},"volume_discount":{"table":{"color":{"row_color":"#FFFFFF","tag_color":"#F1F1F1","line_color":"#E0E0E0","theme_color":"neutral","widget_title":"#303030","row_odd_color":"#FFFFFF","widget_header":"#F3F3F3","row_even_color":"#F5F5F5","tag_text_color":"#303030","label_text_color":"#FFFFFF","tier_title_color":"#303030","widget_sub_title":"#303030","discount_text_color":"#303030","original_price_color":"#B5B5B5","discounted_price_color":"#303030","label_background_color":"#303030","tier_description_color":"#616161","shipping_discount_text_color":"#2332D5"},"hide_line":false,"body_style":"line","text_align":"left","discount_text":"{{discountAmount}} OFF","discount_show_as":"discount_text","show_description":true,"show_original_price":true},"content":{"button_text":"Add bundles to cart","total_price_text":"Total price ","shipping_icon_path":"images\/shipping-icons\/shipping-icon-1.png","select_variant_text":"Select variant","shopify_shipping_icon_path":"shipping-icon-1.png"},"default":{"color":{"tag_color":"#F1F1F1","tier_price":"#303030","tier_title":"#303030","label_color":"#303030","theme_color":"neutral","bundle_price":"#303030","bundle_title":"#303030","tag_text_color":"#303030","label_text_color":"#FFFFFF","tier_description":"#616161","button_text_color":"#FFFFFF","bundle_description":"#303030","bundle_origin_price":"#B5B5B5","button_background_color":"#303030","widget_background_color":"#F3F3F3","item_card_background_color":"#FFFFFF","shipping_discount_background":"DEE6FF","shipping_discount_text_color":"#2332D5"},"show_description":true}},"cheapest_discount":{"color":{"theme_color":"neutral","see_more_color":"#303030","open_icon_color":"#4A4A4A","active_icon_color":"#303030","bullet_text_color":"#808080","widget_title_color":"#303030","product_price_color":"#303030","product_title_color":"#303030","variant_title_color":"#303030","widget_border_color":"#888888","open_tier_text_color":"#303030","button_add_text_color":"#ffffff","widget_subtitle_color":"#616161","active_tier_text_color":"#303030","tiers_background_color":"#F6F6F6","widget_background_color":"#ffffff","excluded_tier_text_color":"#CCCCCC","product_list_label_color":"#616161","button_add_background_color":"#303030"},"content":{"tier_style":"checklist","see_more_text":"See all","show_see_more":true,"number_products":4,"number_cols_mobile":2,"number_rows_mobile":2,"product_list_label":"Choose from these products to get discount","number_cols_desktop":4,"number_rows_desktop":2,"add_product_bt
4633n_text":"Add","show_add_product_btn":true}},"promotion_message":{"text_color":"#ffffff","background_color":"#F72119","show_on_cart_page":true},"thanks_page_upsell":{"color":{"button_style":"primary","widget_price_color":"base","widget_background_color":"base"},"content":{"widget_message":"You may also like","widget_button_text":"Add to cart"},"general":{"widget_layout":"carousel","widget_position ":"left","widget_active_message":true,"widget_active_compare_at_price":true}}},"settings":{"draft_order":{"discount_code":false,"automatic_discount":false},"gift_format":"same_as_original_products","auto_add_gift":true,"offer_process":"function","sale_channels":null,"sync_quantity":false,"barcode_format":"blank","fraud_protection":null,"notify_via_email":null,"cal_gift_discount":"current_price","gift_title_format":"gift","using_draft_order":false,"select_one_gift_price":true,"admin_api_access_token":null,"manual_input_inventory":false,"include_compare_at_price":false,"cart_and_checkout_validation":{"type":[],"offer":false,"value":{"max_gifts":1,"min_cart_value":1,"min_cart_quantity":1},"status":true,"condition":"and"},"fraud_protection_cancel_order":null,"other_original_product_detail":null,"compare_gift_price_with_product":false,"delete_gift_after_turn_off_offer":false,"not_show_gift_if_already_on_cart":false,"type_seo":"number_integer","mode_override_checkout":"default","publications":null},"storefront":{"access_token":"dfafb888750be782b462a1dba447b2e5","created_at":"2024-07-17T13:24:01Z"}}}; 4634 4635//liquid code to get customer history and customer tag 4636 4637 4638 SECOMAPP.current_template = "page"; 4639 SECOMAPP.pathname = window.location.pathname; 4640 if (SECOMAPP.current_template === "404" && SECOMAPP.pathname?.includes("-sca_clone_freegift")) { 4641 window.location.replace(SECOMAPP.pathname.split("-sca_clone_freegift")[0]); 4642 } else if (SECOMAPP.current_template === "404" && SECOMAPP.pathname?.includes("/collections/sca_fg")) { 4643 window.location.replace(`${Shopify?.routes?.root ?? "/"}collections/all`); 4644 } 4645 4646 SECOMAPP.setCookie = function (e, t, o, n, r) { 4647 let i = new Date; 4648 i.setTime(i.getTime() + 24 * o * 36e5 + 60 * n * 1e3); 4649 let f = "expires=" + i.toUTCString(); 4650 document.cookie = e + "=" + t + ";" + f + (r ? ";path=" + r : ";path=/"); 4651 }; 4652 SECOMAPP.deleteCookie = function (e, t) { 4653 document.cookie = e + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; " + (t ? ";path=" + t : ";path=/") 4654 }; 4655 SECOMAPP.getCookie = function (e) { 4656 for (let t = e + "=", o = document.cookie.split(";"), n = 0; n < o.length; n++) { 4657 let r; 4658 for (r = o[n]; " " === r.charAt(0);) r = r.substring(1); 4659 if (0 === r.indexOf(t)) return r.substring(t.length, r.length) 4660 } 4661 return "" 4662 }; 4663 SECOMAPP.getQueryString = function (key) { 4664 let e = {}; 4665 let t = window.location.search.substring(1).split("&"); 4666 let o = 0; 4667 for (; o < t.length; o++) { 4668 let n = t[o].split("="); 4669 if (void 0 === e[n[0]]) e[n[0]] = decodeURIComponent(n[1]); 4670 else if ("string" == typeof e[n[0]]) { 4671 e[n[0]] = [e[n[0]], decodeURIComponent(n[1])] 4672 } else e[n[0]].push(decodeURIComponent(n[1])) 4673 } 4674 return key ? e?.[key] : e; 4675 }; 4676 4677 SECOMAPP.offer_codes = [ 4678 {param: "freegifts_code", cookie: "sca_fg_codes"}, 4679 {param: "bundles_code", cookie: "sca_bundle_codes"}, 4680 {param: "upsells_code", cookie: "sca_upsell_codes"}, 4681 {param: "discounts_code", cookie: "sca_discount_codes"}, 4682 ]; 4683 SECOMAPP.offer_codes.forEach(({param, cookie}) => { 4684 SECOMAPP.fg_codes = []; 4685 SECOMAPP.getCookie(cookie) && (SECOMAPP.fg_codes = JSON.parse(SECOMAPP.getCookie(cookie))); 4686 SECOMAPP.current_code = SECOMAPP.getQueryString(param); 4687 SECOMAPP.current_code && !SECOMAPP.fg_codes.includes(SECOMAPP.current_code) 4688 && (function () { 4689 SECOMAPP.activateOnlyOnePromoCode && (SECOMAPP.fg_codes = []); 4690 SECOMAPP.fg_codes.push(SECOMAPP.current_code); 4691 SECOMAPP.setCookie(cookie, JSON.stringify(SECOMAPP.fg_codes)); 4692 })(); 4693 }); 4694 4695 SECOMAPP.customer = {}; 4696 SECOMAPP.customer.orders = []; 4697 SECOMAPP.customer.freegifts = []; 4698 SECOMAPP.customer.freegifts_v2 = []; 4699 4700 SECOMAPP.customer.email = ""; 4701 SECOMAPP.customer.first_name = ""; 4702 SECOMAPP.customer.last_name = ""; 4703 SECOMAPP.customer.tags = Object.values({...null}); 4704 SECOMAPP.customer.orders_count = "" - 0; 4705 SECOMAPP.customer.total_spent = "" - 0; 4706 SECOMAPP.customer.b2b = "" - 0; 4707 SECOMAPP.market = { 4708 id: "41125675320" - 0, 4709 handle: "us", 4710 }; 4711 4712 4713 // get class name config from settings_data.json 4714 if (!Shopify.scaHandleConfigValue) { 4715 Shopify.scaHandleConfigValue = { 4716 ...null, 4717 ...null 4718 }; 4719 } 4720 4721 // add link proxy 4722 SECOMAPP.freegiftProxy = "/apps/secomapp_freegifts_get_order?ver=3.0"; 4723 4724 SECOMAPP.freegiftProxy = "/apps/secomapp_freegifts_get_order?ver=3.0"; 4725 4726 SECOMAPP.bogosCollectUrl = "https://collect.bogos.io/collect" 4727 SECOMAPP.bogosIntegrationUrl = "https://api.bogos.io/integrations" 4728 4729 // get shop locales 4730 SECOMAPP.shop_locales = Object.values({ 4731 ...[{"shop_locale":{"locale":"en","enabled":true,"primary":true,"published":true}}] 4732 }); 4733 4734 SECOMAPP.current_locale = { ...{"shop_locale":{"locale":"en","enabled":true,"primary":true,"published":true}} } 4735 4736 4737 4738 window.fgGiftIcon = "https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/fg-icon-red_small.png"; 4739 window.fgWidgetIconsObj = { 4740 "widget-icon-1.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/widget-icon-1_small.png', 4741 "widget-icon-2.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/widget-icon-2_small.png', 4742 "widget-icon-3.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/widget-icon-3_small.png', 4743 "widget-icon-4.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/widget-icon-4_small.png', 4744 "widget-icon-5.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/widget-icon-5_small.png', 4745 "widget-icon-6.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/widget-icon-6_small.png', 4746 "widget-icon-7.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/widget-icon-7_small.png', 4747 "widget-icon-8.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/widget-icon-8_small.png' 4748 } 4749 4750 window.fgStepIconsObj = { 4751 "step-icon-1.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/step-icon-1_small.png', 4752 "step-icon-2.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/step-icon-2_small.png', 4753 "step-icon-3.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/step-icon-3_small.png', 4754 "step-icon-4.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/step-icon-4_small.png', 4755 "step-icon-5.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/step-icon-5_small.png', 4756 "step-icon-6.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/step-icon-6_small.png', 4757 "step-icon-7.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/step-icon-7_small.png', 4758 } 4759 4760 window.fgSummaryIconsObj = { 4761 "summary-icon-1.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/summary-icon-1_small.png', 4762 "summary-icon-2.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/summary-icon-2_small.png', 4763 "summary-icon-3.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/summary-icon-3_small.png', 4764 "summary-icon-4.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/summary-icon-4_small.png', 4765 "summary-icon-5.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/summary-icon-5_small.png', 4766 "summary-icon-6.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/summary-icon-6_small.png', 4767 "summary-icon-7.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/summary-icon-7_small.png', 4768 "summary-icon-8.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/summary-icon-8_small.png', 4769 } 4770 4771 window.fgShippingIconsObj = { 4772 "shipping-icon-1.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/shipping-icon-1_small.png', 4773 "shipping-icon-2.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/shipping-icon-2_small.png', 4774 "shipping-icon-3.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/shipping-icon-3_small.png', 4775 "shipping-icon-4.png": 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/shipping-icon-4_small.png', 4776 } 4777 4778 // variable from tools 4779 SECOMAPP.variables = { 4780 ...SECOMAPP.variables, 4781 ...null, 4782 ...[], 4783 shipping_product_img: 'https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/shipping_product_small.png' 4784 } 4785 4786 window.fgResource = { 4787 gift: { 4788 js: ["https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/gift.min.js"] 4789 }, 4790 bundle: { 4791 js: ["https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/bundle.min.js"], 4792 css: ["https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/bogos.bundle.min.css"] 4793 }, 4794 upsell: { 4795 js: ["https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/upsell.min.js"], 4796 css: ["https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/bogos.upsell.min.css"] 4797 }, 4798 discount: { 4799 js: ["https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/discount.min.js"], 4800 css: ["https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/bogos.discount.min.css"] 4801 }, 4802 "bundle-page": { 4803 js: ["https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/bundle-page.min.js"], 4804 css: ["https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/bogos.bundle-page.min.css"] 4805 }, 4806 booster: { 4807 js: ["https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/booster.min.js"], 4808 css: ["https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/bogos.booster.min.css"] 4809 } 4810 } 4811</script>
4811 4812
4813<script defer src="https://cdn.bogos.io/Zm9iLWFkbWluLm15c2hvcGlmeS5jb20=/freegifts_data_1781071847.min.js"></script>
4813 4814<div id="secomapp_freegifts_url" data-url="https://cdn.bogos.io/Zm9iLWFkbWluLm15c2hvcGlmeS5jb20=/freegifts_data_1781071847.min.js"></div> 4815 4816 4817<div id="bogos-gift-script" data-url="https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/gift.min.js"></div> 4818<div id="bogos-bundle-script" data-url="https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/bundle.min.js"></div> 4819<div id="bogos-upsell-script" data-url="https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/upsell.min.js"></div> 4820<div id="bogos-discount-script" data-url="https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/discount.min.js"></div> 4821<div id="bogos-bundle-page-script" data-url="https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/bundle-page.min.js"></div> 4822<div id="bogos-booster-script" data-url="https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/booster.min.js"></div> 4823<div id="bogos-booster-page-script" data-url="https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/booster-page.min.js"></div> 4824 4825 4826<div id="bogos-bundle-style" data-url="https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/bogos.bundle.min.css"></div> 4827<div id="bogos-upsell-style" data-url="https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/bogos.upsell.min.css"></div> 4828<div id="bogos-discount-style" data-url="https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/bogos.discount.min.css"></div> 4829<div id="bogos-bundle-page-style" data-url="https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/bogos.bundle-page.min.css"></div> 4830<div id="bogos-booster-style" data-url="https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/bogos.booster.min.css"></div> 4831<div id="bogos-booster-page-style" data-url="https://cdn.shopify.com/extensions/01a0d1bb-e419-72e0-b3db-9b9890abbb77/freegifts-231/assets/bogos.booster-page.min.css"></div> 4832<!-- END app snippet --> 4833 4834 4835<!-- BEGIN app snippet: search --> 4836<!-- END app snippet --> 4837 4838 4839 4840</div>
4840<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
4840 4841</body> 4842</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.