Free shipping worldwide over $50
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
1 / 17
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)
50% OFF
clickcsi-1

(🌷Pets and Playmates Sale - 40% OFF) Catnip Balls (Buy 2 Get 1 Free)

$9.99 $19.99
932 sold
Style
Color
Qty
Qty

Natural Catnip Rotating Interactive Cat Toys

Features

    😻 Sticky & Rotatable

    This catnip ball has thick stickers on the bottom and can be firmly stuck everywhere, such as on walls, chair foot, floor, etc, then it can prevent loss. And it is rotatable for your cat to play with it, have fun and be healthy.

    😻 Exhausting The Hairball

    Catnip can make the fluff adhere to the digestive tract, help the cat to spit out impurities such as hair in the digestive tract, and achieve gastrointestinal health.

    😻 Increase Appetite

    Catnip contains chlorophyll that cats can't synthesize. When cats need it, they will take the initiative to relieve mild stomach discomfort, supplement vitamin C, and increase appetite.

    😻 Regulating Emotions

    The chemicals released by catnip can stimulate the cat's pheromones, causing the cat to hallucinate, become excited, and be more intimate with the owner.

    PACKAGE INCLUDES

    • 1 x Catnip Ball

    You May Also Like Don't Like These?

    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.