2-in-1 Needle Threader & Seam Ripper Tool

$19.99
$29.99
-33%
Color:  Green
Discount Options:  1 PCS -GET 1 FREE(2 PCS in Total)
visitors currently looking at this product!❤
Worldwide shipping
Supports return and exchange within 30 days
Sustainably made
Secure payments
Quantity

Description

Portable & Convenient Design

Our Sewing Seam Ripper is designed for ultimate portability. Its compact size fits easily into any sewing toolbox or pocket, making it perfect for on-the-go use. Simplify your seam ripping and thread removal process at home or wherever you go with this handy tool.

 

Upgraded Easy Threading Design

Featuring a latest upgraded threading mechanism, this tool makes threading more effortless than ever. Simply insert the needle, hook the thread, and pull back – threading is completed with ease. Perfect for those looking to save time and avoid frustration.

 

2-in-1 Needle Threader & Seam Ripper

Combining a seam ripper and needle threader in one, this tool offers versatile functionality to tackle various sewing tasks. Easily remove seams or thread needles without straining your eyes. An essential for sewing enthusiasts aiming for smooth, hassle-free projects.

 

Safe & Reliable Seam Ripper

The seam ripper is equipped with a small red ball at the tip, designed to safely tear off seams without damaging the fabric. Protect your fabric and make precise cuts with confidence using this thoughtfully designed tool.

 

Ideal Gift for Sewing Lovers

A perfect addition to any sewing kit, this tool is an ideal gift for girlfriends, mothers, elders, and friends who enjoy embroidery and DIY projects. A thoughtful choice for any needlework enthusiast.

 

Material: Durable and lightweight plastic with stainless steel tips
Dimensions & Weight: 4.13 inches (10.5 cm) in length, lightweight for easy handling and storage

🎁Hot Sale🎁 49% OFF - Stainless Steel Finger Guard🔥BUY MORE SAVE MORE

from $24.99 $48.95

(🎁 Hot Sale🎁-49% OFF❤️)2-in-1 Stainless Steel Fruit Cutter

from $21.99 $42.95

Kitchen Sink Faucet Organizer

$23.99 $33.99

🎁HOT SALE 49% OFF🎁Multifunctional Shrimp Line Fish Maw Knife

from $19.99 $39.90

Kitchen Ladles Slotted Spoons 2 in 1 Creative Soup Ladle with Colander Filter

from $19.99 $38.95 +1

Pineapple Cutter

from $23.99 $46.95

Fruit Carving Knife - DIY Platter Decoration

from $19.99 $38.95

💖DIY Sushi Mold💖

from $19.99 $38.99

4 in 1 Stainless Steel Fruit Tool Set

from $23.99 $46.95

2-in-1 Vegetable Chopper Dicing & Slitting

from $23.99 $46.95

(🔥🎁Hot Sale🎁-49% ) Stainless Steel Oil Filter Pot

from $24.99 $48.95

Stainless Steel Square Plate(With Lid)

from $24.99 $48.95

Pepper Seed Corer Remover

from $19.99 $38.95

2-in-1 Telescopic Fruit Core Peeling Peeling Machine StainlessSteel Fruit Peeler

from $21.99 $42.95

Fresh Keeping Bags

from $21.99 $42.99

Products list

const TAG = "spz-custom-product-automatic"; class SpzCustomProductAutomatic extends SPZ.BaseElement { constructor(element) { super(element); this.variant_id = '13b290b0-76f7-4b60-b5db-ac456fd2391c'; this.debounceRenderDiscountList = this.win.SPZCore.Types.debounce(this.win,this.renderDiscountList.bind(this), 500); } static deferredMount() { return false; } buildCallback() { this.action_ = SPZServices.actionServiceForDoc(this.element); this.templates_ = SPZServices.templatesForDoc(this.element); this.xhr_ = SPZServices.xhrFor(this.win); this.setupAction_(); this.viewport_ = this.getViewport(); } mountCallback() { this.init(); console.log('promotion_complex',{"downgrade":false,"automatic_discount_list":[]}); // 监听事件 this.bindEvent_(); } init() { this.handleFitTheme(); // 兜底方案, downgrade == true; 需要降级 则要请求接口 this.doRender_({}).then(async () => { const downgrade = 'false'; if(downgrade != 'false') { this.renderDiscountList(); } }); } async getDiscountList() { const productId = '92f080bd-2eb7-40b0-9b86-a74e86126a99'; const variantId = this.variant_id; const reqBody = { product_id: productId, variant_id: variantId, discount_method: "DM_AUTOMATIC", customer: { customer_id: window.C_SETTINGS.customer.customer_id, email: window.C_SETTINGS.customer.customer_email } } const url = `/api/storefront/promotion/display_setting/text/list`; const data = await this.xhr_.fetchJson(url, { method: "post", body: reqBody }).then(res => { return res; }).catch(err => { this.setContainerDisabled(false); }) return data; } async renderDiscountList() { this.setContainerDisabled(true); const data = await this.getDiscountList(); this.setContainerDisabled(false); // 重新渲染 抖动问题处理 const parentDiv = document.querySelector('.automatic_discount_container'); const oldDom = parentDiv.querySelector('.automatic_discount_wrapper'); const newTplDom = await this.getRenderTemplate(data); if(oldDom){ parentDiv.replaceChild(newTplDom, oldDom); } else { parentDiv.appendChild(newTplDom); } } doRender_(data) { const renderData = data || {}; return this.templates_ .findAndRenderTemplate(this.element, renderData) .then((el) => { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); this.element.appendChild(el); }); } async getRenderTemplate(data) { const renderData = data || {}; return this.templates_ .findAndRenderTemplate(this.element, renderData) .then((el) => { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); return el; }); } setContainerDisabled(isDisable) { const automaticDiscountEl = document.querySelector('.automatic_discount_container'); if(isDisable) { automaticDiscountEl.setAttribute('disabled', ''); } else { automaticDiscountEl.removeAttribute('disabled'); } } // 绑定事件 bindEvent_() { window.addEventListener('click', (e) => { let containerNodes = document.querySelectorAll(".automatic-container .panel"); let bool; Array.from(containerNodes).forEach((node) => { if(node.contains(e.target)){ bool = true; } }) // 是否popover面板点击范围 if (bool) { return; } if(e.target.classList.contains('drowdown-icon') || e.target.parentNode.classList.contains('drowdown-icon')){ return; } const nodes = document.querySelectorAll('.automatic-container'); Array.from(nodes).forEach((node) => { node.classList.remove('open-dropdown'); }) // 兼容主题 this.toggleProductSticky(true); }) // 监听变体变化 document.addEventListener('dj.variantChange', async(event) => { // 重新渲染 const variant = event.detail.selected; if (variant.product_id == '92f080bd-2eb7-40b0-9b86-a74e86126a99') { this.variant_id = variant.id; } await this.debounceRenderDiscountList(); }); } // 兼容主题 handleFitTheme() { // top 属性影响抖动 let productInfoEl = null; if (window.SHOPLAZZA.theme.merchant_theme_name === 'Wind' || window.SHOPLAZZA.theme.merchant_theme_name === 'Flash') { productInfoEl = document.querySelector('.product-info-body .product-sticky-container'); } else if (window.SHOPLAZZA.theme.merchant_theme_name === 'Hero') { productInfoEl = document.querySelector('.product__info-wrapper .properties-content'); } if(productInfoEl){ productInfoEl.classList.add('force-top-auto'); } } // 兼容 wind/flash /hero 主题 (sticky属性影响 popover 层级展示, 会被其他元素覆盖) toggleProductSticky(isSticky) { let productInfoEl = null; if (window.SHOPLAZZA.theme.merchant_theme_name === 'Wind' || window.SHOPLAZZA.theme.merchant_theme_name === 'Flash') { productInfoEl = document.querySelector('.product-info-body .product-sticky-container'); } else if (window.SHOPLAZZA.theme.merchant_theme_name === 'Hero') { productInfoEl = document.querySelector('.product__info-wrapper .properties-content'); } if(productInfoEl){ if(isSticky) { // 还原该主题原有的sticky属性值 productInfoEl.classList.remove('force-position-static'); return; } productInfoEl.classList.toggle('force-position-static'); } } setupAction_() { this.registerAction('handleDropdown', (invocation) => { const discount_id = invocation.args.discount_id; const nodes = document.querySelectorAll('.automatic-container'); Array.from(nodes).forEach((node) => { if(node.getAttribute('id') != `automatic-${discount_id}`) { node.classList.remove('open-dropdown'); } }) const $discount_item = document.querySelector(`#automatic-${discount_id}`); $discount_item && $discount_item.classList.toggle('open-dropdown'); // 兼容主题 this.toggleProductSticky(); }); } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, `${ TAG }.${ name }`, data || {}); this.action_.trigger(this.element, name, event); } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } } SPZ.defineElement(TAG, SpzCustomProductAutomatic);
  • Free shipping

    Free worldwide shipping and returns customs and duties tases included
  • Customer service

    Your payment in formation is processed securely
  • Secure payment

    Need to contact us?Just send us an e-mail at info@yourstore.com
  • Contact us

    Short content about your store