Apoko-Bottle / FetishFlask (Waterbottle)

$170.28
Quantity
FREE delivery Tue, Jan 07
Or FAST delivery Thu, Jan 02
Description

Introducing the Apoko-Bottle / FetishFlask Waterbottle - the perfect companion for all your hydration needs. Crafted with precision and designed with style, this water bottle is a must-have for those who value functionality and aesthetic appeal. Whether you're hitting the gym, going for a hike, or simply running errands, this water bottle will keep you refreshed and hydrated throughout the day.

With its sleek and modern design, the Apoko-Bottle / FetishFlask Waterbottle stands out from the crowd. Its durable construction ensures that it can withstand the rigors of your active lifestyle, while its lightweight nature makes it easy to carry wherever you go. The bottle is made from high-quality materials that are both BPA-free and eco-friendly, ensuring that you can sip with confidence, knowing that you're doing your part for the environment.

But it's not just about looks - the Apoko-Bottle / FetishFlask Waterbottle is packed with features that make it a standout choice. The wide-mouth opening allows for easy filling and cleaning, while the secure screw-on lid ensures that there are no leaks or spills. The ergonomic design fits comfortably in your hand, providing a firm grip even during the most intense workouts. Plus, the convenient carrying handle makes it effortless to take this water bottle with you on the go.

Stay hydrated and refreshed with the Apoko-Bottle / FetishFlask Waterbottle. With a generous capacity of <insert capacity>, you'll have plenty of water to keep you going throughout the day. Whether you prefer ice-cold water or a refreshing beverage, this water bottle is designed to maintain the temperature of your drink for hours, thanks to its double-wall insulation. Say goodbye to lukewarm drinks and hello to icy cold refreshment!

Not only is the Apoko-Bottle / FetishFlask Waterbottle functional and stylish, but it also allows you to express your unique personality. Choose from a range of vibrant colors and patterns to match your individual taste. Whether you prefer a classic solid color or a bold and eye-catching design, there's a water bottle that suits your style.

Invest in the Apoko-Bottle / FetishFlask Waterbottle and experience the perfect blend of style, durability, and functionality. Stay hydrated in style and make a statement wherever you go. Don't settle for ordinary - choose extraordinary with the Apoko-Bottle / FetishFlask Waterbottle.

Frequently Bought Together

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.