super customer service
Transparent pricing and secure payments
Domestic delivery available on all orders
The UK's largest online roofing material store
Get started immediately with 4 months to pay
Enjoy 0% in 4 monthly installments*
View financing options
*Subject to state. Minimum spend required. Terms and conditions apply.
The SMART way to buy commercial building materials
Sign up today for a cash or credit account, exclusive discounts, rebates and rewards with a CMO business account
A good construction starts with our
Consult our specialized stores
Be the first to know about sales, product deals, exclusive discounts and industry news.
Do you want to empty your basket?
Sim No
'); } }); } function callBackValidation() { var charexp = / /gi; // usado para remover espaços em branco var formError = false; $('#form__callback').find('.input__callback, .selectioncallback').each(function () { if ($(this).val().replace(charexp, "") = = "") { formError = verdadeiro; } }); if (true === formError) { return false; } else { pushFormSubmission('Solicite um retorno de chamada'); $('#js-call-back-save-btn').css('visibility', 'hidden').attr('disabled', true); grecaptcha.execute(recaptchaCallBack); } } function callBackRecapcha(token) { insertCallBackRequest(); } function insertProductQuestion() { var thisForm = $("#product-question__form"); var questionFormHeader = $("#js-product-question-header-wrapper"); var questionHeaderWrapper = $("#js-product-question-header-wrapper"); var questionSaveBtn = $('#js-product-question-save-btn'); $.ajax({ url: thisForm.attr('action'), tipo: thisForm.attr('method'), data: thisForm.serialize(), datatype: "json", cache: false, erro: function () { alert('Invisible reCAPTCHA failed, please try again.'); grecaptcha.reset(recaptchaProductQuestion); grecaptcha.execute(recaptchaProductQuestion); questionSaveBtn.css('visibility', '').attr('disabled', false) ; }, sucesso: função (resposta) { if (false === resposta['email-error']) { thisForm.hide(); questionFormHeader.html('
Thanks for the product question.
When your question is answered, it will appear in the list above.
'); questionHeaderWrapper.addClass('product-question-success').removeClass('product-question-error'); grecaptcha.reset(recaptchaProductQuestion); } else { questionFormHeader.html('
there has been a problem
'); questionHeaderWrapper.addClass('product-question-error').removeClass('product-question-success'); grecaptcha.reset(recaptchaProductQuestion); questionSaveBtn.css('visibilidade', '').attr('desativado', false); } } }); } function productQuestionValidation() { var charexp = / /gi; // usado para remover espaços em branco var alertMessage = ''; var formError = false; $('#product-question__form').find('.product-question__input').each(function () { if (($(this).attr('name') !== 'email_address' || $( this).attr('name') === 'telephone_number') && $(this).val().replace(charexp, '') === '') { alertMessage += $(this).data( 'error') + '\n'; formError = true; } else if ($(this).attr('name') === 'email_address' && /^[\w\d_-](\.?[ \w\d_-])*@[\w\d_-]+\.([\w]{1,6}\.)?[\w]{2,20}$/g.test($( this).val()) === false) { // Verifique se o e-mail não está em branco e é válido alertMessage += $(this).data('error') + '\n'; formError = true ; } else if ( $(this).attr('name') === 'phone_number' && /^[0-9s()-+]{6,25}$/g.test($(this). val() .replace(charexp, '')) === false) { // Verifique se o telefone não está em branco e é válido alertMessage += $(this).data('error'); formError = true; } }); if (true == formError) { alert('Os seguintes campos possuem erros: \n' + alertMessage); retorno falso; } else { pushFormSubmission('Pergunta do produto'); grecaptcha.execute(recaptchaProductQuestion); } } function contactFormSPERecaptcha(token) { woofuCaptchaValidate(token, 'collapseOne'); grecaptcha.execute(recaptchaContactFormSPE); } function contactFormCSERecaptcha(token) { woofuCaptchaValidate(token, 'collapseTwo'); grecaptcha.execute(recaptchaContactFormCSE); } function contactFormFCRecaptcha(token) { woofuCaptchaValidate(token, 'collapseThree'); grecaptcha.execute(recaptchaContactFormFC); } function contactFormValidation(contactFormReference, recaptchaVariable) { var charexp = / /gi; // usado para remover espaços em branco var alertMessage = ''; var formError = false; $('#'+contactFormReference).find('.js-contact-form-input').each(function () { var field = $(this).data('label'); var required = $(this ).prop('required'); // Verifique se os campos obrigatórios contêm dados if (required && $(this).val() === '') { alertMessage += field + '\n'; formError = true ; } else if ('Endereço de e-mail' === campo && /^[\w\d_-](\.?[\w\d_-])*@[\w\d_-]+\.( [\ w ]{1,6}\.)?[\w]{2,20}$/g.test($(this).val()) === false) { // Verifique se o e-mail não está em branco e é inválido alertMessage += campo + '\n'; formError = true; } else if ('Telefone' === campo && /^[0-9s()-+]{6,25} $/g.test($( this).val().replace(charexp, '')) === false) { // Verifique se o telefone não está em branco e válido alertMessage += field + '\n'; formError = true; } else if ( 'Tipo de consulta' === campo && 'Selecione um tipo de consulta' === $(this).val()) { alertMessage += campo + '\n'; formError = true; } }); if (true === formError) { alert('Os seguintes campos possuem erros: \n' + alertMessage); retorno falso; } else { grecaptcha.execute(recaptchaVariable); } } function woofuCaptchaValidate(token, contactFormReference) { $.ajax({ url: 'https://www.roofingsuperstore.co.uk/verify-captcha', digite: 'POST', data: { 'g-recaptcha-response ': token }, datatype: "json", cache: false, error: function() { alert('Invisible reCAPTCHA failed, please try again'); grecaptcha.reset(recaptchaProductQuestion); grecaptcha.execute(recaptchaProductQuestion); }, success: function (response) { if ('success' === response.response) { $('#' + contactFormReference + ' form .recaptcha-field').remove(); $('#' + contactFormReference + ' form').submit(); } else { alert('Falha no reCAPTCHA invisível, tente novamente.'); } } }); } function whatsappSharingRecaptcha(token) { grecaptcha.execute(recaptchaWhatsappSharing); } function smsSharingRecaptcha(token) { grecaptcha.execute(recaptchaSmsSharing); } function emailSharingRecaptcha(token) { grecaptcha.execute(recaptchaEmailSharing); } função validarBasketInput(inputId) { var charexp = / /gi; // usado para remover espaços em branco var alertMessage = ''; if ($(inputId).attr('type') === 'tel' && /^[0-9+]{9,20}$/g.test($(inputId).val().replace( charexp, '')) === false) { // Verifique se o telefone não está em branco e é válido alertMessage += 'Mobile number'; } else if ($(inputId).attr('type') === 'email' && /^[\w\d_-](\.?[\w\d_-])*@[\w\ d_ -]+\.([\w]{1,6}\.)?[\w]{2,20}$/g.test($(inputId).val()) === false) { / / Verifique se o e-mail não está em branco ou é válido alertMessage += 'Endereço de e-mail'; } if (alertMessage.length > 0) { alert(alertMessage + ' não é válido.'); retorno falso; } else { postSharingForm($(inputId).parent().parent().parent()); } } function postSharingForm(thisForm) { var shareBtn = thisForm.find('.share-button').first(); var thisFormId = thisForm[0].id; var gRecaptchaResponse = thisForm.find('.g-recaptcha-response')[0].value; var shareVar = ''; if (thisFormId === 'smsMobileSharing') { sharingVar = recaptchaSmsSharing; } else if (thisFormId === 'whatsappMobileSharing') { sharingVar = recaptchaWhatsappSharing; } else if (thisFormId === 'emailSharing') { sharingVar = recaptchaEmailSharing; } var sharingInput = thisForm.find('.js-sharing-input'); if (gRecaptchaResponse === '') { alert('Verifique o reCaptcha e tente novamente'); } else if (sharingVar !== '') { shareBtn.first().css('visibility', 'hidden').attr('disabled', true); $.ajax({ url: thisForm.data('url'), type: 'POST', data: { 'shareMethod': thisFormId, 'sharingInput': $(sharingInput).val(), 'permalink': $( '#basketPermalinkInput').val(), 'recaptcha': gRecaptchaResponse }, erro: function () { shareBtn.first().css('visibility', '').attr('disabled', false); alert( 'Falha ao compartilhar, tente novamente.'); grecaptcha.reset(sharingVar); grecaptcha.execute(sharingVar); }, success: function (resposta) { if (resposta['resposta'] === 'sucesso') { var dataLayer = window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'event': 'basketShare', 'method': thisFormId, 'permalink': $('#basketPermalinkInput').val( ) }); thisForm.hide(); $('#js-sharing-success').show(); grecaptcha.reset(sharingVar); var basketSharedViaWhatsApp = response['cookies']['basketSharedViaWhatsApp']; var basketSharedViaSms = answer['cookies']['sharedbasketViaSms']; var sharedbasketViaEmail = answer['cookies']['sharedbasketViaEmail']; if (sharedbasketViaWhat sApp && basketSharedViaSms && basketSharedViaEmail) { $('.allShareContainers').remove(); } else { if (cestaCompartilhadaViaWhatsApp) { $('#whatsappCompartilharContainer').remove(); } if (basketSharedViaSms) { $('#smsShareContainer').remove(); } if (basketSharedViaEmail) { $('#emailShareContainer').remove(); } } if (resposta['adicional'] !== indefinido) { var win = window.open(resposta['adicional'], '_blank'); win.focus(); } } } }); } else { alert('Não foi possível encontrar o reCAPTCHA. Atualize e tente novamente'); } } function productQuestionsRecapcha(token) { $('#js-product-question-save-btn').css('visibility', 'hidden').attr('disabled', true); inserirProductQuestion(); } function SubscribeFormValidation() { var formError = false; const nome_cliente = $('#nome_cliente'); const customer_email = $('#customer_email'); var mensagem de alerta = ''; if (customerName.val().replace(/ /i, "") === "") { alertMessage += 'Seu nome.\n'; erro de formulário = verdadeiro; } if (/^[\w\d_-](\.?[\w\d_-])*@[\w\d_-]+\.([\w]{1,6}\.)? [\w]{2,20}$/g.test(customerEmail.val()) === false) { alertMessage += 'Um endereço de e-mail válido.'; erro de formulário = verdadeiro; } if (true === formError) { alert('Digite o seguinte e tente novamente: \n' + alertMessage); retorno falso; } else { $('#js-subscribe-save-btn').css('visibility', 'hidden').attr('disabled', true); grecaptcha.execute(recaptchaSubscribe); } } function submitSubscribeFormData() { var thisForm = $("#js-subscribe-form"); $.ajax({ url: thisForm.attr('action'), tipo: thisForm.attr('method'), data: thisForm.serialize(), datatype: "json", cache: false, erro: function () { alert('Recaptcha invisível falhou, tente novamente.'); grecaptcha.reset(recaptchaSubscribe); grecaptcha.execute(recaptchaSubscribe); }, sucesso: function (resposta) { window.location.href = '/pages /subscribe - confirmação.html'; } }); } function SubscribeRecapcha(token) { submitSubscribeFormData(); } var onloadCallback = function () { /* Anexado ao formulário de solicitação de callback */ if ($('#callBackRecapcha').length) { recaptchaCallBack = grecaptcha.render('callBackRecapcha', { 'sitekey': reCaptchaSiteKey , ' callback ': callBackRecapcha, 'size': 'invisible', 'badge': 'inline' }); } /* Anexo ao formulário de perguntas do produto */ if ($('#productQuestionsRecapcha').length) { recaptchaProductQuestion = grecaptcha.render('productQuestionsRecapcha', { 'sitekey': reCaptchaSiteKey, 'callback': productQuestionsRecapcha, 'size ': 'invisível', 'emblema': 'online' }); } /* Anexo ao formulário de contato do SPE */ if ($('#contactFormSPERecaptcha').length) { recaptchaContactFormSPE = grecaptcha.render('contactFormSPERecaptcha', { 'sitekey': reCaptchaSiteKey, 'callback': contactFormSPERecaptcha, 'size ': 'invisível', 'emblema': 'online' }); } if ($('#contactFormCSERecaptcha').longitud) { recaptchaContactFormCSE = grecaptcha.render('contactFormCSERecaptcha', { 'sitekey': reCaptchaSiteKey, 'callback': contactFormCSERecaptcha, 'size': 'invisible', 'badge': ' em linha' }); } if ($('#contactFormFCRecaptcha').longitud) { recaptchaContactFormFC = grecaptcha.render('contactFormFCRecaptcha', { 'sitekey': reCaptchaSiteKey, 'callback': contactFormFCRecaptcha, 'size': 'invisible', 'badge': ' em linha' }); } if ($('#subscribeRecapcha').longitud) { recaptchaSubscribe = grecaptcha.render('subscribeRecapcha', { 'sitekey': reCaptchaSiteKey, 'callback': subscribeRecapcha, 'size': 'invisible', 'badge': ' em linha' }); } }; $(document).ready(function () { // Carrega recaptcha JS quando uma pergunta de produto ou elemento de formulário de solicitação de retorno de chamada recebe o foco var captchaLoaded = false; $('.product-question__input, .call -back__input, .call-back__select, .js-sharing-input, .subscribe__input, .js-contact-form-input').on('focus', function () { // Carrega JS apenas uma vez if (captchaLoaded) { return; } var head = document. getElementsByTagName('head')[0]; var recaptchaScript = document.createElement('script'); recaptchaScript.type = 'text/javascript'; recaptchaScript.src = 'https://www.google.com/recaptcha/api .js?onload=onloadCallback&render=explicit'; recaptchaScript.defer = true; head.appendChild(recaptchaScript); captchaLoaded = true; }); $('#js-call-back-save -btn').click(function ( ) { callBackValidation(); }); $('#js-product-question-save-btn').click(function () { productQuestionValidation(); }); $(' #js-subscribe-save-btn' ).click(função (evento) { event.preventDefault(); subs cribeFormValidation(); }); // Enviar formulário de contato detect $('#saveForm_SPE').click(function (event) { event.preventDefault(); contactFormValidation('collapseOne', recaptchaContactFormSPE); }); $('#saveForm_CSE').click(function (event) { event.preventDefault(); contactFormValidation('collapseTwo', recaptchaContactFormCSE); }); $('#saveForm_FC').click(function (event) { event.preventDefault(); contactFormValidation('collapseThree', recaptchaContactFormFC); }); /* Definir controle deslizante de pesquisa de categoria/marca/preço */ if ($('.js-range-slider').length) { $('head').append('
'); $.ajax({ url: "/user/themes/base/assets/js/ion.rangeSlider/js/ion.rangeSlider.min.js", context: document.body }).done(function() { $( '.js-range-slider').ionRangeSlider({ skin: "round", prettify_enabled: true, prettiify_separator: ',' }); }); } });
I am really sorry
It looks like you are running an older version of Internet Explorer. Our website is not compatible with these older browsers as they do not host the technology that allows our website to be safe and secure.
If you wish to access our website, pleaseupdate your browserodownload an alternative.