4.9 Rated By Customers

Heart Hands - Gift For Couples- Custom Shaped Wooden Puzzle

$27.99

Worldwide shipping

Handmade and 100% Custom

Global delivery
Free Shipping Over $49.99!
Sustainably made
Quantity
Description

Forget boring squares, our Personalized Custom Shaped Wooden Puzzle portrays your family, siblings, couple,... as charming figurines, each piece a unique expression of love. It's a heartwarming portrait perfect for your home, workplace, or anywhere you want to showcase your special bond. More than a puzzle, it's a heartfelt keepsake that brings smiles and strengthens connections. Making it the perfect gift for any occasion: Mother's Day, Father's Day, Christmas, Valentine's Day, Birthday or Anniversary, etc.🎁

Description

  • This is a customized product with a customized design.
  • High-quality material - Made of environmentally friendly pinewood, nontoxic, odor-free, and exquisite craftsmanship. 
  • Best technique - Modern engraved techniques produce precise and beautiful cuts with matching details, a smooth surface, and friendly to use. 
  • Freestanding decorations - The product is designed with flat bottoms so that they can stand upright on many flat surfaces without support, convenient to put on many places. It can be used as a decoration on your desk, bookcase, TV stand, wall unit, dressing table, etc.
  • Wood grain and wood color are not fixed, depending on the color of natural materials.
  • Care instruction: Do not soak in water

 Features

  • Material: Pinewood
  • Printable area: 1 SIDE
  • Thickness: 0.79 inches (~ 2 cm)
  • Size: 4.33 inches (~ 11 cm)

          Please allow about 0.5 - 1 inch differences due to manual measurement.

PERSONALIZATION

  • Please complete the fields required to customize options (Name/ Characteristics/ Photos) and recheck carefully all the customized options.
  • Text: Standard English excluding special characters, and emojis to ensure the best looking.
  • Characteristics: Pick one-by-one options that match your description.
    Shipping & Return

    Estimate Time Of Arrival Includes Production Time + Delivery Time

    1 - Production Time (2 to 5 days): After we receive your order, we shift into production mode. During busy seasons, the process typically takes 1-2 days longer. Please understand.

    2 - Shipping Time (7-10 Days or Faster): Want to get your item faster? Select the 'VIP Service' option after adding your product to the cart for the fastest shipping method we can provide. There are also different shipping options available at checkout.

    Please Note:

    • The above time frame is only applied for orders to the US with standard shipping methods.
    • International orders: It may take 2-5 days longer due to the customs clearance process.
    • When order is ready to be shipped, a tracking link will be sent to your email so you can follow your package all the way home.
    • The estimated delivery time for our order will depend on your location. While we work closely with our logistics partners to provide you accurate delivery information, delivery times are estimates only and cannot be guaranteed. Once your product(s) are in transit, any delays are outside our control.
    • For more information about Shipping and Delivery, visit here.
    • Learn more Returns and Refunds here.
    Customer Sharing

    Let Customer Speaks For Us

    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.