Custom Pet Projection Memorial Keychain with Your Pet Photo as Gift for Loss of Pet
Custom Pet Projection Memorial Keychain with Your Pet Photo as Gift for Loss of Pet
Custom Pet Projection Memorial Keychain with Your Pet Photo as Gift for Loss of Pet
Custom Pet Projection Memorial Keychain with Your Pet Photo as Gift for Loss of Pet
Custom Pet Projection Memorial Keychain with Your Pet Photo as Gift for Loss of Pet
Custom Pet Projection Memorial Keychain with Your Pet Photo as Gift for Loss of Pet
Custom Pet Projection Memorial Keychain with Your Pet Photo as Gift for Loss of Pet
Custom Pet Projection Memorial Keychain with Your Pet Photo as Gift for Loss of Pet
Custom Pet Projection Memorial Keychain with Your Pet Photo as Gift for Loss of Pet
Custom Pet Projection Memorial Keychain with Your Pet Photo as Gift for Loss of Pet
1/5
Custom Pet Projection Memorial Keychain with Your Pet Photo as Gift for Loss of Pet
Custom Pet Projection Memorial Keychain with Your Pet Photo as Gift for Loss of Pet
Custom Pet Projection Memorial Keychain with Your Pet Photo as Gift for Loss of Pet
Custom Pet Projection Memorial Keychain with Your Pet Photo as Gift for Loss of Pet
Custom Pet Projection Memorial Keychain with Your Pet Photo as Gift for Loss of Pet
1/5

Custom Pet Projection Memorial Keychain with Your Pet Photo as Gift for Loss of Pet

FREE Shipping
$19.59
$0.00
Save $-19.59
Free Worldwide Shipping
Easy Return and Fast Refund
Sustainably Made
Secure Payments
Color
Please select a color
Quantity

Note: Our customized products need 4-7 working days for customization, and the delivery time takes about 7-10 working days. So please be patient when you place an order.


Wonderful Gift Choice – Our custom pet keychain makes for a great birthday, anniversary, holiday, gift for special women, girls and pet lovers in your life. 

Features: There is a small paw print as a pendant, and there is a glass ball in the middle of the paw print. We will put photos of your beloved pets in, and you can take them out whenever you miss them Take a look at this keychain.

Material: Keychain and pendant: Copper/Titanium steel/925 Silver
               Middle ball: glass

Having trouble uploading your photo? No problem! You can refer to our photo guide below. If it still can't solve your problem, you are welcome to contact us by email at sales@thepetpillow.com. Please send us your order number, name, and photo together.

A PERFECT GIFT: This lovely keychain is an ideal gift for your wife, Mom, Dad, Daughter, Grandma, Girlfriend, Friends, Boyfriend, your special someone or just a gift for yourself, Perfect Gift choice for Mother's Day Gift, Wedding Anniversary Gift, Christmas Gift, Halloween Gift, Thanksgiving Day Gift, Valentine's Day Gift, Birthday Gift, Black Friday Gift, Mother's Day Gift, Graduation gift, New Year's Gift.

1. Make sure the photo is taken in good lighting, outdoor and daylight is best

2. Try to take the photo at eye level with your pet, you pet don't need to be looking at the camera.

3. Try to get a close up so we can see your pet's unique features

4. Take a photo of your pet without any other animals in the shot, one pet per photo

5.Make sure the photo is not blurry, make sure the pixel of the photo is not less than 1500*1500 and the minimum is not less than 1MB

Upload better photos, get better products.


When taking pictures of pets, please follow these steps! If you can’t follow the steps correctly, don’t worry! We have an enthusiastic team responsible for checking all orders and photos received. If your photos do not meet our standards, we will let you know and assist you in choosing a more suitable photo! You can send your pet photos to support@willhappys.com also.

How to order multiple customized pet gifts with different pet photos & quotes in your order:

Step 1. Choose options/upload photos for the first product and click "Add to Cart"

Step 2. Click Navigation or search button to find the second product you want to

Step 3. Repeat step 1. and step 2. till all the customized pet gifts are in your cart, then go for checkout.

Note: It takes about 7-10 working days to make photos, so please be patient when you place an order.

Free shipping

Free worldwide shipping

Easy Returns & Exchanges

30 Days guarantee to return or exchange your products

Outstanding Service

24/7/365 Ticket and Email Support

Secure Payments

90 Days money back guarantee

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.