www.deoveritas.com Open in urlscan Pro
3.234.148.44  Public Scan

URL: https://www.deoveritas.com/
Submission Tags: sansec.io magecart Search All
Submission: On October 17 via api from US — Scanned from DE

Form analysis 8 forms found in the DOM

POST https://www.deoveritas.com/pslogin/account/loginPost/

<form style="display:none;" class="form" action="https://www.deoveritas.com/pslogin/account/loginPost/" method="post" id="pslogin-login-form">
  <input id="pslogin-login-referer" name="referer" type="hidden" value="">
  <input id="pslogin-login-action" name="auth_action" type="hidden" value="">
  <input id="pslogin-login-submit" type="submit" value="">
</form>

POST

<form class="form form-login" method="post" data-bind="event: {submit: login }" id="login-form">
  <div class="fieldset login" data-bind="attr: {'data-hasrequired': $t('* Required Fields')}" data-hasrequired="* Required Fields">
    <div class="field email required">
      <label class="label" for="customer-email"><span data-bind="i18n: 'Email Address'">Email Address</span></label>
      <div class="control">
        <input name="username" id="customer-email" type="email" class="input-text" data-mage-init="{&quot;mage/trim-input&quot;:{}}" data-bind="attr: {autocomplete: autocomplete}" data-validate="{required:true, 'validate-email':true}"
          autocomplete="off">
      </div>
    </div>
    <div class="field password required">
      <label for="pass" class="label"><span data-bind="i18n: 'Password'">Password</span></label>
      <div class="control">
        <input name="password" type="password" class="input-text" id="pass" data-bind="attr: {autocomplete: autocomplete}" data-validate="{required:true}" autocomplete="off">
      </div>
    </div>
    <!-- ko foreach: getRegion('additional-login-form-fields') -->
    <!-- ko template: getTemplate() -->
    <input name="captcha_form_id" type="hidden" data-bind="value: formId,  attr: {'data-scope': dataScope}" value="user_login" data-scope="">
    <!-- ko if: (isRequired() && getIsVisible())--><!-- /ko -->
    <!-- /ko -->
    <!-- /ko -->
    <div class="actions-toolbar">
      <input name="context" type="hidden" value="checkout">
      <div class="primary">
        <button type="submit" class="action action-login secondary" name="send" id="send2">
          <span data-bind="i18n: 'Sign In'">Sign In</span>
        </button>
      </div>
      <div class="secondary">
        <a class="action show_popup_login" data-bind="attr: {href: forgotPasswordUrl}" href="https://www.deoveritas.com/customer/account/forgotpassword/">
                                <span data-bind="i18n: 'Forgot Your Password?'">Forgot Your Password?</span>
                            </a>
      </div>
    </div>
  </div>
</form>

POST https://www.deoveritas.com/measurements/qsize/save/

<form action="https://www.deoveritas.com/measurements/qsize/save/" onkeydown="return event.key != 'Enter';" method="post" id="measurement-qsize-input-form" novalidate="novalidate">
  <div class="metric-toggler">
    <span>English</span>
    <label class="switch system-switch">
      <input type="checkbox">
      <div class="slider round"></div>
    </label>
    <span class="no-margin">Metric</span>
  </div>
  <div class="clearfix"></div>
  <input name="form_key" type="hidden" value="6FJ2yyvXWuwwaCJ8">
  <input name="english_system" type="hidden" value="true">
  <input name="profile-val" type="hidden">
  <ul class="qsize-content-section-wrapper">
    <li class="first  active" data-figuretext="qsizing-height">
      <label for="height-qsize-val">Height</label>
      <span class="qsize-label-line"></span>
      <input id="height-qsize-val" type="hidden" min="0" name="height-val">
      <ul class="height-select">
        <li data-val="64">5' 4</li>
        <li data-val="65">5' 5</li>
        <li data-val="66">5' 6</li>
        <li data-val="67">5' 7</li>
        <li data-val="68">5' 8</li>
        <li data-val="69">5' 9</li>
        <li data-val="70">5' 10</li>
        <li data-val="71">5' 11</li>
        <li data-val="72">6' 0</li>
        <li data-val="73">6' 1</li>
        <li data-val="74">6' 2</li>
        <li data-val="75">6' 3</li>
        <li data-val="76">6' 4</li>
        <li data-val="77">6' 5</li>
        <li data-val="78">6' 6</li>
        <li data-val="79">6' 7</li>
        <li data-val="80">6' 8</li>
        <li data-val="81">6' 9</li>
        <li data-val="82">6' 10</li>
        <li data-val="83">6' 11</li>
      </ul>
      <p class="qsizing-select-option-e">*Please select one option</p>
      <div class="why-do-we-need-wrapper">
        <label>Why do we need this?</label>
        <div class="why-do-we-need-inner-wrapper">
          <p>Your build and age help us adjust certain attribute factors as we create your profile. Additionally, they're useful when our tailors are making certain judgment calls on fit preference</p>
        </div>
      </div>
    </li>
    <li class="  " data-figuretext="qsizing-weight">
      <label for="weight-qsize-val">Weight</label>
      <span class="qsize-label-line"></span>
      <input id="weight-qsize-val" type="hidden" min="0" name="weight-val">
      <ul class="weight-select">
        <li data-val="150">150 lbs</li>
        <li data-val="155">155 lbs</li>
        <li data-val="160">160 lbs</li>
        <li data-val="165">165 lbs</li>
        <li data-val="170">170 lbs</li>
        <li data-val="175">175 lbs</li>
        <li data-val="180">180 lbs</li>
        <li data-val="185">185 lbs</li>
        <li data-val="190">190 lbs</li>
        <li data-val="195">195 lbs</li>
        <li data-val="200">200 lbs</li>
        <li data-val="205">205 lbs</li>
        <li data-val="210">210 lbs</li>
        <li data-val="215">215 lbs</li>
        <li data-val="220">220 lbs</li>
        <li data-val="225">225 lbs</li>
        <li data-val="230">230 lbs</li>
        <li data-val="235">235 lbs</li>
        <li data-val="240">240 lbs</li>
        <li data-val="245">245 lbs</li>
        <li data-val="250">250 lbs</li>
        <li data-val="255">255 lbs</li>
        <li data-val="260">260 lbs</li>
        <li data-val="265">265 lbs</li>
      </ul>
      <div class="custom-weight-wrapper">
        <span>Specific value:</span>
        <input type="number" placeholder="_________" class="custom-weight-input" data-length="0.0">
        <span class="lbs-kg-label">lbs</span>
      </div>
      <p class="qsizing-select-option-e">*Please select one option</p>
      <div class="why-do-we-need-wrapper">
        <label>Why do we need this?</label>
        <div class="why-do-we-need-inner-wrapper">
          <p>Your build and age help us adjust certain attribute factors as we create your profile. Additionally, they're useful when our tailors are making certain judgment calls on fit preference</p>
        </div>
      </div>
    </li>
    <li class="  " data-figuretext="qsizing-age">
      <label for="age-qsize-val">Age</label>
      <span class="qsize-label-line"></span>
      <input id="age-qsize-val" type="hidden" min="0" name="age-val">
      <ul class="">
        <li data-val="18-23">18-23</li>
        <li data-val="24-29">24-29</li>
        <li data-val="30-35">30-35</li>
        <li data-val="36-41">36-41</li>
        <li data-val="42-47">42-47</li>
        <li data-val="48-53">48-53</li>
        <li data-val="54-59">54-59</li>
        <li data-val=">60">&gt;60</li>
      </ul>
      <p class="qsizing-select-option-e">*Please select one option</p>
      <div class="why-do-we-need-wrapper">
        <label>Why do we need this?</label>
        <div class="why-do-we-need-inner-wrapper">
          <p>Your build and age help us adjust certain attribute factors as we create your profile. Additionally, they're useful when our tailors are making certain judgment calls on fit preference</p>
        </div>
      </div>
    </li>
    <li class="  " data-figuretext="qsizing-collar">
      <label for="collar-qsize-val">Collar size</label>
      <span class="qsize-q-mark"><svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 141.43 141.43">
          <defs>
            <style>
              .cls-1 {
                fill: none;
                stroke: #9d9d9d;
                stroke-miterlimit: 10;
                stroke-width: 2px;
              }

              .cls-2 {
                font-size: 90.38px;
                fill: #707071;
                font-family: PT Serif;
                font-weight: 700;
                font-style: italic;
              }
            </style>
          </defs>
          <title>Detailed information</title>
          <circle class="cls-1" cx="70.71" cy="70.71" r="69.71"></circle><text class="cls-2" transform="translate(55.46 101.7)">i</text>
        </svg></span>
      <div class="qsize-q-mark-content d-none">
        <img class="lazyload" src="https://www.deoveritas.com/static/version1719558241/frontend/Deoveritas/default/en_US/Deoveritas_Theme/images/1x1-placeholder.png"
          data-src="https://www.deoveritas.com/static/version1719558241/frontend/Deoveritas/default/en_US/Deoveritas_Measurements/images/collar-info-for-qsize.jpg" alt="">
      </div>
      <span class="qsize-label-line"></span>
      <input id="collar-qsize-val" type="hidden" min="0" name="collar-val">
      <ul class="in-input">
        <li data-val="14">14</li>
        <li data-val="14.5">14.5</li>
        <li data-val="15">15</li>
        <li data-val="15.5">15.5</li>
        <li data-val="16">16</li>
        <li data-val="16.5">16.5</li>
        <li data-val="17">17</li>
        <li data-val="17.5">17.5</li>
        <li data-val="18">18</li>
        <li data-val="18.5">18.5</li>
        <li data-val="19">19</li>
        <li data-val="19.5">19.5</li>
      </ul>
      <p class="qsizing-select-option-e">*Please select one option</p>
      <div class="why-do-we-need-wrapper">
        <label>Why do we need this?</label>
        <div class="why-do-we-need-inner-wrapper">
          <p>We use your existing shirt size as the basis to establish a baseline pattern. Subsequent questions will help make this pattern more precise and unique to your shape.</p>
        </div>
      </div>
    </li>
    <li class="  " data-figuretext="qsizing-sleeve_length">
      <label for="sleeve_length-qsize-val">Sleeve</label>
      <span class="qsize-q-mark"><svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 141.43 141.43">
          <defs>
            <style>
              .cls-1 {
                fill: none;
                stroke: #9d9d9d;
                stroke-miterlimit: 10;
                stroke-width: 2px;
              }

              .cls-2 {
                font-size: 90.38px;
                fill: #707071;
                font-family: PT Serif;
                font-weight: 700;
                font-style: italic;
              }
            </style>
          </defs>
          <title>Detailed information</title>
          <circle class="cls-1" cx="70.71" cy="70.71" r="69.71"></circle><text class="cls-2" transform="translate(55.46 101.7)">i</text>
        </svg></span>
      <div class="qsize-q-mark-content d-none">
        <img class="lazyload" src="https://www.deoveritas.com/static/version1719558241/frontend/Deoveritas/default/en_US/Deoveritas_Theme/images/1x1-placeholder.png"
          data-src="https://www.deoveritas.com/static/version1719558241/frontend/Deoveritas/default/en_US/Deoveritas_Measurements/images/sleeve-info-for-qsize.jpg" alt="">
      </div>
      <span class="qsize-label-line"></span>
      <input id="sleeve_length-qsize-val" type="hidden" min="0" name="sleeve_length-val">
      <ul class="in-input">
        <li data-val="30">30</li>
        <li data-val="30.5">30.5</li>
        <li data-val="31">31</li>
        <li data-val="31.5">31.5</li>
        <li data-val="32">32</li>
        <li data-val="32.5">32.5</li>
        <li data-val="33">33</li>
        <li data-val="33.5">33.5</li>
        <li data-val="34">34</li>
        <li data-val="34.5">34.5</li>
        <li data-val="35">35</li>
        <li data-val="35.5">35.5</li>
        <li data-val="36">36</li>
        <li data-val="36.5">36.5</li>
        <li data-val="37">37</li>
        <li data-val="37.5">37.5</li>
        <li data-val="38">38</li>
        <li data-val="38.5">38.5</li>
        <li data-val="39">39</li>
        <li data-val="39.5">39.5</li>
      </ul>
      <p class="qsizing-select-option-e">*Please select one option</p>
      <div class="why-do-we-need-wrapper">
        <label>Why do we need this?</label>
        <div class="why-do-we-need-inner-wrapper">
          <p>We use your existing shirt size as the basis to establish a baseline pattern. Subsequent questions will help make this pattern more precise and unique to your shape.</p>
        </div>
      </div>
    </li>
    <li class="  " data-figuretext="qsizing-cust_waist">
      <label for="cust_waist-qsize-val">Waist</label>
      <span class="qsize-label-line"></span>
      <input id="cust_waist-qsize-val" type="hidden" min="0" name="cust_waist-val">
      <ul class="in-select">
        <li data-val="27">27″</li>
        <li data-val="28">28″</li>
        <li data-val="29">29″</li>
        <li data-val="30">30″</li>
        <li data-val="31">31″</li>
        <li data-val="32">32″</li>
        <li data-val="33">33″</li>
        <li data-val="34">34″</li>
        <li data-val="35">35″</li>
        <li data-val="36">36″</li>
        <li data-val="37">37″</li>
        <li data-val="38">38″</li>
        <li data-val="39">39″</li>
        <li data-val="40">40″</li>
        <li data-val="41">41″</li>
        <li data-val="42">42″</li>
      </ul>
      <p class="qsizing-select-option-e">*Please select one option</p>
      <div class="why-do-we-need-wrapper">
        <label>Why do we need this?</label>
        <div class="why-do-we-need-inner-wrapper">
          <p>Your typical pant waist size helps us determine the cut of the torso from the chest (i.e. a V, a square, or somewhere in between).</p>
        </div>
      </div>
    </li>
    <li class="  " data-figuretext="qsizing-jacket_size">
      <label for="jacket_size-qsize-val">Jacket size</label>
      <span class="qsize-label-line"></span>
      <input id="jacket_size-qsize-val" type="hidden" min="0" name="jacket_size-val">
      <ul class="in-select">
        <li data-val="35">35″</li>
        <li data-val="36">36″</li>
        <li data-val="37">37″</li>
        <li data-val="38">38″</li>
        <li data-val="39">39″</li>
        <li data-val="40">40″</li>
        <li data-val="41">41″</li>
        <li data-val="42">42″</li>
        <li data-val="43">43″</li>
        <li data-val="44">44″</li>
        <li data-val="45">45″</li>
        <li data-val="46">46″</li>
        <li data-val="47">47″</li>
        <li data-val="48">48″</li>
        <li data-val="49">49″</li>
        <li data-val="50">50″</li>
        <li data-val="51">51″</li>
        <li data-val="52">52″</li>
      </ul>
      <p class="qsizing-select-option-e">*Please select one option</p>
      <div class="why-do-we-need-wrapper">
        <label>Why do we need this?</label>
        <div class="why-do-we-need-inner-wrapper">
          <p>Your blazer or jacket suit size helps us determine the best fit for your chest diameter.</p>
        </div>
      </div>
    </li>
    <li class="  " data-figuretext="qsizing-cut">
      <label for="cut-qsize-val">Fit style</label>
      <span class="qsize-label-line"></span>
      <input id="cut-qsize-val" type="hidden" min="0" name="cut-val">
      <ul class="">
        <li data-val="traditional" class="addit-item-desc">
          <p>traditional</p>
          <span>- A bit loose and boxy</span>
        </li>
        <li data-val="tailored" class="addit-item-desc">
          <p>tailored</p>
          <span>- Tapered yet not light or restricting</span>
        </li>
        <li data-val="slim" class="addit-item-desc">
          <p>slim</p>
          <span>- Cut close to the body, somewhat restricting</span>
        </li>
      </ul>
      <div class="qsize-addit-img-wrapper">
        <div>
          <img class="lazyload gradient-load" src="https://www.deoveritas.com/static/version1719558241/frontend/Deoveritas/default/en_US/Deoveritas_Theme/images/1x1-placeholder.png"
            data-src="https://www.deoveritas.com/static/version1719558241/frontend/Deoveritas/default/en_US/Deoveritas_Measurements/images/traditional-fit.png" alt="Measurements icon">
          <span>traditional</span>
        </div>
        <div>
          <img class="lazyload gradient-load" src="https://www.deoveritas.com/static/version1719558241/frontend/Deoveritas/default/en_US/Deoveritas_Theme/images/1x1-placeholder.png"
            data-src="https://www.deoveritas.com/static/version1719558241/frontend/Deoveritas/default/en_US/Deoveritas_Measurements/images/tailored-fit.png" alt="Measurements icon">
          <span>tailored</span>
        </div>
        <div>
          <img class="lazyload gradient-load" src="https://www.deoveritas.com/static/version1719558241/frontend/Deoveritas/default/en_US/Deoveritas_Theme/images/1x1-placeholder.png"
            data-src="https://www.deoveritas.com/static/version1719558241/frontend/Deoveritas/default/en_US/Deoveritas_Measurements/images/slim-fit.png" alt="Measurements icon">
          <span>slim</span>
        </div>
      </div>
      <p class="qsizing-select-option-e">*Please select one option</p>
      <div class="why-do-we-need-wrapper">
        <label>Why do we need this?</label>
        <div class="why-do-we-need-inner-wrapper">
          <p>Based on your fit preference, we adjust our sleeve and torso cuts accordingly. Big and tall guys tend to go with a traditional cut vs. trim / athletic guys going with a slim cut. Our tailored cut tends to be the most popular as it favors
            most guys and is not restricting.</p>
        </div>
      </div>
    </li>
    <li class="  " data-figuretext="qsizing-shoulders">
      <label for="shoulders-qsize-val">Shoulders</label>
      <span class="qsize-label-line"></span>
      <input id="shoulders-qsize-val" type="hidden" min="0" name="shoulders-val">
      <ul class="">
        <li data-val="normal" class="addit-item-desc">
          <p>normal</p>
          <span>(default) - The majority of men fall into this category. You should not experience any pulling or bunching with your off-the-rack shirts.</span>
        </li>
        <li data-val="sloping" class="addit-item-desc">
          <p>sloping</p>
          <span>- Some men have a more pronounced angle in their shoulders that causes the fabric to stretch from trapeziod to the lower chest, resulting in a pulling of the fabric along with a less than ideal fit.</span>
        </li>
        <li data-val="square" class="addit-item-desc">
          <p>square</p>
          <span>- Men with very little angle in their shoulders will see lots of wringles and lines along the neck due to excess fabric bunching up.</span>
        </li>
      </ul>
      <div class="qsize-addit-img-wrapper">
        <div>
          <img class="lazyload gradient-load" src="https://www.deoveritas.com/static/version1719558241/frontend/Deoveritas/default/en_US/Deoveritas_Theme/images/1x1-placeholder.png"
            data-src="https://www.deoveritas.com/static/version1719558241/frontend/Deoveritas/default/en_US/Deoveritas_Measurements/images/normal-shoulders.jpg" alt="Measurements icon">
          <span>normal</span>
        </div>
        <div>
          <img class="lazyload gradient-load" src="https://www.deoveritas.com/static/version1719558241/frontend/Deoveritas/default/en_US/Deoveritas_Theme/images/1x1-placeholder.png"
            data-src="https://www.deoveritas.com/static/version1719558241/frontend/Deoveritas/default/en_US/Deoveritas_Measurements/images/sloping-shoulders.jpg" alt="Measurements icon">
          <span>sloping</span>
        </div>
        <div>
          <img class="lazyload gradient-load" src="https://www.deoveritas.com/static/version1719558241/frontend/Deoveritas/default/en_US/Deoveritas_Theme/images/1x1-placeholder.png"
            data-src="https://www.deoveritas.com/static/version1719558241/frontend/Deoveritas/default/en_US/Deoveritas_Measurements/images/square-shoulders.jpg" alt="Measurements icon">
          <span>square</span>
        </div>
      </div>
      <p class="qsizing-select-option-e">*Please select one option</p>
      <div class="why-do-we-need-wrapper">
        <label>Why do we need this?</label>
        <div class="why-do-we-need-inner-wrapper">
          <p>The shape of your shoulder can effect how your shirts fit significantly as there can be pulling (sloping) or wrinkling / excess fabric (square) if not taken into account. If you fall somewhere in between, just select normal.</p>
        </div>
      </div>
    </li>
    <li class=" last " data-figuretext="qsizing-tuck">
      <label for="tuck-qsize-val">Tuck</label>
      <span class="qsize-label-line"></span>
      <input id="tuck-qsize-val" type="hidden" min="0" name="tuck-val">
      <ul class="">
        <li data-val="tucked" class="addit-item-desc">
          <p>tucked</p>
          <span>- Preferred length is mid to lower fly</span>
        </li>
        <li data-val="untucked" class="addit-item-desc">
          <p>untucked</p>
          <span>- Preferred length is cut near the top of the fly</span>
        </li>
      </ul>
      <p class="qsizing-select-option-e">*Please select one option</p>
      <div class="why-do-we-need-wrapper">
        <label>Why do we need this?</label>
        <div class="why-do-we-need-inner-wrapper">
          <p>By default, our sizing patterns assume that the shirts will be worn tucked. However, if you prefer to wear them untucked select UNTUCKED and we’ll adjust the pattern accordingly.</p>
        </div>
      </div>
    </li>
  </ul>
</form>

POST https://www.deoveritas.com/newsletter/subscriber/new/

<form class="form subscribe" novalidate="novalidate" action="https://www.deoveritas.com/newsletter/subscriber/new/" method="post" id="newsletter-validate-detail">
  <div class="field newsletter">
    <label class="label" for="newsletter"><span>Sign Up for Our Newsletter:</span></label>
    <div class="control">
      <input name="email" type="email" id="newsletter" placeholder="Your email address" data-validate="{required:true, 'validate-email':true}">
    </div>
  </div>
  <div class="actions">
    <button class="action subscribe primary" title="Subscribe" type="submit">
      <span>Subscribe</span>
    </button>
  </div>
  <div class="g-recaptcha" id="mp_recaptcha_0">
    <div class="grecaptcha-badge" data-style="inline" style="width: 256px; height: 60px; box-shadow: gray 0px 0px 5px;">
      <div class="grecaptcha-logo"><iframe title="reCAPTCHA" width="256" height="60" role="presentation" name="a-36q6j5iltqkx" frameborder="0" scrolling="no"
          sandbox="allow-forms allow-popups allow-same-origin allow-scripts allow-top-navigation allow-modals allow-popups-to-escape-sandbox allow-storage-access-by-user-activation"
          src="https://www.google.com/recaptcha/api2/anchor?ar=1&amp;k=6LfVo7UUAAAAAF7cz9uiKJnoKO46sN8stmslWz9L&amp;co=aHR0cHM6Ly93d3cuZGVvdmVyaXRhcy5jb206NDQz&amp;hl=en&amp;v=aR-zv8WjtWx4lAw-tRCA-zca&amp;theme=light&amp;size=invisible&amp;badge=inline&amp;cb=tpazlv2q4g"></iframe>
      </div>
      <div class="grecaptcha-error"></div><textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response"
        style="width: 250px; height: 40px; border: 1px solid rgb(193, 193, 193); margin: 10px 25px; padding: 0px; resize: none; display: none;"></textarea>
    </div>
  </div>
</form>

Name: pslogin_bind

<form name="pslogin_bind" id="pslogin_bind">
  <fieldset class="fieldset">
    <div class="fieldset-wrapper">
      <!-- ko if: 5 === step() --><!-- /ko -->
      <!-- ko if: 1 === step() || 2 === step() -->
      <div class="field">
        <label class="label" for="pslogin_bind_email" data-bind="i18n: 'Email'">Email</label>
        <div class="control">
          <input type="email" id="pslogin_bind_email" name="pslogin_email" autocomplete="email" value="" data-bind="value: customer.email(), attr: {'title': $t('Your Email Address'), disabled: 2 === step()}" class="input-text required-entry"
            data-validate="{required:true}" aria-required="true" required="" title="Your Email Address">
        </div>
      </div>
      <!-- /ko -->
      <!-- ko if: 2 === step() || 5 === step() --><!-- /ko -->
    </div>
  </fieldset>
  <!-- ko ifnot: 3 === step() -->
  <div class="button-wrapper">
    <!-- ko if: 1 === step() || 2 === step() || 5 === step() -->
    <button class="action primary pslogin-bind-step-5" type="button" data-role="action" data-bind="click: loginDependOnStep">
      <span data-bind="i18n: 'Login'">Login</span>
    </button>
    <!-- /ko -->
    <!-- ko if: 2 === step() || 5 === step() --><!-- /ko -->
    <!-- ko if: 4 === step() --><!-- /ko -->
  </div>
  <!-- /ko -->
</form>

POST https://www.deoveritas.com/customer/ajax/login/

<form id="prpl-login-form" class="form form-login" method="post" data-bind="submit: $parent.toLogin, attr: {action: $parent.login.url}" action="https://www.deoveritas.com/customer/ajax/login/">
  <div class="fieldset login" data-bind="attr: {'data-hasrequired': $t('* Required Fields')}" data-hasrequired="* Required Fields">
    <div class="field email required">
      <label class="label" for="prpl-email"><span data-bind="i18n: 'Email Address'">Email Address</span></label>
      <div class="control">
        <input name="username" id="prpl-email" type="email" class="input-text" data-validate="{required:true, 'validate-email':true}" data-bind="attr: {placeholder: $t('Email Address')}" placeholder="Email Address">
      </div>
    </div>
    <div class="field password required">
      <label for="prpl-pass" class="label"><span data-bind="i18n: 'Password'">Password</span></label>
      <div class="control">
        <input name="password" type="password" class="input-text" id="prpl-pass" data-validate="{required:true, 'validate-password':true}" data-bind="attr: {placeholder: $t('Password')}" placeholder="Password">
      </div>
    </div>
    <!-- ko foreach: getRegion('additional-prpl-login-fieldsets') -->
    <!-- ko template: getTemplate() -->
    <input name="captcha_form_id" type="hidden" data-bind="value: formId,  attr: {'data-scope': dataScope}" value="prpl_login_form" data-scope="">
    <!-- ko if: (isRequired() && getIsVisible())--><!-- /ko -->
    <!-- /ko -->
    <!-- /ko -->
  </div>
  <div class="actions-toolbar">
    <input name="context" type="hidden" value="checkout">
    <div class="primary">
      <button type="submit" class="action action-login secondary" name="send" id="prpl-send2">
        <span data-bind="i18n: 'Login'">Login</span>
      </button>
    </div>
    <!-- ko if: $parent.forgotpassword.show == "1" -->
    <div class="secondary prpl-f-password">
      <a class="action" data-bind="click: function(){$parent.gotoForm('prpl-forgotpassword');}">
                    <span data-bind="i18n: 'Forgot Your Password?'">Forgot Your Password?</span>
                </a>
    </div>
    <!-- /ko -->
    <div id="socialLoginButtons" data-bind="html: $parent.socialLoginButtons">
      <div class="pslogin-spacer pslogin-clearfix">
        <table>
          <tbody>
            <tr>
              <td>
                <div class="pslogin-border"></div>
              </td>
              <td class="pslogin-bordertext w25">or</td>
              <td>
                <div class="pslogin-border"></div>
              </td>
            </tr>
          </tbody>
        </table>
      </div>
      <div class="pslogin-block pslogin-login" data-mage-init="{&quot;pslogin&quot;:{}}">
        <div class="pslogin-spacer pslogin-clearfix">
          <span class="pslogin-title">Login with your social account</span>
        </div>
        <div class="pslogin-buttons">
          <ul class="pslogin-clearfix">
            <li class="pslogin-button facebook ps-default pslogin-visible" title="Login with Facebook">
              <a class="pslogin-button-link pslogin-button-click" rel="nofollow" href="javascript:void(0);" data-href="https://www.deoveritas.com/pslogin/account/douse/type/facebook/refresh/1729168362/customer_action/login/" data-open-on-page="" data-width="450" data-height="650">
                                                                                    <span class="pslogin-button-auto">
                                    <span class="pslogin-button-icon"></span>
                                    <span class="pslogin-button-text">Login with Facebook</span>
                                </span>
                                                                        </a>
            </li>
            <li class="pslogin-button google ps-default pslogin-visible" title="Login with Google">
              <a class="pslogin-button-link pslogin-button-click" rel="nofollow" href="javascript:void(0);" data-href="https://www.deoveritas.com/pslogin/account/douse/type/google/refresh/1729168362/customer_action/login/" data-open-on-page="" data-width="450" data-height="450">
                                                                                    <span class="pslogin-button-auto">
                                    <span class="pslogin-button-icon"></span>
                                    <span class="pslogin-button-text">Login with Google</span>
                                </span>
                                                                        </a>
            </li>
          </ul>
        </div>
      </div>
      <div style="clear: both;"></div>
      <script>
        if (window.psloginButtons) {
          requirejs(['pslogin']);
        }
      </script>
    </div>
    <!-- ko if: $parent.registration.show == "1" -->
    <div class="secondary prpl-cr-account">
      <span data-bind="i18n: 'Don\'t have an account?'">Don't have an account?</span><br>
      <a class="action" data-bind="click: function(){$parent.gotoForm('prpl-registration');}">
                    <span data-bind="i18n: 'Sign Up Now'">Sign Up Now</span>
                </a>
    </div>
    <!-- /ko -->
  </div>
</form>

POST https://www.deoveritas.com/prpopuplogin/ajax/register/

<form id="prpl-registration-form" class="form form-create-account" method="post" autocomplete="off" data-bind="submit: $parent.toRegister, attr: {action: $parent.registration.url}" action="https://www.deoveritas.com/prpopuplogin/ajax/register/"
  novalidate="novalidate">
  <fieldset class="fieldset registration" data-bind="attr: {'data-hasrequired': $t('* Required Fields')}" data-hasrequired="* Required Fields">
    <!-- ko foreach: getRegion('registration-fieldsets') -->
    <!-- ko template: getTemplate() -->
    <!-- ko foreach: {data: elems, as: 'element'} -->
    <!-- ko if: hasTemplate() --><!-- /ko -->
    <!-- ko if: hasTemplate() --><!-- ko template: getTemplate() -->
    <div class="field _required" data-bind="visible: visible, attr: {'name': element.dataScope}, css: additionalClasses" name="prpl-popuplogin.firstname">
      <label class="label" data-bind="attr: { for: element.uid }" for="CF6N0TU"><!-- ko if: element.label --><span data-bind="i18n: element.label">First Name</span><!-- /ko --></label>
      <div class="control" data-bind="css: {'_with-tooltip': element.tooltip}">
        <!-- ko ifnot: element.hasAddons() -->
        <!-- ko template: element.elementTmpl -->
        <input class="input-text" type="text" data-bind="
    value: value,
    valueUpdate: 'keyup',
    hasFocus: focused,
    attr: {
        name: inputName,
        placeholder: placeholder,
        'aria-describedby': getDescriptionId(),
        'aria-required': required,
        'aria-invalid': error() ? true : 'false',
        id: uid,
        disabled: disabled
    }" name="firstname" placeholder="First Name" aria-required="true" aria-invalid="false" id="CF6N0TU">
        <!-- /ko -->
        <!-- /ko -->
        <!-- ko if: element.hasAddons() --><!-- /ko -->
        <!-- ko if: element.tooltip --><!-- /ko -->
        <!-- ko if: element.notice --><!-- /ko -->
        <!-- ko if: element.error() --><!-- /ko -->
        <!-- ko if: element.warn() --><!-- /ko -->
      </div>
    </div>
    <!-- /ko --><!-- /ko -->
    <!-- ko if: hasTemplate() --><!-- ko template: getTemplate() -->
    <div class="field _required" data-bind="visible: visible, attr: {'name': element.dataScope}, css: additionalClasses" name="prpl-popuplogin.lastname">
      <label class="label" data-bind="attr: { for: element.uid }" for="NUQ96F2"><!-- ko if: element.label --><span data-bind="i18n: element.label">Last Name</span><!-- /ko --></label>
      <div class="control" data-bind="css: {'_with-tooltip': element.tooltip}">
        <!-- ko ifnot: element.hasAddons() -->
        <!-- ko template: element.elementTmpl -->
        <input class="input-text" type="text" data-bind="
    value: value,
    valueUpdate: 'keyup',
    hasFocus: focused,
    attr: {
        name: inputName,
        placeholder: placeholder,
        'aria-describedby': getDescriptionId(),
        'aria-required': required,
        'aria-invalid': error() ? true : 'false',
        id: uid,
        disabled: disabled
    }" name="lastname" placeholder="Last Name" aria-required="true" aria-invalid="false" id="NUQ96F2">
        <!-- /ko -->
        <!-- /ko -->
        <!-- ko if: element.hasAddons() --><!-- /ko -->
        <!-- ko if: element.tooltip --><!-- /ko -->
        <!-- ko if: element.notice --><!-- /ko -->
        <!-- ko if: element.error() --><!-- /ko -->
        <!-- ko if: element.warn() --><!-- /ko -->
      </div>
    </div>
    <!-- /ko --><!-- /ko -->
    <!-- ko if: hasTemplate() --><!-- ko template: getTemplate() -->
    <div class="field _required" data-bind="visible: visible, attr: {'name': element.dataScope}, css: additionalClasses" name="prpl-popuplogin.email">
      <label class="label" data-bind="attr: { for: element.uid }" for="AE7U90J"><!-- ko if: element.label --><span data-bind="i18n: element.label">Email</span><!-- /ko --></label>
      <div class="control" data-bind="css: {'_with-tooltip': element.tooltip}">
        <!-- ko ifnot: element.hasAddons() -->
        <!-- ko template: element.elementTmpl -->
        <input class="input-text" type="text" data-bind="
    value: value,
    valueUpdate: 'keyup',
    hasFocus: focused,
    attr: {
        name: inputName,
        placeholder: placeholder,
        'aria-describedby': getDescriptionId(),
        'aria-required': required,
        'aria-invalid': error() ? true : 'false',
        id: uid,
        disabled: disabled
    }" name="email" placeholder="Email" aria-required="true" aria-invalid="false" id="AE7U90J">
        <!-- /ko -->
        <!-- /ko -->
        <!-- ko if: element.hasAddons() --><!-- /ko -->
        <!-- ko if: element.tooltip --><!-- /ko -->
        <!-- ko if: element.notice --><!-- /ko -->
        <!-- ko if: element.error() --><!-- /ko -->
        <!-- ko if: element.warn() --><!-- /ko -->
      </div>
    </div>
    <!-- /ko --><!-- /ko -->
    <!-- ko if: hasTemplate() --><!-- ko template: getTemplate() -->
    <div class="field _required" data-bind="visible: visible, attr: {'name': element.dataScope}, css: additionalClasses" name="prpl-popuplogin.password">
      <label class="label" data-bind="attr: { for: element.uid }" for="W2HN7MR"><!-- ko if: element.label --><span data-bind="i18n: element.label">Password</span><!-- /ko --></label>
      <div class="control" data-bind="css: {'_with-tooltip': element.tooltip}">
        <!-- ko ifnot: element.hasAddons() -->
        <!-- ko template: element.elementTmpl -->
        <div class="field password required" id="registration-password">
          <label for="password" class="label"><span data-bind="i18n: 'Password'">Password</span></label>
          <div class="control">
            <input class="input-text" type="password" data-bind="
            hasFocus: focused,
            value: value,
            afterRender: function(){
                if (window.prplEnablePasswordStrength) {
                    jQuery('#prpl-registration-form').validate();
                    jQuery('#registration-password').passwordStrengthIndicator(
                        {
                            formSelector: '#prpl-registration-form',
                            emailSelector: 'input[name=email]',
                            passwordSelector: 'input[type=password]'
                        }
                    );
                }
            },
            attr: {
                name: inputName,
                placeholder: placeholder,
                'aria-describedby': getDescriptionId(),
                'aria-required': required,
                'aria-invalid': error() ? true : 'false',
                id: uid,
                disabled: disabled
            }" name="password" placeholder="Password" aria-required="true" aria-invalid="false" id="W2HN7MR">
            <!-- ko if: window.prplEnablePasswordStrength -->
            <div id="password-strength-meter-container" data-role="password-strength-meter" aria-live="polite">
              <div id="password-strength-meter" class="password-strength-meter" data-bind="i18n: 'Password Strength'">Password Strength</div>
            </div>
            <!-- /ko -->
          </div>
        </div>
        <!-- /ko -->
        <!-- /ko -->
        <!-- ko if: element.hasAddons() --><!-- /ko -->
        <!-- ko if: element.tooltip --><!-- /ko -->
        <!-- ko if: element.notice --><!-- /ko -->
        <!-- ko if: element.error() --><!-- /ko -->
        <!-- ko if: element.warn() --><!-- /ko -->
      </div>
    </div>
    <!-- /ko --><!-- /ko -->
    <!-- /ko -->
    <!-- /ko -->
    <!-- /ko -->
    <!-- ko foreach: getRegion('additional-prpl-registration-fieldsets') -->
    <!-- ko template: getTemplate() -->
    <input name="captcha_form_id" type="hidden" data-bind="value: formId,  attr: {'data-scope': dataScope}" value="prpl_registration_form" data-scope="">
    <!-- ko if: (isRequired() && getIsVisible())--><!-- /ko -->
    <!-- /ko -->
    <!-- /ko -->
  </fieldset>
  <div class="actions-toolbar">
    <div class="primary">
      <button type="submit" class="action submit primary" data-bind="attr: {'title': $t('Create an Account')}" title="Create an Account"><span data-bind="i18n: 'Create an Account'">Create an Account</span></button>
    </div>
    <!-- ko if: $parent.login.show == "1" -->
    <div class="secondary">
      <a class="action back" href="#" data-bind="click: function(){$parent.gotoForm('prpl-login');}"><span data-bind="i18n: 'Go to Login'">Go to Login</span></a>
    </div>
    <!-- /ko -->
  </div>
  <div id="socialLoginButtons" data-bind="html: $parent.socialRegisterButtons">
    <div class="pslogin-spacer pslogin-clearfix">
      <table>
        <tbody>
          <tr>
            <td>
              <div class="pslogin-border"></div>
            </td>
            <td class="pslogin-bordertext w25">or</td>
            <td>
              <div class="pslogin-border"></div>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
    <div class="pslogin-block pslogin-register" data-mage-init="{&quot;pslogin&quot;:{}}">
      <div class="pslogin-buttons">
        <div class="pslogin-spacer"> Register with your social account </div>
        <br>
        <ul>
          <li class="pslogin-button facebook ps-default pslogin-visible" title="Register with Facebook">
            <a class="pslogin-button-link pslogin-button-click" rel="nofollow" href="javascript:void(0);" data-href="https://www.deoveritas.com/pslogin/account/douse/type/facebook/refresh/1729168362/customer_action/register/" data-open-on-page="" data-width="450" data-height="650">
                                                                                    <span class="pslogin-button-auto">
                                    <span class="pslogin-button-icon"></span>
                                    <span class="pslogin-button-text">Login with Facebook</span>
                                </span>
                                                                        </a>
          </li>
          <li class="pslogin-button google ps-default pslogin-visible" title="Register with Google">
            <a class="pslogin-button-link pslogin-button-click" rel="nofollow" href="javascript:void(0);" data-href="https://www.deoveritas.com/pslogin/account/douse/type/google/refresh/1729168362/customer_action/register/" data-open-on-page="" data-width="450" data-height="450">
                                                                                    <span class="pslogin-button-auto">
                                    <span class="pslogin-button-icon"></span>
                                    <span class="pslogin-button-text">Login with Google</span>
                                </span>
                                                                        </a>
          </li>
        </ul>
      </div>
    </div>
    <div style="clear: both;"></div>
    <script>
      if (window.psloginButtons) {
        requirejs(['pslogin']);
      }
    </script>
  </div>
  <div class="g-recaptcha" id="mp_recaptcha_1">
    <div class="grecaptcha-badge" data-style="inline" style="width: 256px; height: 60px; box-shadow: gray 0px 0px 5px;">
      <div class="grecaptcha-logo"><iframe title="reCAPTCHA" width="256" height="60" role="presentation" name="a-xn8nrifb0264" frameborder="0" scrolling="no"
          sandbox="allow-forms allow-popups allow-same-origin allow-scripts allow-top-navigation allow-modals allow-popups-to-escape-sandbox allow-storage-access-by-user-activation"
          src="https://www.google.com/recaptcha/api2/anchor?ar=1&amp;k=6LfVo7UUAAAAAF7cz9uiKJnoKO46sN8stmslWz9L&amp;co=aHR0cHM6Ly93d3cuZGVvdmVyaXRhcy5jb206NDQz&amp;hl=en&amp;v=aR-zv8WjtWx4lAw-tRCA-zca&amp;theme=light&amp;size=invisible&amp;badge=inline&amp;cb=l3i74m7g3exq"></iframe>
      </div>
      <div class="grecaptcha-error"></div><textarea id="g-recaptcha-response-1" name="g-recaptcha-response" class="g-recaptcha-response"
        style="width: 250px; height: 40px; border: 1px solid rgb(193, 193, 193); margin: 10px 25px; padding: 0px; resize: none; display: none;"></textarea>
    </div><iframe style="display: none;"></iframe>
  </div>
</form>

POST https://www.deoveritas.com/prpopuplogin/ajax/forgot/

<form id="prpl-forgotpassword-form" class="form form-forgotpassword" method="post" data-bind="submit: $parent.toForgot, attr: {action: $parent.forgotpassword.url}" action="https://www.deoveritas.com/prpopuplogin/ajax/forgot/">
  <fieldset class="fieldset" data-bind="attr: {'data-hasrequired': $t('* Required Fields')}" data-hasrequired="* Required Fields">
    <div class="field note" data-bind="i18n: 'Please enter your email address below to receive a password reset link.'">Please enter your email address below to receive a password reset link.</div>
    <div class="field email required">
      <label for="prpl-email_address" class="label"><span data-bind="i18n: 'Email Address'">Email Address</span></label>
      <div class="control">
        <input type="email" name="email" alt="email" id="prpl-email_address" class="input-text" value="" data-validate="{required:true, 'validate-email':true}" data-bind="attr: {placeholder: $t('Email Address')}" placeholder="Email Address">
      </div>
    </div>
    <!-- ko foreach: getRegion('additional-prpl-forgotpassword-fieldsets') -->
    <!-- ko template: getTemplate() -->
    <input name="captcha_form_id" type="hidden" data-bind="value: formId,  attr: {'data-scope': dataScope}" value="prpl_forgotpassword_form" data-scope="">
    <!-- ko if: (isRequired() && getIsVisible())-->
    <div class="field captcha required" data-bind="blockLoader: getIsLoading()">
      <label data-bind="attr: {for: 'captcha_' + formId}" class="label" for="captcha_prpl_forgotpassword_form"><span data-bind="i18n: 'Please type the letters and numbers below'">Please type the letters and numbers below</span></label>
      <div class="control captcha">
        <input name="captcha_string" type="text" class="input-text required-entry" data-bind="value: captchaValue(), attr: {id: 'captcha_' + formId, 'data-scope': dataScope}" autocomplete="off" id="captcha_prpl_forgotpassword_form" data-scope="">
        <div class="nested">
          <div class="field captcha no-label">
            <div class="control captcha-image">
              <img data-bind="attr: {
                                        alt: $t('Please type the letters and numbers below'),
                                        title: $t('Please type the letters and numbers below'),
                                        height: imageHeight(),
                                        src: getImageSource(),
                                        }" class="captcha-img" alt="Please type the letters and numbers below" title="Please type the letters and numbers below" height="50"
                src="https://www.deoveritas.com/media/captcha/base/cb3c6985baab417264e5a10c19db31b0.png">
              <button type="button" class="action reload captcha-reload" data-bind="attr: {title: $t('Reload captcha')}, click: refresh" title="Reload captcha">
                <span data-bind="i18n: 'Reload captcha'">Reload captcha</span>
              </button>
            </div>
          </div>
          <!-- ko if: isCaseSensitive()--><!-- /ko -->
        </div>
      </div>
    </div>
    <!-- /ko -->
    <!-- /ko -->
    <!-- /ko -->
  </fieldset>
  <div class="actions-toolbar">
    <div class="primary">
      <button type="submit" class="action submit primary"><span data-bind="i18n: 'Submit'">Submit</span></button>
    </div>
    <!-- ko if: $parent.login.show == "1" -->
    <div class="secondary">
      <a class="action back" data-bind="click: function(){$parent.gotoForm('prpl-login');}"><span data-bind="i18n: 'Go to Login'">Go to Login</span></a>
    </div>
    <!-- /ko -->
  </div>
</form>

Text Content

The store will not work correctly when cookies are disabled.

JavaScript seems to be disabled in your browser. For the best experience on our
site, be sure to turn on Javascript in your browser.





 * Sign In
   |
 * Join

 * 
 * 
 * * Close
   * Menu
    * Shop
   
    * * Pre-Designed Shirts
      
      * Design Your Own Shirt
      
      * Our Fabrics
      
      * Gift certificates
    * Learn
   
    * * Custom Dress Shirts
      
      * How It Works
      
      * How We Started
      
      * Frequently Asked Questions
      
      * Our Collar Guide
      
      * News & press
    * Fit
   
    * * Fit guarantee
      
      * Measurements home
      
      * QSizing
      
      * Standard sizing
      
      * Existing shirt sizing
      
      * Body measurements
    * Inspire
   
    * * 2023 Lookbook - ALTA LUX
      
      * 2020/21 Lookbook - DOMICILIUM
      
      * 2018/19 Lookbook - TORONTO
      
      * 2017/18 Lookbook - MALMÖ
      
      * 2016/17 Lookbook - BROOKLYN
      
      * UNFUSED - STYLE | FOOD | TRAVEL | LIFE
    * Connect
   
    * * Contact us
      
      * Instagram
      
      * Facebook
      
      * Twitter

 * Shopping-bag Shopping bag My Cart 0
   My Cart 0
   Close You have no items in your shopping cart.
   

 *  * Pre-Designed shirts
      
      Our collection of pre-designed, curated shirt favorites
   
    * Design your own shirt
      
      Design your own unique, custom dress shirt
   
    * Our fabrics
      
      Browse our collection of 200+ fabrics
   
    * Gift certificates
      
      The perfect gift for any occasion. Send a physical or e-gift certificate
      today

 * » Classic, contemporary, and business essentials
   
   » Purchase ‘as is’ or customize options further
   
   » Delivery within 14 days — the fastest in the industry
   
   » Over a dozen customizable options
   
   » Real time rendering of your designed shirt
   
   » Hundreds of fabrics across all patterns and price points
   
   » Delivery within 14 days — the fastest in the industry
   
   » Hundreds of fabrics across all patterns and price points
   
   » Select a fabric and begin designing
   
   » Prices start at $70
   
   » Choose a gift value from $50 - 500
   
   » Personalize with a message to the recipient
   
   » Send now or on a specific date
   
   » Send immediately as an e-certificate or traditionally via mail

 * 

 *  * Custom dress shirts
      
      Stop settling for dress shirts that look great on hangers and not on you
   
    * How it works
      
      Our company, process, and product explained simply
   
    * How we started
      
      Learn more about the Deo Veritas journey
   
    * Frequently asked questions
      
      The most commonly asked questions explained
   
    * Our Collar Guide
      
      Learn more about the Deo Veritas collar collection
   
    * News & press
      
      Notable stories and unvarnished reviews

 * » What to expect from a Deo Veritas custom dress shirt:
   
   ✧ Super fast delivery by: Nov 7, 2024
   
   ✧ Perfect fit guarantee
   
   ✧ Immaculate construction and details
   
   » We started this company in 2007 with a simple premise – creating beautiful
   dress shirts that fit perfectly.
   
   » In the years that have passed, our passion to fulfill that mission is as
   strong as ever.

 * 

 *  * FIT GUARANTEE
      
      We’ll repair or remake your first shirt for any reason, NO QUESTIONS
      ASKED.
   
    * Measurements home
      
      Choose 1 of 4 measurement methods
   
    * QSizing
      
      Answer 10 questions and we’ll create your personal fit profile. No
      Measuring Tape Required.
   
    * Standard sizing
      
      Off the rack (store) measurements, i.e. 16.5” x 34”. No Measuring Tape
      Required
   
    * Existing shirt sizing
      
      Clone a perfectly fitting shirt by measuring an existing one.  Measuring
      Tape Required
   
    * Body measurements
      
      The traditional method used by tailors. Measuring Tape Required.

 * » Deo Veritas offers (4) four easy to follow measuring methods
   
   » Once your measurements are finalized you can re-order new shirts quickly by
   simply selecting your saved profile
   
   » Profiles can be easily edited and personalized for different occasions
   (i.e. formal vs. casual or tucked vs. untucked)
   
   » Each method comes with our 1st shirt, perfect fit guarantee

 * 

 *  * 2023 LOOKBOOK
      
      Alta Lux
   
    * 2020/21 LOOKBOOK
      
      Domicilium
   
    * 2018/19 LOOKBOOK
      
      Toronto
   
    * 2017/18 LOOKBOOK
      
      Malmö
   
    * 2016/17 LOOKBOOK
      
      Brooklyn
   
    * UNFUSED - STYLE | FOOD | TRAVEL | LIFE
      
      Our online journal featuring the latest news in menswear and social trends

 * » Get inspired through one of our seasonal lookbooks
   
   » Our Lookbook’s showcase a number of classic and contemporary shirting
   favorites

 * 

 *  * Contact us
      
      Have a question? Send a quick note to one of our style & fit consultants.
   
    * Instagram
   
    * Facebook
   
    * Twitter

 * » Talk with one of our style & fit consultants to walk through any questions
   
   » Our consultants typically respond within the same business day
   
   » Follow us on social media for the latest updates
   
   ☎ 800 525 0301
   
   ✉ support@deoveritas.com

 * 

Alta Lux

Latest lookbook

Our latest lookbook

View now
design your own shirt
pre-designed shirts
Shirt delivery:
Nov 03 - Nov 07
Custom dress shirts.Perfected.
Cloth face masksmore info
how it works
 


 * STYLE
   
   Select from hundreds of fabrics and dozens of options to build the shirt or
   suit of your choosing


 * MEASUREMENTS
   
   Input a custom fit profile trough one of our intuitive easy to follow methods


 * MADE TO MEASURE
   
   We handcraft each shirt and suit to your individual style and fit profile


 * DELIVERY
   
   Fast Worldwide delivery
   
   Shirts: 7-14 Days
   
   Suits: 22-28 Days

learn more
qsizing
10 questions / no measuring tape required
 * start now

fit guarantee
our no fault, no hassle policy
sizing methods
qsizing
off the rack sizing
existing shirt sizing
body sizing

Getting your size right the first go around can tough, which is why we make it
simple.

If for any reason your first shirt does not fit, you’re eligible for a
complimentary alteration or remake. No questions asked.

If for any reason your suit does not fit, we offer up to $100 in local
alteration credit. If an alteration is not possible, we will remake your
garment.

learn more
Checkout as a new customer

Creating an account has many benefits:

 * See order and shipping status
 * Track order history
 * Check out faster

Create an Account
Checkout using your account

Email Address

Password

Sign In
Forgot Your Password?

NEW & NOTEWORTHY SHIRTS
shirt details
view all shirts
Previous
Wessex - Brown Mini Houndstooth Dress Shirt $145
Sky Blue Cotton / Tencel™ $145
Solid White Cotton / Tencel™ $145
Bio-Stretch - White Dress Shirt $145
Bio-Stretch - Navy Dress Shirt $145
Amelia - Tattersall Gingham 120s Dress Shirt $175
Cortina - Navy Merino Wool Melange Dress Shirt $190
Cornwall Blue Reverse Stripe - Non Iron Dress Shirt $125
Grey Performance Stretch Dress Shirt $145
Sofia - Indigo Chambray Dress Shirt $125
Next

FABRIC FAVORITES
fabric details
view all fabrics
Previous
Sofia - Indigo Chambray $125
Grey Performance Stretch $145
Cornwall Blue Reverse Stripe $125
Cortina - Navy Merino Wool Melange $190
Amelia - Tattersall Gingham 120s $175
Exeter - Charcoal Flannel $120
Exeter - Navy Flannel $120
Exeter - Indigo Blue Flannel $120
Exeter - Solid Grey Flannel $120
Pink Poplin $95
Next

REVIEWS & PRESS
view all press

"My Deo Veritas shirts have earned a permanent spot in my closet"

During this difficult time, Deo Veritas remains committed to the health and
safety of our employees, front line workers, and you are customer.

All new orders will include a complimentary (grey) cloth face mask that can be
used daily. Orders over $350 will include a complimentary 3 pack of face masks.

Each mask features 2 ply 100% shirting cotton, soft elastic earbands, and a
malleable nose guard. Masks may also be purchased separately via the link below.

For every mask that is purchased, Deo Veritas will donate masks to Chicago area
small businesses with front line / essential workers.

Learn more about our face masks


Collar size:
15"

Age: 80+

Height:

Slopping shoulders

Sleeve size:
35"

Pant waist:
30"

Jacket size:
45"

Traditional fit

Untucked

Weight:
150 lb

English

Metric

 * Height
   * 5' 4
   * 5' 5
   * 5' 6
   * 5' 7
   * 5' 8
   * 5' 9
   * 5' 10
   * 5' 11
   * 6' 0
   * 6' 1
   * 6' 2
   * 6' 3
   * 6' 4
   * 6' 5
   * 6' 6
   * 6' 7
   * 6' 8
   * 6' 9
   * 6' 10
   * 6' 11
   
   *Please select one option
   
   Why do we need this?
   
   Your build and age help us adjust certain attribute factors as we create your
   profile. Additionally, they're useful when our tailors are making certain
   judgment calls on fit preference

 * Weight
   * 150 lbs
   * 155 lbs
   * 160 lbs
   * 165 lbs
   * 170 lbs
   * 175 lbs
   * 180 lbs
   * 185 lbs
   * 190 lbs
   * 195 lbs
   * 200 lbs
   * 205 lbs
   * 210 lbs
   * 215 lbs
   * 220 lbs
   * 225 lbs
   * 230 lbs
   * 235 lbs
   * 240 lbs
   * 245 lbs
   * 250 lbs
   * 255 lbs
   * 260 lbs
   * 265 lbs
   Specific value: lbs
   
   *Please select one option
   
   Why do we need this?
   
   Your build and age help us adjust certain attribute factors as we create your
   profile. Additionally, they're useful when our tailors are making certain
   judgment calls on fit preference

 * Age
   * 18-23
   * 24-29
   * 30-35
   * 36-41
   * 42-47
   * 48-53
   * 54-59
   * >60
   
   *Please select one option
   
   Why do we need this?
   
   Your build and age help us adjust certain attribute factors as we create your
   profile. Additionally, they're useful when our tailors are making certain
   judgment calls on fit preference

 * Collar size Detailed informationi
   
   * 14
   * 14.5
   * 15
   * 15.5
   * 16
   * 16.5
   * 17
   * 17.5
   * 18
   * 18.5
   * 19
   * 19.5
   
   *Please select one option
   
   Why do we need this?
   
   We use your existing shirt size as the basis to establish a baseline pattern.
   Subsequent questions will help make this pattern more precise and unique to
   your shape.

 * Sleeve Detailed informationi
   
   * 30
   * 30.5
   * 31
   * 31.5
   * 32
   * 32.5
   * 33
   * 33.5
   * 34
   * 34.5
   * 35
   * 35.5
   * 36
   * 36.5
   * 37
   * 37.5
   * 38
   * 38.5
   * 39
   * 39.5
   
   *Please select one option
   
   Why do we need this?
   
   We use your existing shirt size as the basis to establish a baseline pattern.
   Subsequent questions will help make this pattern more precise and unique to
   your shape.

 * Waist
   * 27″
   * 28″
   * 29″
   * 30″
   * 31″
   * 32″
   * 33″
   * 34″
   * 35″
   * 36″
   * 37″
   * 38″
   * 39″
   * 40″
   * 41″
   * 42″
   
   *Please select one option
   
   Why do we need this?
   
   Your typical pant waist size helps us determine the cut of the torso from the
   chest (i.e. a V, a square, or somewhere in between).

 * Jacket size
   * 35″
   * 36″
   * 37″
   * 38″
   * 39″
   * 40″
   * 41″
   * 42″
   * 43″
   * 44″
   * 45″
   * 46″
   * 47″
   * 48″
   * 49″
   * 50″
   * 51″
   * 52″
   
   *Please select one option
   
   Why do we need this?
   
   Your blazer or jacket suit size helps us determine the best fit for your
   chest diameter.

 * Fit style
   
   * traditional
     
     - A bit loose and boxy
   
   * tailored
     
     - Tapered yet not light or restricting
   
   * slim
     
     - Cut close to the body, somewhat restricting
   traditional
   tailored
   slim
   
   *Please select one option
   
   Why do we need this?
   
   Based on your fit preference, we adjust our sleeve and torso cuts
   accordingly. Big and tall guys tend to go with a traditional cut vs. trim /
   athletic guys going with a slim cut. Our tailored cut tends to be the most
   popular as it favors most guys and is not restricting.

 * Shoulders
   
   * normal
     
     (default) - The majority of men fall into this category. You should not
     experience any pulling or bunching with your off-the-rack shirts.
   
   * sloping
     
     - Some men have a more pronounced angle in their shoulders that causes the
     fabric to stretch from trapeziod to the lower chest, resulting in a pulling
     of the fabric along with a less than ideal fit.
   
   * square
     
     - Men with very little angle in their shoulders will see lots of wringles
     and lines along the neck due to excess fabric bunching up.
   normal
   sloping
   square
   
   *Please select one option
   
   Why do we need this?
   
   The shape of your shoulder can effect how your shirts fit significantly as
   there can be pulling (sloping) or wrinkling / excess fabric (square) if not
   taken into account. If you fall somewhere in between, just select normal.

 * Tuck
   
   * tucked
     
     - Preferred length is mid to lower fly
   
   * untucked
     
     - Preferred length is cut near the top of the fly
   
   *Please select one option
   
   Why do we need this?
   
   By default, our sizing patterns assume that the shirts will be worn tucked.
   However, if you prefer to wear them untucked select UNTUCKED and we’ll adjust
   the pattern accordingly.

Previous
Next »


CONGRATULATIONS!

You’ve completed your QSize Profile!

A perfect fitting shirt is just a few clicks away!

Profile name Qsize - Guest

Your calculated Qsize values

Measurements below represent your calculated, algorithm derived values. Please
note, these are finished (shirt) measurements and not body measurements.

 * Collar
   
   Value not specified

 * Sleeve
   
   Value not specified

 * Chest
   
   Value not specified

 * Waist
   
   Value not specified

 * Bottom
   
   Value not specified

 * Back
   
   Value not specified

 * Sleeve width
   
   Value not specified

 * Cuffs
   
   Value not specified

 * Length
   
   Value not specified

(+) Add qsize profile to shirt

Next: Apply your qsize to one of our shirt design methods

Design your own shirt

Pre-designed shirts

Newsletter

Sign up to receive updates and access to exclusive offers

Sign Up for Our Newsletter:

Subscribe



 * * SHOP
   
   * Pre-Designed Shirts
   * Design Your Own Shirt
   * Our Fabrics
   * Face Masks
   * Gift Certificates
   
   
   * LEARN
   
   * Custom Dress Shirts
   * How It Works
   * How We Started
   * Frequently Asked Questions
   * Our Collar Guide
   * News & Press
   
   
   * FIT
   
   * Fit Guarantee
   * Measurements Home
   * QSizing
   * Standard Sizing
   * Existing Shirt Sizing
   * Body Measurements
   
   
   * INSPIRE
   
   * Unfused - Our Online Journal
   * Alta Lux 2023 Lookbook
   * Domicilium 20/21 Lookbook
   * Toronto 18/19 Lookbook
   * Sweden 17/18 Lookbook
   * Brooklyn 16/17 Lookbook
   
   
   * CONNECT
   
   * Deo Veritas on Instagram
   * Deo Veritas on Twitter
   * Deo Veritas on Facebook
   * Contact Us
   
   
   * SPECIFICS
   
   * Our Collar Guide
   * Fabric Weaves
   * Dress Shirt Construction
   * Cocktail Cuffs
   * Untucked Shirts
   * Contrast Collar Shirts
   
   
   * SPECIFICS (CONT'D)
   
   * Dress Shirt Shrinkage
   * How to Care for Your Shirts
   * Fused vs Unfused Shirts
   * Tab Collar Dress Shirts
   * Keep Your Collars Sharp
   * Big & Tall Custom Shirting
   
   
   * BY CITY
   
   * Chicago
   * New York
   * Los Angeles
   * San Francisco
   * Houston
   * London

Copyright © 2023 Deo Veritas, Inc. All rights reserved.



WELCOME %1

Close
Please provide your email
Email

Login

Close
Email Address

Password

Login
Forgot Your Password?

or


Login with your social account
 * Login with Facebook
 * Login with Google


Don't have an account?
Sign Up Now
First Name

Last Name

Email

Password
Password
Password Strength
Create an Account
Go to Login

or


Register with your social account

 * Login with Facebook
 * Login with Google



Please enter your email address below to receive a password reset link.
Email Address

Please type the letters and numbers below
Reload captcha
Submit
Go to Login


YOUR REQUEST HAS BEEN SUBMITTED

Thank you for you interest in our store

We will notify you by email regarding your request for membership