Sexy And Elegant Black Glueless Long Hair Body Wave Wig
Sexy And Elegant Black Glueless Long Hair Body Wave Wig
Sexy And Elegant Black Glueless Long Hair Body Wave Wig
Sexy And Elegant Black Glueless Long Hair Body Wave Wig
Sexy And Elegant Black Glueless Long Hair Body Wave Wig
Sexy And Elegant Black Glueless Long Hair Body Wave Wig
Sexy And Elegant Black Glueless Long Hair Body Wave Wig
Sexy And Elegant Black Glueless Long Hair Body Wave Wig
Sexy And Elegant Black Glueless Long Hair Body Wave Wig
Sexy And Elegant Black Glueless Long Hair Body Wave Wig
Sexy And Elegant Black Glueless Long Hair Body Wave Wig
Sexy And Elegant Black Glueless Long Hair Body Wave Wig
Sexy And Elegant Black Glueless Long Hair Body Wave Wig
Sexy And Elegant Black Glueless Long Hair Body Wave Wig
Sexy And Elegant Black Glueless Long Hair Body Wave Wig
Sexy And Elegant Black Glueless Long Hair Body Wave Wig
Sexy And Elegant Black Glueless Long Hair Body Wave Wig
Sexy And Elegant Black Glueless Long Hair Body Wave Wig
Sexy And Elegant Black Glueless Long Hair Body Wave Wig
Sexy And Elegant Black Glueless Long Hair Body Wave Wig
Sexy And Elegant Black Glueless Long Hair Body Wave Wig
Sexy And Elegant Black Glueless Long Hair Body Wave Wig

Sexy And Elegant Black Glueless Long Hair Body Wave Wig

Price

$48.01 $29.99
Save $18.02
618 sold
Factory Outlet
Glueless Wig
Get Free Gifts
Any 3 Wigs Only $59.98
Any 5 Wigs Only $93.98
Any 7 Wigs Only $129.98

color

Please select a color

length

Please select a length

densityty

Please select a densityty

Quantity

Buy 3 Wigs Only $59 & Free Shipping
Ship within 24 Hours & 7-15 Days Delivery
30 Day Hassle-Free Returns & Exchanges
PayPal & Credit Card Secure Payment
/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);

We Provide the Following Promotions For Each Customer:

👉Place Your Order Now And We'll Give You One Or More Additional Free Gifts, According To The Order Amount, Buy More And Get More Gifts

🎁Including: Wig Net Cap, Wig Headband, Wig Double Sided Tape, False Eyelashes, Wig Elastic Band, Earrings, Ring, Bandana, Necklace, Storage Bag, Jewelry, Wig Care Tool Set, Beauty Supplies, Etc. (sent Randomly)

👉 90% of Customers Choose To buy 3 Or More for Greater Savings & Free Worldwide Shipping.
👉 All Products:

【2 Wigs Only $40】

【3 Wigs Only $59.98 (free shipping)】

【5 Wigs Only $93.98 (free shipping)】

【7 Wigs Only $129.98 (free shipping) (lowest price)

👉 Free shipping on orders over $59, plus free shipping on purchases of 3 or more.

👉 Buy 3 or More to Get a Mysterious Surprise Package, Waiting for the Surprise to Come.

HAIR TEXTURE Outre Melted Hairline Glueless Wig Or 100% Human Hair 
Hairline
Pre-plucked Natural Hairline
ITEMS PER PACKAGE 1 Pieces (1 Wigs Ship In 1 Package)+ Free Gifts( Wig Net Cap, Wig Headband....)
HAIR QUALITY 100% Virgin Hair, Tangle Free, No Shedding, Soft & Bouncy
HAIR SIZE Average Size With Adjustable Shoulder Straps (12-24 Inches, Can Be Adjusted According To Your Head, Please See The Picture Below For Detailed Size, Special Size Can Also Be Customized)
FEATURES Can be Restyled, Tangle Free, Shedding Free
PROCESSING TIME Need 24-48 Hours To Customize And Adjust The Goods, And Deliver To The Flight Distribution Center For Delivery
DELIVERY TIME Normal by FEDEX, 5-7 or 7-15 Working Days Arrive After Shipping
RETURN POLICY 30 Days No Reason Return & Exchange, With Hair Not Be Used

there are common questions about us, we reply here

1. We are real wig manufacturer, we have been in business for 20 years, we have professional production facilities and a large number of wig donors, the relevant qualifications and certificates are complete, you can check it in our official website

2. There are many fake merchants imitating our company in the market because we receive too many complaints from customers who are not shopping in our shop, these fake merchants use the same page as us, please pay attention to identify them and recognise our website: www.yourfirstwig.com

2.We sell in online shop mode,we send the goods directly to you from our warehouse in North America and factory in Asia,there is no other cost to us,that's why we can sell at a good price,usually the shipping time takes 7-15 days,support worldwide delivery!

3.We will hold promotional activities in certain festivals or seasons, during this period you can enjoy discounts, the details can be seen in the website, in addition, as long as you shop in our shop you can get multiple free gifts: https://www.yourfirstwig.com/collections/any-3-wigs-only-59-98-get-free-gift

OUR GUARANTEE

Due to manual measurement, please allow slight measurement deviation.
Due to the different display and lighting effects, the actual color of the product may be slightly different from the color shown on the picture.
✈Global Transportation ✈
Please note that transportation is already insured. We process orders between Monday and Friday. The order will be delivered within 3-5 working days after ordering. We do not ship on weekends.

🔒100% risk-free purchase🔥:
We ship to 127 countries, including the United States, Canada, the African Union and all European countries. On beida. We have 24/7/365 ticketing and email support. If you need help, please contact us.

📦 Insured Worldwide Shipping:

 Each order includes real-time tracking details and insurance coverage in the unlikely event that a package gets lost or stolen in transit.

🔒 Safe & Secure Checkouts: 

We use state-of-the-art SSL Secure encryption to keep your personal and financial information 100% protected.

👍Quality Assurance:

Our wig products factory has passed BSCI, SGS, ITS, ISO and other certifications, connecting the market with excellent quality and service

Color Description:

The color of the wig you received may be slightly different as the picture due to the diffierent color of the screen. And don't be afraid, the real wig is still very beautiful and you will get plenty of comments.


Customized Time:

Under normal circumstances, wigs in stock can be issued on the same day after the order is placed. Some Wig Needs About 2-4 business days To Customize.

We always guarantee a response within 24 hours ( Text & Email), Your satisfaction is the store missionContact Us: service@yourfirstwig.com

Wig Care Instructions: 

The proper care of your first wig will keep it looking new.

More tips:(https://www.yourfirstwig.com/pages/how-to-care-for-wig


Step 1: Use any wig shampoo specifically formulated to clean wigs for synthetic hair. In a sink or basin, mix a capful of wig shampoo in cool water and immerse your hairpiece. Let soak for a few minutes. Agitate gently and rinse in cool water until all shampoo is removed.


Step 2: Refill the sink or basin with clean, cool water and add a small amount of wig conditioner for synthetic hair. Immerse the hairpiece and agitate gently. DO NOT RINSE OUT THE CONDITIONER. Remove the hairpiece and gently comb through any tangles. Blot dry in a towel and then gently shake.


Step 3: Replace the hairnet and allow your hairpiece to air dry on a wig stand. DO NOT BRUSH OR STYLE THE HAIRPIECE UNTIL IT IS COMPLETELY DRY.


Step 4: Once dry, remove the hairnet; style as desired. STYLING TOOLS SHOULD NOT EXCEED 320 degrees F.

ANY QUESTIONS, PLEASE FEEL FREE TO CONTACT US!

SATISFACTION GUARANTEED, EASY REFUNDS, AND 30 DAYS MONEY BACK GUARANTEE 

If not everything that we say it is and you are not completely satisfied with it, then we will refund every penny of your money with no questions asked. That's more than a guarantee, that's a promise.

If you bought it and feel that it is not for you, don't worry. Just shoot us a message and we will make it right by offering you a replacement or refund. 100% Simple & Risk-Free process. 

Credit Card & Paypal Is Welcomed Here

🔒 Safe & Secure Checkouts:

We use state-of-the-art SSL Secure encryption to keep your personal and financial information 100% protected.

 Supplies Top Hair To Customers Around The World And Has Won The Trust Of Customers And Recognition. Honesty Is The Greatest Tag Of .

We will launch an APP soon, which can be downloaded in Apple Store and Google Store, so stay tuned   

PAYMENT METHODS

100% Safe & Secure Payment Online 

We welcome you to pay for your order with any payment method including credit card and PayPal. We take your privacy and security very seriously and we do not retain any of your payment information, therefore your payment details are safe with us.

PAYING WITH CREDIT OR DEBIT CARDS

     

The available credit card options are listed above. The credit card companies listed above are the most commonly used credit cards on this site. If your credit card company is not listed, please do not worry, we encourage you to continue shopping.

Please note that we do not collect your credit/debit card number or personal information when you make a payment. If you have any questions about a transaction on our site, please check with your card-issuing bank.

1. Choose your shipping address OR create a new one.
2. Choose Credit Card payment and click on your card type.
3. Enter your Card Details and check the Cardholder Details.
4. Click 'Make Payment' and your payment will be processed. A receipt will be sent to your email inbox.

PAYING WITH PAYPAL

 

The most popular online payment method. We are fully PayPal verified so you can always shop with peace of mind.

Through PayPal, you can pay with credit card, debit card, or bank account balance. 

When you place an order with Paypal you will be redirected to the PayPal payment page, where you can confirm your payment by logging in with your PayPal username and password.

You may still check out even without a PayPal account. To do so, please click on "Pay with Debit/Credit Card" and you’ll be redirected to a secure page where you can enter your credit card information or complete your payment safely via PayPal.

1. Select your cart and click "check out". Fill in your shipping information and click "complete order".

2. In the pop-up window, click on the location on the image below.

3. Choose your bank country.

4. Now you can use credit cards to pay.

5. Last Tip:
Do you want to use this credit card to create a paypal account?
According to your needs, choose yes or no.

6. Successful payment.

NOTE: Credit cards can only be tried 10 times per hour, if you have made many failed attempts, the credit card would be locked for one hour. We never saves your card number and detail information.If you have any payment problems, Please contact with us: service@yourfirstwig.com 

Our goal is to offer you the best shipping options, no matter where you live. Every day, we deliver to hundreds of customers across the world, ensuring that we provide the highest levels of responsiveness to you at all times.

The time frame for order delivery is divided into two parts:

1.Processing time: Order verification, quality check, and packaging. All orders are sent to the fulfillment center for dispatch within 24-48 hours after the order is placed.
2.Shipping time: This refers to the time it takes for items to be shipped from our fulfillment center to the destination. United States,United Kingdom:Standard Shipping (10-18 days), Express Shipping (7-12 days), Free Shipping (10-18 days).Other countries:Standard Shipping (10-20 days),  Free Shipping (10-20 days).

Shipping Plan  Shipping Fee Calculation Rules
BUY 3 GET FREE SHIPPING Free Quantity ≥ 3.00 items
Standard Shipping $13.98 Price $0.00 - $59.00 USD
VIP Fast Air Freight Shipping $23.98 All orders are applicable
Free Shipping Free Price ≥ $59.00 USD

Shipping cost description
Standard Shipping (10-18 days): $13.99, For orders below $0-59.
VIP Express Shipping (7-15 days or faster):$23.99, For orders below $0
Note: Orders over $59 for Free Shipping.

(Tips: Just choose 3 items to enjoy free shipping)

How to track your order ?

You can communicate with us through our 24-hour customer service mailbox: service@yourfirstwig.com. We will inquire for you in the first time

After you place an order, you can also view your order information, which includes the shipping order number of the order. Usually we will deliver the goods within 24-48 hours.After we ship the goods, click TRACK ORDER in the menu bar of the website to inquire, or inquire directly on the transportation system website: www.track718.us

Affected by covid-19 or extreme weather, or the sales volume of individual hot-selling styles is too large, urgent production is required, and inventory is limited, so shipments will be delayed.

In addition, this delay time will not exceed the shipping time we set by too much. If you are not satisfied with the delivery time of the product, you can contact us at any time: service@yourfirstwig.com, we will refund the shipping fee you paid in proportion

It is the intention of yourfistwig to do business globally and in full compliance with U.S. domestic laws and regulations as well as international laws and regulations such as the United States Foreign Corrupt Practices Act (FCPA) and UK Bribery Act. yourfistwig recognizes that local environmental conditions, as well as laws and regulations unique to certain countries, are conducive to higher risks that need to be properly assessed, monitored and managed. Key risks of new business deals internationally need to be identified and understood to ensure that excessive risk is not introduced into the company that exceeds our risk appetite and/or cannot be mitigated. yourfistwig does not conduct business in the countries listed below:

• Afghanistan
• Cuba
• Iran
• Iraq
• North Korea
• Somalia
• South Sudan
• Sudan
• Syria
• Yemen

• The Crimea region of Ukraine

We will launch an APP program soon, which can be downloaded in Apple Store and Google Store   so stay tuned 

class SpzSmartBlockComponent extends SPZ.BaseElement { constructor(element) { super(element); this.templates_ = null; this.container_ = null; this.i18n_ = {}; this.config_ = {}; this.show_type_ = 3; this.product_resource_id_ = ''; this.collection_resource_id_ = ''; this.cart_items_ = []; this.customer_id_ = ''; this.order_id_ = ''; } static deferredMount() { return false; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { const template_type = window.SHOPLAZZA.meta.page.template_type; if (template_type === 1) { this.show_type_ = 3; this.product_resource_id_ = window.SHOPLAZZA.meta.page.resource_id; } else if (template_type === 2) { this.show_type_ = 4; this.collection_resource_id_ = window.SHOPLAZZA.meta.page.resource_id; } else if (template_type === 15){ this.show_type_ = 5; } else if (template_type === 13){ this.show_type_ = 6; } else if (template_type === 20){ this.show_type_ = 7; this.customer_id_ = window.SHOPLAZZA.customer.customer_id; } else if (template_type === 35){ this.show_type_ = 8; this.order_id_ = window.location.pathname.split('/').pop(); } this.templates_ = SPZServices.templatesForDoc(this.element); this.setAction_(); } mountCallback() { console.log('smart mounted'); const that = this; const themeName = window.SHOPLAZZA.theme.merchant_theme_name; const isGeek = /Geek/.test(themeName); this.fetchRules().then((res) => { if (res && res.rules && res.rules.length) { const blockEl = document.getElementById('smart_recommend_block'); SPZ.whenApiDefined(blockEl).then((api) => { api.render({data: res}, true).then(() => { if (isGeek && that.show_type_ === 6) { blockEl.querySelector('.plugin_container_wrpper').style.padding = '30px 0'; } const recommendStyle = document.createElement('style'); recommendStyle.innerHTML = ` .plugin__recommend_container,.app-recommend-card { display: none !important; } `; document.head.appendChild(recommendStyle); const fetchList = []; res.rules.forEach((rule) => { fetchList.push(this.fetchRuleProductList(rule.id)); }); const fetchAll = Promise.all(fetchList); fetchAll.then((p_res) => { res.rules.forEach((rule, index) => { rule.products = p_res[index] && p_res[index].products; const ruleEl = document.getElementById('smart_recommend_rule_' + rule.id); SPZ.whenApiDefined(ruleEl).then((api) => { api.render({data: rule}, true).then(() => { that.impressListen(`#smart_recommend_rule_ul_${rule.id}`, function(){ that.trackRuleImpress(rule); }); const btnElList = document.querySelectorAll(`#smart_recommend_rule_ul_${rule.id} button`); btnElList.forEach((btnEl) => { if (btnEl && rule.config && rule.config.quick_shop_button_bg_color && rule.config.quick_shop_button_text_color) { btnEl.style.backgroundColor = rule.config.quick_shop_button_bg_color; btnEl.style.color = rule.config.quick_shop_button_text_color; } }) }); }); }); }); }) }) } else { if (window.top !== window.self) { const template_type = window.SHOPLAZZA.meta.page.template_type; const holderEl = document.getElementById('smart_recommend_preview_no_data_placeholder'); SPZ.whenApiDefined(holderEl).then((api) => { api.render({data: { isCart: template_type === 13, isCollection: template_type === 2, isProduct: template_type === 1, isIndex: template_type === 15 }}, true); }); } } }); } setAction_() { this.registerAction('quickShop', (data) => { const that = this; const product_id = data.args.product_id; const productIndex = data.args.productIndex; const rule_id = data.args.rule_id; const ssp = data.args.ssp; const scm = data.args.scm; const cfb = data.args.cfb; const ifb = data.args.ifb; const modalRender = document.getElementById('smart_recommend_product_modal_render'); if (product_id) { this.fetchProductData(product_id).then((res) => { const product = res.products && res.products.length && res.products[0] || {}; product.cfb = cfb; product.ifb = ifb; SPZ.whenApiDefined(modalRender).then((api) => { api.render({product: product, productIndex: productIndex, rule_id: rule_id, ssp: ssp, scm: scm, show_type: that.show_type_}, true).then(() => { const modalEl = document.getElementById('smart_recommend_product_modal'); SPZ.whenApiDefined(modalEl).then((modal) => { that.impressListen('#smart_recommend_product_modal', function(){ that.trackQuickShop({ rule_id: rule_id, product_id: product_id }); }); modal.open(); }); const formEl = document.getElementById('smart_recommend_product_form'); SPZ.whenApiDefined(formEl).then((form) => { form.setProduct(product); }); const variantEl = document.getElementById('smart_recommend_product_variants'); SPZ.whenApiDefined(variantEl).then((variant) => { variant.handleRender(product); }); }); }) }); } }); this.registerAction('handleScroll', (data) => { this.directTo(data.args.rule_id, data.args.direction); }); this.registerAction('handleProductChange', (data) => { const variant = data.args.data.variant; const product = data.args.data.product; const imageRenderEl = document.getElementById('smart_recommend_product_image'); SPZ.whenApiDefined(imageRenderEl).then((api) => { api.render({ variant: variant, product: product }, true); }); }); this.registerAction('handleAtcSuccess', (detail) => { const data = detail.args; data.data.product = data.data.product || {}; data.data.variant = data.data.variant || {}; const product_id = data.data.product.id; const product_title = data.data.product.title; const variant_id = data.data.variant.id; const price = data.data.variant.price; const rule_id = data.rule_id; const aid = `smart_recommend.${this.show_type_}.${rule_id}`; const ifb = data.data.product.ifb; const cfb = data.data.product.cfb; const ssp = data.ssp; const scm = data.scm; const spm = `smart_recommend_${this.show_type_}.${data.spmIndex}`; const params = { id: product_id, product_id: product_id, number: 1, name: product_title, variant_id: variant_id, childrenId: variant_id, item_price: price, source: 'add_to_cart', _extra: { aid: aid, ifb: ifb, cfb: cfb, scm: scm, spm: `..${window.SHOPLAZZA.meta.page.template_name}.${spm}`, ssp: ssp, } }; this.tranckAddToCart(params); }); this.registerAction('addATCHook', (data) => { const params = data.args; const spm = `smart_recommend_${this.show_type_}.${params.spmIndex}`; this.myInterceptor_ = window.djInterceptors && window.djInterceptors.track.use({ event: 'dj.addToCart', params: { aid: `smart_recommend.${this.show_type_}.` + params.rule_id, ssp: params.ssp, scm: params.scm, cfb: params.cfb, spm: `..${window.SHOPLAZZA.meta.page.template_name}.${spm}`, }, once: true }); }); } tranckAddToCart(detail) { if (window.$) { window.$(document.body).trigger('dj.addToCart', detail); } } fetchRules() { const payload = { show_type: this.show_type_, }; let that = this; if (this.show_type_ === 6) { let line_items = []; return this.fetchCart().then((res) => { if (res && res.cart && res.cart.line_items) { line_items = res.cart.line_items.map((item) => { return { product_id: item.product_id, variant_id: item.variant_id, quantity: item.quantity, price: item.price } }); } payload.line_items = line_items; that.cart_items_ = line_items; return that.fetchRulesRequest(payload); }); } else { if (this.show_type_ === 3) { payload.line_items = [{ product_id: this.product_resource_id_ }]; } else if (this.show_type_ === 4) { payload.collection_id = this.collection_resource_id_; } else if (this.show_type_ === 7) { payload.customer_id = this.customer_id_; } else if (this.show_type_ === 8) { payload.order_id = this.order_id_; } return this.fetchRulesRequest(payload); } } fetchRulesRequest(payload) { return fetch(window.SHOPLAZZA.routes.root + "/api/possum/recommend_query", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload) }).then(function(res){ if(res.ok){ return res.json(); } }); } fetchCart() { return fetch(`/api/cart/cart-select?r=${Math.random().toString(36).slice(-4)}`) .then((res) => { if (res.ok) { return res.json(); } }); } fetchRuleProductList(rule_id) { const payload = { page: 1, limit: 100, fields: ["title", "url", "image", "min_price_variant.price", "min_price_variant.compare_at_price"], rule_id: rule_id, }; if (this.show_type_ === 3) { payload.line_items = [{ product_id: this.product_resource_id_ }]; } else if (this.show_type_ === 4) { payload.collection_id = this.collection_resource_id_; } else if (this.show_type_ === 6) { payload.line_items = this.cart_items_; } else if (this.show_type_ === 7) { payload.customer_id = this.customer_id_; } else if (this.show_type_ === 8) { payload.order_id = this.order_id_; } return fetch(window.SHOPLAZZA.routes.root + "/api/possum/recommend_products", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload) }).then(function(res){ if(res.ok){ return res.json(); } }).catch(function(err){ console.log(err); }); } fetchProductData(product_id) { return fetch(window.SHOPLAZZA.routes.root + "/api/possum/products", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ product_ids: [product_id], fields: [ "images", "options", "min_price_variant", "variants"] }) }).then(function(res){ if(res.ok){ return res.json(); } }).catch(function(err){ console.log(err); const loadingEl = document.getElementById('smart_recommend_loading'); if (loadingEl) { loadingEl.style.display = 'none'; } }); } getStyle(ele, style) { if (!ele) return; if (window.getComputedStyle) { return window.getComputedStyle(ele)[style]; } return ele.currentStyle[style]; } directTo(id, direction) { const scrollElement = document.getElementById(`smart_recommend_rule_ul_${id}`); const blockWidth = parseInt(this.getStyle(scrollElement, 'width')); const scrollLength = (blockWidth * 0.19 - 12) * 5; const scrollPoint = scrollElement.scrollWidth - scrollElement.clientWidth; if (!scrollElement) return; if (direction === 'left') { if (document.dir === 'rtl') { scrollElement.scrollTo({ left: Math.abs(scrollElement.scrollLeft) >= scrollPoint - 100 ? 0 : scrollElement.scrollLeft - scrollLength, behavior: 'smooth' }); return; } scrollElement.scrollTo({ left: Math.max(scrollElement.scrollLeft - scrollLength, 0), behavior: 'smooth' }); } else { if (document.dir === 'rtl') { scrollElement.scrollTo({ left: Math.abs(scrollElement.scrollLeft) >= scrollPoint + 100 ? 0 : scrollElement.scrollLeft + scrollLength, behavior: 'smooth' }); return; } scrollElement.scrollTo({ left: scrollElement.scrollLeft >= scrollPoint - 100 ? 0 : scrollElement.scrollLeft + scrollLength, behavior: 'smooth' }); } } trackRuleImpress(rule) { if (window.sa && window.sa.track) { window.sa.track("plugin_common", { plugin_name: "upsell", event_type: "impressions", rule_id: rule.id, ssp: rule.ssp, scm: rule.scm, show_type: this.show_type_, support_app_block: window.SHOPLAZZA.theme.support_app_block }); window.sa.track("module_impressions", { aid: `smart_recommend.${this.show_type_}.${rule.id}`, support_app_block: window.SHOPLAZZA.theme.support_app_block }); } } trackQuickShop(data) { window.sa && sa.track && sa.track("plugin_common", { plugin_name: "upsell", event_type: "quick_shop", rule_id: data.rule_id, product_id: data.product_id, show_type: this.show_type_, }); } impressListen(selector, cb) { const el = document.querySelector(selector); const onImpress = (e) => { if (e) { e.stopPropagation(); } cb(); }; if (el && !el.getAttribute('imprsd')) { el.addEventListener('impress', onImpress) } else if (el) { onImpress(); } } } SPZ.defineElement('spz-custom-smart-block', SpzSmartBlockComponent);
Customer Reviews

Here are what our customers say.

Write a Review
Customer Reviews
Wow you reached the bottom
Newest
Most liked
Highest ratings
Lowest ratings
×
class SpzCustomFileUpload extends SPZ.BaseElement { constructor(element) { super(element); this.uploadCount_ = 0; this.fileList_ = []; } buildCallback() { this.action = SPZServices.actionServiceForDoc(this.element); this.registerAction('upload', (data) => { this.handleFileUpload_(data.event?.detail?.data || []); }); this.registerAction('delete', (data) => { this.handleFileDelete_(data?.args?.data); }); this.registerAction('preview', (data) => { this.handleFilePreview_(data?.args?.data); }); this.registerAction('limit', (data) => { this.handleFileLimit_(); }); this.registerAction('sizeLimit', (data) => { this.handleFileSizeLimit_(); }); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } setData_(count, file) { this.uploadCount_ = count; this.fileList_ = file; } handleFileUpload_(data) { data.forEach(i => { if(this.fileList_.some(j => j.url === i.url)) return; this.fileList_.push(i); }) this.uploadCount_++; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files: this.fileList_}); if(this.fileList_.length >= 5){ document.querySelector('#review_upload').style.display = 'none'; } if(this.fileList_.length > 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '8px'; } } handleFileDelete_(index) { this.fileList_.splice(index, 1); this.uploadCount_--; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileDelete", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; if(this.fileList_?.length === 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '132px'; } } handleFilePreview_(index) { const finalPreviewData = this.fileList_[index]; const filePreviewModal = document.getElementById('filePreviewModal'); const fullScreenVideo = document.getElementById('fullScreenVideo'); const fullScreenImage = document.getElementById('fullScreenImage'); const previewModalClose = document.getElementById('previewModalClose'); const previewLoading = document.getElementById('previewLoading'); filePreviewModal.style.display = 'block'; previewLoading.style.display = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { previewLoading.style.display = 'none'; }); fullScreenImage.src = ''; fullScreenImage.style.display = 'none'; fullScreenVideo.style.display = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { previewLoading.style.display = 'none'; }; fullScreenVideo.src = ''; fullScreenVideo.style.display = 'none'; fullScreenImage.style.display = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { filePreviewModal.style.display = 'none'; }); } handleFileLimit_() { alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files more than 5'); this.triggerEvent_("handleFileLimit"); } handleFileSizeLimit_() { alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not exceed 10M'); } clear(){ this.fileList_ = []; this.uploadCount_ = 0; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleClear", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; } mediaParse_(url) { var result = {}; try { url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { try { result[key] = decodeURIComponent(value); } catch (e) { result[key] = value; } }); result.preview_image = url.split('?')[0]; } catch (e) {}; return result; } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, name, data); this.action.trigger(this.element, name, event); } } SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload);
The review would not show in product details on storefront since it does not support to.
  • FREE SHIPPING OVER $59

    Free worldwide shipping and returns customs and duties tases included

  • Customer Service Safety

    Your payment information is securely protected and 24-hour customer service responds quickly

  • EASY RETURN & EXCHANGE

    15 days no reason return policy

  • 10%-50% DISCOUNT COUPON

    Subscribe to us massive coupons are waiting for you to receive