SOFIRN ST10 Clip-On Magnetic EDC Flashlight

Red & White Light
2967 sold
Style- Iron Gray ST10 with battery
$21.99
$39.99
-45%
const TAG = "spz-custom-product-automatic"; class SpzCustomProductAutomatic extends SPZ.BaseElement { constructor(element) { super(element); this.variant_id = 'c71985e2-8d35-4ba1-9c2f-c4d2ac4d0327'; this.isRTL = SPZ.win.document.dir === 'rtl'; this.isAddingToCart_ = false; // 加购中状态 } 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(); // 监听事件 this.bindEvent_(); } async init() { this.handleFitTheme(); const data = await this.getDiscountList(); this.renderApiData_(data); } async getDiscountList() { const productId = '57a904b3-702c-4e82-ab52-49257ecae374'; const variantId = this.variant_id; const productType = 'default'; 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 }, product_type: productType } 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); // 重新渲染 抖动问题处理 this.renderApiData_(data); } clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } async renderApiData_(data) { const parentDiv = document.querySelector('.automatic_discount_container'); const newTplDom = await this.getRenderTemplate(data); if (parentDiv) { parentDiv.innerHTML = ''; parentDiv.appendChild(newTplDom); } else { console.log('automatic_discount_container is null'); } } doRender_(data) { const renderData = data || {}; return this.templates_ .findAndRenderTemplate(this.element, renderData) .then((el) => { this.clearDom(); this.element.appendChild(el); }); } async getRenderTemplate(data) { const renderData = data || {}; return this.templates_ .findAndRenderTemplate(this.element, { ...renderData, isRTL: this.isRTL }) .then((el) => { this.clearDom(); return el; }); } setContainerDisabled(isDisable) { const automaticDiscountEl = document.querySelector('.automatic_discount_container_outer'); 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 == '57a904b3-702c-4e82-ab52-49257ecae374' && variant.id != this.variant_id) { this.variant_id = variant.id; this.renderDiscountList(); } }); } // 兼容主题 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(); }); // 加购事件 this.registerAction('handleAddToCart', (invocation) => { // 阻止事件冒泡 const event = invocation.event; if (event) { event.stopPropagation(); event.preventDefault(); } // 如果正在加购中,直接返回 if (this.isAddingToCart_) { return; } const quantity = invocation.args.quantity || 1; this.addToCart(quantity); }); } // 加购方法 async addToCart(quantity) { // 设置加购中状态 this.isAddingToCart_ = true; const productId = '57a904b3-702c-4e82-ab52-49257ecae374'; const variantId = this.variant_id; const url = '/api/cart'; const reqBody = { product_id: productId, variant_id: variantId, quantity: quantity }; try { const data = await this.xhr_.fetchJson(url, { method: 'POST', body: reqBody }); // 触发加购成功提示 this.triggerAddToCartToast_(); return data; } catch (error) { error.then(err=>{ this.showToast_(err?.message || err?.errors?.[0] || 'Unknown error'); }) } finally { // 无论成功失败,都重置加购状态 this.isAddingToCart_ = false; } } showToast_(message) { const toastEl = document.querySelector("#apps-match-drawer-add_to_cart_toast"); if (toastEl) { SPZ.whenApiDefined(toastEl).then((apis) => { apis.showToast(message); }); } } // 触发加购成功提示 triggerAddToCartToast_() { // 如果主题有自己的加购提示,则不显示 const themeAddToCartToastEl = document.querySelector('#add-cart-event-proxy'); if (themeAddToCartToastEl) return; // 显示应用的加购成功提示 this.showToast_("Added successfully"); } 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);
class SpzCustomDiscountBundle extends SPZ.BaseElement { constructor(element) { super(element); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } mountCallback() {} unmountCallback() {} setupAction_() { this.registerAction('showAddToCartToast', () => { const themeAddToCartToastEl = document.querySelector('#add-cart-event-proxy') if(themeAddToCartToastEl) return const toastEl = document.querySelector('#apps-match-drawer-add_to_cart_toast') SPZ.whenApiDefined(toastEl).then((apis) => { apis.showToast("Added successfully"); }); }); } buildCallback() { this.setupAction_(); }; } SPZ.defineElement('spz-custom-discount-toast', SpzCustomDiscountBundle);
Quantity
Free worldwide shipping over $29
Returnable within 30 days
Professional service for everyone
Secure payments
Shipping
Estimated delivery time:Mar-07 - Mar-14
Description

Far or Near, Always Clear: Dual-Beam Precision for Every Night

Instant Red Light: Protect Your Night Vision and Success in the Wild

Real-Time Battery Monitoring: Smart LED Indicator for Reliable Power Management

Hands-Free, Hassle-Free: Versatile Mounting for Every Adventure

Rugged Reliability: Built to Survive the Harshest Outdoor Environments

Sized to Go, Built to Shine: Finger-Sized Power for Your Pocket

Explore the ST10 technical specifications

More Information

  1. 3-in-1 Light Setup: Super bright 1000-lumen main beam for distance, side white light for close-up tasks, plus a red light to protect your night vision—perfect for fishing, night walks, or reading.
  2. Easy to Use: Two separate buttons—one for the main light with 6 brightness levels, one for the side lights (white and red) with 4 levels each. Simple, quick, no confusion.
  3. Compact & Tough: Just 7 cm (2.76 inches) long, fits easily in your pocket. Made with strong aerospace-grade aluminum, it's IP66 water-resistant and 1 meter(3.28feet) drop-resistant for all your daily adventures.
  4. Recharge & Swap Batteries: Includes a rechargeable 14500 battery with a built-in USB-C charging port and charging indicator. Low on power? Simply swap in regular AA batteries and keep going—no hassle, no extra chargers needed.
  5. Magnetic & Clip-On Hands-Free: Magnetic tail lets you stick it to metal surfaces, while the clip fits on hats, backpacks, or fences—freeing your hands for whatever you’re doing.

Specifications

Emitter:

TN-3535 *2 (6500K-7000K),  660nm red light*1 Working Voltage: 1.2V-4.2V    
Size: 69.3 × 33.8 × 20.4 mm (≈ 2.73" × 1.33" × 0.80") Material:  AL6061-T6 aluminium alloy 
Charging: 14500 battery with built-in USB-C charging port Weight: 49g (1.73 oz) without battery
Power Supply:  1 × 14500 battery 900 mAh (included); AA battery compatible (not included) Note: When using AA batteries, the power indicator does not work and the lockout mode is disabled.

Note: To prevent accidental activation, when not using the flashlight or carrying it outdoors, please loosen the tailcap to disconnect the battery or activate the lockout mode.

Product manual, click to download!

Alt

Alt

FAQs

What is the wavelength of the red light?

The ST10 red light has a wavelength of 660nm, which falls within the deep red range of the visible spectrum. It provides illumination while helping to preserve night vision.

How do I charge the ST10?

The ST10 comes with a rechargeable 14500 battery that features a built-in Type-C charging port. No separate charger is required—simply charge the battery directly. It is also compatible with AA alkaline or NiMH batteries.

Does the ST10 have a lockout mode?

Yes. When the flashlight is off, triple-click to activate Lockout mode. To unlock, triple-click again and it will enter memory mode.

Does the ST10 have a battery indicator?

Yes. There is a battery indicator located between the two switches:

Green light (solid): 30% – 100%

Red light (solid): 10% – 30%

Red light (flashing): less than 10%

You may also like