CINXE.COM

Timber Sheet Materials & Wood Boards

<!DOCTYPE html> <html lang="en"> <head> <title> Timber Sheet Materials &amp; Wood Boards</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content="Browse high-quality plywood, chipboard &amp; OSB and more sheet materials. Great for uses such as flooring, roofing and structural construction."> <meta name="robots" content="index,follow"> <link rel="shortcut icon" type="image/x-icon" media="all" href="/_ui/responsive/theme-jewson/images/favicon.ico" /> <link rel="canonical" href="https://www.jewson.co.uk/timber/sheet-materials" /> <script type="application/ld+json"> { "@context" : "http://schema.org", "@type" : "Organization", "address" : "STARK Building Materials UK Limited Trading as Jewson </br>Merchant House, Binley Business Park, Harry Weston Road, Coventry, CV3 2TT", "url" : "https://www.jewson.co.uk", "name" : "Jewson Store", "telephone" : "02476 608235", "logo" : "https://www.jewson.co.uk/medias/jewson-logo.svg?context=bWFzdGVyfGltYWdlc3wxNjAwfGltYWdlL3N2Zyt4bWx8YURSakwyZzVOQzg0T0RJME5UWTJPRFF4TXpjMEwycGxkM052Ymkxc2IyZHZMbk4yWnd8OTUwMTEyYWFjZDIzZTRmNzgyOTdlMzU2Njc2YTRhMWMxMTYxNDExYTEyMTBhZmM2YjYzMjg5NDMwNjRlY2I3Nw", "email" : "jewsonhq@jewson.co.uk" }</script> <link rel="preconnect" href="https://use.typekit.net" crossorigin /> <link rel="preload" as="style" href="https://use.typekit.net/gdr0xyc.css" /> <link rel="stylesheet" href="https://use.typekit.net/gdr0xyc.css" media="print" onload="this.media='all'" /> <noscript> <link rel="stylesheet" href="https://use.typekit.net/gdr0xyc.css" /> </noscript> <link rel="stylesheet" type="text/css" media="all" href="/_ui/responsive/theme-jewson/css/core.css?version=d234d82e29f5e971208840ce870dfb6b" /> <link rel="preload" type="text/css" media="all" href="/_ui/responsive/theme-jewson/css/site.css?version=d234d82e29f5e971208840ce870dfb6b" as="style" onload="this.onload=null;this.rel='stylesheet'" /> <noscript><link rel="stylesheet" type="text/css" media="all" href="/_ui/responsive/theme-jewson/css/site.css?version=d234d82e29f5e971208840ce870dfb6b" /> </noscript> <link rel="stylesheet" type="text/css" media="print" href="/_ui/responsive/theme-jewson/css/print.css?version=d234d82e29f5e971208840ce870dfb6b" /> <script> // Picture element HTML5 shiv document.createElement( "picture" ); </script> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="https://www.jewson.co.uk/timber/sheet-materials?q=%3Arelevance&page=2" rel="next"/> <link href="https://www.jewson.co.uk/timber/sheet-materials?q=%3Arelevance&page=0" rel="prev"/> <script> (function(win, doc, style, timeout) { var STYLE_ID = 'at-body-style'; // Only initiate the hiding and showing of the page if a timeout exists, if it's zero or NaN don't bother if(timeout) { function getParent() { return doc.getElementsByTagName('head')[0]; } function addStyle(parent, id, def) { if (!parent) { return; } var style = doc.createElement('style'); style.id = id; style.innerHTML = def; parent.appendChild(style); } function removeStyle(parent, id) { if (!parent) { return; } var style = doc.getElementById(id); if (!style) { return; } parent.removeChild(style); } addStyle(getParent(), STYLE_ID, style); setTimeout(function() { removeStyle(getParent(), STYLE_ID); }, timeout); ['at-content-rendering-succeeded','at-content-rendering-no-offers'].forEach(function(e) { document.addEventListener(e, function(event) { removeStyle(getParent(), STYLE_ID); }, false); }); } }(window, document, "body {opacity: 0 !important}", parseInt(3000))); </script> <script type="text/javascript" src="//assets.adobedtm.com/f177fcea2274/0ec023f9574e/launch-d6138b71f4d6.min.js?version=d234d82e29f5e971208840ce870dfb6b" async></script> </head> <body class="page-SheetMaterialsCategoryPage pageType-CategoryPage template-pages-category-categoryPage smartedit-page-uid-SheetMaterialsCategoryPage smartedit-page-uuid-eyJpdGVtSWQiOiJTaGVldE1hdGVyaWFsc0NhdGVnb3J5UGFnZSIsImNhdGFsb2dJZCI6Impld3NvbkNvbnRlbnRDYXRhbG9nIiwiY2F0YWxvZ1ZlcnNpb24iOiJPbmxpbmUifQ== smartedit-catalog-version-uuid-jewsonContentCatalog/Online language-en"> <header class="header-alt js-header header-alt--sticky js-sticky-header" data-tracking-block="header"> <section class="header-alt__top-bar d-none d-lg-block"> <div class="container"> <div class="row"> <div class="col-12"> <div class="toggle-alt"> <form id="command" action="/_s/vat" method="post"><label for="toggle-alt_vat" class="toggle-alt__label"> <input type="checkbox" class="toggle-alt__input js-submit-on-toggle" id="toggle-alt_vat" name="showVatPrices" value="false" checked> <div class="toggle-alt__ui"> <span class="toggle-alt__vat">VAT</span> <span class="toggle-alt__ex">EX</span> <div class="toggle-alt__track"> <span class="toggle-alt__handler"></span> </div> <span class="toggle-alt__inc">INC</span> </div> </label> <div class="form-group form-group--cta hide"> <button type="submit" class="btn btn-primary">Toggle</button> </div> <div> <input type="hidden" name="CSRFToken" value="d265fff7-ed91-41a1-b4b1-399cee28f062" /> </div></form></div> <div class="d-lg-flex justify-content-center"> <div class="yCmsComponent header-alt__top-bar-link "> <a href="/about-us/jewson-services" title="Our services" ><span class="header-alt__top-bar-link-icon glyph glyph--build-filled glyph--light"></span><span class="header-alt__top-bar-link-text">Our services</span></a></div><div class="yCmsComponent header-alt__top-bar-link "> <a href="/build-aviator" title="Build Aviator project estimating" ><span class="header-alt__top-bar-link-icon glyph glyph--calculator glyph--light"></span><span class="header-alt__top-bar-link-text">Build Aviator project estimating</span></a></div><div class="yCmsComponent header-alt__top-bar-link "> <a href="/need-help" title="Need help?" ><span class="header-alt__top-bar-link-icon glyph glyph--headset glyph--light"></span><span class="header-alt__top-bar-link-text">Need help?</span></a></div></div> </div> </div> </div> </section> <section class="header-alt__middle"> <div class="container"> <div class="row"> <div class="col-12"> <div class="header-alt__components"> <div class="d-flex justify-content-between align-items-center"> <div class="header-alt__logo order-1" data-tracking-position="logo"> <a href="/" class="d-block mr-lg-1"> <img class="header-alt__logo-img" src="/medias/-images-jewson-logo.svg?context=bWFzdGVyfGltYWdlc3w1NDg4fGltYWdlL3N2Zyt4bWx8YURZekwyaGxNUzg1TlRZeE5UazNPRGN3TVRFd0x5OXBiV0ZuWlhNdmFtVjNjMjl1TFd4dloyOHVjM1pufDkxY2U1OWFiNmU5NDQ3ZTY4ODY1M2MzZjg4Nzk1NzZhNDhkOGQ0YWQ1ZTI4MTkwNGJiZmEyZTEyMjM2NzA4ODM" alt="Jewson Standard Logo" title="Jewson.co.uk" /> </a></div> <div class="header-alt__search order-2" data-tracking-position="search"> <div class="search"> <div class="form-group form-group--search m-0"> <div class="sr-only"> <label for="siteSearchMirror" class="sr-only">Search</label> </div> <div class="form-group__element"> <input type="text" role="search" class="form-control js-trigger-search" id="siteSearchMirror" name="text" value=""> </div> <div class="search__form-cta form-group form-group--cta"> <button type="submit" class="btn btn-search glyph glyph--search">Search</button> </div> </div> </div></div> <div class="header-alt__widgets order-3 d-lg-flex"> <div class="header-alt__quick-bar d-flex order-lg-4"> <div class="header-alt__quick-bar-icon d-none d-lg-block"> <a href="/branch-finder" class="header-alt__quick-bar-link"> <span class="header-alt__quick-bar-link-icon glyph glyph--location-alt"></span> <span class="d-none d-lg-block">Branch locator</span> </a> </div> <div class="header-alt__quick-bar-icon header-alt__quick-bar-cart order-2 order-lg-1"> <a href="/trolley" class="header-alt__quick-bar-link js-mini-basket" data-mini-cart-url="/trolley/rollover/MiniCart" data-mini-cart-refresh-url="/trolley/miniCart/TOTAL_WITHOUT_DELIVERY" data-mini-cart-name="Trolley" data-mini-cart-empty-name="Empty Trolley" rel="nofollow"> <span class="header-alt__quick-bar-link-icon glyph glyph--cart-alt"></span> <div class="js-mini-cart-totals" data-v="2"> <span class="d-none d-lg-block"> My trolley</span> </div> </a> <div class="mini-basket" id="mini-basket"> <div class="mini-basket__content"> <div class="mini-basket__block"> <div class="mini-basket__header"><span class="mini-basket__header-text">My trolley</span><span class="js-mini-basket-item-count"></span></div> </div> <div class="mini-basket__block mini-basket__block--content p-0 js-mini-basket-content"> <p id="empty-mini-basket" class="mini-basket__empty-content py-2">Items added to your trolley will appear here</p> </div> <div class="mini-basket__block mini-basket__block--subtotal d-flex justify-content-between"> <span>Sub-total</span> <span class="js-mini-basket-subtotal">&pound;0.00<span class="mini-basket__price-vat"></span></span> </div> <div class="mini-basket__block"> <a href="/trolley" class="btn btn-secondary btn--mini-basket" rel="nofollow" > Checkout</a> </div> </div> </div> </div> <div class="header-alt__quick-bar-icon order-1 order-lg-2 header-alt__quick-bar-account js-header-qb-account"> <a href="/login" rel="nofollow" class="header-alt__quick-bar-link header-alt__quick-bar-link--account" data-section="header-link-login-register"> <span class="header-alt__quick-bar-link-icon glyph glyph--user"></span> <span class="d-none d-lg-block">Sign in or register</span> </a> <div class="account-dropdown-menu account-dropdown-menu--logged-out" id="account-dropdown-menu"> <div class="account-dropdown-menu__content"> <div> <p><a href='/login' rel='nofollow'>Sign in</a> or <a href='/choose-account' rel='nofollow'>register</a></p> <ul class="m-0 px-2"> <li>Checkout faster with an account</li> <li>Benefit from online account management</li> <li>Access your order history and invoices</li> </ul> </div> </div> </div> </div> </div> </div> <div class="header-alt__menu order-4 d-lg-none js-header-menu-alt"> <span class="header-alt__menu-icon"> <span class="header-alt__menu-icon-bar"></span> <span class="header-alt__menu-icon-bar"></span> <span class="header-alt__menu-icon-bar"></span> </span> </div> <div class="header-alt__search-overlay search"> <div class="search__wrap"> <span class="glyph glyph--small glyph--cross"></span> <form class="search__form" novalidate autocomplete="off" method="get" action="/search"> <div class="form-group form-group--search m-0"> <div class="sr-only"> <label for="siteSearch1" class="sr-only">Search</label> </div> <div class="form-group__element"> <input type="text" role="search" class="form-control js-site-search" id="siteSearch1" name="text" value="" maxlength="100" placeholder="" data-blur-results="false" /> </div> <div class="search__form-cta form-group form-group--cta"> <button type="submit" class="btn btn-search glyph glyph--search">Search</button> </div> </div> </form> </div> </div> </div> </div> </div> </div> </div> </section> <nav class="menu-alt js-main-menu-alt menu-alt--overlay" data-tracking-block="header" data-tracking-position="main-nav"> <div class="container"> <div class="row menu-alt__wrap"> <div class="col-12 menu-alt__inner"> <section class="header-alt__top-bar d-lg-none"> <div class="toggle-alt"> <form id="command" action="/_s/vat" method="post"><label for="toggle-alt_vat-mobile" class="toggle-alt__label"> <input type="checkbox" class="toggle-alt__input js-submit-on-toggle" id="toggle-alt_vat-mobile" name="showVatPrices" value="false" checked> <div class="toggle-alt__ui"> <span class="toggle-alt__vat">VAT</span> <span class="toggle-alt__ex">EX</span> <div class="toggle-alt__track"> <span class="toggle-alt__handler"></span> </div> <span class="toggle-alt__inc">INC</span> </div> </label> <div class="form-group form-group--cta hide"> <button type="submit" class="btn btn-primary">Toggle</button> </div> <div> <input type="hidden" name="CSRFToken" value="d265fff7-ed91-41a1-b4b1-399cee28f062" /> </div></form></div> <div class="header-alt__top-bar-links"> <div class="header-alt__top-bar-link"> <a href="/branch-finder"> <span class="header-alt__top-bar-link-icon glyph glyph--location-alt"></span> <span class="header-alt__top-bar-link-text">Branch locator</span> </a> </div> <div class="yCmsComponent header-alt__top-bar-link "> <a href="/about-us/jewson-services" title="Our services" ><span class="header-alt__top-bar-link-icon glyph glyph--build-filled"></span><span class="header-alt__top-bar-link-text">Our services</span></a></div><div class="yCmsComponent header-alt__top-bar-link "> <a href="/build-aviator" title="Build Aviator project estimating" ><span class="header-alt__top-bar-link-icon glyph glyph--calculator"></span><span class="header-alt__top-bar-link-text">Build Aviator project estimating</span></a></div><div class="yCmsComponent header-alt__top-bar-link "> <a href="/need-help" title="Need help?" ><span class="header-alt__top-bar-link-icon glyph glyph--headset"></span><span class="header-alt__top-bar-link-text">Need help?</span></a></div></div> </section> <div class="d-lg-none"> <span class="menu-alt__title">all categories</span> </div> <div class="menu-alt__tray"> <div class="yCmsComponent d-lg-flex justify-content-between w-100" data-slotname="NavigationBar"> <div class="menu-alt__tray-item js-menu-tray-item"> <a href="/building-materials" title="Building Materials" class="menu-alt__link menu-alt__link--main menu-alt__link--parent js-menu-parent">Building Materials</a> <div class="menu-alt__sub"> <div class="d-lg-none menu-alt__link menu-alt__link--back glyph glyph--arrow glyph--small js-menu-back" tabindex="0">Back</div> <div class="d-lg-none menu-alt__title-link menu-alt__title-link--sub"> <a href="/building-materials" title="Building Materials" >Building Materials</a></div> <div class="menu-alt__sub-internal container accordion accordion--xs accordion--all js-accordion"> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/building-materials/bricks-blocks" title="Bricks & Blocks" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Bricks & Blocks</a> <div class="accordion-toggle__inner"> <a href="/building-materials/bricks-blocks/aerated-blocks" title="Aerated Blocks" aria-label="Bricks & Blocks Aerated Blocks" class="menu-alt__link menu-alt__sub-link">Aerated Blocks</a> <a href="/building-materials/bricks-blocks/air-bricks" title="Air Bricks" aria-label="Bricks & Blocks Air Bricks" class="menu-alt__link menu-alt__sub-link">Air Bricks</a> <a href="/building-materials/bricks-blocks/block-accessories" title="Block Accessories" aria-label="Bricks & Blocks Block Accessories" class="menu-alt__link menu-alt__sub-link">Block Accessories</a> <a href="/building-materials/bricks-blocks/brick-slips" title="Brick Slips" aria-label="Bricks & Blocks Brick Slips" class="menu-alt__link menu-alt__sub-link">Brick Slips</a> <a href="/building-materials/bricks-blocks/clay-bricks" title="Clay Bricks" aria-label="Bricks & Blocks Clay Bricks" class="menu-alt__link menu-alt__sub-link">Clay Bricks</a> <a href="/building-materials/bricks-blocks/concrete-blocks" title="Concrete Blocks" aria-label="Bricks & Blocks Concrete Blocks" class="menu-alt__link menu-alt__sub-link">Concrete Blocks</a> <a href="/building-materials/bricks-blocks/damp-proofing-membranes" title="Damp Proof Membranes" aria-label="Bricks & Blocks Damp Proof Membranes" class="menu-alt__link menu-alt__sub-link">Damp Proof Membranes</a> <a href="/building-materials/bricks-blocks/engineering-bricks" title="Engineering Bricks" aria-label="Bricks & Blocks Engineering Bricks" class="menu-alt__link menu-alt__sub-link">Engineering Bricks</a> <a href="/building-materials/bricks-blocks/expansion-jointing" title="Expansion Jointing" aria-label="Bricks & Blocks Expansion Jointing" class="menu-alt__link menu-alt__sub-link">Expansion Jointing</a> <a href="/building-materials/bricks-blocks/natural-blocks-and-mortars" title="Natural Blocks & Mortar" aria-label="Bricks & Blocks Natural Blocks & Mortar" class="menu-alt__link menu-alt__sub-link">Natural Blocks & Mortar</a> <a href="/building-materials/bricks-blocks/special-shaped-bricks" title="Special Shaped Bricks" aria-label="Bricks & Blocks Special Shaped Bricks" class="menu-alt__link menu-alt__sub-link">Special Shaped Bricks</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/building-materials/aggregate-gravel-cement" title="Aggregate, Gravel & Cement" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Aggregate, Gravel & Cement</a> <div class="accordion-toggle__inner"> <a href="/building-materials/aggregate-gravel-cement/aggregate" title="Aggregate" aria-label="Aggregate, Gravel & Cement Aggregate" class="menu-alt__link menu-alt__sub-link">Aggregate</a> <a href="/building-materials/aggregate-gravel-cement/cement" title="Cement" aria-label="Aggregate, Gravel & Cement Cement" class="menu-alt__link menu-alt__sub-link">Cement</a> <a href="/building-materials/aggregate-gravel-cement/decorative-aggregate" title="Decorative Aggregate" aria-label="Aggregate, Gravel & Cement Decorative Aggregate" class="menu-alt__link menu-alt__sub-link">Decorative Aggregate</a> <a href="/building-materials/aggregate-gravel-cement/sand" title="Sand" aria-label="Aggregate, Gravel & Cement Sand" class="menu-alt__link menu-alt__sub-link">Sand</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/building-materials/plasterboard-plastering" title="Plasterboard & Plastering" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Plasterboard & Plastering</a> <div class="accordion-toggle__inner"> <a href="/building-materials/plasterboard-plastering/beads-mesh" title="Beads & Mesh" aria-label="Plasterboard & Plastering Beads & Mesh" class="menu-alt__link menu-alt__sub-link">Beads & Mesh</a> <a href="/building-materials/plasterboard-plastering/coving" title="Coving" aria-label="Plasterboard & Plastering Coving" class="menu-alt__link menu-alt__sub-link">Coving</a> <a href="/building-materials/plasterboard-plastering/plaster-fillers" title="Plaster & Fillers" aria-label="Plasterboard & Plastering Plaster & Fillers" class="menu-alt__link menu-alt__sub-link">Plaster & Fillers</a> <a href="/building-materials/plasterboard-plastering/plasterboard" title="Plasterboard" aria-label="Plasterboard & Plastering Plasterboard" class="menu-alt__link menu-alt__sub-link">Plasterboard</a> <a href="/building-materials/plasterboard-plastering/plasterboard-accessories" title="Plasterboard Accessories" aria-label="Plasterboard & Plastering Plasterboard Accessories" class="menu-alt__link menu-alt__sub-link">Plasterboard Accessories</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/building-materials/metalwork" title="Metalwork" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Metalwork</a> <div class="accordion-toggle__inner"> <a href="/building-materials/metalwork/angles-brackets" title="Angles & Brackets" aria-label="Metalwork Angles & Brackets" class="menu-alt__link menu-alt__sub-link">Angles & Brackets</a> <a href="/building-materials/metalwork/fixings-connectors" title="Fixings & Connectors" aria-label="Metalwork Fixings & Connectors" class="menu-alt__link menu-alt__sub-link">Fixings & Connectors</a> <a href="/building-materials/metalwork/joist-hangers" title="Joist Hangers" aria-label="Metalwork Joist Hangers" class="menu-alt__link menu-alt__sub-link">Joist Hangers</a> <a href="/building-materials/metalwork/steel-reinforcement" title="Steel Reinforcement" aria-label="Metalwork Steel Reinforcement" class="menu-alt__link menu-alt__sub-link">Steel Reinforcement</a> <a href="/building-materials/metalwork/wall-frame-ties" title="Wall & Frame Ties" aria-label="Metalwork Wall & Frame Ties" class="menu-alt__link menu-alt__sub-link">Wall & Frame Ties</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/building-materials/lintels" title="Lintels" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Lintels</a> <div class="accordion-toggle__inner"> <a href="/building-materials/lintels/concrete-lintels" title="Concrete Lintels" aria-label="Lintels Concrete Lintels" class="menu-alt__link menu-alt__sub-link">Concrete Lintels</a> <a href="/building-materials/lintels/metal-lintels" title="Steel Lintels" aria-label="Lintels Steel Lintels" class="menu-alt__link menu-alt__sub-link">Steel Lintels</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/building-materials/insulation" title="Insulation" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Insulation</a> <div class="accordion-toggle__inner"> <a href="/building-materials/insulation/floor-insulation" title="Floor Insulation" aria-label="Insulation Floor Insulation" class="menu-alt__link menu-alt__sub-link">Floor Insulation</a> <a href="/building-materials/insulation/insulation-accessories" title="Insulation Accessories" aria-label="Insulation Insulation Accessories" class="menu-alt__link menu-alt__sub-link">Insulation Accessories</a> <a href="/building-materials/insulation/loft-roof-insulation" title="Loft & Roof Insulation" aria-label="Insulation Loft & Roof Insulation" class="menu-alt__link menu-alt__sub-link">Loft & Roof Insulation</a> <a href="/building-materials/insulation/natural-insulation" title="Natural Insulation" aria-label="Insulation Natural Insulation" class="menu-alt__link menu-alt__sub-link">Natural Insulation</a> <a href="/building-materials/insulation/wall-insulation" title="Wall Insulation" aria-label="Insulation Wall Insulation" class="menu-alt__link menu-alt__sub-link">Wall Insulation</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/building-materials/flooring" title="Flooring" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Flooring</a> <div class="accordion-toggle__inner"> <a href="/timber/sheet-materials/chipboard-osb" title="Chipboard & OSB" aria-label="Flooring Chipboard & OSB" class="menu-alt__link menu-alt__sub-link">Chipboard & OSB</a> <a href="/building-materials/flooring/engineered-flooring" title="Engineered Flooring" aria-label="Flooring Engineered Flooring" class="menu-alt__link menu-alt__sub-link">Engineered Flooring</a> <a href="/building-materials/flooring/flooring-underlays" title="Flooring Underlays" aria-label="Flooring Flooring Underlays" class="menu-alt__link menu-alt__sub-link">Flooring Underlays</a> <a href="/building-materials/flooring/laminate-flooring" title="Laminate Flooring" aria-label="Flooring Laminate Flooring" class="menu-alt__link menu-alt__sub-link">Laminate Flooring</a> <a href="/building-materials/flooring/luxury-vinyl-flooring" title="Luxury Vinyl Flooring" aria-label="Flooring Luxury Vinyl Flooring" class="menu-alt__link menu-alt__sub-link">Luxury Vinyl Flooring</a> <a href="/building-materials/flooring/scotia-trims" title="Scotia & Trims" aria-label="Flooring Scotia & Trims" class="menu-alt__link menu-alt__sub-link">Scotia & Trims</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/building-materials/roofing" title="Roofing" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Roofing</a> <div class="accordion-toggle__inner"> <a href="/building-materials/roofing/chimney-pots-cowls" title="Chimney Pots & Cowls" aria-label="Roofing Chimney Pots & Cowls" class="menu-alt__link menu-alt__sub-link">Chimney Pots & Cowls</a> <a href="/building-materials/roofing/fascia-soffit" title="Fascia & Soffit" aria-label="Roofing Fascia & Soffit" class="menu-alt__link menu-alt__sub-link">Fascia & Soffit</a> <a href="/building-materials/roofing/flashings-fixings" title="Flashings & Fixings" aria-label="Roofing Flashings & Fixings" class="menu-alt__link menu-alt__sub-link">Flashings & Fixings</a> <a href="/building-materials/roofing/flat-roofing" title="Flat Roofing" aria-label="Roofing Flat Roofing" class="menu-alt__link menu-alt__sub-link">Flat Roofing</a> <a href="/building-materials/roofing/guttering" title="Guttering" aria-label="Roofing Guttering" class="menu-alt__link menu-alt__sub-link">Guttering</a> <a href="/building-materials/roofing/pitched-roofing" title="Pitched Roofing" aria-label="Roofing Pitched Roofing" class="menu-alt__link menu-alt__sub-link">Pitched Roofing</a> <a href="/building-materials/roofing/roof-sheets" title="Roof Sheets" aria-label="Roofing Roof Sheets" class="menu-alt__link menu-alt__sub-link">Roof Sheets</a> <a href="/expert-advice/self-build-project-advice/right-materials-for-the-job/roof-truss-enquiries" title="Roof Trusses" aria-label="Roofing Roof Trusses" class="menu-alt__link menu-alt__sub-link">Roof Trusses</a> <a href="/building-materials/roofing/roof-windows" title="Roof Windows" aria-label="Roofing Roof Windows" class="menu-alt__link menu-alt__sub-link">Roof Windows</a> <a href="/building-materials/roofing/roof-window-blinds" title="Roof Window Blinds" aria-label="Roofing Roof Window Blinds" class="menu-alt__link menu-alt__sub-link">Roof Window Blinds</a> <a href="/building-materials/roofing/roofing-timber" title="Roofing Timber" aria-label="Roofing Roofing Timber" class="menu-alt__link menu-alt__sub-link">Roofing Timber</a> <a href="/building-materials/roofing/roofing-ventilation" title="Roofing Ventilation" aria-label="Roofing Roofing Ventilation" class="menu-alt__link menu-alt__sub-link">Roofing Ventilation</a> <a href="/building-materials/roofing/sedum-roof" title="Sedum Roof" aria-label="Roofing Sedum Roof" class="menu-alt__link menu-alt__sub-link">Sedum Roof</a> </div> </div> <div class="yCmsComponent menu-alt__sub-item--promo mb-1"> <div class="simple-banner-component "> <a href="/doors-joinery" ><img class="" title="Shop doors" alt="Shop doors" src="/medias/doors-MM-1.png?context=bWFzdGVyfGltYWdlc3w2NTE0MHxpbWFnZS9wbmd8YUdRNUwyaG1OQzg1TlRZeU5EQTVNREE1TVRneUwyUnZiM0p6WDAxTklPS0FreUF4TG5CdVp3fDQyOTdlZDFmYjA5NWY0MjNlOGViMmZhOWMzNzVkNWEzZTA5Yzg2ZDE4NGVmYTc4ZWE1MTg5MjM5ZmMyMDE5YTM" data-creative="doors_MM – 1.png" data-analyticsName="cmsitem_07deff89-d8be-4c11-a998-ef650d2dc245" data-analyticsId="" loading="lazy" /></a> </div> </div></div> </div> </div> <div class="menu-alt__tray-item js-menu-tray-item"> <a href="/timber" title="Timber" class="menu-alt__link menu-alt__link--main menu-alt__link--active menu-alt__link--parent js-menu-parent">Timber</a> <div class="menu-alt__sub"> <div class="d-lg-none menu-alt__link menu-alt__link--back glyph glyph--arrow glyph--small js-menu-back" tabindex="0">Back</div> <div class="d-lg-none menu-alt__title-link menu-alt__title-link--sub"> <a href="/timber" title="Timber" >Timber</a></div> <div class="menu-alt__sub-internal container accordion accordion--xs accordion--all js-accordion"> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/timber/sawn-carcassing-timber" title="Sawn & Carcassing Timber" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Sawn & Carcassing Timber</a> <div class="accordion-toggle__inner"> <a href="/timber/sawn-carcassing-timber/batten" title="Batten" aria-label="Sawn & Carcassing Timber Batten" class="menu-alt__link menu-alt__sub-link">Batten</a> <a href="/timber/sawn-carcassing-timber/carcassing-timber" title="Carcassing Timber" aria-label="Sawn & Carcassing Timber Carcassing Timber" class="menu-alt__link menu-alt__sub-link">Carcassing Timber</a> <a href="/timber/sawn-carcassing-timber/cls-studwork-timber" title="CLS Studwork Timber" aria-label="Sawn & Carcassing Timber CLS Studwork Timber" class="menu-alt__link menu-alt__sub-link">CLS Studwork Timber</a> <a href="/timber/sawn-carcassing-timber/fencing-timber" title="Fencing Timber" aria-label="Sawn & Carcassing Timber Fencing Timber" class="menu-alt__link menu-alt__sub-link">Fencing Timber</a> <a href="/timber/sawn-carcassing-timber/joists" title="Joists" aria-label="Sawn & Carcassing Timber Joists" class="menu-alt__link menu-alt__sub-link">Joists</a> <a href="/expert-advice/self-build-project-advice/right-materials-for-the-job/roof-truss-enquiries" title="Roof Trusses" aria-label="Sawn & Carcassing Timber Roof Trusses" class="menu-alt__link menu-alt__sub-link">Roof Trusses</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/timber/mouldings-planed-timber" title="Mouldings & Planed Timber" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Mouldings & Planed Timber</a> <div class="accordion-toggle__inner"> <a href="/timber/mouldings-planed-timber/cladding" title="Cladding" aria-label="Mouldings & Planed Timber Cladding" class="menu-alt__link menu-alt__sub-link">Cladding</a> <a href="/timber/mouldings-planed-timber/international-timber-cladding" title="International Timber Cladding" aria-label="Mouldings & Planed Timber International Timber Cladding" class="menu-alt__link menu-alt__sub-link">International Timber Cladding</a> <a href="/timber/mouldings-planed-timber/mouldings" title="Mouldings" aria-label="Mouldings & Planed Timber Mouldings" class="menu-alt__link menu-alt__sub-link">Mouldings</a> <a href="/timber/mouldings-planed-timber/planed-timber" title="Planed Timber" aria-label="Mouldings & Planed Timber Planed Timber" class="menu-alt__link menu-alt__sub-link">Planed Timber</a> <a href="/timber/mouldings-planed-timber/skirting" title="Skirting" aria-label="Mouldings & Planed Timber Skirting" class="menu-alt__link menu-alt__sub-link">Skirting</a> <a href="/timber/mouldings-planed-timber/window-boards" title="Window Boards" aria-label="Mouldings & Planed Timber Window Boards" class="menu-alt__link menu-alt__sub-link">Window Boards</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/timber/sheet-materials" title="Sheet Materials" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Sheet Materials</a> <div class="accordion-toggle__inner"> <a href="/timber/sheet-materials/chipboard-osb" title="Chipboard & OSB" aria-label="Sheet Materials Chipboard & OSB" class="menu-alt__link menu-alt__sub-link">Chipboard & OSB</a> <a href="/doors-joinery/external-doors/door-blanks" title="Door Blanks" aria-label="Sheet Materials Door Blanks" class="menu-alt__link menu-alt__sub-link">Door Blanks</a> <a href="/timber/sheet-materials/handy-panels" title="Handy Panels" aria-label="Sheet Materials Handy Panels" class="menu-alt__link menu-alt__sub-link">Handy Panels</a> <a href="/timber/sheet-materials/mdf-hardboard" title="MDF & Hardboard" aria-label="Sheet Materials MDF & Hardboard" class="menu-alt__link menu-alt__sub-link">MDF & Hardboard</a> <a href="/timber/sheet-materials/notice-board" title="Notice Boards" aria-label="Sheet Materials Notice Boards" class="menu-alt__link menu-alt__sub-link">Notice Boards</a> <a href="/timber/sheet-materials/plywood" title="Plywood" aria-label="Sheet Materials Plywood" class="menu-alt__link menu-alt__sub-link">Plywood</a> </div> </div> <div class="yCmsComponent menu-alt__sub-item--promo mb-1"> <div class="simple-banner-component "> <a href="/doors-joinery" ><img class="" title="Shop doors" alt="Shop doors" src="/medias/doors-MM-1.png?context=bWFzdGVyfGltYWdlc3w2NTE0MHxpbWFnZS9wbmd8YUdRNUwyaG1OQzg1TlRZeU5EQTVNREE1TVRneUwyUnZiM0p6WDAxTklPS0FreUF4TG5CdVp3fDQyOTdlZDFmYjA5NWY0MjNlOGViMmZhOWMzNzVkNWEzZTA5Yzg2ZDE4NGVmYTc4ZWE1MTg5MjM5ZmMyMDE5YTM" data-creative="doors_MM – 1.png" data-analyticsName="cmsitem_07deff89-d8be-4c11-a998-ef650d2dc245" data-analyticsId="" loading="lazy" /></a> </div> </div></div> </div> </div> <div class="menu-alt__tray-item js-menu-tray-item"> <a href="/doors-joinery" title=" Doors & Joinery" class="menu-alt__link menu-alt__link--main menu-alt__link--parent js-menu-parent"> Doors & Joinery</a> <div class="menu-alt__sub"> <div class="d-lg-none menu-alt__link menu-alt__link--back glyph glyph--arrow glyph--small js-menu-back" tabindex="0">Back</div> <div class="d-lg-none menu-alt__title-link menu-alt__title-link--sub"> <a href="/doors-joinery" title=" Doors & Joinery" > Doors & Joinery</a></div> <div class="menu-alt__sub-internal container accordion accordion--xs accordion--all js-accordion"> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/doors-joinery/windows" title="Windows" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Windows</a> <div class="accordion-toggle__inner"> <a href="/building-materials/roofing/roof-window-blinds" title="Roof Window Blinds" aria-label="Windows Roof Window Blinds" class="menu-alt__link menu-alt__sub-link">Roof Window Blinds</a> <a href="/building-materials/roofing/roof-windows" title="Roof Windows" aria-label="Windows Roof Windows" class="menu-alt__link menu-alt__sub-link">Roof Windows</a> <a href="/doors-joinery/windows/triple-glazed-windows" title="Triple Glazed Windows" aria-label="Windows Triple Glazed Windows" class="menu-alt__link menu-alt__sub-link">Triple Glazed Windows</a> <a href="/doors-joinery/windows/upvc-windows" title="uPVC Windows" aria-label="Windows uPVC Windows" class="menu-alt__link menu-alt__sub-link">uPVC Windows</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/doors-joinery/Internal-doors" title="Internal Doors" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Internal Doors</a> <div class="accordion-toggle__inner"> <a href="/doors-joinery/Internal-doors/custom-internal-doors" title="Custom Internal Doors" aria-label="Internal Doors Custom Internal Doors" class="menu-alt__link menu-alt__sub-link">Custom Internal Doors</a> <a href="/doors-joinery/Internal-doors/internal-bi-fold-doors" title="Internal Bi-Fold Doors" aria-label="Internal Doors Internal Bi-Fold Doors" class="menu-alt__link menu-alt__sub-link">Internal Bi-Fold Doors</a> <a href="/doors-joinery/Internal-doors/internal-fire-doors" title="Internal Fire Doors " aria-label="Internal Doors Internal Fire Doors " class="menu-alt__link menu-alt__sub-link">Internal Fire Doors </a> <a href="/doors-joinery/Internal-doors/internal-french-doors" title="Internal French Doors" aria-label="Internal Doors Internal French Doors" class="menu-alt__link menu-alt__sub-link">Internal French Doors</a> <a href="/doors-joinery/Internal-doors/internal-glazed-doors" title="Internal Glazed Doors" aria-label="Internal Doors Internal Glazed Doors" class="menu-alt__link menu-alt__sub-link">Internal Glazed Doors</a> <a href="/doors-joinery/Internal-doors/internal-laminated-doors" title=" Internal Laminated Doors" aria-label="Internal Doors Internal Laminated Doors" class="menu-alt__link menu-alt__sub-link"> Internal Laminated Doors</a> <a href="/doors-joinery/Internal-doors/Internal-moulded-doors" title="Internal Moulded Doors" aria-label="Internal Doors Internal Moulded Doors" class="menu-alt__link menu-alt__sub-link">Internal Moulded Doors</a> <a href="/doors-joinery/Internal-doors/internal-oak-doors" title="Internal Oak Doors" aria-label="Internal Doors Internal Oak Doors" class="menu-alt__link menu-alt__sub-link">Internal Oak Doors</a> <a href="/doors-joinery/Internal-doors/internal-pine-doors" title="Internal Pine Doors" aria-label="Internal Doors Internal Pine Doors" class="menu-alt__link menu-alt__sub-link">Internal Pine Doors</a> <a href="/doors-joinery/Internal-doors/internal-ply-doors" title=" Internal Ply Doors" aria-label="Internal Doors Internal Ply Doors" class="menu-alt__link menu-alt__sub-link"> Internal Ply Doors</a> <a href="/doors-joinery/Internal-doors/internal-primed-doors" title="Internal Primed Doors" aria-label="Internal Doors Internal Primed Doors" class="menu-alt__link menu-alt__sub-link">Internal Primed Doors</a> <a href="/doors-joinery/Internal-doors/internal-pre-finished-doors" title="Internal Pre-Finished Doors" aria-label="Internal Doors Internal Pre-Finished Doors" class="menu-alt__link menu-alt__sub-link">Internal Pre-Finished Doors</a> <a href="/doors-joinery/Internal-doors/internal-pocket-doors" title="Internal Pocket Doors" aria-label="Internal Doors Internal Pocket Doors" class="menu-alt__link menu-alt__sub-link">Internal Pocket Doors</a> <a href="/doors-joinery/Internal-doors/internal-room-dividers" title="Internal Room Dividers" aria-label="Internal Doors Internal Room Dividers" class="menu-alt__link menu-alt__sub-link">Internal Room Dividers</a> <a href="/doors-joinery/Internal-doors/internal-softwood-doors" title="Internal Softwood Doors" aria-label="Internal Doors Internal Softwood Doors" class="menu-alt__link menu-alt__sub-link">Internal Softwood Doors</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/doors-joinery/external-doors" title="External Doors" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">External Doors</a> <div class="accordion-toggle__inner"> <a href="/doors-joinery/external-doors/custom-external-doors" title="Custom External Doors" aria-label="External Doors Custom External Doors" class="menu-alt__link menu-alt__sub-link">Custom External Doors</a> <a href="/doors-joinery/external-doors/door-blanks" title="Door Blanks" aria-label="External Doors Door Blanks" class="menu-alt__link menu-alt__sub-link">Door Blanks</a> <a href="/doors-joinery/external-doors/external-bi-fold-doors" title="External Bi-Fold Doors" aria-label="External Doors External Bi-Fold Doors" class="menu-alt__link menu-alt__sub-link">External Bi-Fold Doors</a> <a href="/doors-joinery/external-doors/external-composite-doors" title="External Composite Doors" aria-label="External Doors External Composite Doors" class="menu-alt__link menu-alt__sub-link">External Composite Doors</a> <a href="/doors-joinery/external-doors/external-french-doors" title="External French Doors" aria-label="External Doors External French Doors" class="menu-alt__link menu-alt__sub-link">External French Doors</a> <a href="/doors-joinery/external-doors/external-hardwood-doors" title="External Hardwood Doors" aria-label="External Doors External Hardwood Doors" class="menu-alt__link menu-alt__sub-link">External Hardwood Doors</a> <a href="/doors-joinery/external-doors/external-oak-doors" title="External Oak Doors" aria-label="External Doors External Oak Doors" class="menu-alt__link menu-alt__sub-link">External Oak Doors</a> <a href="/doors-joinery/external-doors/external-ply-doors" title="External Ply Doors" aria-label="External Doors External Ply Doors" class="menu-alt__link menu-alt__sub-link">External Ply Doors</a> <a href="/doors-joinery/external-doors/external-softwood-doors" title="External Softwood Doors" aria-label="External Doors External Softwood Doors" class="menu-alt__link menu-alt__sub-link">External Softwood Doors</a> <a href="/doors-joinery/external-doors/external-steel-doors" title="External Steel Doors" aria-label="External Doors External Steel Doors" class="menu-alt__link menu-alt__sub-link">External Steel Doors</a> <a href="/doors-joinery/external-doors/external-upvc-doors" title="External uPVC Doors" aria-label="External Doors External uPVC Doors" class="menu-alt__link menu-alt__sub-link">External uPVC Doors</a> <a href="/doors-joinery/external-doors/garage-doors" title="Garage Doors" aria-label="External Doors Garage Doors" class="menu-alt__link menu-alt__sub-link">Garage Doors</a> <a href="/doors-joinery/external-doors/triple-glazed-external-doors" title="Triple Glazed External Doors" aria-label="External Doors Triple Glazed External Doors" class="menu-alt__link menu-alt__sub-link">Triple Glazed External Doors</a> <a href="/doors-joinery/external-doors/triple-glazed-french-doors" title="Triple Glazed French Doors" aria-label="External Doors Triple Glazed French Doors" class="menu-alt__link menu-alt__sub-link">Triple Glazed French Doors</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/doors-joinery/door-frames-linings" title="Door Frames & Linings" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Door Frames & Linings</a> <div class="accordion-toggle__inner"> <a href="/doors-joinery/door-frames-linings/external-door-frames" title="External Door Frames" aria-label="Door Frames & Linings External Door Frames" class="menu-alt__link menu-alt__sub-link">External Door Frames</a> <a href="/doors-joinery/door-frames-linings/internal-door-linings-casings" title="Internal Door Linings & Casings" aria-label="Door Frames & Linings Internal Door Linings & Casings" class="menu-alt__link menu-alt__sub-link">Internal Door Linings & Casings</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/doors-joinery/ironmongery" title="Ironmongery" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Ironmongery</a> <div class="accordion-toggle__inner"> <a href="/doors-joinery/ironmongery/door-seals-draught-excluders" title="Door Seals & Draught Excluders" aria-label="Ironmongery Door Seals & Draught Excluders" class="menu-alt__link menu-alt__sub-link">Door Seals & Draught Excluders</a> <a href="/doors-joinery/ironmongery/fittings-accessories" title="Fittings & Accessories" aria-label="Ironmongery Fittings & Accessories" class="menu-alt__link menu-alt__sub-link">Fittings & Accessories</a> <a href="/doors-joinery/ironmongery/knobs-handles" title="Knobs & Handles" aria-label="Ironmongery Knobs & Handles" class="menu-alt__link menu-alt__sub-link">Knobs & Handles</a> <a href="/doors-joinery/ironmongery/security-locks" title="Security & Locks" aria-label="Ironmongery Security & Locks" class="menu-alt__link menu-alt__sub-link">Security & Locks</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/doors-joinery/stairs-accessories" title="Stairs & Accessories" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Stairs & Accessories</a> <div class="accordion-toggle__inner"> <a href="/doors-joinery/stairs-accessories/stairs" title="Stairs" aria-label="Stairs & Accessories Stairs" class="menu-alt__link menu-alt__sub-link">Stairs</a> <a href="/doors-joinery/stairs-accessories/stairparts-accessories" title="Stairparts & Accessories" aria-label="Stairs & Accessories Stairparts & Accessories" class="menu-alt__link menu-alt__sub-link">Stairparts & Accessories</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/building-materials/flooring" title="Flooring" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Flooring</a> <div class="accordion-toggle__inner"> <a href="/timber/sheet-materials/chipboard-osb" title="Chipboard & OSB" aria-label="Flooring Chipboard & OSB" class="menu-alt__link menu-alt__sub-link">Chipboard & OSB</a> <a href="/building-materials/flooring/engineered-flooring" title="Engineered Flooring" aria-label="Flooring Engineered Flooring" class="menu-alt__link menu-alt__sub-link">Engineered Flooring</a> <a href="/building-materials/flooring/flooring-underlays" title="Flooring Underlays" aria-label="Flooring Flooring Underlays" class="menu-alt__link menu-alt__sub-link">Flooring Underlays</a> <a href="/building-materials/flooring/laminate-flooring" title="Laminate Flooring" aria-label="Flooring Laminate Flooring" class="menu-alt__link menu-alt__sub-link">Laminate Flooring</a> <a href="/building-materials/flooring/luxury-vinyl-flooring" title="Luxury Vinyl Flooring" aria-label="Flooring Luxury Vinyl Flooring" class="menu-alt__link menu-alt__sub-link">Luxury Vinyl Flooring</a> <a href="/building-materials/flooring/scotia-trims" title="Scotia & Trims" aria-label="Flooring Scotia & Trims" class="menu-alt__link menu-alt__sub-link">Scotia & Trims</a> </div> </div> </div> </div> </div> <div class="menu-alt__tray-item js-menu-tray-item"> <a href="/tools-fixings" title="Tools & Fixings" class="menu-alt__link menu-alt__link--main menu-alt__link--parent js-menu-parent">Tools & Fixings</a> <div class="menu-alt__sub"> <div class="d-lg-none menu-alt__link menu-alt__link--back glyph glyph--arrow glyph--small js-menu-back" tabindex="0">Back</div> <div class="d-lg-none menu-alt__title-link menu-alt__title-link--sub"> <a href="/tools-fixings" title="Tools & Fixings" >Tools & Fixings</a></div> <div class="menu-alt__sub-internal container accordion accordion--xs accordion--all js-accordion"> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/tools-fixings/hand-tools" title="Hand Tools" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Hand Tools</a> <div class="accordion-toggle__inner"> <a href="/tools-fixings/hand-tools/building-tools" title="Building Tools" aria-label="Hand Tools Building Tools" class="menu-alt__link menu-alt__sub-link">Building Tools</a> <a href="/tools-fixings/hand-tools/equipment-accessories" title="Equipment & Accessories" aria-label="Hand Tools Equipment & Accessories" class="menu-alt__link menu-alt__sub-link">Equipment & Accessories</a> <a href="/tools-fixings/hand-tools/landscaping-tools" title="Landscaping Tools" aria-label="Hand Tools Landscaping Tools" class="menu-alt__link menu-alt__sub-link">Landscaping Tools</a> <a href="/tools-fixings/hand-tools/measuring" title="Measuring" aria-label="Hand Tools Measuring" class="menu-alt__link menu-alt__sub-link">Measuring</a> <a href="/tools-fixings/hand-tools/plumbing-tools" title="Plumbing Tools" aria-label="Hand Tools Plumbing Tools" class="menu-alt__link menu-alt__sub-link">Plumbing Tools</a> <a href="/tools-fixings/hand-tools/tarpaulins-ropes-rubble-sacks" title="Tarpaulins, Ropes & Rubble Sacks" aria-label="Hand Tools Tarpaulins, Ropes & Rubble Sacks" class="menu-alt__link menu-alt__sub-link">Tarpaulins, Ropes & Rubble Sacks</a> <a href="/tools-fixings/hand-tools/woodworking-tools" title="Woodworking Tools" aria-label="Hand Tools Woodworking Tools" class="menu-alt__link menu-alt__sub-link">Woodworking Tools</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/tools-fixings/power-tools" title="Power Tools" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Power Tools</a> <div class="accordion-toggle__inner"> <a href="/online-only-powertools" title="Online Only Deals" aria-label="Power Tools Online Only Deals" class="menu-alt__link menu-alt__sub-link">Online Only Deals</a> <a href="/tools-fixings/power-tools/angle-grinders" title="Angle Grinders" aria-label="Power Tools Angle Grinders" class="menu-alt__link menu-alt__sub-link">Angle Grinders</a> <a href="/tools-fixings/power-tools/batteries-chargers" title="Batteries & Chargers" aria-label="Power Tools Batteries & Chargers" class="menu-alt__link menu-alt__sub-link">Batteries & Chargers</a> <a href="/tools-fixings/power-tools/cement-mixers" title="Cement Mixers" aria-label="Power Tools Cement Mixers" class="menu-alt__link menu-alt__sub-link">Cement Mixers</a> <a href="/tools-fixings/power-tools/drills" title="Drills" aria-label="Power Tools Drills" class="menu-alt__link menu-alt__sub-link">Drills</a> <a href="/tools-fixings/power-tools/nail-guns" title="Nail Guns" aria-label="Power Tools Nail Guns" class="menu-alt__link menu-alt__sub-link">Nail Guns</a> <a href="/tools-fixings/power-tools/sanders-planers" title="Sanders & Planers" aria-label="Power Tools Sanders & Planers" class="menu-alt__link menu-alt__sub-link">Sanders & Planers</a> <a href="/tools-fixings/power-tools/saws-routers" title="Saws & Routers" aria-label="Power Tools Saws & Routers" class="menu-alt__link menu-alt__sub-link">Saws & Routers</a> <a href="/tools-fixings/power-tools/workshop-tools" title="Workshop Tools" aria-label="Power Tools Workshop Tools" class="menu-alt__link menu-alt__sub-link">Workshop Tools</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/tools-fixings/power-tool-accessories" title="Power Tool Accessories" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Power Tool Accessories</a> <div class="accordion-toggle__inner"> <a href="/tools-fixings/power-tool-accessories/chucks-adaptors" title="Chucks & Adaptors" aria-label="Power Tool Accessories Chucks & Adaptors" class="menu-alt__link menu-alt__sub-link">Chucks & Adaptors</a> <a href="/tools-fixings/power-tool-accessories/core-drilling" title="Core Drilling" aria-label="Power Tool Accessories Core Drilling" class="menu-alt__link menu-alt__sub-link">Core Drilling</a> <a href="/tools-fixings/power-tool-accessories/drill-bits" title="Drill Bits" aria-label="Power Tool Accessories Drill Bits" class="menu-alt__link menu-alt__sub-link">Drill Bits</a> <a href="/tools-fixings/power-tool-accessories/grinding-cutting-discs" title="Grinding & Cutting Discs" aria-label="Power Tool Accessories Grinding & Cutting Discs" class="menu-alt__link menu-alt__sub-link">Grinding & Cutting Discs</a> <a href="/tools-fixings/power-tool-accessories/nail-gun-accessories" title="Nail Gun Accessories" aria-label="Power Tool Accessories Nail Gun Accessories" class="menu-alt__link menu-alt__sub-link">Nail Gun Accessories</a> <a href="/tools-fixings/power-tool-accessories/sanding-sheets-belts" title="Sanding Sheets & Belts" aria-label="Power Tool Accessories Sanding Sheets & Belts" class="menu-alt__link menu-alt__sub-link">Sanding Sheets & Belts</a> <a href="/tools-fixings/power-tool-accessories/saw-plane-blades" title="Saw & Plane Blades" aria-label="Power Tool Accessories Saw & Plane Blades" class="menu-alt__link menu-alt__sub-link">Saw & Plane Blades</a> <a href="/tools-fixings/power-tool-accessories/router-bits" title="Router Bits" aria-label="Power Tool Accessories Router Bits" class="menu-alt__link menu-alt__sub-link">Router Bits</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/tools-fixings/fixings-fasteners" title="Fixings & Fasteners" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Fixings & Fasteners</a> <div class="accordion-toggle__inner"> <a href="/tools-fixings/fixings-fasteners/fixing-kits" title="Fixing Kits" aria-label="Fixings & Fasteners Fixing Kits" class="menu-alt__link menu-alt__sub-link">Fixing Kits</a> <a href="/tools-fixings/fixings-fasteners/nails" title="Nails" aria-label="Fixings & Fasteners Nails" class="menu-alt__link menu-alt__sub-link">Nails</a> <a href="/tools-fixings/fixings-fasteners/nuts-bolts-washers" title="Nuts, Bolts & Washers" aria-label="Fixings & Fasteners Nuts, Bolts & Washers" class="menu-alt__link menu-alt__sub-link">Nuts, Bolts & Washers</a> <a href="/tools-fixings/fixings-fasteners/screws" title="Screws" aria-label="Fixings & Fasteners Screws" class="menu-alt__link menu-alt__sub-link">Screws</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/tools-fixings/sealants-adhesives" title="Sealants & Adhesives" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Sealants & Adhesives</a> <div class="accordion-toggle__inner"> <a href="/tools-fixings/sealants-adhesives/adhesive-tapes" title="Adhesive Tapes" aria-label="Sealants & Adhesives Adhesive Tapes" class="menu-alt__link menu-alt__sub-link">Adhesive Tapes</a> <a href="/tools-fixings/sealants-adhesives/adhesives" title="Adhesives" aria-label="Sealants & Adhesives Adhesives" class="menu-alt__link menu-alt__sub-link">Adhesives</a> <a href="/tools-fixings/sealants-adhesives/sealants" title="Sealants" aria-label="Sealants & Adhesives Sealants" class="menu-alt__link menu-alt__sub-link">Sealants</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/tools-fixings/building-chemicals" title="Building Chemicals" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Building Chemicals</a> <div class="accordion-toggle__inner"> <a href="/tools-fixings/building-chemicals/compounds-chemicals" title="Compounds & Chemicals" aria-label="Building Chemicals Compounds & Chemicals" class="menu-alt__link menu-alt__sub-link">Compounds & Chemicals</a> <a href="/tools-fixings/building-chemicals/repair-treatment" title="Repair & Treatment" aria-label="Building Chemicals Repair & Treatment" class="menu-alt__link menu-alt__sub-link">Repair & Treatment</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/tools-fixings/safety-workwear" title="Safety & Workwear" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Safety & Workwear</a> <div class="accordion-toggle__inner"> <a href="/tools-fixings/safety-workwear/cleaning-products" title="Cleaning Products" aria-label="Safety & Workwear Cleaning Products" class="menu-alt__link menu-alt__sub-link">Cleaning Products</a> <a href="/tools-fixings/safety-workwear/clothing-footwear" title="Clothing & Footwear" aria-label="Safety & Workwear Clothing & Footwear" class="menu-alt__link menu-alt__sub-link">Clothing & Footwear</a> <a href="/tools-fixings/safety-workwear/ppe" title="PPE" aria-label="Safety & Workwear PPE" class="menu-alt__link menu-alt__sub-link">PPE</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/tools-fixings/access-equipment" title="Access Equipment" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Access Equipment</a> <div class="accordion-toggle__inner"> <a href="/tools-fixings/access-equipment/site-fencing" title="Site Fencing" aria-label="Access Equipment Site Fencing" class="menu-alt__link menu-alt__sub-link">Site Fencing</a> <a href="/tools-fixings/access-equipment/site-lighting" title="Site Lighting" aria-label="Access Equipment Site Lighting" class="menu-alt__link menu-alt__sub-link">Site Lighting</a> <a href="/tools-fixings/access-equipment/steps-ladders" title="Steps & Ladders" aria-label="Access Equipment Steps & Ladders" class="menu-alt__link menu-alt__sub-link">Steps & Ladders</a> </div> </div> </div> </div> </div> <div class="menu-alt__tray-item js-menu-tray-item"> <a href="/painting-decorating" title="Painting & Decorating" class="menu-alt__link menu-alt__link--main menu-alt__link--parent js-menu-parent">Painting & Decorating</a> <div class="menu-alt__sub"> <div class="d-lg-none menu-alt__link menu-alt__link--back glyph glyph--arrow glyph--small js-menu-back" tabindex="0">Back</div> <div class="d-lg-none menu-alt__title-link menu-alt__title-link--sub"> <a href="/painting-decorating" title="Painting & Decorating" >Painting & Decorating</a></div> <div class="menu-alt__sub-internal container accordion accordion--xs accordion--all js-accordion"> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/painting-decorating/paint" title="Paint" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Paint</a> <div class="accordion-toggle__inner"> <a href="/painting-decorating/paint/exterior-paint" title="Exterior Paint" aria-label="Paint Exterior Paint" class="menu-alt__link menu-alt__sub-link">Exterior Paint</a> <a href="/painting-decorating/paint/interior-paint" title="Interior Paint" aria-label="Paint Interior Paint" class="menu-alt__link menu-alt__sub-link">Interior Paint</a> <a href="/painting-decorating/paint/natural-paint" title="Natural Paint" aria-label="Paint Natural Paint" class="menu-alt__link menu-alt__sub-link">Natural Paint</a> <a href="/painting-decorating/paint/specialist-paints" title="Specialist Paints" aria-label="Paint Specialist Paints" class="menu-alt__link menu-alt__sub-link">Specialist Paints</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/painting-decorating/woodcare" title="Woodcare" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Woodcare</a> <div class="accordion-toggle__inner"> <a href="/painting-decorating/woodcare/exterior-woodcare" title="Exterior Woodcare" aria-label="Woodcare Exterior Woodcare" class="menu-alt__link menu-alt__sub-link">Exterior Woodcare</a> <a href="/painting-decorating/woodcare/interior-woodcare" title="Interior Woodcare" aria-label="Woodcare Interior Woodcare" class="menu-alt__link menu-alt__sub-link">Interior Woodcare</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/painting-decorating/decorating-tools" title="Decorating Tools" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Decorating Tools</a> <div class="accordion-toggle__inner"> <a href="/painting-decorating/decorating-tools/knives-blades" title="Knives & Blades" aria-label="Decorating Tools Knives & Blades" class="menu-alt__link menu-alt__sub-link">Knives & Blades</a> <a href="/painting-decorating/decorating-tools/paint-brushes" title="Paint Brushes" aria-label="Decorating Tools Paint Brushes" class="menu-alt__link menu-alt__sub-link">Paint Brushes</a> <a href="/painting-decorating/decorating-tools/paint-rollers" title="Paint Rollers" aria-label="Decorating Tools Paint Rollers" class="menu-alt__link menu-alt__sub-link">Paint Rollers</a> <a href="/painting-decorating/decorating-tools/roller-trays-kits" title="Roller Trays & Kits" aria-label="Decorating Tools Roller Trays & Kits" class="menu-alt__link menu-alt__sub-link">Roller Trays & Kits</a> <a href="/painting-decorating/decorating-tools/tiling-tools" title="Tiling Tools" aria-label="Decorating Tools Tiling Tools" class="menu-alt__link menu-alt__sub-link">Tiling Tools</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/painting-decorating/cleaning-preparation" title="Cleaning & Preparation" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Cleaning & Preparation</a> <div class="accordion-toggle__inner"> <a href="/painting-decorating/cleaning-preparation/surface-preparation" title="Surface Preparation" aria-label="Cleaning & Preparation Surface Preparation" class="menu-alt__link menu-alt__sub-link">Surface Preparation</a> <a href="/painting-decorating/cleaning-preparation/surface-protection" title="Surface Protection" aria-label="Cleaning & Preparation Surface Protection" class="menu-alt__link menu-alt__sub-link">Surface Protection</a> </div> </div> </div> </div> </div> <div class="menu-alt__tray-item js-menu-tray-item"> <a href="/electrics-plumbing" title="Electrics & Plumbing" class="menu-alt__link menu-alt__link--main menu-alt__link--parent js-menu-parent">Electrics & Plumbing</a> <div class="menu-alt__sub"> <div class="d-lg-none menu-alt__link menu-alt__link--back glyph glyph--arrow glyph--small js-menu-back" tabindex="0">Back</div> <div class="d-lg-none menu-alt__title-link menu-alt__title-link--sub"> <a href="/electrics-plumbing" title="Electrics & Plumbing" >Electrics & Plumbing</a></div> <div class="menu-alt__sub-internal container accordion accordion--xs accordion--all js-accordion"> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/electrics-plumbing/electrical" title="Electrical" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Electrical</a> <div class="accordion-toggle__inner"> <a href="/electrics-plumbing/electrical/cables-cable-management" title="Cable & Cable Management" aria-label="Electrical Cable & Cable Management" class="menu-alt__link menu-alt__sub-link">Cable & Cable Management</a> <a href="/electrics-plumbing/electrical/ev-home-chargers" title="EV Home Chargers" aria-label="Electrical EV Home Chargers" class="menu-alt__link menu-alt__sub-link">EV Home Chargers</a> <a href="/electrics-plumbing/electrical/outdoor-electricals" title="Outdoor Electricals" aria-label="Electrical Outdoor Electricals" class="menu-alt__link menu-alt__sub-link">Outdoor Electricals</a> <a href="/electrics-plumbing/electrical/lighting" title="Lighting" aria-label="Electrical Lighting" class="menu-alt__link menu-alt__sub-link">Lighting</a> <a href="/electrics-plumbing/electrical/switches-sockets" title="Switches & Sockets" aria-label="Electrical Switches & Sockets" class="menu-alt__link menu-alt__sub-link">Switches & Sockets</a> <a href="/electrics-plumbing/electrical/transformers-batteries" title="Transformers & Batteries" aria-label="Electrical Transformers & Batteries" class="menu-alt__link menu-alt__sub-link">Transformers & Batteries</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/electrics-plumbing/plumbing" title="Plumbing" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Plumbing</a> <div class="accordion-toggle__inner"> <a href="/electrics-plumbing/plumbing/compression-fittings" title="Compression Fittings" aria-label="Plumbing Compression Fittings" class="menu-alt__link menu-alt__sub-link">Compression Fittings</a> <a href="/electrics-plumbing/plumbing/copper-tube" title="Copper Tube" aria-label="Plumbing Copper Tube" class="menu-alt__link menu-alt__sub-link">Copper Tube</a> <a href="/electrics-plumbing/plumbing/mdpe-pipe-and-fittings" title="MDPE Pipe and Fittings" aria-label="Plumbing MDPE Pipe and Fittings" class="menu-alt__link menu-alt__sub-link">MDPE Pipe and Fittings</a> <a href="/electrics-plumbing/plumbing/plumbers-brassware" title="Plumbers Brassware" aria-label="Plumbing Plumbers Brassware" class="menu-alt__link menu-alt__sub-link">Plumbers Brassware</a> <a href="/electrics-plumbing/plumbing/plumbing-consumables" title="Plumbing Consumables" aria-label="Plumbing Plumbing Consumables" class="menu-alt__link menu-alt__sub-link">Plumbing Consumables</a> <a href="/electrics-plumbing/plumbing/plumbing-plastics" title="Plumbing Plastics" aria-label="Plumbing Plumbing Plastics" class="menu-alt__link menu-alt__sub-link">Plumbing Plastics</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/electrics-plumbing/drainage" title="Drainage" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Drainage</a> <div class="accordion-toggle__inner"> <a href="/electrics-plumbing/drainage/above-ground-drainage" title="Above Ground Drainage" aria-label="Drainage Above Ground Drainage" class="menu-alt__link menu-alt__sub-link">Above Ground Drainage</a> <a href="/electrics-plumbing/drainage/below-ground-drainage" title="Below Ground Drainage" aria-label="Drainage Below Ground Drainage" class="menu-alt__link menu-alt__sub-link">Below Ground Drainage</a> <a href="/electrics-plumbing/drainage/manhole-covers" title="Manhole Covers" aria-label="Drainage Manhole Covers" class="menu-alt__link menu-alt__sub-link">Manhole Covers</a> <a href="/electrics-plumbing/drainage/rainwater-harvesting" title="Rainwater Harvesting" aria-label="Drainage Rainwater Harvesting" class="menu-alt__link menu-alt__sub-link">Rainwater Harvesting</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/electrics-plumbing/boilers-radiators" title="Boilers & Radiators" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Boilers & Radiators</a> <div class="accordion-toggle__inner"> <a href="/electrics-plumbing/boilers-radiators/heating-controls" title="Heating Controls" aria-label="Boilers & Radiators Heating Controls" class="menu-alt__link menu-alt__sub-link">Heating Controls</a> <a href="/electrics-plumbing/boilers-radiators/high-efficiency-radiators" title="High Efficiency Radiators" aria-label="Boilers & Radiators High Efficiency Radiators" class="menu-alt__link menu-alt__sub-link">High Efficiency Radiators</a> <a href="/electrics-plumbing/boilers-radiators/infrared-panel-heaters" title="Infrared Panel Heaters" aria-label="Boilers & Radiators Infrared Panel Heaters" class="menu-alt__link menu-alt__sub-link">Infrared Panel Heaters</a> <a href="/electrics-plumbing/boilers-radiators/radiator-valves" title="Radiator Valves" aria-label="Boilers & Radiators Radiator Valves" class="menu-alt__link menu-alt__sub-link">Radiator Valves</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/electrics-plumbing/ventilation" title="Ventilation" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Ventilation</a> <div class="accordion-toggle__inner"> <a href="/electrics-plumbing/ventilation/ducting" title="Ducting" aria-label="Ventilation Ducting" class="menu-alt__link menu-alt__sub-link">Ducting</a> <a href="/electrics-plumbing/ventilation/mvhr" title="MVHR" aria-label="Ventilation MVHR" class="menu-alt__link menu-alt__sub-link">MVHR</a> <a href="/electrics-plumbing/ventilation/ventilation-accessories" title="Ventilation Accessories" aria-label="Ventilation Ventilation Accessories" class="menu-alt__link menu-alt__sub-link">Ventilation Accessories</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/electrics-plumbing/renewable-energy" title="Renewable Energy" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Renewable Energy</a> <div class="accordion-toggle__inner"> <a href="/electrics-plumbing/renewable-energy/air-source-heat" title="Air Source Heat" aria-label="Renewable Energy Air Source Heat" class="menu-alt__link menu-alt__sub-link">Air Source Heat</a> <a href="/electrics-plumbing/renewable-energy/ground-source-heat-pumps" title="Ground Source Heat Pumps" aria-label="Renewable Energy Ground Source Heat Pumps" class="menu-alt__link menu-alt__sub-link">Ground Source Heat Pumps</a> <a href="/electrics-plumbing/renewable-energy/solar-thermal" title="Solar Thermal" aria-label="Renewable Energy Solar Thermal" class="menu-alt__link menu-alt__sub-link">Solar Thermal</a> <a href="/electrics-plumbing/renewable-energy/waste-water-heat-recovery" title="Waste Water Heat Recovery" aria-label="Renewable Energy Waste Water Heat Recovery" class="menu-alt__link menu-alt__sub-link">Waste Water Heat Recovery</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/electrics-plumbing/underfloor-heating" title="Underfloor Heating" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Underfloor Heating</a> <div class="accordion-toggle__inner"> <a href="/electrics-plumbing/underfloor-heating/electric-underfloor-heating" title="Electric Underfloor Heating" aria-label="Underfloor Heating Electric Underfloor Heating" class="menu-alt__link menu-alt__sub-link">Electric Underfloor Heating</a> <a href="/electrics-plumbing/underfloor-heating/wet-underfloor-heating" title="Wet Underfloor Heating" aria-label="Underfloor Heating Wet Underfloor Heating" class="menu-alt__link menu-alt__sub-link">Wet Underfloor Heating</a> </div> </div> </div> </div> </div> <div class="menu-alt__tray-item js-menu-tray-item"> <a href="/landscaping" title="Landscaping" class="menu-alt__link menu-alt__link--main menu-alt__link--parent js-menu-parent">Landscaping</a> <div class="menu-alt__sub"> <div class="d-lg-none menu-alt__link menu-alt__link--back glyph glyph--arrow glyph--small js-menu-back" tabindex="0">Back</div> <div class="d-lg-none menu-alt__title-link menu-alt__title-link--sub"> <a href="/landscaping" title="Landscaping" >Landscaping</a></div> <div class="menu-alt__sub-internal container accordion accordion--xs accordion--all js-accordion"> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/promotions/landscaping-trade-deals" title="Everything Landscaping, All In One Place" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Everything Landscaping, All In One Place</a> <div class="accordion-toggle__inner"> <a href="/block-paving-done-right-plp" title="Block Paving Project" aria-label="Everything Landscaping, All In One Place Block Paving Project" class="menu-alt__link menu-alt__sub-link">Block Paving Project</a> <a href="/composite-decking-done-right-plp" title="Composite Decking Project" aria-label="Everything Landscaping, All In One Place Composite Decking Project" class="menu-alt__link menu-alt__sub-link">Composite Decking Project</a> <a href="/fencing-done-right-plp" title="Fencing Project" aria-label="Everything Landscaping, All In One Place Fencing Project" class="menu-alt__link menu-alt__sub-link">Fencing Project</a> <a href="/indian-sandstone-done-right-plp" title="Indian Sandstone Paving Project" aria-label="Everything Landscaping, All In One Place Indian Sandstone Paving Project" class="menu-alt__link menu-alt__sub-link">Indian Sandstone Paving Project</a> <a href="/lawns-done-right-plp" title="Lawns Project" aria-label="Everything Landscaping, All In One Place Lawns Project" class="menu-alt__link menu-alt__sub-link">Lawns Project</a> <a href="/porcelain-paving-done-right-plp" title="Porcelain Paving project" aria-label="Everything Landscaping, All In One Place Porcelain Paving project" class="menu-alt__link menu-alt__sub-link">Porcelain Paving project</a> <a href="/timber-decking-done-right-plp" title="Timber Decking Project" aria-label="Everything Landscaping, All In One Place Timber Decking Project" class="menu-alt__link menu-alt__sub-link">Timber Decking Project</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/landscaping/driveways-paving" title="Driveways & Paving" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Driveways & Paving</a> <div class="accordion-toggle__inner"> <a href="/landscaping/driveways-paving/block-paving" title="Block Paving" aria-label="Driveways & Paving Block Paving" class="menu-alt__link menu-alt__sub-link">Block Paving</a> <a href="/landscaping/driveways-paving/driveway-drainage" title="Driveway Drainage" aria-label="Driveways & Paving Driveway Drainage" class="menu-alt__link menu-alt__sub-link">Driveway Drainage</a> <a href="/landscaping/driveways-paving/garden-paving" title="Garden Paving" aria-label="Driveways & Paving Garden Paving" class="menu-alt__link menu-alt__sub-link">Garden Paving</a> <a href="/landscaping/driveways-paving/path-kerb-edging-stones" title="Path & Kerb Edging Stones" aria-label="Driveways & Paving Path & Kerb Edging Stones" class="menu-alt__link menu-alt__sub-link">Path & Kerb Edging Stones</a> <a href="/landscaping/driveways-paving/paving-care-accessories" title="Paving Care & Accessories" aria-label="Driveways & Paving Paving Care & Accessories" class="menu-alt__link menu-alt__sub-link">Paving Care & Accessories</a> <a href="/landscaping/driveways-paving/weed-membrane-geotextiles" title="Weed Membrane & Geotextiles" aria-label="Driveways & Paving Weed Membrane & Geotextiles" class="menu-alt__link menu-alt__sub-link">Weed Membrane & Geotextiles</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/landscaping/lawns-planting" title="Lawns & Planting" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Lawns & Planting</a> <div class="accordion-toggle__inner"> <a href="/landscaping/lawns-planting/artificial-grass" title="Artificial Grass" aria-label="Lawns & Planting Artificial Grass" class="menu-alt__link menu-alt__sub-link">Artificial Grass</a> <a href="/landscaping/lawns-planting/artificial-green-wall" title="Artificial Green Wall" aria-label="Lawns & Planting Artificial Green Wall" class="menu-alt__link menu-alt__sub-link">Artificial Green Wall</a> <a href="/landscaping/lawns-planting/biodiversity-habitats" title="Biodiversity Habitats" aria-label="Lawns & Planting Biodiversity Habitats" class="menu-alt__link menu-alt__sub-link">Biodiversity Habitats</a> <a href="/tools-fixings/hand-tools/landscaping-tools" title="Landscaping Tools" aria-label="Lawns & Planting Landscaping Tools" class="menu-alt__link menu-alt__sub-link">Landscaping Tools</a> <a href="/landscaping/lawns-planting/lawn-turf" title="Lawn Turf" aria-label="Lawns & Planting Lawn Turf" class="menu-alt__link menu-alt__sub-link">Lawn Turf</a> <a href="/landscaping/lawns-planting/topsoil-bark" title="Topsoil & Bark" aria-label="Lawns & Planting Topsoil & Bark" class="menu-alt__link menu-alt__sub-link">Topsoil & Bark</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/landscaping/landscaping-fencing" title="Fencing" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Fencing</a> <div class="accordion-toggle__inner"> <a href="/landscaping/landscaping-fencing/composite-fencing" title="Composite Fencing" aria-label="Fencing Composite Fencing" class="menu-alt__link menu-alt__sub-link">Composite Fencing</a> <a href="/landscaping/landscaping-fencing/fence-boards-rails" title="Treated Fence Rails" aria-label="Fencing Treated Fence Rails" class="menu-alt__link menu-alt__sub-link">Treated Fence Rails</a> <a href="/landscaping/landscaping-fencing/fence-panels" title="Fence Panels" aria-label="Fencing Fence Panels" class="menu-alt__link menu-alt__sub-link">Fence Panels</a> <a href="/landscaping/landscaping-fencing/fence-posts-caps" title="Fence Posts & Caps" aria-label="Fencing Fence Posts & Caps" class="menu-alt__link menu-alt__sub-link">Fence Posts & Caps</a> <a href="/timber/sawn-carcassing-timber/fencing-timber" title="Fencing Timber" aria-label="Fencing Fencing Timber" class="menu-alt__link menu-alt__sub-link">Fencing Timber</a> <a href="/landscaping/landscaping-fencing/gate-ironmongery" title="Gate Ironmongery" aria-label="Fencing Gate Ironmongery" class="menu-alt__link menu-alt__sub-link">Gate Ironmongery</a> <a href="/landscaping/landscaping-fencing/gates" title="Gates" aria-label="Fencing Gates" class="menu-alt__link menu-alt__sub-link">Gates</a> <a href="/landscaping/landscaping-fencing/gravel-boards" title="Gravel Boards" aria-label="Fencing Gravel Boards" class="menu-alt__link menu-alt__sub-link">Gravel Boards</a> <a href="/landscaping/landscaping-fencing/wire-fencing" title="Wire Fencing" aria-label="Fencing Wire Fencing" class="menu-alt__link menu-alt__sub-link">Wire Fencing</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/landscaping/decking-sleepers" title="Decking & Sleepers" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Decking & Sleepers</a> <div class="accordion-toggle__inner"> <a href="/landscaping/decking-sleepers/decking-accessories" title="Decking Accessories" aria-label="Decking & Sleepers Decking Accessories" class="menu-alt__link menu-alt__sub-link">Decking Accessories</a> <a href="/landscaping/decking-sleepers/decking-protection" title="Decking Protection" aria-label="Decking & Sleepers Decking Protection" class="menu-alt__link menu-alt__sub-link">Decking Protection</a> <a href="/landscaping/decking-sleepers/composite-decking" title="Composite Decking" aria-label="Decking & Sleepers Composite Decking" class="menu-alt__link menu-alt__sub-link">Composite Decking</a> <a href="/landscaping/decking-sleepers/timber-decking" title="Timber Decking" aria-label="Decking & Sleepers Timber Decking" class="menu-alt__link menu-alt__sub-link">Timber Decking</a> <a href="/landscaping/decking-sleepers/sleepers" title="Timber Sleepers" aria-label="Decking & Sleepers Timber Sleepers" class="menu-alt__link menu-alt__sub-link">Timber Sleepers</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/landscaping/garden-buildings-structures" title="Garden Buildings & Structures" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Garden Buildings & Structures</a> <div class="accordion-toggle__inner"> <a href="/landscaping/garden-buildings-structures/garden-planters" title="Garden Planters" aria-label="Garden Buildings & Structures Garden Planters" class="menu-alt__link menu-alt__sub-link">Garden Planters</a> <a href="/landscaping/garden-buildings-structures/garden-rooms" title="Garden Rooms" aria-label="Garden Buildings & Structures Garden Rooms" class="menu-alt__link menu-alt__sub-link">Garden Rooms</a> <a href="/landscaping/garden-buildings-structures/garden-sheds" title="Garden Sheds" aria-label="Garden Buildings & Structures Garden Sheds" class="menu-alt__link menu-alt__sub-link">Garden Sheds</a> <a href="/landscaping/garden-buildings-structures/garden-storage" title="Garden Storage" aria-label="Garden Buildings & Structures Garden Storage" class="menu-alt__link menu-alt__sub-link">Garden Storage</a> <a href="/landscaping/garden-buildings-structures/garden-structures" title="Garden Structures" aria-label="Garden Buildings & Structures Garden Structures" class="menu-alt__link menu-alt__sub-link">Garden Structures</a> <a href="/landscaping/garden-buildings-structures/greenhouses" title="Greenhouses" aria-label="Garden Buildings & Structures Greenhouses" class="menu-alt__link menu-alt__sub-link">Greenhouses</a> <a href="/landscaping/garden-buildings-structures/outdoor-compost-bins" title="Outdoor Compost Bins" aria-label="Garden Buildings & Structures Outdoor Compost Bins" class="menu-alt__link menu-alt__sub-link">Outdoor Compost Bins</a> <a href="/landscaping/garden-buildings-structures/outdoor-furniture" title="Outdoor Furniture" aria-label="Garden Buildings & Structures Outdoor Furniture" class="menu-alt__link menu-alt__sub-link">Outdoor Furniture</a> <a href="/landscaping/garden-buildings-structures/summerhouses" title="Summerhouses" aria-label="Garden Buildings & Structures Summerhouses" class="menu-alt__link menu-alt__sub-link">Summerhouses</a> </div> </div> </div> </div> </div> <div class="menu-alt__tray-item js-menu-tray-item"> <a href="/kitchens-bathrooms" title="Kitchens & Bathrooms" class="menu-alt__link menu-alt__link--main menu-alt__link--parent js-menu-parent">Kitchens & Bathrooms</a> <div class="menu-alt__sub"> <div class="d-lg-none menu-alt__link menu-alt__link--back glyph glyph--arrow glyph--small js-menu-back" tabindex="0">Back</div> <div class="d-lg-none menu-alt__title-link menu-alt__title-link--sub"> <a href="/kitchens-bathrooms" title="Kitchens & Bathrooms" >Kitchens & Bathrooms</a></div> <div class="menu-alt__sub-internal container accordion accordion--xs accordion--all js-accordion"> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/kitchens-bathrooms/jewson-kitchens" title="Jewson Kitchens" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Jewson Kitchens</a> <div class="accordion-toggle__inner"> <a href="/kitchens-bathrooms/jewson-kitchens/classic" title="Classic kitchens" aria-label="Jewson Kitchens Classic kitchens" class="menu-alt__link menu-alt__sub-link">Classic kitchens</a> <a href="/kitchens-bathrooms/jewson-kitchens/modern" title="Modern kitchens" aria-label="Jewson Kitchens Modern kitchens" class="menu-alt__link menu-alt__sub-link">Modern kitchens</a> <a href="/kitchens-bathrooms/jewson-kitchens/kitchen-showrooms" title="Find a kitchen showroom" aria-label="Jewson Kitchens Find a kitchen showroom" class="menu-alt__link menu-alt__sub-link">Find a kitchen showroom</a> <a href="/kitchens-bathrooms/kitchen-ideas-advice" title="Ideas, advice & inspiration" aria-label="Jewson Kitchens Ideas, advice & inspiration" class="menu-alt__link menu-alt__sub-link">Ideas, advice & inspiration</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/kitchens-bathrooms/kitchen-bathroom-tiles" title="Kitchen & Bathroom Tiles" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Kitchen & Bathroom Tiles</a> <div class="accordion-toggle__inner"> <a href="/kitchens-bathrooms/kitchen-bathroom-tiles/bathroom-tiles" title="Bathroom Tiles" aria-label="Kitchen & Bathroom Tiles Bathroom Tiles" class="menu-alt__link menu-alt__sub-link">Bathroom Tiles</a> <a href="/building-materials/bricks-blocks/brick-slips" title="Brick Slips" aria-label="Kitchen & Bathroom Tiles Brick Slips" class="menu-alt__link menu-alt__sub-link">Brick Slips</a> <a href="/kitchens-bathrooms/kitchen-bathroom-tiles/grouting-tile-accessories" title="Grouting & Tile Accessories" aria-label="Kitchen & Bathroom Tiles Grouting & Tile Accessories" class="menu-alt__link menu-alt__sub-link">Grouting & Tile Accessories</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/kitchens-bathrooms/kitchen-worktops" title="Kitchen Worktops" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Kitchen Worktops</a> <div class="accordion-toggle__inner"> <a href="/kitchens-bathrooms/kitchen-worktops/compact-laminate-worktops" title="Compact Laminate Worktops" aria-label="Kitchen Worktops Compact Laminate Worktops" class="menu-alt__link menu-alt__sub-link">Compact Laminate Worktops</a> <a href="/kitchens-bathrooms/kitchen-worktops/laminate-worktops" title="Laminate Worktops" aria-label="Kitchen Worktops Laminate Worktops" class="menu-alt__link menu-alt__sub-link">Laminate Worktops</a> <a href="/kitchens-bathrooms/kitchen-worktops/solid-wood-worktops" title="Solid Wood Worktops" aria-label="Kitchen Worktops Solid Wood Worktops" class="menu-alt__link menu-alt__sub-link">Solid Wood Worktops</a> <a href="/kitchens-bathrooms/kitchen-worktops/kitchen-splashbacks" title="Splashbacks" aria-label="Kitchen Worktops Splashbacks" class="menu-alt__link menu-alt__sub-link">Splashbacks</a> <a href="/kitchens-bathrooms/kitchen-worktops/upstands" title="Upstands" aria-label="Kitchen Worktops Upstands" class="menu-alt__link menu-alt__sub-link">Upstands</a> <a href="/kitchens-bathrooms/kitchen-worktops/worktop-installation" title="Worktop Installation" aria-label="Kitchen Worktops Worktop Installation" class="menu-alt__link menu-alt__sub-link">Worktop Installation</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/kitchens-bathrooms/kitchen-appliances" title="Kitchen Appliances" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Kitchen Appliances</a> <div class="accordion-toggle__inner"> <a href="/kitchens-bathrooms/kitchen-appliances/cooking" title="Cooking" aria-label="Kitchen Appliances Cooking" class="menu-alt__link menu-alt__sub-link">Cooking</a> <a href="/kitchens-bathrooms/kitchen-appliances/dishwashing-laundry" title="Dishwashing & Laundry" aria-label="Kitchen Appliances Dishwashing & Laundry" class="menu-alt__link menu-alt__sub-link">Dishwashing & Laundry</a> <a href="/kitchens-bathrooms/kitchen-appliances/refrigeration" title="Refrigeration" aria-label="Kitchen Appliances Refrigeration" class="menu-alt__link menu-alt__sub-link">Refrigeration</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/kitchens-bathrooms/jewson-bathrooms" title="Jewson Bathrooms" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Jewson Bathrooms</a> <div class="accordion-toggle__inner"> <a href="/kitchens-bathrooms/jewson-bathrooms/bathrooms-showrooms" title="Visit a bathroom showroom" aria-label="Jewson Bathrooms Visit a bathroom showroom" class="menu-alt__link menu-alt__sub-link">Visit a bathroom showroom</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/kitchens-bathrooms/sanitaryware" title="Sanitaryware" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Sanitaryware</a> <div class="accordion-toggle__inner"> <a href="/kitchens-bathrooms/sanitaryware/toilet-cisterns" title="Toilet Cisterns" aria-label="Sanitaryware Toilet Cisterns" class="menu-alt__link menu-alt__sub-link">Toilet Cisterns</a> <a href="/kitchens-bathrooms/sanitaryware/toilet-fixtures" title="Toilet Fixtures" aria-label="Sanitaryware Toilet Fixtures" class="menu-alt__link menu-alt__sub-link">Toilet Fixtures</a> <a href="/kitchens-bathrooms/sanitaryware/Basins-Pedestals" title="Basins & Pedestals" aria-label="Sanitaryware Basins & Pedestals" class="menu-alt__link menu-alt__sub-link">Basins & Pedestals</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/kitchens-bathrooms/showering" title="Showering" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Showering</a> <div class="accordion-toggle__inner"> <a href="/kitchens-bathrooms/showering/shower-enclosures" title="Shower Enclosures" aria-label="Showering Shower Enclosures" class="menu-alt__link menu-alt__sub-link">Shower Enclosures</a> <a href="/kitchens-bathrooms/showering/shower-heads-valves" title="Shower Heads & Valves" aria-label="Showering Shower Heads & Valves" class="menu-alt__link menu-alt__sub-link">Shower Heads & Valves</a> </div> </div> </div> </div> </div> <div class="menu-alt__tray-item js-menu-tray-item"> <a href="/tool-hire" title="Tool Hire" class="menu-alt__link menu-alt__link--main menu-alt__link--parent js-menu-parent">Tool Hire</a> <div class="menu-alt__sub"> <div class="d-lg-none menu-alt__link menu-alt__link--back glyph glyph--arrow glyph--small js-menu-back" tabindex="0">Back</div> <div class="d-lg-none menu-alt__title-link menu-alt__title-link--sub"> <a href="/tool-hire" title="Tool Hire" >Tool Hire</a></div> <div class="menu-alt__sub-internal container accordion accordion--xs accordion--all js-accordion"> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/tool-hire/toolhire-concrete-cutting-equipment" title="Concrete & Cutting Tools" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Concrete & Cutting Tools</a> <div class="accordion-toggle__inner"> <a href="/tool-hire/toolhire-concrete-cutting-equipment/toolhire-block-splitters" title="Block Splitters" aria-label="Concrete & Cutting Tools Block Splitters" class="menu-alt__link menu-alt__sub-link">Block Splitters</a> <a href="/tool-hire/toolhire-concrete-cutting-equipment/toolhire-concrete-masonry-saws" title="Concrete & Masonry Saws" aria-label="Concrete & Cutting Tools Concrete & Masonry Saws" class="menu-alt__link menu-alt__sub-link">Concrete & Masonry Saws</a> <a href="/tool-hire/toolhire-concrete-cutting-equipment/toolhire-concrete-mixers" title="Concrete Mixers" aria-label="Concrete & Cutting Tools Concrete Mixers" class="menu-alt__link menu-alt__sub-link">Concrete Mixers</a> <a href="/tool-hire/toolhire-concrete-cutting-equipment/toolhire-cutting-chasing" title="Cutting & Chasing" aria-label="Concrete & Cutting Tools Cutting & Chasing" class="menu-alt__link menu-alt__sub-link">Cutting & Chasing</a> <a href="/tool-hire/toolhire-concrete-cutting-equipment/toolhire-floats" title="Floats" aria-label="Concrete & Cutting Tools Floats" class="menu-alt__link menu-alt__sub-link">Floats</a> <a href="/tool-hire/toolhire-concrete-cutting-equipment/toolhire-floor-preparation" title="Floor Preparation" aria-label="Concrete & Cutting Tools Floor Preparation" class="menu-alt__link menu-alt__sub-link">Floor Preparation</a> <a href="/tool-hire/toolhire-concrete-cutting-equipment/toolhire-vibrating-pokers" title="Vibrating Pokers" aria-label="Concrete & Cutting Tools Vibrating Pokers" class="menu-alt__link menu-alt__sub-link">Vibrating Pokers</a> <a href="/tool-hire/toolhire-concrete-cutting-equipment/toolhire-vibrating-screeds" title="Vibrating Screeds" aria-label="Concrete & Cutting Tools Vibrating Screeds" class="menu-alt__link menu-alt__sub-link">Vibrating Screeds</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/tool-hire/toolhire-access-lifting" title="Access & Lifting" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Access & Lifting</a> <div class="accordion-toggle__inner"> <a href="/tool-hire/toolhire-access-lifting/toolhire-alloy-towers" title="Alloy Towers" aria-label="Access & Lifting Alloy Towers" class="menu-alt__link menu-alt__sub-link">Alloy Towers</a> <a href="/tool-hire/toolhire-access-lifting/toolhire-ladders" title="Ladders" aria-label="Access & Lifting Ladders" class="menu-alt__link menu-alt__sub-link">Ladders</a> <a href="/tool-hire/toolhire-access-lifting/toolhire-lifting-equipment" title="Lifting Equipment" aria-label="Access & Lifting Lifting Equipment" class="menu-alt__link menu-alt__sub-link">Lifting Equipment</a> <a href="/tool-hire/toolhire-access-lifting/toolhire-staging-boards" title="Staging Boards" aria-label="Access & Lifting Staging Boards" class="menu-alt__link menu-alt__sub-link">Staging Boards</a> <a href="/tool-hire/toolhire-access-lifting/toolhire-steps" title="Steps" aria-label="Access & Lifting Steps" class="menu-alt__link menu-alt__sub-link">Steps</a> <a href="/tool-hire/toolhire-access-lifting/toolhire-trestles" title="Trestles" aria-label="Access & Lifting Trestles" class="menu-alt__link menu-alt__sub-link">Trestles</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/tool-hire/toolhire-plant-hire" title="Plant Hire" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Plant Hire</a> <div class="accordion-toggle__inner"> <a href="/tool-hire/toolhire-plant-hire/toolhire-dumper-trucks" title="Dumper Trucks" aria-label="Plant Hire Dumper Trucks" class="menu-alt__link menu-alt__sub-link">Dumper Trucks</a> <a href="/tool-hire/toolhire-plant-hire/toolhire-excavators" title="Excavators" aria-label="Plant Hire Excavators" class="menu-alt__link menu-alt__sub-link">Excavators</a> <a href="/tool-hire/toolhire-plant-hire/toolhire-loaders" title="Loaders" aria-label="Plant Hire Loaders" class="menu-alt__link menu-alt__sub-link">Loaders</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/tool-hire/toolhire-breaking-demolition" title="Breaking & Demolition" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Breaking & Demolition</a> <div class="accordion-toggle__inner"> <a href="/tool-hire/toolhire-breaking-demolition/toolhire-electric-breakers" title="Electric Breakers" aria-label="Breaking & Demolition Electric Breakers" class="menu-alt__link menu-alt__sub-link">Electric Breakers</a> <a href="/tool-hire/toolhire-breaking-demolition/toolhire-hydraulic-breakers" title="Hydraulic Breakers" aria-label="Breaking & Demolition Hydraulic Breakers" class="menu-alt__link menu-alt__sub-link">Hydraulic Breakers</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/tool-hire/toolhire-power-tools" title="Power Tools" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Power Tools</a> <div class="accordion-toggle__inner"> <a href="/tool-hire/toolhire-power-tools/toolhire-damp-proofing" title="Damp Proofing" aria-label="Power Tools Damp Proofing" class="menu-alt__link menu-alt__sub-link">Damp Proofing</a> <a href="/tool-hire/toolhire-power-tools/toolhire-drilling" title="Drilling" aria-label="Power Tools Drilling" class="menu-alt__link menu-alt__sub-link">Drilling</a> <a href="/tool-hire/toolhire-power-tools/toolhire-fixing-equipment" title="Fixing Equipment" aria-label="Power Tools Fixing Equipment" class="menu-alt__link menu-alt__sub-link">Fixing Equipment</a> <a href="/tool-hire/toolhire-power-tools/toolhire-grinders" title="Grinders" aria-label="Power Tools Grinders" class="menu-alt__link menu-alt__sub-link">Grinders</a> <a href="/tool-hire/toolhire-power-tools/toolhire-paint-mixers" title="Paint Mixers" aria-label="Power Tools Paint Mixers" class="menu-alt__link menu-alt__sub-link">Paint Mixers</a> <a href="/tool-hire/toolhire-power-tools/toolhire-sanders" title="Sanders" aria-label="Power Tools Sanders" class="menu-alt__link menu-alt__sub-link">Sanders</a> <a href="/tool-hire/toolhire-power-tools/toolhire-saws" title="Saws" aria-label="Power Tools Saws" class="menu-alt__link menu-alt__sub-link">Saws</a> <a href="/tool-hire/toolhire-power-tools/toolhire-woodworking" title="Woodworking" aria-label="Power Tools Woodworking" class="menu-alt__link menu-alt__sub-link">Woodworking</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/tool-hire/toolhire-surface-compaction" title="Surface Compaction" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Surface Compaction</a> <div class="accordion-toggle__inner"> <a href="/tool-hire/toolhire-surface-compaction/toolhire-plate-compactors" title="Plate Compactors" aria-label="Surface Compaction Plate Compactors" class="menu-alt__link menu-alt__sub-link">Plate Compactors</a> <a href="/tool-hire/toolhire-surface-compaction/toolhire-vibrating-compactors" title="Vibrating Compactors" aria-label="Surface Compaction Vibrating Compactors" class="menu-alt__link menu-alt__sub-link">Vibrating Compactors</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/tool-hire/toolhire-plumbing-equipment" title="Plumbing Equipment" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Plumbing Equipment</a> <div class="accordion-toggle__inner"> <a href="/tool-hire/toolhire-plumbing-equipment/toolhire-drain-cleaning" title="Drain Cleaning" aria-label="Plumbing Equipment Drain Cleaning" class="menu-alt__link menu-alt__sub-link">Drain Cleaning</a> <a href="/tool-hire/toolhire-plumbing-equipment/toolhire-pipe-bending" title="Pipe Bending" aria-label="Plumbing Equipment Pipe Bending" class="menu-alt__link menu-alt__sub-link">Pipe Bending</a> <a href="/tool-hire/toolhire-plumbing-equipment/toolhire-pipe-freezing" title="Pipe Freezing" aria-label="Plumbing Equipment Pipe Freezing" class="menu-alt__link menu-alt__sub-link">Pipe Freezing</a> <a href="/tool-hire/toolhire-plumbing-equipment/toolhire-pipe-threading" title="Pipe Threading" aria-label="Plumbing Equipment Pipe Threading" class="menu-alt__link menu-alt__sub-link">Pipe Threading</a> <a href="/tool-hire/toolhire-plumbing-equipment/toolhire-pumping-equipment/toolhire-pumping" title="Pumping" aria-label="Plumbing Equipment Pumping" class="menu-alt__link menu-alt__sub-link">Pumping</a> <a href="/tool-hire/toolhire-plumbing-equipment/toolhire-testing" title="Testing" aria-label="Plumbing Equipment Testing" class="menu-alt__link menu-alt__sub-link">Testing</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/tool-hire/toolhire-landscaping-tools" title="Landscaping Tools" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Landscaping Tools</a> <div class="accordion-toggle__inner"> <a href="/tool-hire/toolhire-landscaping-tools/toolhire-fencing-equipment" title="Fencing Equipment" aria-label="Landscaping Tools Fencing Equipment" class="menu-alt__link menu-alt__sub-link">Fencing Equipment</a> <a href="/tool-hire/toolhire-landscaping-tools/toolhire-lawn-care" title="Lawn Care" aria-label="Landscaping Tools Lawn Care" class="menu-alt__link menu-alt__sub-link">Lawn Care</a> <a href="/tool-hire/toolhire-landscaping-tools/toolhire-rotavators" title="Rotavators" aria-label="Landscaping Tools Rotavators" class="menu-alt__link menu-alt__sub-link">Rotavators</a> <a href="/tool-hire/toolhire-landscaping-tools/toolhire-shredders" title="Shredders" aria-label="Landscaping Tools Shredders" class="menu-alt__link menu-alt__sub-link">Shredders</a> <a href="/tool-hire/toolhire-landscaping-tools/toolhire-trimmers" title="Trimmers" aria-label="Landscaping Tools Trimmers" class="menu-alt__link menu-alt__sub-link">Trimmers</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/tool-hire/toolhire-decorating-tools" title="Decorating Tools" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Decorating Tools</a> <div class="accordion-toggle__inner"> <a href="/tool-hire/toolhire-decorating-tools/toolhire-floor-equipment" title="Floor Equipment" aria-label="Decorating Tools Floor Equipment" class="menu-alt__link menu-alt__sub-link">Floor Equipment</a> <a href="/tool-hire/toolhire-decorating-tools/toolhire-paper-paint-strippers" title="Paper & Paint Strippers" aria-label="Decorating Tools Paper & Paint Strippers" class="menu-alt__link menu-alt__sub-link">Paper & Paint Strippers</a> <a href="/tool-hire/toolhire-decorating-tools/toolhire-tiling-tools" title="Tiling Tools" aria-label="Decorating Tools Tiling Tools" class="menu-alt__link menu-alt__sub-link">Tiling Tools</a> <a href="/tool-hire/toolhire-decorating-tools/toolhire-tyrolean-machines" title="Tyrolean Machines" aria-label="Decorating Tools Tyrolean Machines" class="menu-alt__link menu-alt__sub-link">Tyrolean Machines</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/tool-hire/toolhire-cleaning-equipment" title="Cleaning Equipment" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Cleaning Equipment</a> <div class="accordion-toggle__inner"> <a href="/tool-hire/toolhire-cleaning-equipment/toolhire-dryers" title="Dryers" aria-label="Cleaning Equipment Dryers" class="menu-alt__link menu-alt__sub-link">Dryers</a> <a href="/tool-hire/toolhire-cleaning-equipment/toolhire-floor-cleaning" title="Floor Cleaning" aria-label="Cleaning Equipment Floor Cleaning" class="menu-alt__link menu-alt__sub-link">Floor Cleaning</a> <a href="/tool-hire/toolhire-cleaning-equipment/toolhire-pressure-washers" title="Pressure Washers" aria-label="Cleaning Equipment Pressure Washers" class="menu-alt__link menu-alt__sub-link">Pressure Washers</a> <a href="/tool-hire/toolhire-cleaning-equipment/toolhire-vacuum-cleaners" title="Vacuum Cleaners" aria-label="Cleaning Equipment Vacuum Cleaners" class="menu-alt__link menu-alt__sub-link">Vacuum Cleaners</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/tool-hire/toolhire-electrical-heating" title="Electrical & Heating" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Electrical & Heating</a> <div class="accordion-toggle__inner"> <a href="/tool-hire/toolhire-electrical-heating/toolhire-air-conditioning" title="Air Conditioning" aria-label="Electrical & Heating Air Conditioning" class="menu-alt__link menu-alt__sub-link">Air Conditioning</a> <a href="/tool-hire/toolhire-electrical-heating/toolhire-electrical-transformers" title="Electrical Transformers" aria-label="Electrical & Heating Electrical Transformers" class="menu-alt__link menu-alt__sub-link">Electrical Transformers</a> <a href="/tool-hire/toolhire-electrical-heating/toolhire-heating" title="Heating" aria-label="Electrical & Heating Heating" class="menu-alt__link menu-alt__sub-link">Heating</a> <a href="/tool-hire/toolhire-electrical-heating/toolhire-lighting" title="Lighting" aria-label="Electrical & Heating Lighting" class="menu-alt__link menu-alt__sub-link">Lighting</a> <a href="/tool-hire/toolhire-electrical-heating/toolhire-portable-generators" title="Portable Generators" aria-label="Electrical & Heating Portable Generators" class="menu-alt__link menu-alt__sub-link">Portable Generators</a> <a href="/tool-hire/toolhire-electrical-heating/toolhire-site-distribution" title="Site Distribution" aria-label="Electrical & Heating Site Distribution" class="menu-alt__link menu-alt__sub-link">Site Distribution</a> </div> </div> <div class="menu-alt__sub-item accordion-toggle__content js-accordion-content"> <a href="/tool-hire/toolhire-site-equipment" title="Site Equipment" class="menu-alt__link menu-alt__link--sub-title-link menu-alt__link--sub-link js-menu-link-sub-title-link accordion-toggle__title js-accordion-toggle">Site Equipment</a> <div class="accordion-toggle__inner"> <a href="/tool-hire/toolhire-site-equipment/toolhire-extractors" title="Extractors" aria-label="Site Equipment Extractors" class="menu-alt__link menu-alt__sub-link">Extractors</a> <a href="/tool-hire/toolhire-site-equipment/toolhire-fencing-hoarding" title="Fencing & Hoarding" aria-label="Site Equipment Fencing & Hoarding" class="menu-alt__link menu-alt__sub-link">Fencing & Hoarding</a> <a href="/tool-hire/toolhire-site-equipment/toolhire-props" title="Props" aria-label="Site Equipment Props" class="menu-alt__link menu-alt__sub-link">Props</a> <a href="/tool-hire/toolhire-site-equipment/toolhire-site-safety-security" title="Site Safety & Security" aria-label="Site Equipment Site Safety & Security" class="menu-alt__link menu-alt__sub-link">Site Safety & Security</a> <a href="/tool-hire/toolhire-site-equipment/toolhire-skip-ramps-rubbish-chutes" title="Skip Ramps & Rubbish Chutes" aria-label="Site Equipment Skip Ramps & Rubbish Chutes" class="menu-alt__link menu-alt__sub-link">Skip Ramps & Rubbish Chutes</a> <a href="/tool-hire/toolhire-site-equipment/toolhire-surveying" title="Surveying" aria-label="Site Equipment Surveying" class="menu-alt__link menu-alt__sub-link">Surveying</a> </div> </div> </div> </div> </div> </div><div class="d-lg-none menu-alt__tray-item"> <span class="menu-alt__title">More from Jewson</span> <div> <a href="/help" class="menu-alt__link">Click &amp; Collect in 1 hour</a> <a href="/help/delivery-collection-information" class="menu-alt__link">Free delivery on orders over &#163;100 + VAT</a> <a href="/making-better-homes" class="menu-alt__link">Making better homes</a> </div> </div> <div class="d-lg-none menu-alt__close js-menu-close-alt"> <button class="btn btn-tertiary w-100">Close</button> </div> </div> </div> </div> </div> </nav> </header> <main id="main" class="main" tabindex="-1" data-currency-iso-code="GBP" data-tracking-block="main"> <div class=" main-container container"> <div class=""> <div class="row"> <div class="col-12 "> </div> </div> </div> <div id="adobe-wrap"><div class="row"> <div class="col-12"> <ol class="breadcrumb js-breadcrumbs " itemscope itemtype="http://schema.org/BreadcrumbList" data-section="breadcrumbs"> <li class="breadcrumb__item d-none" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem" data-section="breadcrumb-item-home"> <a class="breadcrumb__link" itemprop="item" href="/"> <span itemprop="name" class="breadcrumb__inner breadcrumb__inner--text"> Home</span> <span class="breadcrumb__inner breadcrumb__inner--icon" data-name="arrow"> <span class="glyph glyph--chevron glyph--small"></span> </span> </a> <meta itemprop="position" content="1"/> </li> <li class="breadcrumb__item d-none" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem" data-section="breadcrumb-item-2"> <a class="breadcrumb__link" itemprop="item" href="/timber"> <span itemprop="name" class="breadcrumb__inner breadcrumb__inner--text"> Timber</span> <span class="breadcrumb__inner breadcrumb__inner--icon" data-name="arrow"> <span class="glyph glyph--chevron glyph--small"></span> </span> </a> <meta itemprop="position" content="2"/> </li> <li class="breadcrumb__item breadcrumb__item--current" data-section="breadcrumb-item-current"> <span itemprop="name" class="breadcrumb__link breadcrumb__link--current">Sheet Materials</span> </li> </ol> </div> </div> <div class="row category"> <div class="col-12 mb-2"> <h1 class="mt-3 mb-1 category__title">Sheet Materials</h1> <!-- category description --> <div class="yCmsComponent js-line-clamp mb-3"> <div class="content">Our range of sheet materials are suitable for projects where you want the characteristics of timber but without the density, weight & cost. Applications include cabinetry, flooring, roofing & door work making sheet material a versatile option. For more information about sheet materials, read our <a href="https://www.jewson.co.uk/expert-advice/product-advice/guide-to-timber/sheet-materials-guide">guide on sheet materials</a> grades and standards. Browse an extensive range of plywood, chipboard & OSB, MDF and more panel products here.</div></div></div> <!-- side sub-category links --> <div class="yCmsContentSlot col-12 col-md-4 col-lg-4 mb-4 col-xl-3"> <div class="card-sections card-sections--parent"> <h3 class="card-sections__section card-sections__section--header"> Categories</h3> <ul class="card-sections__section card-sections__section--list"> <li class="card-sections__item"><a href="/timber/sheet-materials/chipboard-osb" class="card-sections__link card-sections__link--upper">Chipboard & OSB</a></li> <li class="card-sections__item"><a href="/doors-joinery/external-doors/door-blanks" class="card-sections__link card-sections__link--upper">Door Blanks</a></li> <li class="card-sections__item"><a href="/timber/sheet-materials/handy-panels" class="card-sections__link card-sections__link--upper">Handy Panels</a></li> <li class="card-sections__item"><a href="/timber/sheet-materials/mdf-hardboard" class="card-sections__link card-sections__link--upper">MDF & Hardboard</a></li> <li class="card-sections__item"><a href="/timber/sheet-materials/notice-board" class="card-sections__link card-sections__link--upper">Notice Boards</a></li> <li class="card-sections__item"><a href="/timber/sheet-materials/plywood" class="card-sections__link card-sections__link--upper">Plywood</a></li> </ul> </div> </div><div class="d-none d-sm-block col-12 col-md-8 col-lg-8 col-xl-9"> <div class="yCmsContentSlot row d-none d-lg-block" data-slotname="Section1"> </div><!-- sub-category links --> <div class="yCmsContentSlot row"> <div class="yCmsComponent col-6 col-lg-6 col-xl-4 mb-3"> <div class="card-sections"> <a href="/timber/sheet-materials/chipboard-osb" class="card-sections__section card-sections__section--category"><img src="/medias/OSB.jpeg?context=bWFzdGVyfHJvb3R8MzAyODB8aW1hZ2UvanBlZ3xhRGcwTDJnM05DODVNakUxTkRNd05Ea3lNVGt3TDA5VFFpNXFjR1ZufGI5YmViMDllZGQ4OTdjMGFkZThjZDVhMzNmY2U2Y2MyZTBkNmYxMTI3ZTA0MjJmMWJjNDAyY2UyODY1Y2MxMWU" alt="Category image for Chipboard & OSB" class="card-sections__image" loading="lazy"> <h3 class="card-sections__section card-sections__section--header">Chipboard & OSB</h3> </a> <div class="card-sections__section card-sections__section--desc"> <p>Choose from our range of chipboard and OSB products for a versatile solution to your project.</p> </div> <div class="card-sections__section card-sections__section--cta"> <a href="/timber/sheet-materials/chipboard-osb" class="btn btn-tertiary" aria-label="View all Chipboard & OSB">View all</a> </div> </div> </div><div class="yCmsComponent col-6 col-lg-6 col-xl-4 mb-3"> <div class="card-sections"> <a href="/doors-joinery/external-doors/door-blanks" class="card-sections__section card-sections__section--category"><img src="/medias/Essgee-doorblank-cat.jpeg?context=bWFzdGVyfHJvb3R8Mjg2MDZ8aW1hZ2UvanBlZ3xhR00zTDJnMlpDODVNakUxTkRNd05qZzROems0TDBWemMyZGxaUzFrYjI5eVlteGhibXN0WTJGMExtcHdaV2N8YTFmYWI0Yjk3YTdjZjY0OTA3NmFiZjNiMmM4NzM3ZjM1MzZmZDhhZDM3NzM4ZjE3OGFhNTgzNDI4YWU4YjJhMw" alt="Category image for Door Blanks" class="card-sections__image" loading="lazy"> <h3 class="card-sections__section card-sections__section--header">Door Blanks</h3> </a> <div class="card-sections__section card-sections__section--desc"> <p>We have high quality door blanks in sizes to fit any application.</p> </div> <div class="card-sections__section card-sections__section--cta"> <a href="/doors-joinery/external-doors/door-blanks" class="btn btn-tertiary" aria-label="View all Door Blanks">View all</a> </div> </div> </div><div class="yCmsComponent col-6 col-lg-6 col-xl-4 mb-3"> <div class="card-sections"> <a href="/timber/sheet-materials/handy-panels" class="card-sections__section card-sections__section--category"><img src="/medias/Handy-panels-image-resized-307x217.png?context=bWFzdGVyfHJvb3R8MjM3NzF8aW1hZ2UvcG5nfGFEa3pMMmhqTVM4NU16a3dNVE0zTWpFeU9UVTRMMGhoYm1SNUlIQmhibVZzY3lCcGJXRm5aU0F0SUhKbGMybDZaV1FnTXpBM2VESXhOeTV3Ym1jfDBmZWNkNWU2M2U2ODRjYWI2YzFlZTg3NzExNjAxZjNjNzViM2Y5ZjIwZGU0MTVhMTVjNTY0MjMxNDc4OTYwYzA" alt="Category image for Handy Panels" class="card-sections__image" loading="lazy"> <h3 class="card-sections__section card-sections__section--header">Handy Panels</h3> </a> <div class="card-sections__section card-sections__section--desc"> <p>Suitable for internal and external use, cost effective and easy to use, our handy panels live up to their name.</p> </div> <div class="card-sections__section card-sections__section--cta"> <a href="/timber/sheet-materials/handy-panels" class="btn btn-tertiary" aria-label="View all Handy Panels">View all</a> </div> </div> </div><div class="yCmsComponent col-6 col-lg-6 col-xl-4 mb-3"> <div class="card-sections"> <a href="/timber/sheet-materials/mdf-hardboard" class="card-sections__section card-sections__section--category"><img src="/medias/MDF-and-hardboard-image-resized-307x317.png?context=bWFzdGVyfHJvb3R8MzcwOTh8aW1hZ2UvcG5nfGFEQXpMMmd4TWk4NU16a3dNVE0xTWpFME1URXdMMDFFUmlCaGJtUWdhR0Z5WkdKdllYSmtJR2x0WVdkbElDMGdjbVZ6YVhwbFpDQXpNRGQ0TXpFM0xuQnVad3w1MzUyZThmNDUwM2UzMTRhYmJhM2U5MzkzMWMzYzZhYjIyMGJkOTMzYjM2YjIzZjM2YTk0ZTY4YWNjYzg4MGQ5" alt="Category image for MDF & Hardboard" class="card-sections__image" loading="lazy"> <h3 class="card-sections__section card-sections__section--header">MDF & Hardboard</h3> </a> <div class="card-sections__section card-sections__section--desc"> <p>Our range of MDF and hardboard is available in a variety of specifications for your job needs.</p> </div> <div class="card-sections__section card-sections__section--cta"> <a href="/timber/sheet-materials/mdf-hardboard" class="btn btn-tertiary" aria-label="View all MDF & Hardboard">View all</a> </div> </div> </div><div class="yCmsComponent col-6 col-lg-6 col-xl-4 mb-3"> <div class="card-sections"> <a href="/timber/sheet-materials/notice-board" class="card-sections__section card-sections__section--category"><img src="/medias/notice-boards.png?context=bWFzdGVyfHJvb3R8MjA5NDN8aW1hZ2UvcG5nfGFEZ3pMMmhrWXk4NU1qUXpOVFl3T0RNM01UVXdMMjV2ZEdsalpTQmliMkZ5WkhNdWNHNW58NDA0ZTVmZWNlNzg0NmQxODZmYmRhZjZlODU3MDNlMjY0MDdkZGVmNTdlMjQyMjdmNmU2MWQzYzg1OGRhZGE4Nw" alt="Category image for Notice Boards" class="card-sections__image" loading="lazy"> <h3 class="card-sections__section card-sections__section--header">Notice Boards</h3> </a> <div class="card-sections__section card-sections__section--desc"> <p>We have a great range of notice boards from white boards to pin boards.</p> </div> <div class="card-sections__section card-sections__section--cta"> <a href="/timber/sheet-materials/notice-board" class="btn btn-tertiary" aria-label="View all Notice Boards">View all</a> </div> </div> </div><div class="yCmsComponent col-6 col-lg-6 col-xl-4 mb-3"> <div class="card-sections"> <a href="/timber/sheet-materials/plywood" class="card-sections__section card-sections__section--category"><img src="/medias/Plywood-PLY04FS1.jpeg?context=bWFzdGVyfHJvb3R8MTA5OTV8aW1hZ2UvanBlZ3xhR1JrTDJnd055ODVNakUxTkRNeE5UUXdOelkyTDFCc2VYZHZiMlF0VUV4Wk1EUkdVekV1YW5CbFp3fGMzNmQ1Yjc5ZDJhMDkwMTZjNDhkY2NkZGFjNGNjNWI4MGU4MjQ5OTkyYWNlOTBjYTdjMTIzYjc2ZmVlYjkzN2I" alt="Category image for Plywood" class="card-sections__image" loading="lazy"> <h3 class="card-sections__section card-sections__section--header">Plywood</h3> </a> <div class="card-sections__section card-sections__section--desc"> <p>Our strong plywood is ideal for jobs of any demand, from light to heavy duty.</p> </div> <div class="card-sections__section card-sections__section--cta"> <a href="/timber/sheet-materials/plywood" class="btn btn-tertiary" aria-label="View all Plywood">View all</a> </div> </div> </div></div></div> </div> <!-- Brand Slot --> <section class="yCmsContentSlot brands brands--bordered mt-1 mt-sm-2"> <div class="row"> <div class="yCmsComponent col-12"> <div class="content"><p style="margin-bottom:11px">Our sheet material products are suitable for a wide range of different applications, such as flooring, roofing, cabinet making and van lining. Offering the beneficial characteristics of timber, but with unique features, sheet materials deliver on density, weight and cost. Learn how to get the best performance for your sheet materials by reading our article on the different <a href="https://www.jewson.co.uk/expert-advice/product-advice/guide-to-timber/sheet-materials-guide/sheet-materials-external-results">external factors and their effect</a> on sheet materials.</p><p>The wood used in our sheet materials is responsibly sourced from sustainably-managed forests. For more information about this, look for the Chain of Custody listed under each product&#39;s details.</p><p>Our Chipboard and OSB boards provide a stable structural platform, thanks to the manufacturing process used in their construction. Tongue and groove boards can be used to create moisture-resistant floors during refurbishment and new-build completions.</p><p>MDF & hardboard offer higher density with a smooth texture that is ideal for machining. MDF panels will take routed details well, with little sanding or smoothing needed. This makes them an excellent choice for furniture and for quick assembly using routed carpentry joints.</p><p>Plywood uses layers of timber veneers to create sheets of varying thickness, from as little as 3mm up to 25mm. This allows you to choose the thickness you need, from lightweight use to heavy-duty applications.</p></div></div></div> </section><div class="row"> <!-- Best sellers --> <div class="col-12 px-0"> </div> <!-- 2nd static promotional banner --> <!-- Secondary Description --> </div> <section class="promotion-banner my-3"> <div class="row"> <div class="yCmsContentSlot col-12" data-slotname="PromotionalBannersTitleSection"> </div><div class="yCmsContentSlot col-12" data-slotname="FullWidthPromotionalBannerSection"> </div><div class="col-12"> <div class="yCmsContentSlot row" data-slotname="ResponsivePromotionalBannersSection"> </div></div> </div> </section> </div> </div> <div id="js-modals-container"> </div> </main> <footer class="footer" data-tracking-block="footer"> <div class="social-footer" data-tracking-position="social"> <div class="container"> <div class="row"> <div class="col-lg-6"> <span class="h3 social-footer__heading"> Follow us</span> <ul class="social-footer__list"> <li class="social-footer__list-item"> <a href="https://www.instagram.com/jewsonuk" title="https://www.instagram.com/jewsonuk" class="social-footer__link social-footer__link--instagram" target="_blank" rel="noopener" > <span class="social-footer__icon"> <span class="sr-only">instagram</span> <img src="/medias/footer-social-instagram.svg?context=bWFzdGVyfGltYWdlc3wxMzY0fGltYWdlL3N2Zyt4bWx8YURObUwyZzRZaTg0T1RVME1ERTNNamcwTVRJMkwyWnZiM1JsY2kxemIyTnBZV3hmYVc1emRHRm5jbUZ0TG5OMlp3fGZlZTRjY2JjZjZkMzVmNjdhMTNhNzBmZDY4ZmE2ZjRkMzE4NmViYjdiZWNjNjQ3NTM3ODAwZDljMzc4OTJhN2M" alt="Social icon forinstagram" class="social-footer__img" width="40" height="40" /> </span> </a> </li> <li class="social-footer__list-item"> <a href="https://twitter.com/Jewson" title="https://twitter.com/Jewson" class="social-footer__link social-footer__link--twitter" target="_blank" rel="noopener" > <span class="social-footer__icon"> <span class="sr-only">twitter</span> <img src="/medias/X-logo.svg?context=bWFzdGVyfHJvb3R8MjE0NjEzNnxpbWFnZS9zdmcreG1sfGFEWm1MMmcyTnk4NU5URTFPVFl4TnpjNE1qQTJMMWhmYkc5bmJ5NXpkbWN8MDlmMzdjNGRiOTA4NDBlY2M3ZmU4YTI2YTUxODY5NzJlODg2Zjg2ZDg4MWIxNjI1NDFhNWZlNjE1MDMwYTdiZg" alt="Social icon fortwitter" class="social-footer__img" width="40" height="40" /> </span> </a> </li> <li class="social-footer__list-item"> <a href="https://www.facebook.com/jewsonuk" title="https://www.facebook.com/jewsonuk" class="social-footer__link social-footer__link--facebook" target="_blank" rel="noopener" > <span class="social-footer__icon"> <span class="sr-only">facebook</span> <img src="/medias/footer-social-facebook.svg?context=bWFzdGVyfGltYWdlc3w0Mjh8aW1hZ2Uvc3ZnK3htbHxhRFF4TDJnNE9DODRPVFUwTURFM016UTVOall5TDJadmIzUmxjaTF6YjJOcFlXeGZabUZqWldKdmIyc3VjM1pufDdiODdjOWVjNWNlMmM2NGU4NjQ4ZTZmMjFlYTFiMjBlMDg1NDZhYzk4MmVkMTU1NTQ2M2JjMDM5ZjIxNGE0N2M" alt="Social icon forfacebook" class="social-footer__img" width="40" height="40" /> </span> </a> </li> </ul> </div> <div class="col-lg-6 d-none d-lg-block"> <div class="social-footer__logo d-flex align-items-center justify-content-center"> <a href="/" aria-label="Homepage"> <img src="/medias/FooterSVGJewson-Logo-Negative-RGB.svg?context=bWFzdGVyfGltYWdlc3w5MTY5fGltYWdlL3N2Zyt4bWx8YUdSbUwyZ3dNaTg1TlRZeE5UZ3lOelkwTURZeUwwWnZiM1JsY2xOV1IwcGxkM052YmlCTWIyZHZYMDVsWjJGMGFYWmxYMUpIUWk1emRtY3xiMjQ4NThjM2U3ZDc2YWFjZTA4MTkyMDNmZThiN2UzZDU3OTI5NTE5ZWUzYTZiYmY0MWU1OTM1OGVlNDgzZWM4" alt="" class="w-100" /> </a> </div> </div> </div> </div> </div> <div class="footer__inner" data-tracking-position="quick-links"> <div class="container"> <div class="row"> <div class="accordion accordion--xs accordion--all js-accordion col-12"> <div class="row m-0"> <div class="footer__section col-12 col-lg-3"> <div class="accordion-toggle__content mb-0 js-accordion-content"> <span class="h3 footer__heading footer__heading--accordion accordion-toggle__title js-accordion-toggle"> Helpful links</span> <div class="accordion-toggle__inner"> <ul class="footer__list"> <li class="yCmsComponent"> <a href="/need-help/delivery-collection-information" title="Delivery & collection information" >Delivery & collection information</a></li><li class="yCmsComponent"> <a href="/accounts-how-to-pay" title="E-billing & paying your account" >E-billing & paying your account</a></li><li class="yCmsComponent"> <a href="/product-recall" title="Product recall" >Product recall</a></li><li class="yCmsComponent"> <a href="/promotions" title="Promotions" >Promotions</a></li><li class="yCmsComponent"> <a href="/legal-policies/returns-policy" title="Returns policy" >Returns policy</a></li><li class="yCmsComponent"> <a href="/brands" title="Shop by brand" >Shop by brand</a></li><li class="yCmsComponent"> <a href="/supplier-updates" title="Supplier updates" >Supplier updates</a></li><li class="yCmsComponent"> <a href="/tool-hire-help" title="Tool hire help" >Tool hire help</a></li></ul> </div> </div> </div> <div class="footer__section col-12 col-lg-3"> <div class="accordion-toggle__content mb-0 js-accordion-content"> <span class="h3 footer__heading footer__heading--accordion accordion-toggle__title js-accordion-toggle"> Our company</span> <div class="accordion-toggle__inner"> <ul class="footer__list"> <li class="yCmsComponent"> <a href="/about-us" title="About us" >About us</a></li><li class="yCmsComponent"> <a href="/careers" title="Careers" >Careers</a></li><li class="yCmsComponent"> <a href="/need-help" title="Contact us" >Contact us</a></li><li class="yCmsComponent"> <a href="/kitchens-bathrooms/jewson-kitchens/kitchen-showrooms" title="Jewson kitchen showrooms" >Jewson kitchen showrooms</a></li><li class="yCmsComponent"> <a href="/about-us/jewson-services" title="Jewson services" >Jewson services</a></li><li class="yCmsComponent"> <a href="/waste-electrical-electronic-equipment" title="Electronic recycling service" >Electronic recycling service</a></li><li class="yCmsComponent"> <a href="https://jewson.obas.biz/frontend_default.asp" title="Request a brochure" target="_blank" rel="noopener">Request a brochure</a></li></ul> </div> </div> </div> <div class="footer__section col-12 col-lg-3"> <div class="accordion-toggle__content mb-0 js-accordion-content"> <span class="h3 footer__heading footer__heading--accordion accordion-toggle__title js-accordion-toggle"> Legal</span> <div class="accordion-toggle__inner"> <ul class="footer__list"> <li class="yCmsComponent"> <a href="/content-policy" title="Content policy" >Content policy</a></li><li class="yCmsComponent"> <a href="/cookies-policy" title="Cookies policy" >Cookies policy</a></li><li class="yCmsComponent"> <a href="https://starkbuild.co.uk/wp-content/uploads/2023/07/STARK-UK-Modern-Slavery-June-2023-.pdf" title="Modern slavery" target="_blank" rel="noopener">Modern slavery</a></li><li class="yCmsComponent"> <a href="https://starkbuild.co.uk/wp-content/uploads/2023/02/Privacy-Statement.pdf" title="Privacy statement" target="_blank" rel="noopener">Privacy statement</a></li><li class="yCmsComponent"> <a href="/terms-and-conditions" title="Terms & conditions" >Terms & conditions</a></li><li class="yCmsComponent"> <a href="https://www.starkbuild.co.uk/terms-and-conditions-of-hire" title="Terms & conditions of hire" target="_blank" rel="noopener">Terms & conditions of hire</a></li><li class="yCmsComponent"> <a href="/terms-of-website-use" title="Terms of website use" >Terms of website use</a></li></ul> </div> </div> </div> <div class="footer__section col-12 col-lg-3"> <div class="accordion-toggle__content mb-0 js-accordion-content"> <span class="h3 footer__heading footer__heading--accordion accordion-toggle__title js-accordion-toggle"> Company Information</span> <div class="accordion-toggle__inner"> <ul class="footer__list"> <li class="yCmsComponent"> <div class="content"><p>STARK Building Materials UK Limited,</p> <p>Trading as Jewson,</p> <p>Merchant House, Binley Business Park,</p> <p>Harry Weston Road, Coventry, CV3 2TT</p><p>Registered in England No:  01647362</p> <p>VAT Registered: GB 394 1212 63</p></div></li></ul> </div> </div> </div> </div> </div> </div> </div> </div> <div class="footer__bottom" data-tracking-position="bottom"> <div class="container"> <div class="row"> <div class="col-12"> <ul class="list list--none list-inline footer__list footer__list--payments mt-4 mb-2"> <li class="footer__list-item"> <img class="footer__icon" alt="Visa Logo" src="/medias/visa-logo-2021.svg?context=bWFzdGVyfGltYWdlc3w3Njd8aW1hZ2Uvc3ZnK3htbHxhR0l6TDJobE9DODVNVEE0T1RNek5UYzBOamcyTDNacGMyRXRiRzluYnlBeU1ESXhMbk4yWnd8MzM1Y2VlNGNlZDU2ZmFjZGQ3ODg2YjQ5Mzg5OTYxNTIzZjUzY2Q2NGI5NzhjZDMyZTk2NDg2N2VlM2VkYjI0YQ" /> </li> <li class="footer__list-item"> <img class="footer__icon" alt="MasterCard Logo" src="/medias/mastercard-logo.svg?context=bWFzdGVyfGltYWdlc3wyMjk5fGltYWdlL3N2Zyt4bWx8YURnNUwyaGpZeTg0T0RZd05qVTJPVEkyTnpVd0wyMWhjM1JsY21OaGNtUXRiRzluYnk1emRtY3xjNjdhYTdlNGUyMTJhM2U0YTRjY2IxNWJmZjcxODQ3ZGY0MzRiMWJlNjBkNzhhZTExNTNkZDRlZTk0OWYwNmEy" /> </li> <li class="footer__list-item"> <img class="footer__icon" alt="Maestro Logo" src="/medias/maestro-logo.svg?context=bWFzdGVyfGltYWdlc3wyMzE1fGltYWdlL3N2Zyt4bWx8YURSaUwyaGpaQzg0T0RZd05qVTJPVGt5TWpnMkwyMWhaWE4wY204dGJHOW5ieTV6ZG1jfGI2MjA2ZjdlNmU3MGZhMzBkODcwYmFjZGMwM2VkODVkOTNmOWY0NjQ5Y2MyMzk4ZmFlZTEzY2I1NGNkZjVhNjI" /> </li> <li class="footer__list-item"> <img class="footer__icon" alt="Apple Pay Logo" src="/medias/Apple-Pay-02.svg?context=bWFzdGVyfHJvb3R8MjQyNnxpbWFnZS9zdmcreG1sfGFEWmtMMmczTWk4NU1UY3pNek0xTkRReE5ETTRMMEZ3Y0d4bElGQmhlUzB3TWk1emRtY3w3NzZhOWE1OWM3MzVmZmVmYjdlODAwNzFmMmY0NTUyNTU2NzNhMDg1OWI1OTgwOWE3ZWI0ZGJjODMwMGZkMTMy" /> </li> </ul> </div> <div class="col-12"> <hr class="footer__hr" /> </div> <div class="col-12"> <div class="footer__copyright"> <span class="footer__small"> <div class="content">© 2024 STARK Building Materials UK Limited <style type="text/css">.glider-slide, .carousel__slide { position: relative; }</style></div></span> </div> </div> </div> </div> </div> </footer> <script type="text/javascript"> var ACC = ACC || {}; ACC.featureFlags = {"enable-consents-on-registration":true}; </script><form name="accessiblityForm"> <input type="hidden" id="accesibility_refreshScreenReaderBufferField" name="accesibility_refreshScreenReaderBufferField" value=""/> </form> <div id="ariaStatusMsg" class="skip" role="status" aria-relevant="text" aria-live="polite"></div> <script type="text/javascript"> /*<![CDATA[*/ var ACC = ACC || {}; ACC.config = {}; ACC.config.encodedContextPath = ""; ACC.config.commonResourcePath = "/_ui/responsive/common"; ACC.config.themeResourcePath = "/_ui/responsive/theme-jewson"; ACC.config.CSRFToken = "d265fff7-ed91-41a1-b4b1-399cee28f062"; ACC.config.googleApiKey="AIzaSyB6SqUDQb36eWJ4C1RvA1dl5NYukGmkh9E"; ACC.config.cookieControl= {}; ACC.config.cookieControl.apiKey=""; ACC.config.googleMapIcon="https://maps.google.com/mapfiles/markerA.png"; ACC.config.waitTimeBeforeLoadingAnim = 1000; ACC.config.VAT = true ACC.config.stickyHeader = { threshold: 300 } ACC.config.productThreshold = { max: "Max Qty", maxoq: "The maximum quantity allowed is", large: "Large Qty", tally: "Large Qty", increment: "We sell in multiples of", minimum: "Minimum order quantity is" } ACC.config.dontAskTradeDIY = { enabled: false, lastUpdatedDate: "", expiryDays: "" } ACC.validations = { cta: "There is a problem with some of your entries, please check the fields indicated above.", password: "Your username or password was incorrect", passwordConfirm: "Please confirm your password.", passwordMatch: "Password and password confirmation do not match.", fileUploadType: "We can only accept files using the following formats: {0}", fileUploadSize: "We can only accept files smaller than {0}MB", fileUploadTotalSize: "The combined size of the images uploaded cannot exceed {0}MB", fileUploadMaxCount: "You can only upload {0} images", currencyPattern: "Amount must be up to 2 decimal places", } ACC.postcode = { addressNotFound: "Sorry, we can't find your address, please complete it manually below." } ACC.searchError = "Product auto suggestion is not available at the moment"; ACC.productListSearchError = "Product auto suggestion is not available at the moment"; ACC.ctaAddToProjectText = "Add to project list"; ACC.store = { noResults: "Sorry we did not find any results for that location, please check your entry and try again.", resultTitle: "Nearest branches to", geolocateUnsupported: "Your device does not support geolocation", geolocateDenied: "We do not have permission to use your location", geolocatePositionUnavailable: "Your location cannot be determined", geolocateTimeout: "Your location cannot be determined", buttonMoreDetails: "More details", buttonGetDirections: "Get directions", preferredStore: "Preferred branch", noResultsFiltered: "Sorry, no branches near your location meet the selected filters. Please modify your filters and try again." } ACC.basketStrings = { postcodeErrorMessage: "Please enter your postcode to proceed" } ACC.modalStrings = { close: "Close", sessionAlertMessage: "To keep items in your trolley or stay signed in", confirmationModalHeader: "Save time and money when you register", confirmationModalText: "Jewson supports your building jobs, whether you're in the trade or a self builder. Whatever the size of your projects, register for an account for quicker checkout, online account management, personalised pricing and even more benefits", confirmationModalTradeButton: "I'm in the trade", confirmationModalSelfButton: "I'm a self builder", confirmationModalAskAgain: "Don't ask me again" } ACC.autocompleteUrl = '/search/autocompleteSecure'; ACC.config.loginUrl = '/login'; ACC.config.authenticationStatusUrl = '/authentication/status'; /*]]>*/ ACC.data = { "validation": {"creditApplicationStep3SelfBuilderForm.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid post code.","partOf":null,"regexp":"^$|^([Gg][Ii][Rr]\\s?0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})|([WwEeNn]1[A-Za-z]\\s?[0-9][A-Za-z]{2})|([Nn][Pp][Tt]\\s?[0-9][A-Za-z]{2})$"}]},"creditApplicationStep4Form.bankName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a bank name","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Bank name is invalid. It only can contain letters, digits, space, _,-,&","partOf":null,"regexp":"^([0-9 A-Za-z-_&])*$"}]},"creditApplicationStep2Form.additional.phoneNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a mobile number.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"10","max":"24"},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null}]},"placeOrderForm.customerOrderReference":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid order reference","partOf":null,"regexp":"^(([a-zA-Z0-9\\\\ !$%&'()*+,-./:;=?@^_`{}|~\\]\\[])?)*$"},{"type":"javax.validation.constraints.Size","message":"Your order reference must not exceed 20 characters","partOf":null,"min":"0","max":"20"}]},"creditApplicationStep2Form.lastName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a last name","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"registerForm.mobileNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"10","max":"24"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your telephone number.","partOf":null},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null}]},"deliveryMethodForm.deliveryInformation":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"500"}]},"guestForm.lastName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your last name","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"creditApplicationStep3Form.branch":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please select your preferred branch.","partOf":null}]},"registerForm.tradeAccountNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid Jewson account number.","partOf":null,"regexp":"^([a-zA-Z]{1}[a-zA-Z0-9]{6,7})*$"},{"type":"javax.validation.constraints.Size","message":"Please enter a valid Jewson account number.","partOf":null,"min":"0","max":"8"}]},"balStockCheckForm.resultLineForms.quantity":{"type":"int","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"javax.validation.constraints.Min.message","partOf":null,"value":"0"}]},"tradeCashApplicationForm.termsAccepted":{"type":"boolean","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.AssertTrue","message":"Please accept our terms & conditions before submitting your application.","partOf":null}]},"balGenerateEstimateDocumentForm.generateEstimateDocumentForm.estimateReference":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Maximum length is 255 characters.","partOf":null,"min":"0","max":"255"}]},"toolHireUpdateForm.quantity":{"type":"int","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"Please enter a valid quantity","partOf":null,"value":"0"},{"type":"javax.validation.constraints.Max","message":"Quantity can be a maximum of 999","partOf":null,"value":"999"}]},"pickupInStoreForm.hiddenPickupQty":{"type":"long","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Quantity field cannot be empty.","partOf":null},{"type":"javax.validation.constraints.Min","message":"Please enter a valid quantity.","partOf":null,"value":"0"},{"type":"javax.validation.constraints.Digits","message":"Please enter a valid quantity.","partOf":null,"integer":"10","fraction":"0"}]},"creditApplicationStep2Form.additional.addresses.lengthAtAddressYears":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Max","message":"Please enter the number of years.","partOf":null,"value":"99"},{"type":"javax.validation.constraints.Min","message":"Please enter the number of years.","partOf":null,"value":"0"}]},"addApplicantDetailsForm.mobilePhoneNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your mobile number.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"10","max":"24"},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null}]},"creditApplicationStep3Form.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid post code.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid post code.","partOf":null,"regexp":"^([Gg][Ii][Rr]\\s?0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})|([WwEeNn]1[A-Za-z]\\s?[0-9][A-Za-z]{2})|([Nn][Pp][Tt]\\s?[0-9][A-Za-z]{2})$"},{"type":"javax.validation.constraints.Size","message":"Post code must be between 5 and 10 characters long.","partOf":null,"min":"5","max":"10"}]},"creditApplicationStep2Form.email":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid email address.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Email must be between 6 and 80 characters long.","partOf":null,"min":"0","max":"80"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid email address.","partOf":null,"regexp":"^\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,20}\\b$"}]},"addUploadProofForm.proofOfTrade2":{"type":"MultipartFile","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"No file selected.","partOf":null},{"type":"javax.validation.constraints.Size","message":"We can only accept files smaller than 10MB","partOf":null,"min":"0","max":"10000"},{"type":"javax.validation.constraints.Pattern","message":"We can only accept files using the following formats: pdf,png,jpg,jpeg","partOf":null,"regexp":"^.*\\.(jpg|JPG|jpeg|JPEG|png|PNG|pdf|PDF)$"}]},"addUploadProofForm.proofOfTrade1":{"type":"MultipartFile","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"No file selected.","partOf":null},{"type":"javax.validation.constraints.Size","message":"We can only accept files smaller than 10MB","partOf":null,"min":"0","max":"10000"},{"type":"javax.validation.constraints.Pattern","message":"We can only accept files using the following formats: pdf,png,jpg,jpeg","partOf":null,"regexp":"^.*\\.(jpg|JPG|jpeg|JPEG|png|PNG|pdf|PDF)$"}]},"addCompanyDetailsForm.companyAddresses.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid post code.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid post code.","partOf":null,"regexp":"^([Gg][Ii][Rr]\\s?0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})|([WwEeNn]1[A-Za-z]\\s?[0-9][A-Za-z]{2})|([Nn][Pp][Tt]\\s?[0-9][A-Za-z]{2})$"},{"type":"javax.validation.constraints.Size","message":"Post code must be between 5 and 10 characters long.","partOf":null,"min":"5","max":"10"}]},"addTradingDetailsForm.primaryTradeReference.contactNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"0","max":"24"}]},"creditApplicationStep2Form.additional.addresses.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid post code.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid post code.","partOf":null,"regexp":"^([Gg][Ii][Rr]\\s?0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})|([WwEeNn]1[A-Za-z]\\s?[0-9][A-Za-z]{2})|([Nn][Pp][Tt]\\s?[0-9][A-Za-z]{2})$"},{"type":"javax.validation.constraints.Size","message":"Post code must be between 5 and 10 characters long.","partOf":null,"min":"5","max":"10"}]},"creditApplicationStep2Form.addresses.townCity":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid town/city name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid town/city name.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"contactDetailsWrapperForm.contactDetails.givenName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"35"},{"type":"javax.validation.constraints.Pattern","message":"javax.validation.constraints.Pattern.message","partOf":null,"regexp":"^([A-Za-z -]*)$"},{"type":"javax.validation.constraints.NotBlank","message":"javax.validation.constraints.NotBlank.message","partOf":null}]},"creditApplicationStep4Form.firstName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"guestForm.customerOrderReference":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid order reference","partOf":null,"regexp":"^(([a-zA-Z0-9\\\\ !$%&'()*+,-./:;=?@^_`{}|~\\]\\[])?)*$"},{"type":"javax.validation.constraints.Size","message":"Your order reference must not exceed 20 characters","partOf":null,"min":"0","max":"20"}]},"balEstimateForm.generateEstimateDocumentForm.estimateReference":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"255"}]},"creditApplicationStep2Form.additional2.lastName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a last name","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"requestOperativeCardsForm.showAccountNumber":{"type":"boolean","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Show account number cannot be empty","partOf":null}]},"tradeCashApplicationForm.privacyPolicyAccepted":{"type":"boolean","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.AssertTrue","message":"Please accept our privacy policy before submitting your application.","partOf":null}]},"addCreditSoleTraderDetailsForm.monthlySpend":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please select your estimated monthly spend with us from the list","partOf":null}]},"wishlistRenameForm.newName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"New Project List name is required","partOf":null}]},"creditPaymentAmountForm.details":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Sorry, text is too long.","partOf":null,"min":"0","max":"4000"},{"type":"javax.validation.constraints.Pattern","message":"Payment details can only contain letters, digits, spaces, _, -, &","partOf":null,"regexp":"^([0-9 A-Za-z-_&\\r?\\n])*$"},{"type":"javax.validation.constraints.NotBlank","message":"Please provide payment details","partOf":null}]},"creditApplicationStep0Form.typeOfCompany":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotBlank","message":"Please select your business type from the list.","partOf":null}]},"placeToolHireRequestForm.customerOrderReference":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid order reference","partOf":null,"regexp":"^(([a-zA-Z0-9\\\\ !$%&'()*+,-./:;=?@^_`{}|~\\]\\[])?)*$"},{"type":"javax.validation.constraints.Size","message":"Your order reference must not exceed 20 characters","partOf":null,"min":"0","max":"20"}]},"addTradingDetailsForm.secondaryTradeReference.companyName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Company Name is invalid. It only can contain letters, digits, space, _,-,&","partOf":null,"regexp":"^([0-9 A-Za-z-_&])*$"}]},"addCompanyDetailsForm.companyAddresses.lengthAtAddressYears":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Max","message":"Please enter the number of years.","partOf":null,"value":"99"},{"type":"javax.validation.constraints.Min","message":"Please enter the number of years.","partOf":null,"value":"0"}]},"operativeCardForm.pinNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a 4 digit PIN number","partOf":null,"regexp":"^(^\\d{4})*$"}]},"operativeCardForm.transactionLimit":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a Transaction Limit","partOf":null,"regexp":"^((?!0*(\\.0+)?$)((^[0-9]*$)|(\\d+(?:\\.[0-9]{1,2}))))*$"}]},"tileCalculatorForm.tileAreaWidth":{"type":"BigDecimal","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.DecimalMin","message":"Width must be at least 1","partOf":null,"inclusive":"true","value":"1.0"},{"type":"javax.validation.constraints.DecimalMax","message":"Width must be lower than 999","partOf":null,"inclusive":"true","value":"999.0"}]},"tileCalculatorForm.tileSize":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please select a tile size","partOf":null,"regexp":"^_..._...$"}]},"creditApplicationStep2Form.additional2.dateOfBirthMonth":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"12"}]},"creditApplicationStep2Form.additional2.addresses.lengthAtAddressMonths":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"Please enter the number of months.","partOf":null,"value":"0"},{"type":"javax.validation.constraints.Max","message":"Please enter the number of months.","partOf":null,"value":"12"}]},"invoiceFilterForm.amountFrom":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please provide a valid number","partOf":null,"regexp":"^$|^(\\-\\d+\\.|\\d+\\.)?\\d+$"}]},"tradeCashApplicationForm.companyName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a company name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Company Name is invalid. It only can contain letters, digits, space, _,-,&","partOf":null,"regexp":"^([0-9 A-Za-z-_&])*$"}]},"initialPwdForm.pwd":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your password","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Your password needs to consists of at least 8 characters, one lowercase letter, one upper case letter and one digit.","partOf":null,"regexp":"^((?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d.@,\\-_+\\\\/'?%$\"&*()^&!~]{8,})*$"}]},"operativeCardForm.cardId":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotBlank","message":"javax.validation.constraints.NotBlank.message","partOf":null}]},"creditApplicationStep5Form.reference1.creditLimit":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter an appropriate credit limit.","partOf":null,"regexp":"^(\\d+)*$"}]},"loftInsulationCalculatorForm.length":{"type":"BigDecimal","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.DecimalMin","message":"Length must be at least 1","partOf":null,"inclusive":"true","value":"1.0"},{"type":"javax.validation.constraints.DecimalMax","message":"Length must be lower than 999","partOf":null,"inclusive":"true","value":"999.0"}]},"creditApplicationStep5Form.reference2.creditLimit":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter an appropriate credit limit.","partOf":null,"regexp":"^(\\d+)*$"}]},"addApplicantDetailsForm.lastName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your last name","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"guestRegisterForm.mobileNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"10","max":"24"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your telephone number.","partOf":null},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null}]},"registerForm.firstName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your first name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"creditApplicationStep2Form.addresses.line2":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"creditApplicationStep2Form.addresses.line1":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid address.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"creditReferenceForm.thirdPartnerHomeAddresses.lengthAtAddressMonths":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"Please enter the number of months.","partOf":null,"value":"0"},{"type":"javax.validation.constraints.Max","message":"Please enter the number of months.","partOf":null,"value":"12"}]},"creditApplicationStep4Form.lastName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"addTradingDetailsForm.branchLocatorQuery":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your town or postcode.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter your town or postcode.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"addTradingDetailsForm.secondaryTradeReference.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid post code.","partOf":null,"regexp":"^(([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})?)*$"}]},"addUploadProofForm.proofOfAgreement":{"type":"MultipartFile","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"No file selected.","partOf":null},{"type":"javax.validation.constraints.Size","message":"We can only accept files smaller than 10MB","partOf":null,"min":"0","max":"10000"},{"type":"javax.validation.constraints.Pattern","message":"We can only accept files using the following formats: pdf,png,jpg,jpeg","partOf":null,"regexp":"^.*\\.(jpg|JPG|jpeg|JPEG|png|PNG|pdf|PDF)$"}]},"addTradingDetailsForm.invoiceContact.lastName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"creditReferenceForm.secondPartner.mainContactNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your telephone number.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"10","max":"24"},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null}]},"creditApplicationStep3Form.incorporationYear":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"2100"},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1900"}]},"creditApplicationStep2Form.additional.addresses.lengthAtAddressMonths":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"Please enter the number of months.","partOf":null,"value":"0"},{"type":"javax.validation.constraints.Max","message":"Please enter the number of months.","partOf":null,"value":"12"}]},"creditApplicationStep2Form.additional2.firstName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a first name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"radiatorCalculatorForm.radiatorPlace":{"type":"RadiatorPlace","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please select the the radiator location","partOf":null}]},"addApplicantDetailsForm.dateOfBirthDay":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"31"}]},"creditApplicationStep3SelfBuilderForm.branchLocatorQuery":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your town or postcode.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter your town or postcode.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"extendedAddressForm.companyName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Company Name is invalid. It only can contain letters, digits, space, _,-,&","partOf":null,"regexp":"^([0-9 A-Za-z-_&])*$"},{"type":"javax.validation.constraints.Size","message":"Company Name must not exceed 255 characters.","partOf":null,"min":"0","max":"255"}]},"tradeCashApplicationForm.address.lengthAtAddressYears":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Max","message":"javax.validation.constraints.Max.message","partOf":null,"value":"99"},{"type":"javax.validation.constraints.Min","message":"javax.validation.constraints.Min.message","partOf":null,"value":"0"}]},"creditReferenceForm.secondPartner.jobTitle":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid job title.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid job title.","partOf":null,"regexp":"^(([0-9 A-Za-z-_&])?)*$"}]},"addApplicantDetailsForm.firstName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your first name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"creditReferenceForm.firstPartner.jobTitle":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid job title.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid job title.","partOf":null,"regexp":"^(([0-9 A-Za-z-_&])?)*$"}]},"requestOperativeCardsForm.numberOfCards":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid number of cards.","partOf":null},{"type":"javax.validation.constraints.Max","message":"Number of cards must be at most 500","partOf":null,"value":"500"},{"type":"javax.validation.constraints.Min","message":"Please enter a value which is at least 5 or above","partOf":null,"value":"5"}]},"linkAccountRegisterForm.acceptPrivacyPolicy":{"type":"boolean","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.AssertTrue","message":"Please accept the Privacy Policy.","partOf":null}]},"tradeAccountActivationConfirmForm.lastName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your last name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"registerForm.pwd":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Your password needs to consists of at least 8 characters, one lowercase letter, one upper case letter and one digit.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Your password needs to consists of at least 8 characters, one lowercase letter, one upper case letter and one digit.","partOf":null,"regexp":"^((?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d.@,\\-_+\\\\/'?%$\"&*()^&!~]{8,})*$"}]},"creditReferenceForm.secondPartnerHomeAddresses.lengthAtAddressYears":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Max","message":"Please enter the number of years.","partOf":null,"value":"99"},{"type":"javax.validation.constraints.Min","message":"Please enter the number of years.","partOf":null,"value":"0"}]},"addLinkAccountDetailsForm.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Sorry but we don't recognise that postcode. Please try again, make sure to use capital letters and a space in between codes.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Sorry but we don't recognise that postcode. Please try again, make sure to use capital letters and a space in between codes.","partOf":null,"regexp":"^([Gg][Ii][Rr]\\s?0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})|([WwEeNn]1[A-Za-z]\\s?[0-9][A-Za-z]{2})|([Nn][Pp][Tt]\\s?[0-9][A-Za-z]{2})$"},{"type":"javax.validation.constraints.Size","message":"Sorry but we don't recognise that postcode. Please try again, make sure to use capital letters and a space in between codes.","partOf":null,"min":"5","max":"10"}]},"addCreditSoleTraderDetailsForm.email":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid email address.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Email must be between 6 and 80 characters long.","partOf":null,"min":"0","max":"80"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid email address.","partOf":null,"regexp":"^\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,20}\\b$"}]},"extendedAddressForm.townCity":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Town/city must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid town/city name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid town/city name.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"storeFinderForm.q":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid town, city or post code.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Address must not exceed 100 characters.","partOf":null,"min":"0","max":"100"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid town, city or post code.","partOf":null,"regexp":"^[\\d\\w\\s\\-/\\.]*$"}]},"balAddToCartForm.resultLineForms.quantity":{"type":"int","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"Please enter a valid quantity.","partOf":null,"value":"0"}]},"creditApplicationStep3Form.line2":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"creditApplicationStep3Form.line1":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid address.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"creditReferenceForm.firstPartnerHomeAddresses.townCity":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid town/city name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid town/city name.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"balAddToCartForm.generateEstimateDocumentForm.dateDay":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"javax.validation.constraints.Min.message","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"javax.validation.constraints.Max.message","partOf":null,"value":"31"}]},"guestRegisterForm.tradeAccountPostcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"10"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid Jewson account postcode.","partOf":null,"regexp":"^(([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})?)*$"}]},"balAddToCartForm.generateEstimateDocumentForm.estimateReference":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"255"}]},"creditReferenceForm.secondPartner.dateOfBirthYear":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"2100"},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1900"}]},"addTradingDetailsForm.invoiceContact.email":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Email must be between 6 and 80 characters long.","partOf":null,"min":"0","max":"80"},{"type":"org.hibernate.validator.constraints.Email","message":"Please enter a valid email address.","partOf":null,"regexp":"^(\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,20}\\b)?$"},{"type":"javax.validation.constraints.Pattern","message":"org.hibernate.validator.constraints.Email.message","partOf":"Email","regexp":""}]},"creditApplicationStep2Form.dateOfBirthMonth":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"12"}]},"extendedPaymentAddressForm.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid postcode.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid postcode.","partOf":null,"regexp":"^([Gg][Ii][Rr]\\s?0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})|([WwEeNn]1[A-Za-z]\\s?[0-9][A-Za-z]{2})|([Nn][Pp][Tt]\\s?[0-9][A-Za-z]{2})$"},{"type":"javax.validation.constraints.Size","message":"Postcode must be between 5 and 10 characters long.","partOf":null,"min":"5","max":"10"}]},"creditApplicationStep3SelfBuilderForm.projectStartMonth":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"12"}]},"creditApplicationStep1Form.titleCode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"255"}]},"creditApplicationStep4Form.email":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid email address.","partOf":null,"regexp":"^(\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,20}\\b)?$"},{"type":"javax.validation.constraints.Size","message":"Email must be between 6 and 80 characters long.","partOf":null,"min":"0","max":"80"}]},"creditApplicationStep4Form.phoneNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"0","max":"24"}]},"creditReferenceForm.secondPartner.telephoneNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"10","max":"24"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your telephone number.","partOf":null},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null}]},"creditApplicationStep1Form.phoneNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your mobile number.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"10","max":"24"},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null}]},"guestRegisterForm.checkPwd":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please confirm your password.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Your password needs to consists of at least 8 characters, one lowercase letter, one upper case letter and one digit.","partOf":null,"regexp":"^((?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d.@,\\-_+\\\\/'?%$\"&*()^&!~]{8,})*$"}]},"creditReferenceForm.firstPartner":{"type":"ApplicantPersonalDetailsForm","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"javax.validation.constraints.NotNull.message","partOf":null}]},"creditApplicationStep4Form.accountNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Please enter 8 digits","partOf":null,"min":"8","max":"8"},{"type":"javax.validation.constraints.Pattern","message":"Please enter 8 digits","partOf":null,"regexp":"^[0-9]*$"}]},"addBankingDetailsForm.bankName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a bank name","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Bank name is invalid. It only can contain letters, digits, space, _,-,&","partOf":null,"regexp":"^([0-9 A-Za-z-_&])*$"}]},"creditReferenceForm.firstPartner.mainContactNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your telephone number.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"10","max":"24"},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null}]},"sessionLocationForm.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter your postcode to proceed","partOf":null},{"type":"javax.validation.constraints.Size","message":"Please enter a valid postcode","partOf":null,"min":"6","max":"8"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid postcode","partOf":null,"regexp":"^([Gg][Ii][Rr]\\s?0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})|([WwEeNn]1[A-Za-z]\\s?[0-9][A-Za-z]{2})|([Nn][Pp][Tt]\\s?[0-9][A-Za-z]{2})$"}]},"creditLimitDetailsForm.reason":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please provide a reason.","partOf":null}]},"radiatorCalculatorForm.roomHeight":{"type":"BigDecimal","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.DecimalMin","message":"Height must be at least 1","partOf":null,"inclusive":"true","value":"1.0"},{"type":"javax.validation.constraints.DecimalMax","message":"Height must be lower than 999","partOf":null,"inclusive":"true","value":"999.0"}]},"linkAccountRegisterForm.firstName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your first name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"toolHireRequestForm.productCode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotBlank","message":"Product code must not be empty","partOf":null}]},"completePaymentForm.mobileNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"javax.validation.constraints.Pattern.message","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"10","max":"24"}]},"guestRegisterForm.email":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid email address.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Email must be between 6 and 80 characters long.","partOf":null,"min":"0","max":"80"},{"type":"org.hibernate.validator.constraints.Email","message":"Please enter a valid email address.","partOf":null,"regexp":"^\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,20}\\b$"},{"type":"javax.validation.constraints.Pattern","message":"org.hibernate.validator.constraints.Email.message","partOf":"Email","regexp":""}]},"addTradingDetailsForm.primaryTradeReference.townCity":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid town/city name.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"registerForm.class":{"type":"SGRegisterForm","pattern":null,"constraints":[{"type":"com.sg.sgstorefrontcommons.form.validation.PasswordMatch","message":"","partOf":null,"fieldName":"checkPwd"}]},"creditApplicationStep2Form.additional2.addresses.line1":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid address.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"toolHireUpdateForm.duration":{"type":"int","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"Hire duration must be at least 1 day","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Hire duration must be shorter than 999 days","partOf":null,"value":"999"}]},"creditApplicationStep2Form.additional2.addresses.line2":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"creditApplicationStep3SelfBuilderForm.landRegistryTitleNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid Land Registry title number.","partOf":null,"regexp":"^(([0-9A-Za-z])?)*$"}]},"balGenerateEstimateDocumentForm.generateEstimateDocumentForm.dateYear":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"2100"},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1900"}]},"contactDetailsWrapperForm.contactDetails.emailAddress":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"80"},{"type":"javax.validation.constraints.NotBlank","message":"javax.validation.constraints.NotBlank.message","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"javax.validation.constraints.Pattern.message","partOf":null,"regexp":"^\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,20}\\b$"}]},"balAddToCartForm.estimateForm.materialMarkup":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"javax.validation.constraints.Min.message","partOf":null,"value":"0"},{"type":"javax.validation.constraints.Max","message":"javax.validation.constraints.Max.message","partOf":null,"value":"999"}]},"addBankingDetailsForm.bankAddress.townCity":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid town/city name.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"creditApplicationStep2Form.addresses.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid post code.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid post code.","partOf":null,"regexp":"^([Gg][Ii][Rr]\\s?0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})|([WwEeNn]1[A-Za-z]\\s?[0-9][A-Za-z]{2})|([Nn][Pp][Tt]\\s?[0-9][A-Za-z]{2})$"},{"type":"javax.validation.constraints.Size","message":"Post code must be between 5 and 10 characters long.","partOf":null,"min":"5","max":"10"}]},"creditReferenceForm.thirdPartner.dateOfBirthMonth":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"12"}]},"creditApplicationStep5Form.reference2.contactNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null},{"type":"javax.validation.constraints.Size","message":"Telephone number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"0","max":"24"}]},"creditReferenceForm.firstPartner.dateOfBirthDay":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"31"}]},"addCreditSoleTraderDetailsForm.firstName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your first name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"creditApplicationStep3Form.descriptionOfBusiness":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please select one option from the list","partOf":null}]},"addTradingDetailsForm.secondaryTradeReference.contactNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"0","max":"24"}]},"addCreditSoleTraderDetailsForm.mobilePhoneNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your mobile number.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"10","max":"24"},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null}]},"extendedAddressForm.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid post code.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid post code.","partOf":null,"regexp":"^([Gg][Ii][Rr]\\s?0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})|([WwEeNn]1[A-Za-z]\\s?[0-9][A-Za-z]{2})|([Nn][Pp][Tt]\\s?[0-9][A-Za-z]{2})$"},{"type":"javax.validation.constraints.Size","message":"Post code must be between 5 and 10 characters long.","partOf":null,"min":"5","max":"10"}]},"balGenerateEstimateDocumentForm.estimateForm.materialMarkup":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"javax.validation.constraints.Min.message","partOf":null,"value":"0"},{"type":"javax.validation.constraints.Max","message":"javax.validation.constraints.Max.message","partOf":null,"value":"999"}]},"contactDetailsWrapperForm.contactDetails.familyName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"35"},{"type":"javax.validation.constraints.Pattern","message":"javax.validation.constraints.Pattern.message","partOf":null,"regexp":"^([A-Za-z -]*)$"},{"type":"javax.validation.constraints.NotBlank","message":"javax.validation.constraints.NotBlank.message","partOf":null}]},"creditReferenceForm.firstPartnerHomeAddresses.lengthAtAddressYears":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Max","message":"Please enter the number of years.","partOf":null,"value":"99"},{"type":"javax.validation.constraints.Min","message":"Please enter the number of years.","partOf":null,"value":"0"}]},"extendedPaymentAddressForm.line1":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Address Line 1 must not exceed 255 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid address.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"extendedPaymentAddressForm.line2":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Address Line 2 must not exceed 255 characters.","partOf":null,"min":"0","max":"35"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"addUploadProofForm.proofOfLetterhead":{"type":"MultipartFile","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"No file selected.","partOf":null},{"type":"javax.validation.constraints.Size","message":"We can only accept files smaller than 10MB","partOf":null,"min":"0","max":"10000"},{"type":"javax.validation.constraints.Pattern","message":"We can only accept files using the following formats: pdf,png,jpg,jpeg","partOf":null,"regexp":"^.*\\.(jpg|JPG|jpeg|JPEG|png|PNG|pdf|PDF)$"}]},"creditPaymentAmountForm.amount":{"type":"BigDecimal","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter an amount","partOf":null},{"type":"javax.validation.constraints.DecimalMin","message":"Please enter an amount","partOf":null,"inclusive":"true","value":"0.01"},{"type":"javax.validation.constraints.DecimalMax","message":"Please enter an amount up to &#163;75,000","partOf":null,"inclusive":"true","value":"75000"}]},"downloadReportsForm.startDate":{"type":"Date","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please provide start date","partOf":null}]},"linkAccountRegisterForm.class":{"type":"LinkAccountRegisterForm","pattern":null,"constraints":[{"type":"com.sg.sgstorefrontcommons.form.validation.PasswordMatch","message":"","partOf":null,"fieldName":"checkPwd"}]},"guestForm.mobileNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"10","max":"24"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your telephone number.","partOf":null},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null}]},"guestRegisterForm.acceptPrivacyPolicy":{"type":"boolean","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.AssertTrue","message":"Please accept the Privacy Statement.","partOf":null}]},"creditReferenceForm.firstPartnerHomeAddresses.lengthAtAddressMonths":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"Please enter the number of months.","partOf":null,"value":"0"},{"type":"javax.validation.constraints.Max","message":"Please enter the number of months.","partOf":null,"value":"12"}]},"brickCustomCalculatorForm.wallWidth":{"type":"BigDecimal","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.DecimalMin","message":"Height must be at least 1","partOf":null,"inclusive":"true","value":"1.0"},{"type":"javax.validation.constraints.DecimalMax","message":"Height must be lower than 999","partOf":null,"inclusive":"true","value":"999.0"}]},"balGenerateEstimateDocumentForm.generateEstimateDocumentForm.dateMonth":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"12"}]},"creditApplicationStep2Form.addresses.lengthAtAddressMonths":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"Please enter the number of months.","partOf":null,"value":"0"},{"type":"javax.validation.constraints.Max","message":"Please enter the number of months.","partOf":null,"value":"12"}]},"brickCustomCalculatorForm.brickLength":{"type":"BigDecimal","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.DecimalMin","message":"Length must be at least 1","partOf":null,"inclusive":"true","value":"1.0"},{"type":"javax.validation.constraints.DecimalMax","message":"Length must be lower than 999","partOf":null,"inclusive":"true","value":"999.0"}]},"addTradingDetailsForm.invoiceContact.firstName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"radiatorCalculatorForm.roomLength":{"type":"BigDecimal","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.DecimalMin","message":"Length must be at least 1","partOf":null,"inclusive":"true","value":"1.0"},{"type":"javax.validation.constraints.DecimalMax","message":"Length must be lower than 999","partOf":null,"inclusive":"true","value":"999.0"}]},"addApplicantDetailsForm.email":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid email address.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Email must be between 6 and 80 characters long.","partOf":null,"min":"0","max":"80"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid email address.","partOf":null,"regexp":"^\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,20}\\b$"}]},"balStockCheckForm.estimateForm.labourCost":{"type":"BigDecimal","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.DecimalMin","message":"javax.validation.constraints.DecimalMin.message","partOf":null,"inclusive":"true","value":"0.0"}]},"creditReferenceForm.thirdPartner.dateOfBirthDay":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"31"}]},"creditApplicationStep3Form.branchLocatorQuery":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your town or postcode.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter your town or postcode.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"creditApplicationStep3Form.companyName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a company name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Company Name is invalid. It only can contain letters, digits, space, _,-,&","partOf":null,"regexp":"^([0-9 A-Za-z-_&])*$"}]},"balEstimateForm.generateEstimateDocumentForm.dateYear":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Max","message":"javax.validation.constraints.Max.message","partOf":null,"value":"2100"},{"type":"javax.validation.constraints.Min","message":"javax.validation.constraints.Min.message","partOf":null,"value":"1900"}]},"registerForm.acceptPrivacyPolicy":{"type":"boolean","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.AssertTrue","message":"Please accept the Privacy Statement.","partOf":null}]},"forgottenPwdForm.email":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"org.hibernate.validator.constraints.Email","message":"Please enter your email address.","partOf":null,"regexp":"^\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,20}\\b$"},{"type":"javax.validation.constraints.Pattern","message":"forgottenPwd.email.invalid","partOf":"Email","regexp":""}]},"creditLimitDetailsForm.creditLimit":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid numeric value","partOf":null},{"type":"javax.validation.constraints.Min","message":"Please enter a value higher than your current limit.","partOf":null,"value":"999"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid numeric value","partOf":null,"regexp":"^[0-9]*$"}]},"balStockCheckForm.generateEstimateDocumentForm.estimateReference":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"255"}]},"addLinkAccountDetailsForm.existingAccountNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid Jewson account number.","partOf":null,"regexp":"^([a-zA-Z]{1}[a-zA-Z0-9]{6,7})*$"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid Jewson account number.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Please enter a valid Jewson account number.","partOf":null,"min":"0","max":"8"}]},"addTradingDetailsForm.secondaryTradeReference.line2":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"addTradingDetailsForm.secondaryTradeReference.line1":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"creditApplicationStep3Form.townCity":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid town/city name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid town/city name.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"linkAccountRegisterForm.mobileNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"10","max":"24"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your telephone number.","partOf":null},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null}]},"addCompanyDetailsForm.companyName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a company name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Company Name is invalid. It only can contain letters, digits, space, _,-,&","partOf":null,"regexp":"^([0-9 A-Za-z-_&])*$"}]},"addTradingDetailsForm.invoiceContact.phoneNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"0","max":"24"}]},"creditApplicationStep3SelfBuilderForm.line2":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"creditApplicationStep3SelfBuilderForm.line1":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"creditApplicationStep5Form.reference1.contactNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null},{"type":"javax.validation.constraints.Size","message":"Telephone number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"0","max":"24"}]},"brickCustomCalculatorForm.brickWidth":{"type":"BigDecimal","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.DecimalMin","message":"Height must be at least 1","partOf":null,"inclusive":"true","value":"1.0"},{"type":"javax.validation.constraints.DecimalMax","message":"Height must be lower than 999","partOf":null,"inclusive":"true","value":"999.0"}]},"placeOrderForm.paymentAddressForm.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid postcode.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid postcode.","partOf":null,"regexp":"^([Gg][Ii][Rr]\\s?0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})|([WwEeNn]1[A-Za-z]\\s?[0-9][A-Za-z]{2})|([Nn][Pp][Tt]\\s?[0-9][A-Za-z]{2})$"},{"type":"javax.validation.constraints.Size","message":"Post code must be between 5 and 10 characters long.","partOf":null,"min":"5","max":"10"}]},"orderFilterForm.amountTo":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please provide a valid number","partOf":null,"regexp":"^$|^(\\d+\\.)?\\d+$"}]},"brickCustomCalculatorForm.mortarJoint":{"type":"BigDecimal","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.DecimalMin","message":"Mortar Joint must be at least 1","partOf":null,"inclusive":"true","value":"1.0"},{"type":"javax.validation.constraints.DecimalMax","message":"Mortar Joint must be lower than 999","partOf":null,"inclusive":"true","value":"999.0"}]},"balGenerateEstimateDocumentForm.stockCheckForm.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"javax.validation.constraints.Pattern.message","partOf":null,"regexp":"^(([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})?)*$"}]},"linkAccountRegisterForm.lastName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your last name","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"orderFilterForm.dateFrom":{"type":"Date","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Date is required","partOf":null}]},"toolHireRequestForm.duration":{"type":"int","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"Hire duration must be at least 1 day","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Hire duration must be shorter than 999 days","partOf":null,"value":"999"}]},"creditApplicationStep5Form.reference1.accountNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Account number is invalid. It only can contain letters, digits, space, _,-,&","partOf":null,"regexp":"^([0-9 A-Za-z-_&])*$"}]},"addCreditSoleTraderDetailsForm.dateOfBirthMonth":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"12"}]},"creditReferenceForm.thirdPartnerHomeAddresses.lengthAtAddressYears":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Max","message":"Please enter the number of years.","partOf":null,"value":"99"},{"type":"javax.validation.constraints.Min","message":"Please enter the number of years.","partOf":null,"value":"0"}]},"balGenerateEstimateDocumentForm.estimateForm.labourCost":{"type":"BigDecimal","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.DecimalMin","message":"javax.validation.constraints.DecimalMin.message","partOf":null,"inclusive":"true","value":"0.0"}]},"downloadReportsForm.endDate":{"type":"Date","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please provide end date","partOf":null}]},"extendedAddressForm.lastName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your last name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"addCreditSoleTraderDetailsForm.existingJewsonAccountNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid Jewson account number","partOf":null,"regexp":"^([a-zA-Z]{1}[a-zA-Z0-9]{6,7})*$"},{"type":"javax.validation.constraints.Size","message":"Please enter a valid Jewson account number.","partOf":null,"min":"0","max":"8"}]},"creditApplicationStep2Form.additional2.addresses.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid post code.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid post code.","partOf":null,"regexp":"^([Gg][Ii][Rr]\\s?0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})|([WwEeNn]1[A-Za-z]\\s?[0-9][A-Za-z]{2})|([Nn][Pp][Tt]\\s?[0-9][A-Za-z]{2})$"},{"type":"javax.validation.constraints.Size","message":"Post code must be between 5 and 10 characters long.","partOf":null,"min":"5","max":"10"}]},"creditApplicationStep2Form.additional.addresses.line2":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"creditApplicationStep2Form.additional.addresses.line1":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid address.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"guestRegisterForm.pwd":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your password.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Your password needs to consists of at least 8 characters, one lowercase letter, one upper case letter and one digit.","partOf":null,"regexp":"^((?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d.@,\\-_+\\\\/'?%$\"&*()^&!~]{8,})*$"}]},"pavingCalculatorForm.slabAreaWidth":{"type":"BigDecimal","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.DecimalMin","message":"Width must be at least 1","partOf":null,"inclusive":"true","value":"1.0"},{"type":"javax.validation.constraints.DecimalMax","message":"Width must be lower than 999","partOf":null,"inclusive":"true","value":"999.0"}]},"creditApplicationStep2Form.additional.addresses.townCity":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid town/city name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid town/city name.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"editProfileForm.password":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your account password","partOf":null}]},"creditApplicationStep2Form.additional.dateOfBirthMonth":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"12"}]},"creditPaymentCardDetailsForm.paymentAddressForm.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid post code.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid post code.","partOf":null,"regexp":"^([Gg][Ii][Rr]\\s?0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})|([WwEeNn]1[A-Za-z]\\s?[0-9][A-Za-z]{2})|([Nn][Pp][Tt]\\s?[0-9][A-Za-z]{2})$"},{"type":"javax.validation.constraints.Size","message":"Post code must be between 5 and 10 characters long.","partOf":null,"min":"5","max":"10"}]},"creditReferenceForm.secondPartner.dateOfBirthMonth":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"12"}]},"addApplicantDetailsForm.telephoneNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your telephone number.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"10","max":"24"},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null}]},"brickCustomCalculatorForm.wallLength":{"type":"BigDecimal","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.DecimalMin","message":"Length must be at least 1","partOf":null,"inclusive":"true","value":"1.0"},{"type":"javax.validation.constraints.DecimalMax","message":"Length must be lower than 999","partOf":null,"inclusive":"true","value":"999.0"}]},"editProfileForm.mainContactNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your telephone number.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"10","max":"24"},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null}]},"creditReferenceForm.firstPartnerHomeAddresses.line2":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"addCompanyDetailsForm.companyAddresses.townCity":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid town/city name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid town/city name.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"tradeCashApplicationForm.address.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid post code.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid post code.","partOf":null,"regexp":"^([Gg][Ii][Rr]\\s?0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})|([WwEeNn]1[A-Za-z]\\s?[0-9][A-Za-z]{2})|([Nn][Pp][Tt]\\s?[0-9][A-Za-z]{2})$"},{"type":"javax.validation.constraints.Size","message":"Post code must be between 5 and 10 characters long.","partOf":null,"min":"5","max":"10"}]},"creditReferenceForm.firstPartnerHomeAddresses.line1":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid address.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"balEstimateForm.generateEstimateDocumentForm.dateDay":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"javax.validation.constraints.Min.message","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"javax.validation.constraints.Max.message","partOf":null,"value":"31"}]},"addUploadProofForm.proofOfAddress":{"type":"MultipartFile","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"No file selected.","partOf":null},{"type":"javax.validation.constraints.Size","message":"We can only accept files smaller than 10MB","partOf":null,"min":"0","max":"10000"},{"type":"javax.validation.constraints.Pattern","message":"We can only accept files using the following formats: pdf,png,jpg,jpeg","partOf":null,"regexp":"^.*\\.(jpg|JPG|jpeg|JPEG|png|PNG|pdf|PDF)$"}]},"creditReferenceForm.thirdPartnerHomeAddresses.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid post code.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid post code.","partOf":null,"regexp":"^([Gg][Ii][Rr]\\s?0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})|([WwEeNn]1[A-Za-z]\\s?[0-9][A-Za-z]{2})|([Nn][Pp][Tt]\\s?[0-9][A-Za-z]{2})$"},{"type":"javax.validation.constraints.Size","message":"Post code must be between 5 and 10 characters long.","partOf":null,"min":"5","max":"10"}]},"balStockCheckForm.estimateForm.labourLength":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"javax.validation.constraints.Min.message","partOf":null,"value":"0"}]},"creditReferenceForm.thirdPartner.dateOfBirthYear":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"2100"},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1900"}]},"voucherApplyForm.enterCode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Sorry, your voucher code is invalid.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Sorry, your voucher code is invalid.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.])?)*$"}]},"addBankingDetailsForm.accountNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Please enter 8 digits","partOf":null,"min":"8","max":"8"},{"type":"javax.validation.constraints.Pattern","message":"Please enter 8 digits","partOf":null,"regexp":"^[0-9]*$"}]},"billingAddressForm.familyName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"de.hybris.platform.validation.annotations.NotBlank.message","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"javax.validation.constraints.Pattern.message","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"linkAccountRegisterForm.tradeAccountPostcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"10"},{"type":"javax.validation.constraints.Pattern","message":"javax.validation.constraints.Pattern.message","partOf":null,"regexp":"^(([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})?)*$"}]},"contactDetailsWrapperForm.contactDetails.phoneNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"javax.validation.constraints.Pattern.message","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"10","max":"24"},{"type":"javax.validation.constraints.NotBlank","message":"javax.validation.constraints.NotBlank.message","partOf":null}]},"balAddToCartForm.generateEstimateDocumentForm.dateYear":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Max","message":"javax.validation.constraints.Max.message","partOf":null,"value":"2100"},{"type":"javax.validation.constraints.Min","message":"javax.validation.constraints.Min.message","partOf":null,"value":"1900"}]},"placeOrderForm.mobileNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your mobile number.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"10","max":"24"},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null}]},"initialPwdForm.class":{"type":"UpdatePwdForm","pattern":null,"constraints":[{"type":"com.sg.sgstorefrontcommons.form.validation.PasswordMatch","message":"","partOf":null,"fieldName":"checkPwd"}]},"placeOrderForm.termsCheck":{"type":"boolean","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.AssertTrue","message":"Please accept the terms and conditions before placing your order","partOf":null}]},"creditApplicationStep5Form.reference2.accountNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Account number is invalid. It only can contain letters, digits, space, _,-,&","partOf":null,"regexp":"^([0-9 A-Za-z-_&])*$"}]},"creditApplicationStep2Form.additional2.phoneNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a mobile number.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"10","max":"24"},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null}]},"balAddToCartForm.stockCheckForm.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"javax.validation.constraints.Pattern.message","partOf":null,"regexp":"^(([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})?)*$"}]},"balStockCheckForm.generateEstimateDocumentForm.dateDay":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"javax.validation.constraints.Min.message","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"javax.validation.constraints.Max.message","partOf":null,"value":"31"}]},"orderFilterForm.dateTo":{"type":"Date","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Date is required","partOf":null}]},"creditApplicationStep2Form.additional2.addresses.townCity":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid town/city name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid town/city name.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"guestRegisterForm.firstName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your first name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"balGenerateEstimateDocumentForm.estimateForm.labourLength":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"javax.validation.constraints.Min.message","partOf":null,"value":"0"}]},"stockCheckForm.locationQuery":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"javax.validation.constraints.NotNull.message","partOf":null}]},"addTradingDetailsForm.primaryTradeReference.line2":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"addTradingDetailsForm.primaryTradeReference.line1":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"creditApplicationStep4Form.titleCode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"255"}]},"creditApplicationStep6Form.privacyPolicyAccepted":{"type":"boolean","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.AssertTrue","message":"Please accept our privacy policy before submitting your application.","partOf":null}]},"tradeCashApplicationForm.companyRegistrationNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid company registration number","partOf":null,"regexp":"^(([0-9A-Za-z])?)*$"}]},"addTradingDetailsForm.secondaryTradeReference.townCity":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid town/city name.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"placeOrderForm.paymentAddressForm.townCity":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Town/city must not exceed 255 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid town/city name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid town/city name.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"pointOfServiceForCartForm.locationQuery":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"javax.validation.constraints.NotNull.message","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"javax.validation.constraints.Pattern.message","partOf":null,"regexp":"^([Gg][Ii][Rr]\\s?0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})|([WwEeNn]1[A-Za-z]\\s?[0-9][A-Za-z]{2})|([Nn][Pp][Tt]\\s?[0-9][A-Za-z]{2})$"},{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"5","max":"10"}]},"extendedPaymentAddressForm.townCity":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Town/city must not exceed 255 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid town/city name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid town/city name.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"creditReferenceForm.firstPartnerHomeAddresses.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid post code.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid post code.","partOf":null,"regexp":"^([Gg][Ii][Rr]\\s?0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})|([WwEeNn]1[A-Za-z]\\s?[0-9][A-Za-z]{2})|([Nn][Pp][Tt]\\s?[0-9][A-Za-z]{2})$"},{"type":"javax.validation.constraints.Size","message":"Post code must be between 5 and 10 characters long.","partOf":null,"min":"5","max":"10"}]},"creditReferenceForm.firstPartner.dateOfBirthYear":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"2100"},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1900"}]},"updateWishlistEntryQuantityForm.quantity":{"type":"int","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Max","message":"Max.updateWishlistEntryQuantityForm.qty","partOf":null,"value":"9999"},{"type":"javax.validation.constraints.Min","message":"Min.updateWishlistEntryQuantityForm.qty","partOf":null,"value":"0"}]},"addCompanyDetailsForm.companyRegistrationNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid company registration number","partOf":null,"regexp":"^(([0-9A-Za-z])?)*$"}]},"balAddToCartForm.estimateForm.labourCost":{"type":"BigDecimal","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.DecimalMin","message":"javax.validation.constraints.DecimalMin.message","partOf":null,"inclusive":"true","value":"0.0"}]},"addTradingDetailsForm.branch":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please select your preferred branch.","partOf":null}]},"stockCheckForm.productCode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotBlank","message":"javax.validation.constraints.NotBlank.message","partOf":null}]},"cartStoreSearchForm.locationQuery":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter your postcode to proceed","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Could not find the specified address.","partOf":null,"regexp":"^([Gg][Ii][Rr]\\s?0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})|([WwEeNn]1[A-Za-z]\\s?[0-9][A-Za-z]{2})|([Nn][Pp][Tt]\\s?[0-9][A-Za-z]{2})$"}]},"tradeCashApplicationForm.address.line1":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid address.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"tradeCashApplicationForm.address.line2":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"creditApplicationStep2Form.phoneNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a mobile number.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"10","max":"24"},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null}]},"creditReferenceForm.secondPartner.class":{"type":"ApplicantPersonalDetailsForm","pattern":null,"constraints":[{"type":"com.sg.b2b.form.validator.BirthDate","message":"","partOf":null,"minimumAge":"18","maximumAge":"100"}]},"extendedAddressForm.line1":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Address Line 1 must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid address.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"extendedAddressForm.line2":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Address Line 2 must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"tradeAccountActivationConfirmForm.mobileNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"10","max":"24"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your telephone number.","partOf":null},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null}]},"creditReferenceForm.thirdPartner.class":{"type":"ApplicantPersonalDetailsForm","pattern":null,"constraints":[{"type":"com.sg.b2b.form.validator.BirthDate","message":"","partOf":null,"minimumAge":"18","maximumAge":"100"}]},"creditApplicationStep2Form.additional2.email":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid email address.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Email must be between 6 and 80 characters long.","partOf":null,"min":"0","max":"80"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid email address.","partOf":null,"regexp":"^\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,20}\\b$"}]},"creditApplicationStep1Form.relationshipWithBusinessOwner":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotBlank","message":"Please enter your relationship with the business owner","partOf":null},{"type":"javax.validation.constraints.Size","message":"Relationship with the business owner must not exceed 35 characters.","partOf":null,"min":"0","max":"255"}]},"addTermsAndConditionsForm.customerDeclarationAgreed":{"type":"boolean","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.AssertTrue","message":"You must agree to the Customer declaration","partOf":null}]},"tradeCashApplicationForm.address.townCity":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid town/city name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid town/city name.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"addCompanyDetailsForm.companyAddresses.lengthAtAddressMonths":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"Please enter the number of months.","partOf":null,"value":"0"},{"type":"javax.validation.constraints.Max","message":"Please enter the number of months.","partOf":null,"value":"12"}]},"balGenerateEstimateDocumentForm.generateEstimateDocumentForm.dateDay":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"31"}]},"creditApplicationStep3Form.incorporationMonth":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"12"}]},"addCompanyDetailsForm.descriptionOfBusiness":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please select one option from the list","partOf":null}]},"tradeAccountActivationVerifyForm.gdpr":{"type":"boolean","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.AssertTrue","message":"You must agree to the GDPR in order to proceed","partOf":null}]},"creditApplicationStep3SelfBuilderForm.branch":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please select your preferred branch.","partOf":null}]},"brickStandardCalculatorForm.wallWidth":{"type":"BigDecimal","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.DecimalMin","message":"Height must be at least 1","partOf":null,"inclusive":"true","value":"1.0"},{"type":"javax.validation.constraints.DecimalMax","message":"Height must be lower than 999","partOf":null,"inclusive":"true","value":"999.0"}]},"toolHireRequestForm.quantity":{"type":"int","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"Quantity must be at least 1","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Quantity must be lower than 999","partOf":null,"value":"999"}]},"billingAddressForm.postalCode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"de.hybris.platform.validation.annotations.NotBlank.message","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"javax.validation.constraints.Pattern.message","partOf":null,"regexp":"^([Gg][Ii][Rr]\\s?0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})|([WwEeNn]1[A-Za-z]\\s?[0-9][A-Za-z]{2})|([Nn][Pp][Tt]\\s?[0-9][A-Za-z]{2})$"},{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"5","max":"10"}]},"addTradingDetailsForm.primaryTradeReference.companyName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Company Name is invalid. It only can contain letters, digits, space, _,-,&","partOf":null,"regexp":"^([0-9 A-Za-z-_&])*$"}]},"creditReferenceForm.secondPartnerHomeAddresses.townCity":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid town/city name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid town/city name.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"addBankingDetailsForm.bankAddress.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid post code.","partOf":null,"regexp":"^(([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})?)*$"}]},"creditApplicationStep1Form.firstName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your first name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"balStockCheckForm.generateEstimateDocumentForm.dateMonth":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"javax.validation.constraints.Min.message","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"javax.validation.constraints.Max.message","partOf":null,"value":"12"}]},"guestForm.firstName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your first name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"creditApplicationStep2Form.additional.titleCode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"255"}]},"creditReferenceForm.thirdPartner.firstName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your first name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"creditApplicationStep4Form.sortCode3":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Please enter a sort code","partOf":null,"min":"2","max":"2"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a sort code","partOf":null,"regexp":"^[0-9]*$"}]},"creditApplicationStep4Form.sortCode2":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Please enter a sort code","partOf":null,"min":"2","max":"2"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a sort code","partOf":null,"regexp":"^[0-9]*$"}]},"creditApplicationStep4Form.sortCode1":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Please enter a sort code","partOf":null,"min":"2","max":"2"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a sort code","partOf":null,"regexp":"^[0-9]*$"}]},"balEstimateForm.estimateForm.labourLength":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"Please enter a numerical value.","partOf":null,"value":"0"}]},"brickStandardCalculatorForm.brick":{"type":"Brick","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please select whether you would like to use a brick or block","partOf":null}]},"creditApplicationStep2Form.additional.dateOfBirthYear":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"2100"},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1900"}]},"creditApplicationStep2Form.dateOfBirthDay":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"31"}]},"addApplicantDetailsForm.dateOfBirthMonth":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"12"}]},"addApplicantDetailsForm.class":{"type":"ApplicantDetailsForm","pattern":null,"constraints":[{"type":"com.sg.b2b.form.validator.BirthDate","message":"","partOf":null,"minimumAge":"18","maximumAge":"100"}]},"creditApplicationStep6Form.termsAccepted":{"type":"boolean","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.AssertTrue","message":"Please accept our terms & conditions before submitting your application.","partOf":null}]},"creditApplicationStep2Form.additional2.addresses.lengthAtAddressYears":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Max","message":"Please enter the number of years.","partOf":null,"value":"99"},{"type":"javax.validation.constraints.Min","message":"Please enter the number of years.","partOf":null,"value":"0"}]},"creditApplicationStep3SelfBuilderForm.projectStartYear":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"2100"},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1900"}]},"creditApplicationStep2Form.additional.dateOfBirthDay":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"31"}]},"toolHireUpdateForm.productCode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotBlank","message":"Product code must not be empty","partOf":null}]},"creditReferenceForm.firstPartner.dateOfBirthMonth":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"12"}]},"balEstimateForm.resultLineForms.quantity":{"type":"int","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"javax.validation.constraints.Min.message","partOf":null,"value":"0"}]},"addBankingDetailsForm.sortCode3":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Please enter a sort code","partOf":null,"min":"2","max":"2"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a sort code","partOf":null,"regexp":"^[0-9]*$"}]},"addBankingDetailsForm.sortCode2":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Please enter a sort code","partOf":null,"min":"2","max":"2"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a sort code","partOf":null,"regexp":"^[0-9]*$"}]},"tradeAccountActivationVerifyForm.tradeAccountNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid Jewson account number which is up to 8 characters long and contains no special characters.","partOf":null,"regexp":"^[A-Za-z0-9]{1,8}$"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your Jewson account number","partOf":null}]},"addBankingDetailsForm.sortCode1":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Please enter a sort code","partOf":null,"min":"2","max":"2"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a sort code","partOf":null,"regexp":"^[0-9]*$"}]},"creditApplicationStep2Form.titleCode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"255"}]},"invoiceFilterForm.dateTo":{"type":"Date","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"'To date' date is required","partOf":null}]},"linkAccountRegisterForm.tradeAccountNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"javax.validation.constraints.Pattern.message","partOf":null,"regexp":"^([a-zA-Z]{1}[a-zA-Z0-9]{6,7})*$"},{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"8"}]},"creditPaymentCardDetailsForm.paymentAddressForm.line2":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Address Line 2 must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"creditPaymentCardDetailsForm.paymentAddressForm.line1":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Address Line 1 must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid address.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"tileCalculatorForm.tileAreaLength":{"type":"BigDecimal","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.DecimalMin","message":"Length must be at least 1","partOf":null,"inclusive":"true","value":"1.0"},{"type":"javax.validation.constraints.DecimalMax","message":"Length must be lower than 999","partOf":null,"inclusive":"true","value":"999.0"}]},"creditApplicationStep3SelfBuilderForm.buildType":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a type of build.","partOf":null}]},"linkAccountRegisterForm.pwd":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Your password needs to consists of at least 8 characters, one lowercase letter, one upper case letter and one digit.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Your password needs to consists of at least 8 characters, one lowercase letter, one upper case letter and one digit.","partOf":null,"regexp":"^((?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d.@,\\-_+\\\\/'?%$\"&*()^&!~]{8,})*$"}]},"completePaymentForm.paymentToken":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"de.hybris.platform.validation.annotations.NotBlank.message","partOf":null}]},"creditApplicationStep3SelfBuilderForm.creditLimit":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter an appropriate credit limit.","partOf":null},{"type":"javax.validation.constraints.Max","message":"Please enter an appropriate credit limit.","partOf":null,"value":"75000"},{"type":"javax.validation.constraints.Min","message":"Please enter an appropriate credit limit.","partOf":null,"value":"500"},{"type":"javax.validation.constraints.Pattern","message":"Please enter an appropriate credit limit.","partOf":null,"regexp":"^(\\d+)*$"}]},"balStockCheckForm.stockCheckForm.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"javax.validation.constraints.Pattern.message","partOf":null,"regexp":"^(([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})?)*$"}]},"creditApplicationStep2Form.additional2.titleCode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"255"}]},"addCreditSoleTraderDetailsForm.class":{"type":"CreditSoleTraderDetailsForm","pattern":null,"constraints":[{"type":"com.sg.b2b.form.validator.BirthDate","message":"","partOf":null,"minimumAge":"18","maximumAge":"100"}]},"balEstimateForm.estimateForm.labourCost":{"type":"BigDecimal","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.DecimalMin","message":"Please enter a numerical value.","partOf":null,"inclusive":"true","value":"0.0"}]},"registerInterestForm.email":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid email address.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Email must be between 6 and 80 characters long.","partOf":null,"min":"0","max":"80"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid email address.","partOf":null,"regexp":"^\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,20}\\b$"}]},"placeOrderForm.paymentAddressForm.line1":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Address Line 1 must not exceed 255 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid address.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"placeOrderForm.paymentAddressForm.line2":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Address Line 2 must not exceed 255 characters.","partOf":null,"min":"0","max":"35"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"extendedAddressForm.firstName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your first name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"brickStandardCalculatorForm.wallLength":{"type":"BigDecimal","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.DecimalMin","message":"Length must be at least 1","partOf":null,"inclusive":"true","value":"1.0"},{"type":"javax.validation.constraints.DecimalMax","message":"Length must be lower than 999","partOf":null,"inclusive":"true","value":"999.0"}]},"registerForm.checkPwd":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please confirm your password.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Your password needs to consists of at least 8 characters, one lowercase letter, one upper case letter and one digit.","partOf":null,"regexp":"^((?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d.@,\\-_+\\\\/'?%$\"&*()^&!~]{8,})*$"}]},"extendedAddressForm.cellphone":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your telephone number.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"10","max":"24"},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null}]},"creditReferenceForm.secondPartnerHomeAddresses.line1":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid address.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"billingAddressForm.locality":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"de.hybris.platform.validation.annotations.NotBlank.message","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"javax.validation.constraints.Pattern.message","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"creditReferenceForm.secondPartnerHomeAddresses.line2":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"searchForm.text":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid search term.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Search term must not exceed 100 characters.","partOf":null,"min":"0","max":"100"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid search term.","partOf":null,"regexp":"^[\\w\\d\\s\\.,\\/\\-_]{1,100}$"}]},"balStockCheckForm.estimateForm.materialMarkup":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"javax.validation.constraints.Min.message","partOf":null,"value":"0"},{"type":"javax.validation.constraints.Max","message":"javax.validation.constraints.Max.message","partOf":null,"value":"999"}]},"loftInsulationCalculatorForm.rollType":{"type":"InsulationRoll","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please select a roll size","partOf":null}]},"creditApplicationStep2Form.additional.email":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid email address.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Email must be between 6 and 80 characters long.","partOf":null,"min":"0","max":"80"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid email address.","partOf":null,"regexp":"^\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,20}\\b$"}]},"enterPasscodeForm.passcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid passcode","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid passcode","partOf":null,"regexp":"^(([0-9A-Za-z]){8})+$"}]},"creditReferenceForm.secondPartnerHomeAddresses.lengthAtAddressMonths":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"Please enter the number of months.","partOf":null,"value":"0"},{"type":"javax.validation.constraints.Max","message":"Please enter the number of months.","partOf":null,"value":"12"}]},"creditReferenceForm.firstPartner.class":{"type":"ApplicantPersonalDetailsForm","pattern":null,"constraints":[{"type":"com.sg.b2b.form.validator.BirthDate","message":"","partOf":null,"minimumAge":"18","maximumAge":"100"}]},"loftInsulationCalculatorForm.width":{"type":"BigDecimal","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.DecimalMin","message":"Width must be at least 1","partOf":null,"inclusive":"true","value":"1.0"},{"type":"javax.validation.constraints.DecimalMax","message":"Width must be lower than 999","partOf":null,"inclusive":"true","value":"999.0"}]},"SGAddToCartForm.qty":{"type":"long","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"Min.addToCartForm.qty","partOf":null,"value":"0"},{"type":"javax.validation.constraints.Max","message":"Max.addToCartForm.qty","partOf":null,"value":"9999"}]},"deliveryMethodForm.deliveryMethod":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Delivery method is required","partOf":null}]},"creditApplicationStep2Form.firstName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a first name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"creditReferenceForm.secondPartner.dateOfBirthDay":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"31"}]},"registerForm.lastName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your last name","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"registerForm.email":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid email address.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Email must be between 6 and 80 characters long.","partOf":null,"min":"0","max":"80"},{"type":"org.hibernate.validator.constraints.Email","message":"Please enter a valid email address.","partOf":null,"regexp":"^\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,20}\\b$"},{"type":"javax.validation.constraints.Pattern","message":"org.hibernate.validator.constraints.Email.message","partOf":"Email","regexp":""}]},"creditReferenceForm.thirdPartner.telephoneNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"10","max":"24"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your telephone number.","partOf":null},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null}]},"addCreditSoleTraderDetailsForm.descriptionOfBusiness":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please select one option from the list","partOf":null}]},"creditReferenceForm.thirdPartnerHomeAddresses.townCity":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid town/city name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid town/city name.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"addCompanyDetailsForm.typeOfCompany":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please select the company type from the list.","partOf":null}]},"billingAddressForm.givenName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"de.hybris.platform.validation.annotations.NotBlank.message","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"javax.validation.constraints.Pattern.message","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"creditReferenceForm.secondPartner.lastName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your last name","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"creditPaymentCardDetailsForm.paymentAddressForm.townCity":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Town/city must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid town/city name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid town/city name.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"creditReferenceForm.firstPartner.lastName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your last name","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"addTradingDetailsForm.primaryTradeReference.creditLimit":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter the credit limit.","partOf":null,"regexp":"^(\\d+)*$"}]},"guestRegisterForm.class":{"type":"SGRegisterGuestForm","pattern":null,"constraints":[{"type":"com.sg.sgstorefrontcommons.form.validation.PasswordMatch","message":"","partOf":null,"fieldName":"checkPwd"}]},"creditApplicationStep2Form.additional2.dateOfBirthYear":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"2100"},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1900"}]},"balEstimateForm.stockCheckForm.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"javax.validation.constraints.Pattern.message","partOf":null,"regexp":"^(([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})?)*$"}]},"tradeAccountActivationConfirmForm.firstName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your first name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"balGenerateEstimateDocumentForm.resultLineForms.quantity":{"type":"int","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"javax.validation.constraints.Min.message","partOf":null,"value":"0"}]},"addTradingDetailsForm.secondaryTradeReference.creditLimit":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter the credit limit.","partOf":null,"regexp":"^(\\d+)*$"}]},"balAddToCartForm.generateEstimateDocumentForm.dateMonth":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"javax.validation.constraints.Min.message","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"javax.validation.constraints.Max.message","partOf":null,"value":"12"}]},"billingAddressForm.line1":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"de.hybris.platform.validation.annotations.NotBlank.message","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"javax.validation.constraints.Pattern.message","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"billingAddressForm.line2":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"35"},{"type":"javax.validation.constraints.Pattern","message":"javax.validation.constraints.Pattern.message","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"creditApplicationStep5Form.reference2.companyName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Company name is invalid. It only can contain letters, digits, space, _,-,&","partOf":null,"regexp":"^([0-9 A-Za-z-_&])*$"}]},"linkAccountRegisterForm.checkPwd":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please confirm your password.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Your password needs to consists of at least 8 characters, one lowercase letter, one upper case letter and one digit.","partOf":null,"regexp":"^((?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d.@,\\-_+\\\\/'?%$\"&*()^&!~]{8,})*$"}]},"creditApplicationStep2Form.additional.firstName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a first name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"addUploadProofForm.proofOfIdentity":{"type":"MultipartFile","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"No file selected.","partOf":null},{"type":"javax.validation.constraints.Size","message":"We can only accept files smaller than 10MB","partOf":null,"min":"0","max":"10000"},{"type":"javax.validation.constraints.Pattern","message":"We can only accept files using the following formats: pdf,png,jpg,jpeg","partOf":null,"regexp":"^.*\\.(jpg|JPG|jpeg|JPEG|png|PNG|pdf|PDF)$"}]},"updateQuantityForm.quantity":{"type":"Long","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Quantity field cannot be empty.","partOf":null},{"type":"javax.validation.constraints.Min","message":"Please enter a valid quantity.","partOf":null,"value":"0"},{"type":"javax.validation.constraints.Digits","message":"Please enter a valid quantity.","partOf":null,"integer":"10","fraction":"0"}]},"creditApplicationStep3Form.creditLimit":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter an appropriate credit limit.","partOf":null},{"type":"javax.validation.constraints.Max","message":"Please enter an appropriate credit limit.","partOf":null,"value":"75000"},{"type":"javax.validation.constraints.Min","message":"Please enter an appropriate credit limit.","partOf":null,"value":"500"},{"type":"javax.validation.constraints.Pattern","message":"Please enter an appropriate credit limit.","partOf":null,"regexp":"^(\\d+)*$"}]},"creditApplicationStep5Form.reference1.companyName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Company name is invalid. It only can contain letters, digits, space, _,-,&","partOf":null,"regexp":"^([0-9 A-Za-z-_&])*$"}]},"linkAccountRegisterForm.tradeAccNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid trade account number.","partOf":null,"regexp":"^([a-zA-Z]{1}[a-zA-Z0-9]{6,7})*$"},{"type":"javax.validation.constraints.NotBlank","message":"Please enter a valid trade account number.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Please enter a valid trade account number.","partOf":null,"min":"0","max":"8"}]},"creditReferenceForm.thirdPartner.lastName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your last name","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"linkAccountRegisterForm.email":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid email address.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Email must be between 6 and 80 characters long.","partOf":null,"min":"0","max":"80"},{"type":"org.hibernate.validator.constraints.Email","message":"Please enter a valid email address.","partOf":null,"regexp":"^\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,20}\\b$"},{"type":"javax.validation.constraints.Pattern","message":"org.hibernate.validator.constraints.Email.message","partOf":"Email","regexp":""}]},"placeToolHireRequestForm.termsCheck":{"type":"boolean","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.AssertTrue","message":"Please accept the terms and conditions before placing your order","partOf":null}]},"billingAddressForm.countryCode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"1","max":"2"},{"type":"javax.validation.constraints.Pattern","message":"javax.validation.constraints.Pattern.message","partOf":null,"regexp":"^([A-Z]*)$"}]},"balEstimateForm.generateEstimateDocumentForm.dateMonth":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"javax.validation.constraints.Min.message","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"javax.validation.constraints.Max.message","partOf":null,"value":"12"}]},"creditReferenceForm.secondPartnerHomeAddresses.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid post code.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid post code.","partOf":null,"regexp":"^([Gg][Ii][Rr]\\s?0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})|([WwEeNn]1[A-Za-z]\\s?[0-9][A-Za-z]{2})|([Nn][Pp][Tt]\\s?[0-9][A-Za-z]{2})$"},{"type":"javax.validation.constraints.Size","message":"Post code must be between 5 and 10 characters long.","partOf":null,"min":"5","max":"10"}]},"balEstimateForm.estimateForm.materialMarkup":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"Please enter a positive number.","partOf":null,"value":"0"},{"type":"javax.validation.constraints.Max","message":"Maximum allowed markup is 999%.","partOf":null,"value":"999"}]},"guestRegisterForm.lastName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your last name","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"tradeCashApplicationForm.branchLocatorQuery":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your town or postcode.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter your town or postcode.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"creditReferenceForm.firstPartner.telephoneNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"10","max":"24"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your telephone number.","partOf":null},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null}]},"radiatorCalculatorForm.roomWidth":{"type":"BigDecimal","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.DecimalMin","message":"Width must be at least 1","partOf":null,"inclusive":"true","value":"1.0"},{"type":"javax.validation.constraints.DecimalMax","message":"Width must be lower than 999","partOf":null,"inclusive":"true","value":"999.0"}]},"pavingCalculatorForm.slabAreaLength":{"type":"BigDecimal","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.DecimalMin","message":"Length must be at least 1","partOf":null,"inclusive":"true","value":"1.0"},{"type":"javax.validation.constraints.DecimalMax","message":"Length must be lower than 999","partOf":null,"inclusive":"true","value":"999.0"}]},"addCreditSoleTraderDetailsForm.dateOfBirthYear":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"2100"},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1900"}]},"addBankingDetailsForm.bankAddress.line2":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"addBankingDetailsForm.bankAddress.line1":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"balStockCheckForm.generateEstimateDocumentForm.dateYear":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Max","message":"javax.validation.constraints.Max.message","partOf":null,"value":"2100"},{"type":"javax.validation.constraints.Min","message":"javax.validation.constraints.Min.message","partOf":null,"value":"1900"}]},"creditReferenceForm.firstPartner.firstName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your first name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"creditApplicationStep3Form.companyRegistrationNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid company registration number","partOf":null,"regexp":"^(([0-9A-Za-z])?)*$"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a company registration number.","partOf":null}]},"creditApplicationStep2Form.additional.lastName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a last name","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"addApplicantDetailsForm.dateOfBirthYear":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"2100"},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1900"}]},"linkAccountRegisterForm.tradeAccPostcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Please enter a valid trade account postcode.","partOf":null,"min":"0","max":"10"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid trade account postcode.","partOf":null,"regexp":"^(([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})?)*$"},{"type":"javax.validation.constraints.NotBlank","message":"Please enter a valid trade account postcode.","partOf":null}]},"creditApplicationStep2Form.dateOfBirthYear":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"2100"},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1900"}]},"tradeAccountActivationConfirmForm.termsCheck":{"type":"boolean","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.AssertTrue","message":"You must agree to the GDPR in order to proceed","partOf":null}]},"addCompanyDetailsForm.monthlySpend":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please select your estimated monthly spend with us from the list","partOf":null}]},"addCompanyDetailsForm.existingJewsonAccountNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter your existing Jewson account number","partOf":null,"regexp":"^([a-zA-Z]{1}[a-zA-Z0-9]{6,7})*$"},{"type":"javax.validation.constraints.Size","message":"Please enter a valid Jewson account number.","partOf":null,"min":"0","max":"8"}]},"tradeCashApplicationForm.address.lengthAtAddressMonths":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"javax.validation.constraints.Min.message","partOf":null,"value":"0"},{"type":"javax.validation.constraints.Max","message":"javax.validation.constraints.Max.message","partOf":null,"value":"12"}]},"creditReferenceForm.secondPartner.firstName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your first name.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"creditReferenceForm.thirdPartner.jobTitle":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid job title.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid job title.","partOf":null,"regexp":"^(([0-9 A-Za-z-_&])?)*$"}]},"creditApplicationStep2Form.additional2.dateOfBirthDay":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"31"}]},"addUploadProofForm.proofOfSignedAgreement":{"type":"MultipartFile","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"No file selected.","partOf":null},{"type":"javax.validation.constraints.Size","message":"We can only accept files smaller than 10MB","partOf":null,"min":"0","max":"10000"},{"type":"javax.validation.constraints.Pattern","message":"We can only accept files using the following formats: pdf,png,jpg,jpeg","partOf":null,"regexp":"^.*\\.(jpg|JPG|jpeg|JPEG|png|PNG|pdf|PDF)$"}]},"registerForm.tradeAccountPostcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"10"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid account postcode.","partOf":null,"regexp":"^(([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})?)*$"}]},"addTradingDetailsForm.primaryTradeReference.postcode":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid post code.","partOf":null,"regexp":"^(([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})?)*$"}]},"orderFilterForm.amountFrom":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please provide a valid number","partOf":null,"regexp":"^$|^(\\d+\\.)?\\d+$"}]},"extendedAddressForm.customerOrderReference":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid order reference","partOf":null,"regexp":"^(([a-zA-Z0-9\\\\ !$%&'()*+,-./:;=?@^_`{}|~\\]\\[])?)*$"},{"type":"javax.validation.constraints.Size","message":"Your order reference must not exceed 20 characters","partOf":null,"min":"0","max":"20"}]},"addCompanyDetailsForm.companyAddresses.line1":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid address.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"pavingCalculatorForm.slabSize":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please select a slab size","partOf":null,"regexp":"^_..._...$"}]},"addCompanyDetailsForm.companyAddresses.line2":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"tradeCashApplicationForm.company":{"type":"Boolean","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please select one option","partOf":null}]},"wishlistCreateForm.name":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Project List name is required","partOf":null}]},"balAddToCartForm.estimateForm.labourLength":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Min","message":"javax.validation.constraints.Min.message","partOf":null,"value":"0"}]},"addCreditSoleTraderDetailsForm.lastName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your last name","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"completePaymentForm.customerOrderReference":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"javax.validation.constraints.Pattern.message","partOf":null,"regexp":"^(([a-zA-Z0-9\\\\ !$%&'()*+,-./:;=?@^_`{}|~\\]\\[])?)*$"},{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"20"}]},"editProfileForm.email":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid email address.","partOf":null},{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"80"},{"type":"org.hibernate.validator.constraints.Email","message":"Please enter a valid email address.","partOf":null,"regexp":"^\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,20}\\b$"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid email address.","partOf":"Email","regexp":""}]},"creditApplicationStep1Form.lastName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Name must not exceed 35 characters.","partOf":null,"min":"0","max":"35"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your last name","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Names can only contain letters and hyphens \"-\"","partOf":null,"regexp":"^([A-Za-z -]*)$"}]},"operativeCardForm.cardHolderName":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Maximum length is 20 characters.","partOf":null,"min":"0","max":"20"},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid name using letters and numbers only.","partOf":null,"regexp":"^([0-9a-zA-Z -])*$"}]},"tradeCashApplicationForm.branch":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please select your preferred branch.","partOf":null}]},"invoiceFilterForm.dateFrom":{"type":"Date","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"'From date' is required","partOf":null}]},"creditReferenceForm.thirdPartnerHomeAddresses.line1":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter a valid address.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"creditApplicationStep2Form.addresses.lengthAtAddressYears":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.Max","message":"Please enter the number of years.","partOf":null,"value":"99"},{"type":"javax.validation.constraints.Min","message":"Please enter the number of years.","partOf":null,"value":"0"}]},"addTradingDetailsForm.creditLimit":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Enter an appropriate credit limit.","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Enter an appropriate credit limit.","partOf":null,"regexp":"^(\\d+)*$"},{"type":"javax.validation.constraints.Max","message":"Enter an appropriate credit limit.","partOf":null,"value":"999999999"}]},"creditReferenceForm.thirdPartnerHomeAddresses.line2":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid address.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"addTermsAndConditionsForm.termsAgreed":{"type":"boolean","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.AssertTrue","message":"Please accept our terms & conditions before submitting your application.","partOf":null}]},"initialPwdForm.checkPwd":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please confirm your password","partOf":null},{"type":"javax.validation.constraints.Pattern","message":"Your password must include at least 8 characters including one upper case letter, one lower case letter and one digit.","partOf":null,"regexp":"^((?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d.@,\\-_+\\\\/'?%$\"&*()^&!~]{8,})*$"}]},"guestRegisterForm.tradeAccountNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid Jewson account number.","partOf":null,"regexp":"^([a-zA-Z]{1}[a-zA-Z0-9]{6,7})*$"},{"type":"javax.validation.constraints.Size","message":"javax.validation.constraints.Size.message","partOf":null,"min":"0","max":"8"}]},"creditApplicationStep3SelfBuilderForm.townCity":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please enter a valid town/city name.","partOf":null,"regexp":"^(([0-9 A-Za-z-/.'`\"])?)*$"}]},"addCompanyDetailsForm.employeeCount":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please select the number of employees from the list","partOf":null}]},"creditReferenceForm.thirdPartner.mainContactNumber":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"regexp":"^[+]?[\\s]*([\\(]{1}[0-9\\-\\s]+[\\)]{1})?[\\-\\s0-9]*$"},{"type":"de.hybris.platform.validation.annotations.NotBlank","message":"Please enter your telephone number.","partOf":null},{"type":"javax.validation.constraints.Size","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null,"min":"10","max":"24"},{"type":"com.sg.core.validation.ValidPhone","message":"Telephone Number is invalid. The minimum length is 10 digits, the maximum length is 16 digits. Telephone number can contain numbers, spaces, hyphens, + symbol and parenthesis","partOf":null}]},"requestOperativeCardsForm.termsAndConditions":{"type":"boolean","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please accept terms and conditions","partOf":null}]},"invoiceFilterForm.amountTo":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Pattern","message":"Please provide a valid number","partOf":null,"regexp":"^$|^(\\-\\d+\\.|\\d+\\.)?\\d+$"}]},"guestForm.email":{"type":"String","pattern":"^[a-zA-Z0-9]*$","constraints":[{"type":"javax.validation.constraints.Size","message":"Email must be between 6 and 80 characters long.","partOf":null,"min":"0","max":"80"},{"type":"org.hibernate.validator.constraints.Email","message":"Please enter a valid email address.","partOf":null,"regexp":"^\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,20}\\b$"},{"type":"javax.validation.constraints.Pattern","message":"org.hibernate.validator.constraints.Email.message","partOf":"Email","regexp":""}]},"addCreditSoleTraderDetailsForm.dateOfBirthDay":{"type":"Integer","pattern":"\\d+$","constraints":[{"type":"javax.validation.constraints.NotNull","message":"Please enter a valid date","partOf":null},{"type":"javax.validation.constraints.Min","message":"Please enter a valid date","partOf":null,"value":"1"},{"type":"javax.validation.constraints.Max","message":"Please enter a valid date","partOf":null,"value":"31"}]}} } ACC.price= { productPriceNotAvailable: "Pricing currently unavailable", productPriceNotAvailableContactBranch: "Please <a href='/branch-finder'>contact a branch</a> to order" } </script> <script type="text/javascript"> /*<![CDATA[*/ ACC.addons = {}; //JS holder for addons properties ACC.addons.sgb2baddon = []; ACC.addons.applepaymentaddon = []; ACC.addons.wcmscomponentsaddon = []; ACC.addons.sgtrackingaddon = []; ACC.addons.smarteditaddon = []; ACC.addons.sgcaptchaaddon = []; ACC.addons.b2ccheckoutaddon = []; ACC.addons.b2ccheckoutaddon['key.2'] = 'value 2'; ACC.addons.b2ccheckoutaddon['key.1'] = 'value 1'; ACC.addons.featureflagaddon = []; ACC.addons.balintegrationaddon = []; /*]]>*/ </script> <script type="text/javascript" src="/_ui/shared/js/generatedVariables.js?version=d234d82e29f5e971208840ce870dfb6b" ></script> <script type="text/javascript" src="/_ui/addons/smarteditaddon/shared/common/js/webApplicationInjector.js?version=d234d82e29f5e971208840ce870dfb6b" defer></script> <script type="text/javascript" src="/_ui/addons/smarteditaddon/shared/common/js/reprocessPage.js?version=d234d82e29f5e971208840ce870dfb6b" defer></script> <script type="text/javascript" src="/_ui/responsive/common/js/vendor/polyfill.bundle.min.js?version=d234d82e29f5e971208840ce870dfb6b" nomodule></script> <script type="text/javascript" src="/_ui/responsive/common/js/vendor/vendor.bundle.min.js?version=d234d82e29f5e971208840ce870dfb6b" ></script> <script type="text/javascript" src="/_ui/responsive/common/js/bundle.min.js?version=d234d82e29f5e971208840ce870dfb6b" defer onLoad="eventQueue.process()" ></script> <script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.4.min.js" integrity="sha384-ck5f8pThYoM1f8j4JwF+l6iQPh5lbgeaEdXUv5n8bxd8kZe9DyY3vHU4nlyef0UW" crossorigin="anonymous"></script> <script type="text/javascript"> var config = { apiKey: 'e667ab7fdd1e8b628221aadbca78d6d9f369ace9', product: 'PRO_MULTISITE', initialState: 'notify', notifyOnce: false, position: "LEFT", theme: "LIGHT", layout: "popup", closeStyle: 'button', consentCookieExpiry: 365, rejectButton: false, sameSiteCookie: false, sameSiteValue: 'None', statement: { updated : '07/05/2020' }, setInnerHTML: true, text: { title: 'Your cookie preferences', intro: 'Our website uses cookies to operate. While some of these are necessary, and our site can’t work without them, you can manage your preferences below. <br /><br />By continuing on our website, you are consenting to our placing cookies on your computer. For more detailed information on these cookies, what they are, and why we use them, please check our <a href="/cookies-policy">cookies policy</a>.', necessaryTitle: 'Strictly necessary and functional cookies', necessaryDescription: '</br>These cookies are needed to make our site work. They let you sign in and use features such as the shopping trolley and checkout. They do not collect any information that could identify you, nor do they remember where you’ve been on the internet.</br></br> You can switch off these cookies by changing your browser preferences, however, you will not be able to use all areas or functions of our website.', notifyTitle: 'Our Cookies', notifyDescription: 'Our website uses cookies to operate. Some of these are essential, and our site cannot work without them. However, some are set by social media partners and are used for marketing and targeting purposes, and can be switched off if desired. You can allow all, or manage your personal cookie settings here.', acceptRecommended: '', accept: 'Allow All', settings: 'Manage Cookies', rejectSettings: "", closeLabel: 'Save and close' }, branding : { removeAbout: true, removeIcon: false }, necessaryCookies: ["CookieControl", "visid_incap_*", "ROUTE", "JSESSIONID", "jewson-cart", "acceleratorSecureGUID", "guestCheckoutDontAsk", "locationCookie"], optionalCookies: [ { name: "analytics", label: "Performance and analytics cookies", description: "</br>These cookies collect information about how you use our website (e.g., which pages you visit, and if you experience any errors). They do not collect any information that could identify you and are only used to help us improve how our website works, understand what interests our users, and measure how effective our advertising is.</br></br> If you switch off these cookies we cannot guarantee how our site will perform for you.", cookies: ["AMCV*", "s_*", "_gat*", "_gac*", "_gid", "_ga", "__utm*","_hj*","cookie2","_br_uid_2"], recommendedState: true, onAccept: function() { revertPageScroll(); }, onRevoke: function() { revertPageScroll(); } } , { name: "advertising", label: "Social media, marketing, and targeting cookies", description: "</br>These cookies are set by a range of social media services that we have added to the site to enable you to share our content with your friends and networks. They are capable of tracking your browser across other sites and building up a profile of your interests. This may impact the content and messages you see on other websites you visit.</br></br>If you switch off these cookies you may not be able to use or see these sharing tools.", cookies: ["_fbp", "demdex", "dpm", "everest_*", "fr", "lang", "lidc", "mbox", "test_cookie", "UserMatchHistory", "bcookie", "ev_sync_dd", "AMCV*"], recommendedState: true, onAccept: function() { revertPageScroll(); }, onRevoke: function() { revertPageScroll(); } } ], }; CookieControl.load(config); var civicSetting = getCivicValue(); function getCivicValue() { var cookie = CookieControl.getCookie('CookieControl'); return cookie && cookie.length || 0; } function fetchDigitalData(callback) { if(document.getElementById("digitalData") || window.requestDD) { var checkSetting = getCivicValue(); if(civicSetting !== checkSetting) { civicSetting = checkSetting; consentUpdate("manage cookies"); } return false; } window.requestDD = true; setTimeout(function() { fetch(window.location.pathname) .then(function (response) { return response.text(); }) .then(function (html) { var parser = new DOMParser(); var doc = parser.parseFromString(html, "text/html"); var dd = doc.getElementById("digitalData"); if(dd) { var data = dd.innerText; data = data.trim(); data = data.replace("digitalData \=", ""); var script = document.createElement("script"); script.id = "digitalData"; script.textContent = 'var digitalData = '+ data; document.body.appendChild(script); } else { window.requestDD = false; } }) .catch(function (err) { console.warn("Error fetching digitalData", err); }).finally(function() { callback(); }); }, 1000); } function consentUpdate(type) { ACC.adobe.track("consent_updated", {type: type}); } function revertPageScroll() { var scrollLoc = window.scrollY || 0; setTimeout(function() { document.activeElement && document.activeElement.blur(); window.scroll(0, scrollLoc); }, 1); } events.on("click", ".ccc-notify-buttons .ccc-notify-link, .ccc-close-button", function() { revertPageScroll(); }); events.on("click", "#ccc-optional-categories .checkbox-toggle-input", function() { setTimeout(function() { fetchDigitalData(function() { consentUpdate("manage cookies") }); }, 50); }); events.on("click", "body", function(e) { if (e.target.matches('#ccc-notify-accept')) { setTimeout(function() { fetchDigitalData(function() { consentUpdate("allow all") }); }, 50); } }); </script> <script type="text/javascript"> document.addEventListener("DOMContentLoaded", function() { if(typeof(_satellite) !== 'undefined' && typeof(_satellite.pageBottom) !== 'undefined') { _satellite.pageBottom(); } }); </script> <script type="text/javascript" src="/_Incapsula_Resource?SWJIYLWA=719d34d31c8e3a6e6fffd425f7e032f3&ns=1&cb=1901737064" async></script></body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10