Men's Vest Notch Lapel Waistcoat
Men's Vest Notch Lapel Waistcoat
Men's Vest Notch Lapel Waistcoat
Men's Vest Notch Lapel Waistcoat
Men's Vest Notch Lapel Waistcoat
Men's Vest Notch Lapel Waistcoat
Men's Vest Notch Lapel Waistcoat
1 / 7
Men's Vest Notch Lapel Waistcoat
Men's Vest Notch Lapel Waistcoat
Men's Vest Notch Lapel Waistcoat
Men's Vest Notch Lapel Waistcoat
Men's Vest Notch Lapel Waistcoat
Men's Vest Notch Lapel Waistcoat
Men's Vest Notch Lapel Waistcoat
mysite

Men's Vest Notch Lapel Waistcoat

$41.99 $93.98
0 sold
Color
Size
Qty 1000 in stock

Buy 2 Get Extra 10% OFF

Buy 4 Get Extra 15OFF & FREE SHIPPING

Refresh Your Look And Stay In Fashion!

Applicable Scene: Daily

Material: COTTON

Applicable Season: Fall and Winter

Style: Casual

Item Type: Jacket

Gender: MEN

Size: S,M, L, XL, 2XL, 3XL, 4XL, 5XL

Size Chat

Tag
Size
ReferenceReferenceReferenceLengthChestShoulder
USUKEURcm | inchcm | inchcm | inch
S34-3634-3644-4673cm | 28.74''110cm | 43.31''47.5cm | 18.70''
M38-4038-4048-5074cm | 29.13''115cm | 45.28''49.0cm | 19.29''
L42425275cm | 29.53''120cm | 47.24''50.5cm | 19.88''
XL44445476cm | 29.92''125cm | 49.21''52.0cm | 20.47''
2XL46465677cm | 30.31''130cm | 51.18''53.5cm | 21.06''
3XL48485878cm | 30.71''135cm | 53.15''55.0cm | 21.65''
4XL5050 6079cm | 31.10''140cm | 55.12''56.5cm | 22.24''
5XL5252 6280cm | 31.50''145cm | 57.09''58.0cm | 22.83''

* This data was obtained from manually measuring the product, it may be off by 0-0.2cm.
Item sizes are true to the size chart. Refer to the size chart to find your size.
If you're between sizes, we recommend the larger option for a better fit. 

You May Also Like Don't Like These?
const TAG = 'spz-custom-painter-button-animation'; const MAX_ITERATION_COUNT = 99999999; const SITE = (window.C_SETTINGS && window.C_SETTINGS.routes && window.C_SETTINGS.routes.root) || ''; const ADD_TO_CART_ANIMATION_SETTING = `${SITE}/api/marketing_atmosphere_app/add_to_cart_btn_animation/setting`; class SpzCustomPainterButtonAnimation extends SPZ.BaseElement { /**@override */ static deferredMount() { return false; } /** @param {!SpzElement} element */ constructor(element) { super(element); /** @private {!../../src/service/xhr-impl.Xhr} */ this.xhr_ = SPZServices.xhrFor(this.win); /** @private {Object} */ this.data_ = null; /** @private {Element} */ this.addToCartButton_ = null; /** @private {boolean} */ this.productAvailable_ = true; /** @private {number} */ this.timerId_ = null; /** @private {number} */ this.animationExecutionCount_ = 0; /** @private {boolean} */ this.selectedVariantAvailable_ = true; /** @private {number} */ this.delay_ = 5000; /** @private {number} */ this.iterationCount_ = 5; /** @private {string} */ this.animationClass_ = ''; } /** @override */ isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } /** @override */ buildCallback() { this.productAvailable_ = this.element.hasAttribute('product-available'); this.selectedVariantAvailable_ = this.element.hasAttribute('selected-variant-available'); } /** @override */ mountCallback() { this.render_(); } /** @private */ render_() { if (!this.productAvailable_) { return; } this.fetch_().then((data) => { if (!data) { return; } this.data_ = data; this.animationClass_ = `painter-${data.animation_name}-animation`; this.iterationCount_ = data.animation_iteration_count === 'infinite' ? MAX_ITERATION_COUNT : data.animation_iteration_count; const animationDuration = 1; const animationDelay = data.animation_delay || 5; this.delay_ = (animationDuration + animationDelay) * 1000; this.handleButtonEffect_(); }); } /** * @param {JsonObject} data * @return {(null|Object)} * @private */ parseJson_(data) { try { return JSON.parse(data); } catch (e) { return null; } } /** * @return {Promise} * @private */ fetch_() { return this.xhr_.fetchJson(ADD_TO_CART_ANIMATION_SETTING).then((data) => { if (!data || !data.enabled) { return null; } return this.parseJson_(data.detail); }); } /** @private */ getAddToCartButton_() { this.addToCartButton_ = SPZCore.Dom.scopedQuerySelector( document.body, '[data-section-type="product"] [role="addToCart"], [data-section-type="product_detail"] [role="addToCart"], [data-section-type="product_detail"] [data-click="addToCart"], [data-section-type="product"] [data-click="addToCart"]' ); } /** @private */ restartAnimation_() { this.addToCartButton_.classList.remove(this.animationClass_); this.addToCartButton_./* OK */ offsetWidth; this.addToCartButton_.classList.add(this.animationClass_); this.animationExecutionCount_++; } /** @private */ clearTimer_() { this.win.clearInterval(this.timerId_); this.timerId_ = null; } /** @private */ setupTimer_() { this.timerId_ = this.win.setInterval(() => { this.restartAnimation_(); if (this.animationExecutionCount_ >= this.iterationCount_) { this.removeAnimationClass_(); this.clearTimer_(); } }, this.delay_); } /** @private */ restartTimer_() { if (this.animationExecutionCount_ >= this.iterationCount_) { this.removeAnimationClass_(); return; } this.setupTimer_(); } /** @private */ listenVariantChange_() { SPZUtils.Event.listen(self.document, 'dj.variantChange', (e) => { const selectedVariant = e.detail && e.detail.selected; if (!selectedVariant) { return; } const {available} = selectedVariant; if (this.selectedVariantAvailable_ !== available) { this.selectedVariantAvailable_ = available; this.clearTimer_(); if (available) { this.restartTimer_(); } } }); } /** @private */ removeAnimationClass_() { this.win.setTimeout(() => { this.addToCartButton_.classList.remove(this.animationClass_); }, 1000); } /** @private */ handleButtonEffect_() { this.getAddToCartButton_(); if (!this.addToCartButton_) { return; } if (this.selectedVariantAvailable_) { ++this.animationExecutionCount_; this.addToCartButton_.classList.add(this.animationClass_); if (this.iterationCount_ === 1) { this.removeAnimationClass_(); return; } this.setupTimer_(); } this.listenVariantChange_(); } } SPZ.defineElement(TAG, SpzCustomPainterButtonAnimation);