Journalsay 1 Pc Retro Tape Style Desktop Storage Pen Holder Large Capacity Desktop Storage Rack
Journalsay 1 Pc Retro Tape Style Desktop Storage Pen Holder Large Capacity Desktop Storage Rack
Journalsay 1 Pc Retro Tape Style Desktop Storage Pen Holder Large Capacity Desktop Storage Rack
Journalsay 1 Pc Retro Tape Style Desktop Storage Pen Holder Large Capacity Desktop Storage Rack
Journalsay 1 Pc Retro Tape Style Desktop Storage Pen Holder Large Capacity Desktop Storage Rack
Journalsay 1 Pc Retro Tape Style Desktop Storage Pen Holder Large Capacity Desktop Storage Rack
Journalsay 1 Pc Retro Tape Style Desktop Storage Pen Holder Large Capacity Desktop Storage Rack
Journalsay 1 Pc Retro Tape Style Desktop Storage Pen Holder Large Capacity Desktop Storage Rack

Journalsay 1 Pc Retro Tape Style Desktop Storage Pen Holder Large Capacity Desktop Storage Rack

Please select a color
/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return - container./*OK*/ getBoundingClientRect().top; } return; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(; const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if( == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = &&; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || ! { return null; } const data =; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !==, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);

This unique storage box is crafted from durable plastic material, boasting a retro appearance that transports you back to the heyday of cassette tapes. Its practicality shines through, effortlessly catering to various office and study needs.

The cassette-shaped design pays homage to vintage enthusiasts while also serving as a charming addition to any desk or workspace. Functioning as a pen holder, it elegantly accommodates various pens and stationery items, drawing inspiration from the bygone era of cassette tapes to create a nostalgic yet stylish ambiance.

Its versatility lies in its ability to neatly organize a variety of office supplies, from pens and pencils to small scissors, staplers, and sticky notes. The plastic material is easy to wipe clean and maintain, ensuring it remains in pristine condition even after prolonged use.

Choose this cassette-shaped plastic storage box to enhance the organization and aesthetics of your workspace, whether you're an office worker seeking to tidy up small items or a student in need of a meticulously organized study corner. Add it to your cart now and transform your workspace into a haven of order and personality!

①:Our shop has installed currency conversion tool. If you want to know the currency settlement price of your country, please switch in the upper right corner of the page

②:fter-sale service:If you have any problems with the product received,please do not directly leave negative feedback.Do contact us and we will try our best to solve the problems until you are satisfied.Please contact me via WhatsApp: +8615669541485

About Indian buyers
Question: Will my package be taxed?
Answer:For parcels shipped to India, we will prepay customs duties in advance, and all parcels will be tax-free.

Question: How long does it take for the package to reach my home?
Answer: The parcel processing time is 1-3 days + the parcel transportation time is 7-25 days = it takes 8-28 days in total

Question: Need to fill in PAN for local payment in India?
Answer: Yes, you need to fill in the accurate PAN, please rest assured, we are a regular store and a regular collector, please be assured of your payment

Question: Will my package be split?
Answer: At present, the journalsay has updated a brand new transportation channel. Products weighing less than 5kg can be transported in one package and will not be split into multiple ones. Please rest assured to buy.

1: How long does it take to transport the package?
Answer: Total Delivery Time (10-30days) = Processing Time (3 days) + Shipping Time (7-25days)

2: Will my package be taxed?
Answer: Parcels will not be taxed through standard transportation and economic transportation, please rest assured to buy.

3: What are your transportation methods?

①: Standard shipping: Shipping time: 7-30days (full tracking of logistics information, shipping method: e-packet, CNE, China Post, YANWEN) Free standard shipping if the order amount exceeds $20

②: Express delivery: delivery time: 7-14days (full tracking of logistics information, transportation method: DHL, UPS, TNT, Federal Express)

4: Do you support wholesale products?
Answer: Journalsay supports wholesale and dropshopping. Journalsay does not have a product list.For more information, please contact me via Instagram or WhatsApp.

5: Where does the journalsay come from?
Answer: The journalsay comes from China, we have ample supply of goods, and the price is affordable and exquisite.

6: Which countries are supported for transportation?
Answer: The journalsay can be shipped to more than 200 countries around the world, including India (please rest assured to buy).

7: What payment methods are supported?
Answer: I support the world’s most popular credit and debit cards and paypal.
For example: VISA, MasterCard, DISCOVER, JBC, ICICI, American Express, Diners Club International.
And your local payment
Such as India-UPI

8: Where can I contact you?
Service: WhatsApp: +8615669541485
Instagram: journalsay
Please try to contact me via Instagram or WhatsApp, and I will respond to your questions faster.

9:How can I track my package?
①: You can find the corresponding order you purchased on my website,(P.S:The tracking number can only be seen through the computer)Find the tracking number, use this website ( to track your package, please rest assured that all order logistics information is trackable throughout the process
②: Check your Google mailbox "A series of operations such as successful package payment/package delivery" and there will be an email to notify you. In the email, see the tracking number, use this website ( to track your package, please rest assured that all order logistics information is trackable throughout the process

10:I clicked "Confirm Receipt" by mistake, what should I do?
Answer: Don't worry, your package will not stop shipping, you can receive your package. You only need to know the tracking number and track it.

Delivery to delivery time may 5~27 Business Days, depending on the items and the way of transportation.
Sometimes, the accumulation of goods will cause the logistics company's online logistics information update to be delayed for a long time, but in fact your goods are still being transported, In our experience, it always comes without exception. Thank you for your patience!
Special cases, you buy multiple items, We will send in several packages.

Customer Reviews

Here are what our customers say.

Write a Review
Customer Reviews
Wow you reached the bottom
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'); = 'block'; = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { = 'none'; }); fullScreenImage.src = ''; = 'none'; = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { = 'none'; }; fullScreenVideo.src = ''; = 'none'; = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { = '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(, 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.