#Dark Brown Balayage Genius Weft Extensions (2024)

All Collections

New Arrivals

GIFT CARDS

#Dark Brown Balayage Genius Weft Extensions (2)

  • Shop Human hair wigs
  • Shop Human Hair Toppers

All Collections

New Arrivals

GIFT CARDS

NEED SOME ADVICE? CONTACT OUR EXPERTS
  • READY TO WEAR

  • Classic Clip In Hair Extensions
  • Classic Halo Weft Hair Extensions
  • Ponytail Hair Extensions
  • Seamless Clip In Hair Extensions
  • Clip In Fringes Hair Extensions
  • Clip In Bun Hair Extensions
  • SEMI-PERMANENT EXTENSIONS

  • Ultra Seamless Tape In Hair Extensions
  • Invisi-tape Skin Weft Hair Extensions
  • Nano Tip Hair Extensions
  • Hot Fusion U-Tip Hair Extensions
  • Traditional Weft Hair Extensions
  • Genius Weft Hair Extensions

  • Hair Extensions Tools (All You Need)
  • Colour Rings
  • Tape-In Sample Pack
  • AFRO TEXTURED HAIR

  • Clip In Extensions
  • Ponytail Extensions
  • Weave Extensions
  • Closure Extensions
  • Human Hair Wigs
  • READY TO WEAR
    • Classic Clip In Hair Extensions
    • Classic Halo Weft Hair Extensions
    • Ponytail Hair Extensions
    • Seamless Clip In Hair Extensions
    • Clip In Fringes Hair Extensions
    • Clip In Bun Hair Extensions
  • SEMI-PERMANENT EXTENSIONS
    • Ultra Seamless Tape In Hair Extensions
    • Invisi-tape Skin Weft Hair Extensions
    • Nano Tip Hair Extensions
    • Hot Fusion U-Tip Hair Extensions
    • Traditional Weft Hair Extensions
    • Genius Weft Hair Extensions
    • Hair Extensions Tools (All You Need)
    • Colour Rings
    • Tape-In Sample Pack
  • AFRO TEXTURED HAIR
    • Clip In Extensions
    • Ponytail Extensions
    • Weave Extensions
    • Closure Extensions
    • Human Hair Wigs
  • stocks

  • All Collections

    New Arrivals

    GIFT CARDS

  • NEED SOME ADVICE? CONTACT OUR EXPERTS

  • Trade, Stockist and Partnership Account Information

    • Trade Account Sign-up (Salon/ Stylist discounts)

      • Take Your Brand To New Levels!

        • Online Training Academy
          • Trade, Stockist and Partnership Account Information
            • Trade Account Sign-up (Salon/ Stylist discounts)
              • Take Your Brand To New Levels!
                • Online Training Academy

                  • My Account

                    • FAQs

                      • Contact Us

                        • Hair Care Guide

                          • Exchange and Refund

                            • Our Hair Blog
                              • My Account
                                • Contact Us
                                  • Shipping and Delivery
                                    • Exchange and Refund
                                      • FAQs
                                        • Hair Care Guide
                                          • Rewards Program
                                            • Our Hair Blog

                                              Home / /

                                              #Dark Brown Balayage Genius Weft Extensions

                                              #Dark Brown Balayage Genius Weft Extensions (23)

                                              $99.99 - $249.99

                                              Wholesale discount available. SIGN UP TODAY!

                                              Select your Colour

                                              #1 Jet Black #1B Off Black #1BL Darkest Brown #2 Dark Brown #4 Chocolate Brown #6 Chestnut Brown #8 Natural Light Brown #12 Dark Honey #16 Caramel Dark Blonde #18 Dark Ash Blonde #23 Golden Blonde #613 Platinum Blonde #60 Whitest Ash #16/22 Caramel Light Blonde #18/613 Lightest Ash Blonde Highlights #18/60 Pearl Ash Blonde Highlights #Hazelnut Twist #Dark Ash Brown Balayage #Iced Coffee Balayage #Beach Blonde Ombre #Chestnut Brown Highlights #Arctic Blonde Balayage #Bronde Balayage #Dark Brown Balayage #Off Black Bal #Choc Brown Balayage #Toffee Cream Balayage #Sandy Blonde Balayage #Smokey Ombre Ginger Snap #Burgundy #LightGrey #Pearl Grey #6R Red #33 auburn

                                              Colour - #Dark Brown Balayage Genius Weft Extensions Colour Guide?

                                              Same Day Shipping before 2pm
                                              Excellence Since 2003

                                              PRODUCT INFORMATION

                                              1 bundle of wefts per pack

                                              Ready To Ship
                                              20 Inch | 50g | 80cm wide
                                              24-Inch | 50g | 80cm wide

                                              Custom Order (MOQ 10)
                                              14-Inch | 50g | 90cm wide
                                              18-Inch | 50g | 80cm wide
                                              22-Inch | 60g | 80cm wide
                                              26-Inch | 60g | 80cm wide

                                              The Genius Hand-Tied extensions are a brilliant new weft design that can be cut directly anywhere on the seam without the weft unravelling! They are virtually undetectable, seamless, and super blendable. The track is minuscule compared to machine-made wefts making this option ideal for people with thin to medium hair. The Genius Weft extensions give you the freedom to customize every sew-in hair transformation.

                                              Genius weft hair extensions are strong and anti-shedding, which means they last a long time when cared for properly. They add length and volume to your natural hair with ease.

                                              These hair extensions are available from 14-Inch to 26-Inch and over 35+ colours, lasting up to a year if cared for well.

                                              These extensions must be installed by a salon professional.

                                              All Superior Hair products are made with 100% Remy human hair. Genius weft extensions are made using the highest quality virgin hair in the market, which is our top premium grade hair as the hair cuticles are intact and aligned.

                                              Shop our Traditional Weft Collection here!

                                              ALWAYS AND NEVER’S

                                              Always

                                              ✓ Use a sulphate-free shampoo.

                                              ✓ Use alcohol-free hair products.

                                              ✓ Use a extensions friendly brush.

                                              ✓ Avoid applying heat or styling tools to your roots and extension bonds.

                                              ✓ Loosely braid or gather your hair into a pony at bedtime.

                                              ✓ Use a heat protectant when styling your hair.

                                              ✓ Make sure your hair fresh washed and no product on before applied.

                                              Never

                                              • Brush wet hair. this will pull out the extensions.

                                              • Wash hair daily – use a dry shampoo if needed.

                                              • Use conditioner near roots and bonds.

                                              • Use coconut oil-based products on your extensions. Argan oil products are OK.

                                              • Towel dry hair or pull at your extensions.

                                              • Tie your hair up in the week following application. Your hair and your roots need time to adjust to their new style. Pulling and tugging may damage your hair and extensions.

                                              • Don't bleach or lighten the extensions.

                                              • Remember all hair extensions have already been through a chemical process; it is at your own risk if you decide to dye them as it may affect the quality of the hair.

                                              • Don't use products containing alcohol as they can dry out the extensions and you don't want that happening!

                                              • Don't use shampoo designed for volume or for dyed hair.

                                              • Don't wear your extensions when swimming.

                                              HOW DO YOU APPLY GENIUS WEFT EXTENSIONS?

                                              At Superior Hair, we’ve got a few different application styles for weft hair extensions. These include micro-bead and sewing in - it all depends on the hair we are working with.

                                              Installation by a salon professional take approximately 2-3 hours.

                                              SHIPPING AND RETURNS

                                              SAME DAY SHIPPING

                                              We ship fast! Place your order before 2pm during weekdays and we will ship the same day.

                                              180 DAYS RETURNS AND EXCHANGE

                                              We are very happy to accommodate returns and exchanges within 180 days of your product purchase provided that the product has not been opened, worn, or tampered. The seal should not be broken on the product packaging.

                                              View out full shipping and returns policy here.

                                              REVIEWS

                                              Customer Reviews

                                              Be the first to write a review

                                              0%

                                              (0)

                                              0%

                                              (0)

                                              0%

                                              (0)

                                              0%

                                              (0)

                                              0%

                                              (0)

                                              Before and After

                                              #Dark Brown Balayage Genius Weft Extensions (68)

                                              Before

                                              Before Superior Hair Extensions

                                              #Dark Brown Balayage Genius Weft Extensions (69)

                                              After

                                              After Superior Hair Extensions

                                              #Dark Brown Balayage Genius Weft Extensions (70)

                                              Before

                                              Before Superior Hair Extensions

                                              #Dark Brown Balayage Genius Weft Extensions (71)

                                              After

                                              After Superior Hair Extensions

                                              Quantity Guide

                                              #Dark Brown Balayage Genius Weft Extensions (72)

                                              Before

                                              After Extensions 26-Inch

                                              #Dark Brown Balayage Genius Weft Extensions (73)

                                              2 Packs

                                              #Dark Brown Balayage Genius Weft Extensions (74)

                                              3 Packs

                                              #Dark Brown Balayage Genius Weft Extensions (75)

                                              4 Packs

                                              You may also like

                                              FAQ

                                              Our traditional weft hair extension is our original weft product and is machine made. Alternatively, our hand- tied weft is hand sewn with a much finer track. Traditional wefts can be cut to size, where hand-tied wefts come pre-cut. Superior Hair recommends our hand tied weft for finer hair as it is discreet and lightweight on the scalp.

                                              At Superior Hair, we’ve got a few different application styles for weft hair extensions . These include micro-bead and sewing in - it all depends on the hair we are working with.

                                              Installation by a salon professional takes approximately 2-3 hours.

                                              4 x 20” extension at 25cm width and 50g

                                              No - as long as they are installed by a professional. Many customers report that the wefts actually protect their natural hair and allow for a healthier regrowth period.

                                              It is highly recommended that you have these extensions installed by a professional. You do run a risk of damaging your hair or the product itself if you attempt to install them yourself.

                                              The number of packs you need depends on the volume effect you wish to achieve.

                                              Two to four packs is recommended for a full application.

                                              Our refund policy allows you to return products that you do not open, so we suggest buying one more packs than you think you need - just in case. You can return the unused packs for a full refund of the purchase price.

                                              Don’t wash your hair for at least 48-72 hours after installation. After this period, you are free to wash your hair as usual, but follow these tips.

                                              ✓ Never use products that contain parabens, sulphates, or alcohol.

                                              ✓ Only wash your hair 2-3 times per week - the less the better for the life of your extensions.

                                              ✓ Only condition the ends and mids of your hair.

                                              ✓ Wash your hair in one direction and try to avoid getting knots or snags in your extensions.

                                              ✓ After washing, wait for hair to become completely dry before brushing.

                                              ✓ Use a weekly deep conditioning treatment on your mids and ends.

                                              Our hair extensions are made from Remy 100% human hair, so you can style them with hot tools as often as you would style your own hair. It is super important to always use a heat protector on both your extension and your natural hair to prevent damage.

                                              Find an extension colour that is as close as possible to your natural hair around half way down the strand, rather than at the root or tip.

                                              We always recommend you get in touch with our team for a colour matching service to ensure you get extensions that look flawless. We can colour match you online. Find out more here.

                                              Professional installations of Hand-tied weft hair extensions should last between 6 and 8 weeks before requiring repositioning given that you have properly cared for your extensions. This may vary due to your natural scalp production of sebum and hair growth rate.

                                              You can re-use these extensions up to four times if you care for them well.

                                              An industry professional can remove and reinstall these extensions quickly and easily. Then, they are able to reinstall these tape in extensions into your natural hair.

                                              No, this must be done by a salon professional. You are able to learn how to install them using one of our Superior Hair training courses. However, it is still recommended that you do not install extensions on yourself, even if you are fully qualified.

                                              Avoid putting your hair underneath the water when you have hair extensions. Ocean water salt and swimming pool chemicals causes tangles and takes moisture out of your hair, plus it can negatively affect the adhesive bonds of your extensions.

                                              If you do accidentally get your hair extensions wet while swimming, rinse your hair with fresh water as soon as possible, and apply a leave in conditioner or spray in condition to alleviate the impact.

                                              Customer Reviews

                                              Be the first to write a review

                                              0%

                                              (0)

                                              0%

                                              (0)

                                              0%

                                              (0)

                                              0%

                                              (0)

                                              0%

                                              (0)

                                              ×

                                              You are trying to purchase more products than available in stock.

                                              ×

                                              ') }; if( window.wsaio_involved != undefined && window.wsaio_involved == true && WSAIO.app_mode_applied){ WSAIO.showCheckoutLoader() } window.addEventListener("load", function(){ var $ = jQuery; if(typeof WSAIO != 'undefined'){ WSAIO.loginLink(); if(typeof window.ZapietCheckoutEnabled != 'undefined'){ var valid_chk = false; setInterval(function(){ if(window.ZapietCheckoutEnabled && valid_chk == false){ if(typeof WSAIO.checkoutEventListner != 'undefined'){WSAIO.checkoutEventListner()} valid_chk =true; }else if(!window.ZapietCheckoutEnabled && valid_chk == true){ valid_chk =false; } },100) } if("function"===typeof WSAIO.initAddons){ WSAIO.initAddons(jQuery || $); } if(typeof current_product != 'undefined' && current_product != null){ $('.wsaio_'+current_product.id).parents(WSAIO.product_parent_grid_selector).find('.wsaio_buynow').css('cssText','display:inline-block !important') } try{WSAIO.buyNowEventListener()}catch(e){} if( window.wsaio_involved != undefined && window.wsaio_involved == true && WSAIO.app_mode_applied){ WSAIO.cart_qty_change_event(); } setTimeout(function(){ if((typeof WSAIO != 'undefined' && typeof WSAIO.cartDrawer === 'function' && WSAIO.template === "cart") || (typeof WSAIO != 'undefined' && window.location.pathname.indexOf('pages/net-term-order') > -1 )){ if(!jQuery.isEmptyObject(WSAIO.discount_response)){ WSAIO.preCheckoutResponse(WSAIO.discount_response) WSAIO.callback(WSAIO.discount_response) if(typeof WSAIO.loadcartQuantityControllers != 'undefined' && typeof WSAIO.load_checkout_restriction != 'undefined'){ WSAIO.load_checkout_restriction(); WSAIO.loadcartQuantityControllers([],function(e){WSAIO.run_checkout()});}else{WSAIO.run_checkout()} }else{ WSAIO.preCheckout(); } } if(WSAIO.agreement_checkout_selector != '' && $(WSAIO.agreement_checkout_selector).length != 0 && window.wsaio_involved != undefined && window.wsaio_involved == true && WSAIO.app_mode_applied){ if($(WSAIO.agreement_checkout_selector).is(':checked')){ window.isAgree = true; WSAIO.run_checkout() }else{ window.isAgree = false; WSAIO.run_checkout() } $(document).on('click', WSAIO.agreement_checkout_selector, function (e) { if($(WSAIO.agreement_checkout_selector).is(':checked')){ window.isAgree = true; WSAIO.run_checkout() }else{ window.isAgree = false; WSAIO.run_checkout() } }) } setTimeout(function(){ /* ----------for without login show checkout -------------- */ try{ if(WSAIO != undefined && !WSAIO.main_liquid_file_included && (typeof WSAIO.isShowCheckout == 'undefined')){ $(WSAIO.checkout_selector+','+WSAIO.duplicate_checkout_selector).removeClass('wsaio_hideCheckout') $('.wsaio_coupon_group, .wsaio_coupon_link').css('cssText','display:block !important') } }catch(e){} /* ----------for login show checkout -------------- */ try{ if((WSAIO != undefined || WSAIO.main_liquid_file_included) && (typeof WSAIO.isShowCheckout == 'undefined')){ $(WSAIO.checkout_selector+','+WSAIO.duplicate_checkout_selector).removeClass('wsaio_hideCheckout') $('.wsaio_coupon_group, .wsaio_coupon_link').css('cssText','display:block !important') } }catch(e){} /* ----------if app undefined show checkout -------------- */ try{ if(WSAIO == undefined || !WSAIO.isWholesaleCustomer() && (typeof WSAIO.isShowCheckout == 'undefined')){ $(WSAIO.checkout_selector+','+WSAIO.duplicate_checkout_selector).removeClass('wsaio_hideCheckout') $('.wsaio_coupon_group, .wsaio_coupon_link').css('cssText','display:block !important') } }catch(e){} if(WSAIO.buy_now_btn_replace == false || typeof WSAIO.buyNowEventListener == 'undefined' ){ $('.shopify-payment-button .shopify-payment-button__button').css('cssText','display:inline-block !important') } $('.wsaio_loader_checkout').hide(); },1000); if(typeof current_product != 'undefined' && current_product != null){ $('.wsaio_'+current_product.id).parents(WSAIO.product_parent_grid_selector).find('.wsaio_buynow').css('cssText','display:inline-block !important') if(WSAIO.buy_now_btn_replace == false){ $(WSAIO.product_parent_grid_selector).find('.wsaio_buynow').remove() $('.wsaio_'+current_product.id).parents(WSAIO.product_parent_grid_selector).find('.shopify-payment-button .shopify-payment-button__button').css('cssText','display:inline-block !important') } } },1050) }else{ $(WSAIO.checkout_selector+','+WSAIO.duplicate_checkout_selector).removeClass('wsaio_hideCheckout') $('.wsaio_loader_checkout').hide(); $('.shopify-payment-button .shopify-payment-button__button').css('cssText','display:inline-block !important') } }); WSAIO.run_checkout = function(){ if(WSAIO.app_mode_applied){ $('.wsaio_coupon_group, .wsaio_coupon_link').css('cssText','display:block !important') WSAIO.checkoutAlert = $('
                                                ') /* ==================replace checkout button =============================== */ if(WSAIO.replace_checkout){ $(WSAIO.replace_checkout_button).replaceWith(WSAIO.duplicate_checkout_html) if(typeof WSAIO.checkoutEventListner != 'undefined' && typeof WSAIO.isWholesaleCustomer != 'undefined' && WSAIO.isWholesaleCustomer() !== false){ WSAIO.checkoutEventListner() }else{ if(WSAIO.replace_checkout){ $(document).on('click',WSAIO.checkout_selector+','+WSAIO.duplicate_checkout_selector, function (e) { e.preventDefault(); e.stopImmediatePropagation(); e.stopPropagation(); window.location.href = '/checkout'; }); } } } /* ==================order limit =============================== */ WSAIO.order_control();WSAIO.disableCheckout() if(WSAIO.default_limit){ if(typeof WSAIO.allow_normal_checkout__OC == 'undefined' || WSAIO.allow_normal_checkout__OC == false){ WSAIO.checkoutAlert.append('
                                              1. ' + WSAIO.checkout_message + "
                                              2. "); }else{ WSAIO.checkoutAlert.append('
                                              3. ' + WSAIO.checkout_message + "
                                              4. "); WSAIO.checkoutAlert.append('
                                              5. Fulfill minimum order requirements to avail discount
                                              6. '); } } /* ==================Shipping =============================== */ if(WSAIO.applied_shipping != undefined && WSAIO.applied_shipping.apply_shipping_charges && $('.Shipping_msg').length == 0 && WSAIO.shipping_message_applied){ WSAIO.checkoutAlert.after('

                                                ' + WSAIO.applied_shipping.final_ship_rule.message + "

                                                "); } /* ==================Show Checkout button =============================== */ if(typeof WSAIO.isShowCheckout == 'undefined'){ $(WSAIO.checkout_selector+','+WSAIO.duplicate_checkout_selector).removeClass('wsaio_hideCheckout') }else{ $(WSAIO.checkout_selector+','+WSAIO.duplicate_checkout_selector).addClass('wsaio_hideCheckout') } $('.wsaio_coupon_group, .wsaio_coupon_link').css('cssText','display:block !important') /* ==================Append all Alerts =============================== */ $('.wsaio-alerts').remove(); $('.waio_agree_message').remove() if(typeof window.MOQ_alert != 'undefined' && window.MOQ_alert!=''){ WSAIO.checkoutAlert = window.MOQ_alert; }else{ if($('.wsaio-alerts').length == 0 && WSAIO.checkoutAlert != undefined){ $(WSAIO.checkout_message_selector).after(WSAIO.checkoutAlert); } } WSAIO.cartLevelUpSell(); $('.wsaioUsellMessage,.Shipping_msg').remove(); if(WSAIO.wsaioUpSell_msg != undefined && WSAIO.wsaioUpSell_msg!= '' && $('.wsaioUsellMessage').length == 0){ if(typeof WSAIO.cart_level_upsell_message_select == 'undefined' || WSAIO.cart_level_upsell_message_select == ''){ $(WSAIO.checkout_message_selector).before('

                                                ' + WSAIO.wsaioUpSell_msg + "

                                                "); }else{ $(WSAIO.cart_level_upsell_message_select).before('

                                                ' + WSAIO.wsaioUpSell_msg + "

                                                "); } } if(WSAIO.applied_shipping != undefined && WSAIO.applied_shipping.apply_shipping_charges && $('.Shipping_msg').length == 0 && WSAIO.shipping_message_applied){ $(WSAIO.checkout_message_selector).after('

                                                ' + WSAIO.applied_shipping.final_ship_rule.message + "

                                                "); } if($('.wsaio-alerts').length == 0 && WSAIO.checkoutAlert != undefined && typeof window.MOQ_alert != 'undefined' && WSAIO.checkoutAlert.indexOf('
                                                • -1){ $(WSAIO.checkout_message_selector).after(WSAIO.checkoutAlert); } /* ==================Disabled Enable Checkout =============================== */ if(WSAIO.disable_checkout || window.disable_checkout_MOQ || window.isAgree == false){ if(WSAIO.agrrement_alert_message != '' && $('.waio_agree_message').length == 0 && typeof window.isAgree != 'undefined' && window.isAgree == false){ $(WSAIO.checkout_message_selector).after('

                                                  '+WSAIO.agrrement_alert_message+'

                                                  '); } if((typeof WSAIO.allow_normal_checkout__OC != 'undefined' && WSAIO.allow_normal_checkout__OC) && ((!window.disable_checkout_MOQ || $('.moq_error').length == 0) && (typeof window.isAgree == 'undefined' || window.isAgree))){ $(WSAIO.netTerm_checkout_selector).addClass('checkout-disabled').attr('disabled','disabled').css({'pointer-events': 'none','cursor': 'default'}) }else{ $(WSAIO.checkout_selector+','+WSAIO.duplicate_checkout_selector+','+WSAIO.netTerm_checkout_selector).addClass('checkout-disabled').attr('disabled','disabled').css({'pointer-events': 'none','cursor': 'default'}) } }else{ $(WSAIO.checkout_selector+','+WSAIO.duplicate_checkout_selector+','+WSAIO.netTerm_checkout_selector).removeClass('checkout-disabled').removeAttr('disabled').css({'pointer-events': 'auto','cursor': 'pointer'}) } /* ==================================== =============================== */ $('.wsaio_loader_checkout').hide(); } } window.addEventListener("load",function(){ if(typeof WSAIO != 'undefined' && window.wsaio_involved != undefined && window.wsaio_involved == true && typeof WSAIO.preCheckout == 'undefined' && WSAIO.app_mode_applied){ WSAIO.preloadCheckout = function (){ WSAIO.showCheckoutLoader(); try { "undefined" === typeof window.waioMOC && (window.waioMOC = {}); "undefined" === typeof waioMOC.cart && (waioMOC.cart = {}); try { window.cart_data = WSAIO.cart_object; waioMOC.cart["item_count"] = WSAIO.cart_object.item_count; waioMOC.cart["original_total_price"] = WSAIO.cart_object.original_total_price; WSAIO.order_control() setTimeout(function(){ if(typeof WSAIO.loadcartQuantityControllers != 'undefined' && typeof WSAIO.load_checkout_restriction != 'undefined'){ WSAIO.load_checkout_restriction(); WSAIO.loadcartQuantityControllers([],function(e){setTimeout(function(){WSAIO.run_checkout()},1000)});}else{WSAIO.run_checkout()} },1000) } catch (e) {} } catch (e) {} }; WSAIO.preCheckout = function (){ if(typeof WSAIO.run_checkout != 'undefined'){ WSAIO.showCheckoutLoader() $.getJSON(WSAIO.local_param +'cart',function(e){ window.cart_data = e; try { "undefined" === typeof window.waioMOC && (window.waioMOC = {}); "undefined" === typeof waioMOC.cart && (waioMOC.cart = {}); try { waioMOC.cart["item_count"] = e.item_count; waioMOC.cart["original_total_price"] = e.original_total_price; WSAIO.order_control() if(typeof WSAIO.cartQuantityControllers != 'undefined' && typeof WSAIO.checkout_restriction != 'undefined'){ WSAIO.checkout_restriction(); WSAIO.cartQuantityControllers([],function(e){setTimeout(function(){WSAIO.run_checkout()},500)});}else{WSAIO.run_checkout()} } catch (e) {} } catch (e) {} }) } }; WSAIO.preloadCheckout(); } }) };

                                                '+message+'

                                                ' + ' ' ; return _HTML; } // Variant table html design function prepare_variant_table_html(table_rules,moq_product,config_param,number_of_rule){ var check_if_applicable = false; if(number_of_rule == 'merge_rules'){ var ids = []; for(var i = 0 ;i< moq_product.variants.length; i++){ ids.push(moq_product.variants[i].id) } if(table_rules.length){ var rows_data = ''; $(moq_product.variants).each(function(e){ var variant = moq_product.variants[e]; $(table_rules).each(function(ee){ $(table_rules[ee].variants).each(function(eee){ if(variant.id == table_rules[ee].variants[eee].id){ var qty__attrs = 'class="waio_qty-input" data-min="0" data-method="variant_level" data-max="0" data-default="0" data-inc="1"'; var indxx = ids.findIndex(function(e){if(e==table_rules[ee].variants[eee].id){return e}}) ids = ids.filter(function(elem){ return elem != ids[indxx]; }); if(table_rules[ee].minimum_quantity_method == 'variant_level'){ var message = table_rules[ee].message.replace("[[mul]]",table_rules[ee].quantity_increment).replace("[[min]]",table_rules[ee].minimum_quantity).replace('"',''); _fLavel = table_rules[ee].minimum_quantity_method; max_qty = table_rules[ee].maximum_quantity==""?0:table_rules[ee].maximum_quantity; _qtyInc = parseInt(table_rules[ee].quantity_increment) || 1; _qtyMin = parseInt(table_rules[ee].minimum_quantity) || 0; _qtyMax = parseInt(max_qty) || 0; var message = table_rules[ee].message; if(table_rules[ee].default_quantity == 0){ _qtyDefault = parseInt(table_rules[ee].default_quantity); }else{ _qtyDefault = parseInt(table_rules[ee].default_quantity) || 1; } var qty__attrs = ''; if(config_param.variant_inventory_info == undefined){ qty__attrs = 'class="waio_qty-input waio_qty-input__applicable" template="'+config_param.template+'" is_table="'+table_rules[ee].selector_for_individual_variant+'" data-method="'+_fLavel+'" data-min="'+_qtyMin+'" data-max="'+_qtyMax+'" data-default="'+_qtyDefault+'" data-inc="'+_qtyInc+'" parent_element="'+config_param.parent_product_selector+'" '; }else{ qty__attrs = 'class="waio_qty-input waio_qty-input__applicable" template="'+config_param.template+'" is_table="'+table_rules[ee].selector_for_individual_variant+'" variant_inventory_management="'+config_param.variant_inventory_info.variant_inventory_management+'" variant_inventory_policy="'+config_param.variant_inventory_info.variant_inventory_policy+'" variant_inventory_quantity="'+config_param.variant_inventory_info.variant_inventory_quantity+'" data-method="'+_fLavel+'" data-min="'+_qtyMin+'" data-max="'+_qtyMax+'" data-default="'+_qtyDefault+'" data-inc="'+_qtyInc+'" parent_element="'+config_param.parent_product_selector+'" '; } } if(variant.available){ input_html = ''+ '

                                                ' + ' ' + ' ' + ' ' + '

                                                '+message+'

                                                '; }else{ input_html = 'Out of stock'; } check_if_applicable = true; var img = moq_product.featured_image; if(variant.featured_image != null) img = variant.featured_image.src; rows_data +=''+ ' ' + ' ' + '

                                                ' + '

                                                ' + ' #Dark Brown Balayage Genius Weft Extensions (76) ' + '

                                                ' + ' ' + '

                                                ' + '

                                                '+variant.title+'

                                                ' + ' ' + '

                                                ' + '

                                                ' + ' ' + ' ' + input_html + ' ' + ' ' ; } }) }) }) var chk_rule = false; WSAIO.quantity_control.find(function(e,r){ if( e.applies_to != 'variants'){ chk_rule = true; } }); if(!chk_rule){ var moq_remaining_variants = []; for(var i = 0 ;i< moq_product.variants.length; i++){ for(var ii = 0 ;ii< ids.length; ii++){ if(moq_product.variants[i].id == ids[ii]){ moq_remaining_variants.push(moq_product.variants[i]) } } } if(moq_remaining_variants.length){ $(moq_remaining_variants).each(function(e){ var message = ''; var row = moq_remaining_variants[e]; var _qtyMin = parseInt(0), _qtyMax = 0, _qtyInc = 1,_qtyDefault = 0 ; var variant_inventory_info = default_product_variant.find(function(x){return x.variant_id== row.id}); var qty__attrs = ''; if(config_param.variant_inventory_info == undefined){ qty__attrs = 'class="waio_qty-input waio_qty-input__applicable" template="'+config_param.template+'" is_table="'+table_rules.selector_for_individual_variant+'" data-method="'+_fLavel+'" data-min="'+_qtyMin+'" data-max="'+_qtyMax+'" data-default="'+_qtyDefault+'" data-inc="'+_qtyInc+'" parent_element="'+config_param.parent_product_selector+'" '; }else{ qty__attrs = 'class="waio_qty-input waio_qty-input__applicable" template="'+config_param.template+'" is_table="'+table_rules.selector_for_individual_variant+'" variant_inventory_management="'+config_param.variant_inventory_info.variant_inventory_management+'" variant_inventory_policy="'+config_param.variant_inventory_info.variant_inventory_policy+'" variant_inventory_quantity="'+config_param.variant_inventory_info.variant_inventory_quantity+'" data-method="'+_fLavel+'" data-min="'+_qtyMin+'" data-max="'+_qtyMax+'" data-default="'+_qtyDefault+'" data-inc="'+_qtyInc+'" parent_element="'+config_param.parent_product_selector+'" '; } if(row.available){ input_html = ''+ '

                                                ' + ' ' + ' ' + ' ' + '

                                                '+message+'

                                                '; }else{ input_html = 'Out of stock'; } var img = moq_product.featured_image; if(row.featured_image != null) img = row.featured_image.src; rows_data +=''+ ' ' + ' ' + '

                                                ' + '

                                                ' + ' #Dark Brown Balayage Genius Weft Extensions (77) ' + '

                                                ' + ' ' + '

                                                ' + '

                                                '+row.title+'

                                                ' + ' ' + '

                                                ' + '

                                                ' + ' ' + ' ' + input_html + ' ' + ' ' ; }) } } } }else{ var rule = table_rules[0]; var rows_data = ''; if(rule.applies_to == "variants"){ $(moq_product.variants).each(function(e){ var message = rule.message; var row = moq_product.variants[e]; var _qtyMin = parseInt(0), _qtyMax = 0, _qtyInc = 1,_qtyDefault = 0 ; var _fLavel = rule.minimum_quantity_method; var _indx = rule.variants.findIndex(function(e){ return e.id == row.id}) if(_indx > -1){ check_if_applicable = true; var _qtyMin = parseInt(rule.minimum_quantity), _qtyMax = rule.maximum_quantity==""?0:rule.maximum_quantity, _qtyInc = parseInt(rule.quantity_increment) || 1, _qtyDefault = parseInt(rule.default_quantity) || 0; }else{ message = ''; } var variant_inventory_info = default_product_variant.find(function(x){return x.variant_id== row.id}); var qty__attrs = ''; if(config_param.variant_inventory_info == undefined){ qty__attrs = 'class="waio_qty-input waio_qty-input__applicable" template="'+config_param.template+'" is_table="'+rule.selector_for_individual_variant+'" data-method="'+_fLavel+'" data-min="'+_qtyMin+'" data-max="'+_qtyMax+'" data-default="'+_qtyDefault+'" data-inc="'+_qtyInc+'" parent_element="'+config_param.parent_product_selector+'" '; }else{ qty__attrs = 'class="waio_qty-input waio_qty-input__applicable" template="'+config_param.template+'" is_table="'+rule.selector_for_individual_variant+'" variant_inventory_management="'+config_param.variant_inventory_info.variant_inventory_management+'" variant_inventory_policy="'+config_param.variant_inventory_info.variant_inventory_policy+'" variant_inventory_quantity="'+config_param.variant_inventory_info.variant_inventory_quantity+'" data-method="'+_fLavel+'" data-min="'+_qtyMin+'" data-max="'+_qtyMax+'" data-default="'+_qtyDefault+'" data-inc="'+_qtyInc+'" parent_element="'+config_param.parent_product_selector+'" '; } if(row.available){ input_html = ''+ '

                                                ' + ' ' + ' ' + ' ' + '

                                                '+message+'

                                                '; }else{ input_html = 'Out of stock'; } var img = moq_product.featured_image; if(row.featured_image != null) img = row.featured_image.src; rows_data +=''+ ' ' + ' ' + '

                                                ' + '

                                                ' + ' #Dark Brown Balayage Genius Weft Extensions (78) ' + '

                                                ' + ' ' + '

                                                ' + '

                                                '+row.title+'

                                                ' + ' ' + '

                                                ' + '

                                                ' + ' ' + ' ' + input_html + ' ' + ' ' ; }) }else{ check_if_applicable = true; $(moq_product.variants).each(function(e){ var row = moq_product.variants[e]; var _fLavel = rule.minimum_quantity_method; var _qtyMin = parseInt(rule.minimum_quantity), _qtyMax = rule.maximum_quantity==""?0:rule.maximum_quantity, _qtyInc = parseInt(rule.quantity_increment) || 1, _qtyDefault = parseInt(rule.default_quantity) || 0; var variant_inventory_info = default_product_variant.find(function(x){return x.variant_id== row.id}); var qty__attrs = ''; if(config_param.variant_inventory_info == undefined){ qty__attrs = 'class="waio_qty-input waio_qty-input__applicable" template="'+config_param.template+'" is_table="'+rule.selector_for_individual_variant+'" data-method="'+_fLavel+'" data-min="'+_qtyMin+'" data-max="'+_qtyMax+'" data-default="'+_qtyDefault+'" data-inc="'+_qtyInc+'" parent_element="'+config_param.parent_product_selector+'" '; }else{ qty__attrs = 'class="waio_qty-input waio_qty-input__applicable" template="'+config_param.template+'" is_table="'+rule.selector_for_individual_variant+'" variant_inventory_management="'+config_param.variant_inventory_info.variant_inventory_management+'" variant_inventory_policy="'+config_param.variant_inventory_info.variant_inventory_policy+'" variant_inventory_quantity="'+config_param.variant_inventory_info.variant_inventory_quantity+'" data-method="'+_fLavel+'" data-min="'+_qtyMin+'" data-max="'+_qtyMax+'" data-default="'+_qtyDefault+'" data-inc="'+_qtyInc+'" parent_element="'+config_param.parent_product_selector+'" '; } var message = rule.message; var img = moq_product.featured_image; if(row.featured_image != null) img = row.featured_image.src; if(row.available){ input_html = ''+ '

                                                ' + ' ' + ' ' + ' ' + '

                                                '+message+'

                                                '; }else{ input_html = 'Out of stock'; } rows_data +=''+ ' ' + ' ' + '

                                                ' + '

                                                ' + ' #Dark Brown Balayage Genius Weft Extensions (79) ' + '

                                                ' + ' ' + '

                                                ' + '

                                                '+row.title+'

                                                ' + ' ' + '

                                                ' + '

                                                ' + ' ' + ' ' + input_html + ' ' + ' ' ; }) } } if(check_if_applicable){ var tableHTML = ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + rows_data+ ' ' + '
                                                VariantsQty
                                                ' ; return tableHTML; }else{ return ''; } } function disable_Buy_it_now(){ var is_show = setInterval(function(){ if($('.shopify-payment-button__button').length > 0){ $('.shopify-payment-button__button').addClass('checkout-disabled').attr('disabled','disabled'); clearInterval(is_show); } },500) } function update_qof_qty(){ if(window.location.href.indexOf('/pages/') > -1){ var count = 0; $(".quantitytd input").each(function(){ var _this = $(this); if(_this.css('display') != 'none' && _this.parents('.quantitytd').find('.qtydiv').css('display') != 'none'){ count = count + parseInt($(this).val()); } if(_this.parents('.waio_moq_qty').length){ count = count + parseInt(_this.parents('.waio_moq_qty').find('input').val()); } }); if($(".update_btn").length){ $(".update_btn .ttl_qty").remove(); $(".update_btn").append(" ("+count+")"); } } } // qty change events function qty_function(){ // plusminus change function disable_Buy_it_now(); $('.waio_qty--btn svg,.waio_qty--btn').on('click', function(e) { e.preventDefault(); e.stopImmediatePropagation(); e.stopPropagation(); var _this = $(this); var $input = _this.parents('.waio_qty-input').find('input'); var val = parseInt($input.val()); var qty_wrapper = $input.parents('.waio_qty-input'); var _qMin = parseInt(qty_wrapper.attr('data-min')), _qMax = parseInt(qty_wrapper.attr('data-max')), _qInc = parseInt(qty_wrapper.attr('data-inc')); _qdefault = parseInt(qty_wrapper.attr('data-default')); var _fLavel = qty_wrapper.attr('data-method'); var is_table_enable = qty_wrapper.attr('is_table'); var product_id = $input.attr('product_id'); var parent_element = qty_wrapper.attr('parent_element'); var variant_inventory_management = qty_wrapper.attr('variant_inventory_management'), variant_inventory_policy = qty_wrapper.attr('variant_inventory_policy'), variant_inventory_quantity = parseInt(qty_wrapper.attr('variant_inventory_quantity')), data_variant = parseInt(qty_wrapper.attr('data-variant')); var available_qty_msg = ''; var qty_type = 'plus'; if(_this.hasClass('waio__less')){ qty_type = 'minus'; } if(qty_type == 'plus'){ if(_fLavel == 'variant_level'){ val = (val-(val%_qInc))+_qInc; }else{ val = val + 1; } }else{ if(val != 0){ if(_fLavel == 'variant_level'){ if(val%_qInc === 0) val = val-_qInc; else val = val-(val%_qInc); }else{ val = val - 1; } } } if (val < _qMin && _fLavel == 'variant_level') { // val = 0; } if (val > _qMax && _qMax!==0) { val = _qMax; } // stop increament if inventory not available further if(variant_inventory_management != undefined && variant_inventory_management != ''){ if(variant_inventory_policy == 'deny'){ if(val > variant_inventory_quantity){ val = variant_inventory_quantity; available_qty_msg = 'Only '+val+' quantity available in stock'; } } } if($('.available_qty_msg').length == 0 && available_qty_msg != ''){ qty_wrapper.after('

                                                '+available_qty_msg+'

                                                '); setTimeout(function(){$('.available_qty_msg').remove();},3500) } $input.val(val); if(is_table_enable == 'false'){ if(_this.parents(parent_element).find('[name="quantity"]').length){ _this.parents(parent_element).find('[name="quantity"]').val(val) } } // enable disable buy now button var check_MOQ_applied = [{ '_qtyDefault':_qdefault, '_qtyInc':_qInc, '_qtyMin':_qMin, '_qtyMax':_qMax }] if(typeof check_MOQ_applied != 'undefined' && check_MOQ_applied.length > 0 && is_table_enable != 'true'){ check_restriction_Buynow($input.val(),check_MOQ_applied); } update_qof_qty(); }) // input change function $('.input_moq').on('change', function(e) { e.preventDefault(); e.stopImmediatePropagation(); e.stopPropagation(); var _this = $(this); var $input = _this; if($input.val().trim()=='') return; var val = parseInt($input.val()); var qty_wrapper = $input.parents('.waio_qty-input'); var _qMin = parseInt(qty_wrapper.attr('data-min')), _qMax = parseInt(qty_wrapper.attr('data-max')), _qInc = parseInt(qty_wrapper.attr('data-inc')); _qdefault = parseInt(qty_wrapper.attr('data-default')); var _fLavel = qty_wrapper.attr('data-method'); var product_id = $input.attr('product_id'); var parent_element = qty_wrapper.attr('parent_element'); var is_table_enable = qty_wrapper.attr('is_table'); var variant_inventory_management = qty_wrapper.attr('variant_inventory_management'), variant_inventory_policy = qty_wrapper.attr('variant_inventory_policy'), variant_inventory_quantity = parseInt(qty_wrapper.attr('variant_inventory_quantity')); var available_qty_msg = ''; if (val < _qMin) { // val = 0; }else if (val > _qMax && _qMax!==0) { val = _qMax; } else{ if(_fLavel == 'variant_level'){ if(val%_qInc !== 0){ val = (val-(val%_qInc))+_qInc; } }else{ val = val; } } // stop increament if inventory not available further if(variant_inventory_management != undefined && variant_inventory_management != ''){ if(variant_inventory_policy == 'deny'){ if(val > variant_inventory_quantity){ val = variant_inventory_quantity; available_qty_msg = 'Only '+val+' quantity available in stock'; } } } if($('.available_qty_msg').length == 0 && available_qty_msg != ''){ qty_wrapper.after('

                                                '+available_qty_msg+'

                                                '); setTimeout(function(){$('.available_qty_msg').remove();},3500) } if(val >= 0){ $input.val(val); if(is_table_enable == 'false'){ if(_this.parents(parent_element).find('[name="quantity"]').length){ _this.parents(parent_element).find('[name="quantity"]').val(val) } } } // enable disable buy now button var check_MOQ_applied = [{ '_qtyDefault':_qdefault, '_qtyInc':_qInc, '_qtyMin':_qMin, '_qtyMax':_qMax }] if(typeof check_MOQ_applied != 'undefined' && check_MOQ_applied.length > 0 && is_table_enable != 'true'){ check_restriction_Buynow($input.val(),check_MOQ_applied); } update_qof_qty() }) function check_restriction_Buynow(qty,check_MOQ_applied){ if((qty%check_MOQ_applied[0]._qtyInc) == 0 && qty >= check_MOQ_applied[0]._qtyMin){ if(check_MOQ_applied[0]._qtyMax != 0 && qty <= check_MOQ_applied[0]._qtyMax){ $('.shopify-payment-button__button').removeClass('checkout-disabled').removeAttr('disabled') }else{ $('.shopify-payment-button__button').removeClass('checkout-disabled').removeAttr('disabled') } }else{ $('.shopify-payment-button__button').addClass('checkout-disabled').attr('disabled','disabled') } } var check_MOQ_applied = MOQ_applied; if(typeof check_MOQ_applied != 'undefined' && check_MOQ_applied.length > 0){ check_restriction_Buynow(check_MOQ_applied[0]._qtyDefault,check_MOQ_applied); } } // append add to cart button function function append_add_to_cart_btn(moq_product,config_param,variant,is_for_table){ if(!is_for_table){ var _atcBtn = ''+ ' ' ; if(config_param.template != 'page'){ $('.wsaio_'+moq_product.id).parents(config_param.parent_product_selector).find(config_param.add_to_cart).siblings('.moq_atc').remove(); $('.wsaio_'+moq_product.id).parents(config_param.parent_product_selector).find(config_param.add_to_cart).before(_atcBtn); }else{ $(config_param.parent_product_selector+'[vid="'+variant.id+'"]').find(config_param.add_to_cart).siblings('.moq_atc').remove(); $(config_param.parent_product_selector+'[vid="'+variant.id+'"]').find(config_param.add_to_cart).before(_atcBtn); $(config_param.parent_product_selector+'[vid="'+variant.id+'"]').find(config_param.add_to_cart+'[type="submit"]').hide(); } }else{ var _atcBtn = ''+ ' ' ; $('.wsaio_'+moq_product.id).parents(config_param.parent_product_selector).find(config_param.add_to_cart).siblings('.moq_atc').remove(); $('.wsaio_'+moq_product.id).parents(config_param.parent_product_selector).find(config_param.add_to_cart).before(_atcBtn); } $('.wsaio_'+moq_product.id).parents(config_param.parent_product_selector).find(config_param.add_to_cart).hide(); } // Add to cart button event when variant table is enable function Table_addToCart_event(moq_product,config_param,variant){ $('[name="moq_addToCart_forTable"]').on('click',function(e){ e.preventDefault(); e.stopImmediatePropagation(); e.stopPropagation(); var _this = $(this); var _queue = []; _this.find('.moq_loading-spinner').show(); _this.find('[data-waio-atc-text]').hide(); var error_found = false; $('.waio_moq_tableError').remove(); if(_this.parents('form').find('.waio_qty-input').length){ _this.parents('form').find('.waio_qty-input').each(function(){ var $this=$(this); var error_string = ''; var _value = parseInt($this.find('input').val()); var _qMin = parseInt($this.attr('data-min')), _qMax = parseInt($this.attr('data-max')), _qInc = parseInt($this.attr('data-inc')); var _fLavel = $this.attr('data-method'); if(_fLavel != 'selected_product_level' && _fLavel != "product_level" && _value != 0){ if(_value > _qMax && _qMax != 0){ error_found = true; if(error_string == '')error_string = 'Must be maximum '+_qMax+' items'; else error_string = error_string + ' AND Must be maximum '+_qMax+' items'; } if(_value < _qMin){ error_found = true; if(error_string == '')error_string = 'Must be minimum '+_qMin+' items'; else error_string = error_string + ' AND Must be minimum '+_qMin+' items'; } if(_value % _qInc !==0){ error_found = true; if(error_string == '')error_string = 'Must be multiple of '+_qInc; else error_string = error_string + ' AND Must be multiple of '+_qInc; } } if(_value>0){ _queue.unshift({ quantity:_value, id: $this.find('input').attr('data-qc-variant') }); } if(error_string != ''){ $this.after('

                                                '+error_string+'

                                                0){ any_item_added = true; var item = atc_queue.pop(); $.ajax({ type: 'POST', url: '/cart/add.js', cache: false, dataType: 'json', data: item, success: function(result){ _moveAlong(atc_queue); }, error: function(err){ console.error(err); if(err.status && err.status===422){ _moveAlong(atc_queue); } } }); }else{ if(any_item_added)_this.parents('.moq_atc').find('.moq_success_msg').show(); setTimeout(function(){_this.parents('.moq_atc').find('.moq_success_msg').hide();},5000) _this.find('[data-waio-atc-text]').show(); _this.find('.moq_loading-spinner').hide(); } } if(!error_found){ _moveAlong(_queue); }else{ _this.find('.moq_loading-spinner').hide(); } }) } // Add to cart button event without variant table is enable function without_table_addToCart_event(moq_product,config_param,variant){ $('[name="moq_addToCart"]').on('click',function(e){ e.preventDefault(); e.stopImmediatePropagation(); e.stopPropagation(); var _this = $(this); _this.find('.moq_loading-spinner').show(); _this.find('[data-waio-atc-text]').hide(); var qty_div = _this.parents(_this.attr('parent_select')).find('.waio_qty-input'); var _qMin = parseInt(qty_div.attr('data-min')), _qMax = parseInt(qty_div.attr('data-max')), _qInc = parseInt(qty_div.attr('data-inc')); var _fLavel = qty_div.attr('data-method'); var template = qty_div.attr('template'); var error_found = false; var $input = _this.parents(_this.attr('parent_select')).find('.input_moq'); var qty = $input.val(); var error_string = ''; if(qty > _qMax && _qMax != 0){ error_found = true; if(error_string == '')error_string = 'You cannot buy more than '+_qMax+' items'; else error_string = error_string + ' AND You cannot buy more than '+_qMax+' items'; } if(qty < _qMin){ if(_fLavel != 'selected_product_level' && _fLavel != "product_level"){ error_found = true; if(error_string == '')error_string = 'You cannot buy less than '+_qMin+' items'; else error_string = error_string + ' AND You cannot buy less than '+_qMin+' items'; } } if(qty%_qInc !==0){ if(_fLavel != 'selected_product_level' && _fLavel != "product_level"){ error_found = true; if(error_string == '')error_string = 'All quantities must be multiple of '+_qInc; else error_string = error_string + ' AND All quantities must be multiple of '+_qInc; } } _this.siblings('.waio__ErrorMsg').remove(); if(!error_found){ if(template != 'page'){ _this.parents(_this.attr('parent_select')).find(config_param.add_to_cart).trigger('click'); }else{ _this.parents(_this.attr('parent_select')).find(config_param.add_to_cart+'[type="submit"]').trigger('click'); } }else{ _this.after('

                                                '+error_string+'

                                                0 && qc_ctrl[0].selector_for_individual_variant){ if(qc_ctrl[0].selector_for_individual_variant && moq_product.id == qc_ctrl[0].productId){ table_rules = qc_ctrl; var variant_table_html = ''; if(qc_ctrl.length > 1){ variant_table_html = prepare_variant_table_html(table_rules,moq_product,config_param,'merge_rules'); }else{ variant_table_html = prepare_variant_table_html(table_rules,moq_product,config_param,'single_rule'); } if(variant_table_html != ''){ // append add to cart button if(config_param.add_to_cart != '' && config_param.parent_product_selector != ''){ append_add_to_cart_btn(moq_product,config_param,variant,true); $('.wsaio_'+moq_product.id).parents(config_param.parent_product_selector).find(config_param.removeableSelector_qty).hide(); $('.wsaio_'+moq_product.id).parents(config_param.parent_product_selector).find(config_param.removeableSelector_variants).hide(); Table_addToCart_event(moq_product,config_param,variant); }else{ waio_moq_log('waio moq some selectors missing 1') } // append qty html if(config_param.add_to_cart != '' && config_param.parent_product_selector != ''){ $('.wsaio_'+moq_product.id).parents(config_param.parent_product_selector).find('.moq_atc').siblings('.waio__qc-table,.waio_moq_qty').remove(); $('.wsaio_'+moq_product.id).parents(config_param.parent_product_selector).find('.moq_atc').before(variant_table_html); $('.wsaio_'+moq_product.id).parents(config_param.parent_product_selector).find(config_param.removeableSelector_qty).hide(); qty_function(); }else{ waio_moq_log('waio moq some selectors missing 2') } } } }else{ var rule = qc_ctrl[0] var variant = moq_product.variants.find(function(x){return x.id==_selected_variant_id}); var variant_inventory_info = default_product_variant.find(function(x){return x.variant_id== variant.id}); config_param['variant_inventory_info'] = variant_inventory_info; var Applicable = qc_ctrl.find(function(x){return x.applies_to!="variants"||(x.variants && x.variants.findIndex(function(y){return parseInt(y.id)===parseInt(variant.id)})!==-1)}); if(typeof Applicable !== "undefined"){ // append add to cart button if(config_param.add_to_cart != '' && config_param.parent_product_selector != ''){ append_add_to_cart_btn(moq_product,config_param,variant,Applicable.selector_for_individual_variant); without_table_addToCart_event(moq_product,config_param,variant); }else{ waio_moq_log('waio moq some selectors missing 1') } var qty_html = prepare_individual_qty_html(config_param,Applicable,variant,moq_product); // append qty html if(config_param.add_to_cart != '' && config_param.parent_product_selector != ''){ if(config_param.template == 'page'){ if($(config_param.parent_product_selector+'[vid="'+variant.id+'"]').find(config_param.removeableSelector_qty).css('display') != 'none'){ $(config_param.parent_product_selector+'[vid="'+variant.id+'"]').find(config_param.removeableSelector_qty).siblings('.waio_moq_qty').remove(); $(config_param.parent_product_selector+'[vid="'+variant.id+'"]').find(config_param.removeableSelector_qty).before(qty_html); $(config_param.parent_product_selector+'[vid="'+variant.id+'"]').find(config_param.removeableSelector_qty).hide(); } }else{ $('.wsaio_'+moq_product.id).parents(config_param.parent_product_selector).find('.moq_atc').siblings('.waio_moq_qty,.waio__qc-table').remove(); $('.wsaio_'+moq_product.id).parents(config_param.parent_product_selector).find('.moq_atc').before(qty_html); $('.wsaio_'+moq_product.id).parents(config_param.parent_product_selector).find(config_param.removeableSelector_qty).hide(); } qty_function(); }else{ waio_moq_log('waio moq some selectors missing 2') } } } } }else{ $('.wsaio_'+config.productId).parents(config.parent_product_selector).find(config.add_to_cart).show(); $('.wsaio_'+config.productId).parents(config.parent_product_selector).find('.waio_moq_qty,.moq_atc').remove(); $('.wsaio_'+config.productId).parents(config.parent_product_selector).find(config.removeableSelector_qty).show(); $('.shopify-payment-button__button').removeClass('checkout-disabled').removeAttr('disabled') } }) } // ============================================================================================================ // ---------------------------------------------------------------------------------------- // ============================for cart page function start==================================================== WSAIO.quantityControllers = function(config, callback){ if("undefined"===typeof config)var config={}; null===config&&(config={}); if(config.productHandle){ WSAIO.getProductByHandle(config.productHandle, function(e,product){ if(product){ config.productId = product.id; if(!config.variantId){ try{ config.variantId = product.variants[0].id; }catch(e){log(e)} } } WSAIO.quantity_controllers(config, callback); }); } else{ WSAIO.quantity_controllers(config, callback); } } function quantityControls__carts(config, callback){ if("undefined"===typeof config)var config={}; null===config&&(config={}); var elementSelector = config.elementSelector || ".responsive-table__row"; var variantIdAttribute = config.variantIdAttribute || "data-variant-id"; var productIdAttribute = config.productIdAttribute || "data-product-id"; if($(elementSelector).length > 0){ $(elementSelector).each(function(e,a){ var $variantId = $(this).attr(variantIdAttribute); var $productId = $(this).attr(productIdAttribute); config.variantId = $variantId; if($productId){ config.productId = $productId; } WSAIO.quantityControllers(config, function(e,quantity_controls){ if(e){ log(e); callback(e, null); } else{ callback(null, { quantity_controls: quantity_controls, elementSelector: "["+variantIdAttribute+"='"+$variantId+"']" }); }; }); }); } else{ callback("elementSelector could not found any nodeElement. Config elementSelector for Quantity controller to work on cart template.", null); } } WSAIO.cartQuantityControllers = function(){ WSAIO.loadcartQuantityControllers() } WSAIO.loadcartQuantityControllers = function(config,callback){ quantityControls__carts(config,callback) } $(document).ready(function(){ if(typeof WSAIO != 'undefined'){ WSAIO.loadcartQuantityControllers = function(config,callback){ if("undefined"===typeof config)var config={}; window.MOQ_alert = ''; window.disable_checkout_MOQ = false; null===config&&(config={}); var _errorMsg = ''; var _limitsUl = $('
                                                  ') var checkoutSelector = config.checkoutSelector || WSAIO.checkout_selector; var selected_product_level_rules = []; var cart__items = window.cart_data.items; cart__items.forEach(function(cart__item, i){ var $variantId = cart__item.variant_id; var $productId = cart__item.product_id; config.variantId = $variantId; config.productId = $productId; WSAIO.quantityControllers(config, function(e,quantity_controls){ if(e){ log(e); } else{ var qty_ctrl = quantity_controls.quantity_controls; var max_qty = 0; var _qtyInc = 1; var _qtyMin = 0; var _qtyMax = 0; var _qtyDefault = 1; var _fLavel = 'variant_level'; if(qty_ctrl.length>0){ //adding item var Applicable = qty_ctrl.find(function(x){return x.applies_to!="variants"||(x.variants && x.variants.findIndex(function(y){return parseInt(y.id)===parseInt($variantId)})!==-1)}); if(typeof Applicable !== "undefined" && Applicable.minimum_quantity_method == "selected_product_level"){ Applicable.mul_group = Applicable.quantity_increment; selected_product_level_rules.push(Applicable); }else{ if(typeof Applicable !== "undefined"){ _fLavel = Applicable.minimum_quantity_method; max_qty = Applicable.maximum_quantity==""?0:Applicable.maximum_quantity; _qtyInc = parseInt(Applicable.quantity_increment) || 1; _qtyMin = parseInt(Applicable.minimum_quantity) || 0; _qtyMax = parseInt(max_qty) || 0; if(Applicable.default_quantity == 0 && Applicable.default_quantity != ''){ _qtyDefault = parseInt(Applicable.default_quantity); }else{ _qtyDefault = parseInt(Applicable.default_quantity) || 1; } var qty = cart__item.quantity; var proruct_qty = 0; var _title = 'Variant \"'+cart__item.title+'\"'; var _errorMsg = ''; if(_fLavel=='product_level'){ qty=0; cart__items.forEach(function(x){ if(x.product_id===cart__item.product_id){ qty+=x.quantity; config.variantId = x.variant_id; config.productId = x.product_id; WSAIO.quantityControllers(config, function(e,qc){ if(e){ log(e); } else{ var Applicable2 = qc.quantity_controls.find(function(y){return y.minimum_quantity_method=="variant_level" && (y.variants && y.variants.findIndex(function(z){return parseInt(z.id)===parseInt(x.variant_id)})!==-1)}); if(typeof Applicable2 === "undefined"){ proruct_qty+=x.quantity; } } }); } }); _title = 'Product \"'+cart__item.product_title+'\"'; } if (qty < _qtyMin) { _errorMsg=_title+' cannot be less than '+_qtyMin; } else if (qty > _qtyMax && _qtyMax!==0) { _errorMsg=_title+' cannot be more than '+_qtyMax; } else { if(_fLavel=='product_level'){ if(proruct_qty%_qtyInc !== 0) { _errorMsg=_title+' must be multiple of '+_qtyInc; } } else{ if(qty%_qtyInc !== 0) { _errorMsg=_title+' must be multiple of '+_qtyInc; } } } if(_errorMsg != ''){ if(_fLavel=='product_level'){ if(_limitsUl.find('li[data-product="'+cart__item.product_id+'"]').length == 0){ _limitsUl.append('
                                                1. '+_errorMsg+'
                                                2. '); window.disable_checkout_MOQ = true; } } else{ _limitsUl.append('
                                                3. '+_errorMsg+'
                                                4. '); window.disable_checkout_MOQ = true; } } } } } } }) }) if((WSAIO.checkout_message!='' && WSAIO.disable_checkout) || !WSAIO.checkout_requirements){ if(typeof WSAIO.checkout_message != 'undefined' && WSAIO.default_limit){ if(typeof WSAIO.allow_normal_checkout__OC == 'undefined' || WSAIO.allow_normal_checkout__OC == false){ _limitsUl.append('
                                                5. '+WSAIO.checkout_message+'
                                                6. '); }else{ _limitsUl.append('
                                                7. '+WSAIO.checkout_message+'
                                                8. '); _limitsUl.append('
                                                9. Fulfill minimum order requirements to avail discount
                                                10. '); } window.disable_checkout_MOQ = true; } } window.MOQ_alert = '

                                                  Order requirements not met.

                                                    '+_limitsUl.html()+'
                                                  '; multi_level_check(); function multi_level_check(){ if(selected_product_level_rules.length > 0){ var Total_qty = 0; var _qtyInc = 1; var _qtyMin = 0; var _qtyMax = 0; var _qtyDefault = 1; var group_value = []; $(selected_product_level_rules).each(function(e){ if(group_value.indexOf(selected_product_level_rules[e].mul_group) == -1){ group_value.push(selected_product_level_rules[e].mul_group) } }) $(group_value).each(function(ee){ Total_qty = 0; _errorMsg = ''; var cart__items = window.cart_data.items; cart__items.forEach(function(cart__item, i){ $(selected_product_level_rules).each(function(e){ if(selected_product_level_rules[e].variantId == cart__item.variant_id && selected_product_level_rules[e].mul_group == group_value[ee]){ Total_qty+=parseInt(cart__item.quantity); _qtyInc = parseInt(selected_product_level_rules[e].quantity_increment); _qtyMax = parseInt(selected_product_level_rules[e].maximum_quantity); _qtyDefault = parseInt(selected_product_level_rules[e].default_quantity); _qtyMin = parseInt(selected_product_level_rules[e].minimum_quantity); } }) }) if(Total_qty < _qtyMin ){ _errorMsg='Total Quantity cannot be less than '+_qtyMin; } if(Total_qty % _qtyInc !== 0){ _errorMsg='Total Quantity must be multiple of '+_qtyInc; } if(Total_qty > _qtyMax){ _errorMsg='Total Quantity cannot be more than '+_qtyMax; } if(_errorMsg != ''){ _limitsUl.append('
                                                11. '+_errorMsg+'
                                                12. '); window.disable_checkout_MOQ = true; } apply_codition() function apply_codition(){ if((WSAIO.checkout_message!='' && WSAIO.disable_checkout) || !WSAIO.checkout_requirements){ if(typeof WSAIO.checkout_message != 'undefined' && WSAIO.default_limit){ if(typeof WSAIO.allow_normal_checkout__OC == 'undefined' || WSAIO.allow_normal_checkout__OC == false){ _limitsUl.append('
                                                13. '+WSAIO.checkout_message+'
                                                14. '); }else{ _limitsUl.append('
                                                15. '+WSAIO.checkout_message+'
                                                16. '); _limitsUl.append('
                                                17. Fulfill minimum order requirements to avail discount
                                                18. '); } window.disable_checkout_MOQ = true; } } window.MOQ_alert = '

                                                  Order requirements not met.

                                                    '+_limitsUl.html()+'
                                                  '; } }) } if ("function" === typeof callback) { callback('done') } } if(WSAIO.run_checkout != undefined){ WSAIO.run_checkout(); } } } }) //============================for cart page function end========================================// ========================== Developers integeration function ================================ $(document).ready(function(){ setTimeout(function(){ $('.col_clct').each(function(){ var clctn_dta = JSON.parse($(this).attr("clct")); for(var i=0;i -1){ varaint_inventory_management = default_product_variant[_index].variant_inventory_management; varaint_inventory_policy = default_product_variant[_index].variant_inventory_policy; } WSAIO.qtyControl({ template: 'product', item_price_selector: $(WSAIO.product_parent_grid_selector).find(WSAIO.product_price_selector), product: current_product, productId: current_product.id, variantId:$('[name="id"]').val(), functionality: 'variant_level', add_to_cart:'[name="add"].add_to_cart.global-button.global-button--primary-gold.ajax-submit', varaint_inventory_management:varaint_inventory_management, // if not available then leave it empty varaint_inventory_policy:varaint_inventory_policy, // if not available then leave it empty parent_product_selector:'.product__details--product-page', removeableSelector_qty: '.purchase-details__quantity.product-quantity-box', removeableSelector_variants:'.swatch_options,.swatch--wrapper' }) // product variant change function $('.js.product-form__input,.product-form__input--dropdown,.swatch_options,.swatch--wrapper').on("change", function () { console.log("moq varianttt") setTimeout(function () { WSAIO.qtyControl({ template: 'product', item_price_selector: $(WSAIO.product_parent_grid_selector).find(WSAIO.product_price_selector), product: current_product, productId: current_product.id, variantId:$('[name="id"]').val(), functionality: 'variant_level', add_to_cart:'[name="add"].add_to_cart.global-button.global-button--primary-gold.ajax-submit', parent_product_selector:'.product__details--product-page', removeableSelector_qty: '.purchase-details__quantity.product-quantity-box', removeableSelector_variants:'.swatch_options,.swatch--wrapper' }) }, 1500); }); } } // Quick view function var isQuickViewOpen = false; var _intv = setInterval(function () { if ($('.product--stacked').parents('.quick-add-modal__content-info').length > 0 && isQuickViewOpen == false) { isQuickViewOpen = true; setTimeout(function () { var Vid=$('.product--stacked [name="id"]').val(); var handle = $('.product--stacked').find('product-info a.product__title').attr('href'); jQuery.getJSON(handle+'.js', function(product) { $('.product--stacked').find('.price').addClass('wsaio_'+product.id) WSAIO.qtyControl({ template: 'product', item_price_selector: $(WSAIO.product_parent_grid_selector).find(WSAIO.product_price_selector), product: product, productId: product.id, variantId: Vid, functionality: 'variant_level', add_to_cart:'[name="add"]', parent_product_selector:'.product--stacked', removeableSelector_qty: '.product-form__quantity', removeableSelector_variants:'variant-radios' }) }) }, 200); //Quick Variant change $('.product--stacked .js.product-form__input,.product--stacked .product-form__input--dropdown').on("change", function () { setTimeout(function () { var Vid=$('.product--stacked [name="id"]').val(); var handle = $('.product--stacked').find('product-info a.product__title').attr('href'); jQuery.getJSON(handle+'.js', function(product) { $('.product--stacked').find('.price').addClass('wsaio_'+product.id) WSAIO.qtyControl({ template: 'product', item_price_selector: $(WSAIO.product_parent_grid_selector).find(WSAIO.product_price_selector), product: product, productId: product.id, variantId: Vid, functionality: 'variant_level', add_to_cart:'[name="add"]', parent_product_selector:'.product--stacked', removeableSelector_qty: '.product-form__quantity', removeableSelector_variants:'variant-radios' }) }) }, 1500); }); } else if (!$('.product--stacked').parents('.quick-add-modal__content-info').length > 0 && isQuickViewOpen == true) { isQuickViewOpen = false; } }, 500); $(WSAIO.collection_items_each_selector).each(function (index, item) { if (item.querySelector("a[href]") == null) { return false; } var handle = null; handle = item.querySelector("a[href]").getAttribute("href"); if (handle) { var product_handle = null, productIndex = -1; try{ if(handle.indexOf('/products/') > -1){ product_handle = handle.split('/products/')[1]; product_handle = product_handle.split('?')[0]; } } catch (e) {} if(product_handle){ jQuery.getJSON("/products/" + product_handle+".js", function (product) { item.querySelector(WSAIO.collection_item_price_selector).classList.add('wsaio_'+product.id) WSAIO.qtyControl({ template: 'collection', item_price_selector: item.querySelector(WSAIO.collection_item_price_selector), product: product, productId: product.id, variantId:product.variants[0].id, functionality: 'variant_level', add_to_cart:'.form [name="add"]', varaint_inventory_management:'', // if not available then leave it empty varaint_inventory_policy:'', // if not available then leave it empty parent_product_selector:'.grid__item', removeableSelector_qty: '.product-form__quantity', removeableSelector_variants:'variant-radios' }) }) } } }); },1500) }) window.addEventListener("load", function(){ setTimeout(function(){ if(typeof WSAIO != 'undefined'){ WSAIO.checkout_restriction = function(){ WSAIO.order_control(); WSAIO.cartQuantityControllers(); } WSAIO.load_checkout_restriction = function(){ WSAIO.order_control(); WSAIO.loadcartQuantityControllers(); } setTimeout(function(){ $('[name="updates[]"]').on('change',function(){ setTimeout(function(){ WSAIO.cartQuantityControllers(); },1000); }) },100); } },500) });
                                                  #Dark Brown Balayage Genius Weft Extensions (2024)
                                                  Top Articles
                                                  Latest Posts
                                                  Recommended Articles
                                                  Article information

                                                  Author: Rueben Jacobs

                                                  Last Updated:

                                                  Views: 6590

                                                  Rating: 4.7 / 5 (57 voted)

                                                  Reviews: 80% of readers found this page helpful

                                                  Author information

                                                  Name: Rueben Jacobs

                                                  Birthday: 1999-03-14

                                                  Address: 951 Caterina Walk, Schambergerside, CA 67667-0896

                                                  Phone: +6881806848632

                                                  Job: Internal Education Planner

                                                  Hobby: Candle making, Cabaret, Poi, Gambling, Rock climbing, Wood carving, Computer programming

                                                  Introduction: My name is Rueben Jacobs, I am a cooperative, beautiful, kind, comfortable, glamorous, open, magnificent person who loves writing and wants to share my knowledge and understanding with you.