ToyTime Plastic G45 Keychain Fidget Toy Mini Pistol Shape Tactical Keychain G45 Model Toy
ToyTime Plastic G45 Keychain Fidget Toy Mini Pistol Shape Tactical Keychain G45 Model Toy
ToyTime Plastic G45 Keychain Fidget Toy Mini Pistol Shape Tactical Keychain G45 Model Toy
ToyTime Plastic G45 Keychain Fidget Toy Mini Pistol Shape Tactical Keychain G45 Model Toy
ToyTime Plastic G45 Keychain Fidget Toy Mini Pistol Shape Tactical Keychain G45 Model Toy
ToyTime Plastic G45 Keychain Fidget Toy Mini Pistol Shape Tactical Keychain G45 Model Toy
ToyTime Plastic G45 Keychain Fidget Toy Mini Pistol Shape Tactical Keychain G45 Model Toy
ToyTime Plastic G45 Keychain Fidget Toy Mini Pistol Shape Tactical Keychain G45 Model Toy
ToyTime Plastic G45 Keychain Fidget Toy Mini Pistol Shape Tactical Keychain G45 Model Toy
ToyTime Plastic G45 Keychain Fidget Toy Mini Pistol Shape Tactical Keychain G45 Model Toy
ToyTime Plastic G45 Keychain Fidget Toy Mini Pistol Shape Tactical Keychain G45 Model Toy
ToyTime Plastic G45 Keychain Fidget Toy Mini Pistol Shape Tactical Keychain G45 Model Toy
ToyTime Plastic G45 Keychain Fidget Toy Mini Pistol Shape Tactical Keychain G45 Model Toy
ToyTime Plastic G45 Keychain Fidget Toy Mini Pistol Shape Tactical Keychain G45 Model Toy
ToyTime Plastic G45 Keychain Fidget Toy Mini Pistol Shape Tactical Keychain G45 Model Toy
ToyTime Plastic G45 Keychain Fidget Toy Mini Pistol Shape Tactical Keychain G45 Model Toy
ToyTime Plastic G45 Keychain Fidget Toy Mini Pistol Shape Tactical Keychain G45 Model Toy
ToyTime Plastic G45 Keychain Fidget Toy Mini Pistol Shape Tactical Keychain G45 Model Toy
ToyTime Plastic G45 Keychain Fidget Toy Mini Pistol Shape Tactical Keychain G45 Model Toy

ToyTime Plastic G45 Keychain Fidget Toy Mini Pistol Shape Tactical Keychain G45 Model Toy

COLOR
Please select a color
Price
$9.90
$7.90
Save  20%
784 sold
Quantity
For mini keychain toys, our Shipping Range Covers the USA, Canada, France, Germany, Spain, Italy, Brazil, Australia, Israel, UK, Portugal, New Zealand, Poland, Netherlands, Belgium, Norway, and Ireland. For other items in our shop, we make global delivery.
14 Days Return Period
Sustainably made
Secure payments
Vendor by: ToyTime
SKU:

Toytime is a new brand, we focus on providing happiness and joy to everyone! We have diverse playing toys and gadgets such as RC toys, fidget toys, educational toys, party toys and so on. We are always ready to offer you the best products with considerable services.

High Quality Plastic G45 Keychain Toy

Feature:

- Engineering plastic material,wear-resistant and durable

- The loading process can be simulated,and the machine can hang up in an empty warehouse

- One-button detachable magazine pouch

- Can be used as a decorative ornament



Package Included:

1 x keychain



Note:

1. Please allow 1-3cm error due to manual measurement, thanks for your understanding!

2. Item color may show slight aberration due to different shooting light and monitor display.

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.