Extra 10% OFF sitewide code: 【MCCBFME10】/ NOV 27TH - 30TH .LIMITED
2 Nails, 2 Clips and 2 Stickers - Tapestry Accessories
2 Nails, 2 Clips and 2 Stickers - Tapestry Accessories
1 / 2
2 Nails, 2 Clips and 2 Stickers - Tapestry Accessories
2 Nails, 2 Clips and 2 Stickers - Tapestry Accessories
You may also like Don't Like These?
0% OFF
MCC

2 Nails, 2 Clips and 2 Stickers - Tapestry Accessories

737380

$3.99
109 sold
Qty 1000 in stock

Product Information:

1.Material and size: The non-marking nail wall hook is made of high-quality plastic and hardware, and the tapestry clip is made of high-quality hardware, which is not easy to rust, safe and practical, and can be applied to every corner of the home; small size, light weight, easy to carry and store.

2.Wide range of uses: Hard wall hooks are widely used to hang art decorations or items in the home, classroom and workplace, such as clocks, whiteboards, photo frames, photo walls, small mirrors, clothes, keys, umbrellas, wall decorations, bags , office pendants, etc.; curtain clips are suitable for hanging shower curtains, curtains, LED lights, photos, cloth, lamps, etc. Can be used in offices, hotels, dining rooms, bedrooms, bathrooms, kitchens, gardens, etc.; you can use both for tapestries.

3. Does not hurt the wall: The detachable concrete hook is a convenient and practical tool, and it is a good way to hang a variety of small and medium-sized frames without damaging the wall; after careful removal with pliers, they only have small holes like thumbtacks, and there are Helps protect walls from damage.

4.Easy to install: The hanging kit is easy to install; just use a small hammer to lightly drive the steel nails into the selected location of the wall without leaving any traces; moreover, the invisible nail hook is convenient for hanging large and heavy items such as photos , paintings or other hanging decorations, giving you a clean and tidy space.

5.Size: Nail: 3*1cm, Clip: 3.5*1cm

Notice:

There may be errors in manual measurement, please understand.

Package Content:

2*Nails
2*Clip
2*Adhesive Stickers

You may also like Don't Like These?
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.