Multifunctional Construction Pencil ToolšŸ”„Buy More Save MorešŸ”„

$25.99
$35.99
-28%
Style:  Plastic base stand with pen
Buy More Save More:  Buy 1
visitors currently looking at this productļ¼ā¤
šŸŽ‰High Quality šŸŽ‰
šŸ”„Global Hot SalešŸ”„
⚔Sustainably Made⚔
šŸ’„Secure PaymentsšŸ’„
Quantity

Description


It's perfect for carpenter, engineer, steelworker, cabinet maker, home DIY lover or craftsman of any kind to measure, mark and scribing lines.


Feature:

Versatile Adjustment: You can change its shape according to your needs, only need to change the tightness of the pencil holder and nut to achieve different shapes to complete the demand. It can be locked and fixed after each adjustment to ensure precision accuracy.


High Quality: It is made of high quality with aluminum alloy that surface is with anodic oxidation treatment, which could help to extend the service life of the product.


Compact and Easy To Use: The size of the product is very small, the weight is also very light, you can put it directly in your pocket. Its unique design of shirt trouser belt clip makes it easy to carry and storage.



Wide Application: It is a multi-function tool with over 15 marking applications, including tiling and paving, stud walls, gables and paneling, in-fill panels, shop fitting and built in furniture.


Specification:

  • Material: plastic base/alloy base
  • Color: ordinary version
  • Plastic base stand with pen weight: 50g
  • Alloy base stand with pen weight:170g
  • Size::16*3*3CM

Package List:

Multi-function Scriber Tool*1/3/5

 

NOTE

  • Please allow slight measurement deviations due to manual measurement.
  • Due to the different monitor and light effect, the actual color of the item might be slightly different from the color showed in the pictures.

OUR GUARANTEE

  • šŸ“¦ 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.
  • šŸ’° Money-Back Guarantee: If your items arrive damaged or become defective within 15 days of normal usage, we will gladly issue a replacement or refund.
  • āœ‰ļø 24/7 Customer Support: We have a team of live reps ready to help and answer any questions you have within a 24-hour time frame, 7 days a week.
const TAG = "spz-custom-product-automatic"; class SpzCustomProductAutomatic extends SPZ.BaseElement { constructor(element) { super(element); this.variant_id = '5bc1b9b9-471d-410f-9ee5-b0acdb79fed4'; 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 = '5da6d1c1-cddf-4ee7-b560-2d142f09be8e'; 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 == '5da6d1c1-cddf-4ee7-b560-2d142f09be8e' && 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 = '5da6d1c1-cddf-4ee7-b560-2d142f09be8e'; 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() { // åŒäø€é”µåÆčƒ½ęœ‰å¤šäøŖ block å„č‡Ŗęø²ęŸ“ęœ¬ snippetļ¼ŒåÆ¼č‡“é€»č¾‘å…ƒē“  spz-custom-discount-toast(#appsAddCartToastFunc) é‡å¤ć€‚ // ä»…äæē•™ DOM äø­ē¬¬äø€äøŖå®žä¾‹ļ¼Œå…¶ä½™é‡å¤å®žä¾‹ē§»é™¤č‡Ŗčŗ«ļ¼ŒäæčÆé€»č¾‘å…ƒē“ åŠå…¶ action 引用(appsAddCartToastFunc)唯一。 const funcs = document.querySelectorAll('#appsAddCartToastFunc'); if (funcs.length > 1 && this.element !== funcs[0]) { this.element.remove(); return; } // å…Øå±€ęŠ˜ę‰£ toast ēš„å¼¹å‡ŗē‚¹åˆ†ę•£åœØå¤šäøŖęØ”ęæ/ē»„ä»¶é‡Œļ¼ˆå«å£°ę˜Žå¼ @atcErrorļ¼‰ļ¼Œę— ę³•é€äø€åœØå¼¹å‡ŗå‰å‰ē½®ļ¼Œ // ę•…ęŒ‚č½½ę—¶å¹‚ē­‰åœ°åŽ»é‡å¹¶ęŒ‚åˆ° bodyļ¼›åŠ č“­ toast ę”¹äøŗå¼¹å‡ŗå‰ęŒ‰éœ€åŽ»é‡ļ¼ˆč§ showAddToCartToast) this.ensureSingleToastInBody_('cart_match_discount_toast_wrap'); } unmountCallback() {} // åŒäø€é”µé¢åÆčƒ½ęœ‰å¤šäøŖ block å„č‡Ŗęø²ęŸ“ęœ¬ toast snippetļ¼ˆå¦‚å•†čÆ¦ēš„ discount_automatic + č“­ē‰©č½¦ęŠ½å±‰é‡Œēš„ęŠ˜ę‰£ęØŖå¹…ļ¼‰ļ¼Œ // 导臓 toast å¤–å±‚å‡ŗēŽ°é‡å¤ idć€‚é‡å¤ id äø‹ getElementById/querySelector 及 SPZ åŠØä½œå¼•ē”Øéƒ½åŖå‘½äø­ē¬¬äø€äøŖļ¼Œ // äø”č¢«å…³čæ›ęŠ½å±‰ēš„é‚£ä»½ä¼šč¢«ęŠ½å±‰ēš„ transform/overflow 裁剪/é”™ä½ć€‚čæ™é‡ŒåœØęŒ‚č½½ę—¶å¹‚ē­‰åŽ»é‡ļ¼š // åŖäæē•™äø€ä»½ć€ē§»é™¤å¤šä½™ēš„ļ¼Œå¹¶ęŠŠäæē•™ēš„ęŒ‚åˆ° body(body 是 position:fixed ęœ€å®‰å…Øēš„č½ē‚¹ļ¼Œéæå…č¢«ä»»ä½•ē„–å…ˆč£å‰Ŗļ¼‰ć€‚åÆåå¤č°ƒē”Øć€‚ ensureSingleToastInBody_(id) { const els = Array.from(document.querySelectorAll('#' + id)); if (!els.length) return; els.slice(1).forEach((el) => el.remove()); const keep = els[0]; if (keep.parentNode !== document.body) { document.body.appendChild(keep); } } // äø»é¢˜č“­ē‰©č½¦ęŠ½å±‰ę˜Æå¦ę‰“å¼€ isInCartDrawer_() { return !!document.querySelector('[data-section-type="cart_drawer"] spz-sidebar[open]'); } setupAction_() { this.registerAction('showAddToCartToast', () => { // ęŠ½å±‰å†…åŠ č“­ļ¼šäø»é¢˜ęœ¬å°±äøä¼šęœ‰åŠ č“­ę•ˆęžœļ¼Œē»Ÿäø€å¼¹ę’ä»¶č‡Ŗå·±ēš„ toast // éžęŠ½å±‰ļ¼šäø»é¢˜ęœ‰åŠ č“­ä»£ē†åˆ™ę²æē”Øäø»é¢˜åŠ č“­ę•ˆęžœļ¼Œå¦åˆ™ę’ä»¶å…œåŗ• const proxyEl = document.getElementById('add-cart-event-proxy'); const inDrawer = this.isInCartDrawer_(); if (!inDrawer && proxyEl) { return; } // å¼¹å‡ŗå‰ęŒ‰éœ€åŽ»é‡å¹¶ęŒ‚åˆ° bodyļ¼ˆå¹‚ē­‰ļ¼‰ļ¼Œéæå…é‡å¤ id å‘½äø­é”™åÆ¹č±”ęˆ–č¢«ęŠ½å±‰č£å‰Ŗ/错位 this.ensureSingleToastInBody_('apps_add_cart_toast_wrap'); 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);
  • Worldwide shipping

    We support fast global delivery
  • 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
  • Return service

    If you are not satisfied with the goods, you can contact us by email to apply for return service