Free shipping on international orders of $100

Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
1 / 5
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
1 / 5

Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt

$65.99
$0.00 0% Off
Color
Size

Effortless manliness meets unparalleled comfort in our Tom Harding Workwear Cotton Shirt. Beautifully crafted from our signature blend, it feels super soft on the touch, providing a highly breathable fit. Finished in a simple design, it pairs easily with a variety of trousers and shoes.

  • Fit: Fits true to size. Take your normal shirt size. If you are unsure, use one size bigger than your usual size. 

FEATURES:

  • Material: Cotton
  • Including 1x Cotton Casual Long Sleeve ShirtWorkwear Cotton Shirt
  • Price includes Taxes 
Size Shoulder Bust Length Sleeve
cm inch cm inch cm inch cm inch
M 45 17.71 104 40.94 72 28.34 60.5 23.81
L 46.2 18.18 108 42.52 74 29.13 62 24.41
XL 47.4 18.66 112 44.09 76 29.92 63.5 25.00
2L 48.6 19.13 116 45.67 78 30.71 65 25.59
3XL 49.8 19.61 120 47.24 80 31.49 66.5 26.18
4XL 51 20.07 124 48.81 82 32.28 67 26.37
5XL 52.2 20.55 128 50.39 84 33.07 68.5 26.96
Due to manual measurement, there may be an error of 1-3cm
Customer Reviews

Here are what our customers say.

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.