2025 Workwear Adventure Outdoor Casual Sweatshirt
2025 Workwear Adventure Outdoor Casual Sweatshirt
2025 Workwear Adventure Outdoor Casual Sweatshirt
2025 Workwear Adventure Outdoor Casual Sweatshirt
2025 Workwear Adventure Outdoor Casual Sweatshirt
2025 Workwear Adventure Outdoor Casual Sweatshirt
2025 Workwear Adventure Outdoor Casual Sweatshirt
2025 Workwear Adventure Outdoor Casual Sweatshirt
2025 Workwear Adventure Outdoor Casual Sweatshirt
2025 Workwear Adventure Outdoor Casual Sweatshirt
2025 Workwear Adventure Outdoor Casual Sweatshirt
2025 Workwear Adventure Outdoor Casual Sweatshirt
2025 Workwear Adventure Outdoor Casual Sweatshirt
2025 Workwear Adventure Outdoor Casual Sweatshirt
2025 Workwear Adventure Outdoor Casual Sweatshirt
2025 Workwear Adventure Outdoor Casual Sweatshirt

2025 Workwear Adventure Outdoor Casual Sweatshirt

850 sold
$34.99
$128.99
-$94.00
Buy 2 Get 10% Off Plus Free Shipping (Total Discount Is About $15)
Color-Khaki
Please select a color
Size-S
Please select a size
Quantity
/** @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 rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } 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(this.win); 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(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.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 || !responseData.data) { return null; } const data = responseData.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 !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);
        • Material: Cotton. Polyester
        • Neckline: Sweatshirt
        • Sleeve: Long Sleeve
        • Pattern: Casual
        • Elasticity: Non-Stretchy
        • Fit: Relaxed fit. Not too boxy and not too slim. Designed to be worn untucked. If you're between sizes we recommend sizing up
        • Colors: Due to different views on different devices. it's possible that the colors of the product may differ slightly from what's seen on you