Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt
Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt

Men's Casual V-neck Cotton Blended Slim Fit Long Sleeve T-shirt

Price

$0.00 $48.37
Save $-48.37
Free shipping

color

Please select a color

size

Please select a size

Quantity

Free worldwide shipping
Free returns
Sustainably made
Secure payments
/** * 优惠码组件模型类 * 处理优惠码的显示和交互逻辑 */ class SpzCustomDiscountCodeModel extends SPZ.BaseElement { constructor(element) { super(element); // 复制按钮和内容的类名 this.copyBtnClass = "discount_code_btn" this.copyClass = "discount_code_value" } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { // 初始化服务 this.action_ = SPZServices.actionServiceForDoc(this.element); this.templates_ = SPZServices.templatesForDoc(this.element); this.xhr_ = SPZServices.xhrFor(this.win); } /** * 渲染优惠码组件 * @param {Object} data - 渲染数据 */ doRender_(data) { return this.templates_ .findAndRenderTemplate(this.element, Object.assign(this.getDefaultData(), data) ) .then((el) => { this.clearDom(); this.element.appendChild(el); // 绑定复制代码功能 this.copyCode(el, data); }); } /** * 获取渲染模板 * @param {Object} data - 渲染数据 */ getRenderTemplate(data) { const renderData = Object.assign(this.getDefaultData(), data); return this.templates_ .findAndRenderTemplate(this.element, renderData) .then((el) => { this.clearDom(); return el; }); } /** * 清除DOM内容 */ clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } /** * 获取默认数据 * @returns {Object} 默认数据对象 */ getDefaultData() { return { isMobile: appDiscountUtils.judgeMobile(), isRTL: appDiscountUtils.judgeRTL(), image_domain: this.win.SHOPLAZZA.image_domain, copyBtnClass: this.copyBtnClass, copyClass: this.copyClass } } /** * 复制优惠码功能 * @param {Element} el - 当前元素 */ copyCode(el) { const copyBtnList = el.querySelectorAll(`.${this.copyBtnClass}`); if (copyBtnList.length > 0) { copyBtnList.forEach(item => { item.onclick = async () => { // 确保获取正确的元素和内容 const codeElement = item.querySelector(`.${this.copyClass}`); if (!codeElement) return; // 获取纯文本内容 const textToCopy = codeElement.innerText.trim(); // 尝试使用现代API,如果失败则使用备用方案 try { if (navigator.clipboard && navigator.clipboard.writeText) { await navigator.clipboard.writeText(textToCopy); } else { throw new Error('Clipboard API not available'); } // 显示复制成功提示 this.showCopySuccessToast(textToCopy, el); } catch (err) { console.error('Modern clipboard API failed, trying fallback...', err); // 使用备用复制方案 this.fallbackCopy(textToCopy, el); } const discountId = item.dataset["discountId"]; // 是否跳转落地页配置 const redirection = item.dataset["redirection"] === "true"; // 跳转到落地页 if (redirection && appDiscountUtils.inProductBody(this.element)) { this.win.open(`/promotions/discount-default/${discountId}`); } } }) } } /** * 使用 execCommand 的复制方案 * @param {string} codeText - 要复制的文本 * @param {Element} el - 当前元素 */ fallbackCopy(codeText, el) { const textarea = this.win.document.createElement('textarea'); textarea.value = codeText; // 设置样式使文本框不可见 textarea.style.position = 'fixed'; textarea.style.left = '-9999px'; textarea.style.top = '0'; // 添加 readonly 属性防止移动端虚拟键盘弹出 textarea.setAttribute('readonly', 'readonly'); this.win.document.body.appendChild(textarea); textarea.focus(); textarea.select(); try { this.win.document.execCommand('copy'); // 显示复制成功提示 this.showCopySuccessToast(codeText, el); } catch (err) { console.error('Copy failed:', err); } this.win.document.body.removeChild(textarea); } /** * 创建 Toast 元素 * @returns {Element} 创建的 Toast 元素 */ createToastEl_() { const toast = document.createElement('ljs-toast'); toast.setAttribute('layout', 'nodisplay'); toast.setAttribute('hidden', ''); toast.setAttribute('id', 'discount-code-toast'); toast.style.zIndex = '1051'; return toast; } /** * 挂载 Toast 元素到 body * @returns {Element} 挂载的 Toast 元素 */ mountToastToBody_() { const existingToast = this.win.document.getElementById('discount-code-toast'); if (existingToast) { return existingToast; } const toast = this.createToastEl_(); this.win.document.body.appendChild(toast); return toast; } /** * 复制成功的提醒 * @param {string} codeText - 要复制的文本 * @param {Element} el - 当前元素 */ showCopySuccessToast(codeText, el) { const $toast = this.mountToastToBody_(); SPZ.whenApiDefined($toast).then(toast => { toast.showToast("Discount code copied !"); this.codeCopyInSessionStorage(codeText); }); } /** * 复制优惠码成功后要存一份到本地存储中,购物车使用 * @param {string} codeText - 要复制的文本 */ codeCopyInSessionStorage(codeText) { try { sessionStorage.setItem('other-copied-coupon', codeText); } catch (error) { console.error(error) } } } // 注册自定义元素 SPZ.defineElement('spz-custom-discount-code-model', SpzCustomDiscountCodeModel);
/** * Custom discount code component that handles displaying and managing discount codes * @extends {SPZ.BaseElement} */ class SpzCustomDiscountCode extends SPZ.BaseElement { constructor(element) { super(element); // API endpoint for fetching discount codes this.getDiscountCodeApi = "\/api\/storefront\/promotion\/code\/list"; // Debounce timer for resize events this.timer = null; // Current variant ID this.variantId = "9e7a2a31-6940-4cc5-9a7f-9c3588fee194"; // Store discount code data this.discountCodeData = {} } /** * Check if layout is supported * @param {string} layout - Layout type * @return {boolean} */ isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } /** * Initialize component after build */ buildCallback() { this.templates_ = SPZServices.templatesForDoc(); this.viewport_ = this.getViewport(); // Bind methods to maintain context this.render = this.render.bind(this); this.resize = this.resize.bind(this); this.switchVariant = this.switchVariant.bind(this); } /** * Setup component when mounted */ mountCallback() { this.getData(); // Add event listeners this.viewport_.onResize(this.resize); this.win.document.addEventListener('dj.variantChange', this.switchVariant); } /** * Cleanup when component is unmounted */ unmountCallback() { this.viewport_.removeResize(this.resize); this.win.document.removeEventListener('dj.variantChange', this.switchVariant); // 清除定时器 if (this.timer) { clearTimeout(this.timer); this.timer = null; } } /** * Handle resize events with debouncing */ resize() { if (this.timer) { clearTimeout(this.timer) this.timer = null; } this.timer = setTimeout(() => { if (appDiscountUtils.inProductBody(this.element)) { this.render(); } else { this.renderSkeleton(); } }, 200); } /** * Handle variant changes * @param {Event} event - Variant change event */ switchVariant(event) { const variant = event.detail.selected; if (variant.product_id == '5a3bd809-a118-4556-aea4-f2444e11f3b2' && variant.id != this.variantId) { this.variantId = variant.id; this.getData(); } } /** * Fetch discount code data from API */ getData() { if (appDiscountUtils.inProductBody(this.element)) { const reqBody = { product_id: "5a3bd809-a118-4556-aea4-f2444e11f3b2", variant_id: this.variantId, product_type: "default", } if (!reqBody.product_id || !reqBody.variant_id) return; this.discountCodeData = {}; this.win.fetch(this.getDiscountCodeApi, { method: "POST", body: JSON.stringify(reqBody), headers: { "Content-Type": "application/json" } }).then(async (response) => { if (response.ok) { let data = await response.json(); if (data.list && data.list.length > 0) { data.list[0].product_setting.template_config = JSON.parse(data.list[0].product_setting.template_config); // Format timestamps to local timezone const zone = this.win.SHOPLAZZA.shop.time_zone; data.list = data.list.map(item => { if(+item.ends_at !== -1) { item.ends_at = appDiscountUtils.convertTimestampToFormat(+item.ends_at, zone); } item.starts_at = appDiscountUtils.convertTimestampToFormat(+item.starts_at, zone); return item; }); } this.discountCodeData = data; this.render(); } else { this.clearDom(); } }).catch(err => { console.error("discount_code", err) this.clearDom(); }); } else { this.renderSkeleton(); } } /** * Clear component DOM except template */ clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } /** * Render discount codes with formatted dates */ render() { // Render using discount code model SPZ.whenApiDefined(document.querySelector('#spz_custom_discount_code_model')).then(renderApi => { renderApi.doRender_({ discountCodeData: this.discountCodeData }) }).catch(err => { this.clearDom(); }) } renderSkeleton() { // Render template for non-product pages this.templates_ .findAndRenderTemplate(this.element, { isMobile: appDiscountUtils.judgeMobile() }) .then((el) => { this.clearDom(); this.element.appendChild(el); }) .catch(err => { this.clearDom(); }); } } // Register custom element SPZ.defineElement('spz-custom-discount-code', SpzCustomDiscountCode);

Men's Casual V-Neck Cotton Blended Slim Fit Long Sleeve T-Shirt

Product Overview: The Men's Casual V-Neck Cotton Blended Slim Fit Long Sleeve T-Shirt offers a refined blend of comfort and style. Designed with a sleek, slim fit and crafted from a premium cotton blend, this t-shirt is perfect for layering or wearing on its own. Its V-neck design adds a modern touch, making it a versatile addition to any wardrobe.

Key Features:

  1. Modern V-Neck Design:

    • Features a classic V-neckline that enhances the shirt's sleek appearance and provides a contemporary look.
    • Ideal for showcasing a stylish necklace or layering under jackets and blazers.
    • The V-neck also offers a flattering shape for various body types.
  2. Slim Fit for a Tailored Look:

    • The slim fit design contours to the body, providing a sleek and tailored appearance.
    • Accentuates the wearer’s physique while maintaining comfort and ease of movement.
    • Perfect for a polished, refined look that pairs well with both casual and semi-formal outfits.
  3. Long Sleeves for Versatility:

    • The long sleeves offer added warmth and versatility, making it suitable for cooler weather or transitional seasons.
    • Ideal for layering under a variety of outerwear or wearing solo for a more streamlined look.
    • Can be rolled up for a relaxed style or worn down for a more formal appearance.
  4. High-Quality Cotton Blend Fabric:

    • Made from a soft, breathable cotton blend that provides exceptional comfort and durability.
    • The fabric offers a smooth feel against the skin while maintaining breathability.
    • Designed to withstand regular wear and washing, retaining its shape and color over time.
  5. Versatile Styling:

    • Easily pairs with jeans, chinos, or trousers for a smart-casual look.
    • Suitable for various occasions, from casual outings to semi-formal events.
    • Can be layered under jackets, blazers, or sweaters for a more sophisticated appearance.
  6. Slim Fit with Comfortable Stretch:

    • The cotton blend fabric incorporates a small amount of stretch, allowing for flexibility and comfort.
    • The slim fit design provides a sleek, modern silhouette without compromising on comfort.
    • The stretch in the fabric ensures ease of movement and a comfortable fit throughout the day.
  7. Easy Care and Maintenance:

    • Simple to care for with easy machine washing and low-maintenance fabric.
    • The shirt resists fading and maintains its quality after repeated washes.
    • Ideal for everyday wear and practical for a busy lifestyle.
  8. Contemporary and Stylish:

    • The combination of the V-neck and slim fit creates a modern, stylish look that aligns with current fashion trends.
    • The clean, minimalist design makes it a versatile piece that can be dressed up or down.
    • Available in classic and versatile colors, making it easy to coordinate with any wardrobe.

Why Choose This T-Shirt?

  • The Men's Casual V-Neck Cotton Blended Slim Fit Long Sleeve T-Shirt combines modern design with high-quality fabric for a stylish and comfortable wardrobe essential. Its slim fit and V-neck design offer a tailored look that’s perfect for a range of occasions, while the soft cotton blend ensures all-day comfort. Whether worn alone or layered, this t-shirt is a versatile addition to any fashion-conscious man's collection.