Granddaughter, Always Keep Me in Your Heart - Infinity Pendant
Granddaughter, Always Keep Me in Your Heart - Infinity Pendant
Granddaughter, Always Keep Me in Your Heart - Infinity Pendant
Granddaughter, Always Keep Me in Your Heart - Infinity Pendant
Granddaughter, Always Keep Me in Your Heart - Infinity Pendant
Granddaughter, Always Keep Me in Your Heart - Infinity Pendant
Granddaughter, Always Keep Me in Your Heart - Infinity Pendant
Granddaughter, Always Keep Me in Your Heart - Infinity Pendant
Granddaughter, Always Keep Me in Your Heart - Infinity Pendant
Granddaughter, Always Keep Me in Your Heart - Infinity Pendant
Granddaughter, Always Keep Me in Your Heart - Infinity Pendant
Granddaughter, Always Keep Me in Your Heart - Infinity Pendant
Granddaughter, Always Keep Me in Your Heart - Infinity Pendant
Granddaughter, Always Keep Me in Your Heart - Infinity Pendant
Granddaughter, Always Keep Me in Your Heart - Infinity Pendant
Granddaughter, Always Keep Me in Your Heart - Infinity Pendant
Granddaughter, Always Keep Me in Your Heart - Infinity Pendant
Granddaughter, Always Keep Me in Your Heart - Infinity Pendant
Granddaughter, Always Keep Me in Your Heart - Infinity Pendant
Granddaughter, Always Keep Me in Your Heart - Infinity Pendant
1 / 10

Granddaughter, Always Keep Me in Your Heart - Infinity Pendant

$23.99
$46.13

Quantity

Show your granddaughter how much you care by gifting her an infinity necklace that represents your love and faith!

An infinity necklace is a timeless and meaningful gift that can be treasured for a lifetime.

This stunning artisan-crafted piece of jewelry will be a constant reminder of your love and support, no matter where she may go. As she grows and experiences new challenges, the an infinity necklace will provide comfort and inspiration, reminding her of your unwavering love and guidance.

This will be a perfect gift for your granddaughter:

  • Does not fade, rust, change color or tarnish
  • Hypoallergenic Premium-quality S925 sterling silver
  • Ready for gifting with Gift Box
  • Designed, Assembled, and Fulfilled in the USA.

Heartfelt Message:

"To My Granddaughter,

Someday when the pages of my life end, I know that you will be one of the most Beautiful Chapters. Always keep me in your heart for you are always in mine. Nothing and nobody, not even time will ever change that. Grandmother and Granddaughter Forever Linked Together"

 undefined

ORDER NOW to give your granddaughter a timeless symbol of love and faith.

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.