Envio normal gratuito para valores superiores a 75 EUR
Pesquisar

Contacte-nos

1

Tema

A fim de melhor o ajudar, selecione um tópico

Selecione o assunto/tema *
Informação sobre produtos
Promoções
Encomendas online
Troca
entrega
Pagamento
Problema no Website
Swarovski Club
Subscrição SCS
Garantia
Reparação
Outro
$(this).closest('#contactTopicFormConfigWrapper').find('.js-contactTopicFormConfig') .formValidation( { autoFocus: false, framework: 'bootstrap', icon: { valid: null, invalid: null, validating: null }, fields: { 'values[contactTopicFormDefinition_contactTopic]': { trigger: 'change', validators: { notEmpty: { message: 'Selecione o assunto\/tema', message_en: 'Selecione o assunto\/tema' } } } } } ) .on('success.field.fv', function() { /* note: we need to check if there is an error in the form, as the plugin does a validation on field level. Validating the whole form on blur of a field is no option, as the customer does not want to see error messages on all fields when entering one field. In case of an error on at least one field we disable the submit button manually */ var $form = $(this).closest('form'); if ($form.find('.form-group.has-error').length > 0) { var $button = $form.find('.js-button'); if (!$button.hasClass('disabled')) { $button.addClass('disabled'); } } }) .on('err.field.fv', function(e, data) { /* * On error field validation, enable submit button. * Source: https://old.formvalidation.io/examples/enabling-submit-button/ */ data.fv.disableSubmitButtons(false); if(data.element.closest('.form-combo-molecule').length){ /* Get the messages of field */ var messages = data.fv.getMessages(data.element); /* Get the error message content of the field */ var errorContent = data.element.closest('.form-combo-molecule').find('.errors'); /* Get the hidden error message of the field */ var errorField = errorContent.find('.swa-form-input__error-message[data-field="' + data.field + '"][style="display: none;"]'); /* Loop over the messages */ for (var i in messages) { if (errorField[1] == undefined) { var newErrorContainer = document.createElement("small"); $(newErrorContainer).attr("class", "swa-form-input__error-message swa-headline-sans--supertiny"); $(newErrorContainer).attr("data-field", data.field); $(newErrorContainer).attr("data-fv-validator", "callback"); $(newErrorContainer).attr("data-fv-for", $(data.element[0]).attr("name") ); $(newErrorContainer).attr("data-fv-result", "INVALID"); $(newErrorContainer).attr("data-tracked", "true"); $(newErrorContainer).html(messages[i]); if (errorContent.text().includes(messages[i])) { $(newErrorContainer).hide(); } errorContent.append(newErrorContainer); } } } }) .on('success.field.fv', function(e, data) { /* * On success field validation, enable submit button. * Source: https://old.formvalidation.io/examples/enabling-submit-button/ */ data.fv.disableSubmitButtons(false); /* Remove the field messages */ $errorContent = data.element.closest('.form-combo-molecule').find('.errors'); $errorContent.find('.swa-form-input__error-message[data-field="' + data.field + '"]').remove(); $errorContent.find('.swa-form-input__error-message[data-fv-result="INVALID"]').removeAttr("style"); }) .on('success.form.fv', function() { var formId = 'ShortContactTopic'; if (!formId || formId === 'cfRequest' || formId === 'cfResponse') { formId = 'contactTopicFormDefinition'; } ACC.tracking.pushFormSubmit(formId); }); var replaceDatePatternWithValue = function(mandatory, fieldConfigCode, fieldConfigPattern) { var date = fieldConfigPattern.toUpperCase(); var year = $("#" + fieldConfigCode + "_year").val(); var month = $("#" + fieldConfigCode + "_month").val(); var day = $("#" + fieldConfigCode + "_day").val(); date = date.replace(/[Y]+/, year); date = date.replace(/[M]+/, month); date = date.replace(/[D]+/, day); var hiddenDateField = $('.js-' + fieldConfigCode + '_hidden'); if (mandatory) { hiddenDateField.val(date); } else { hiddenDateField.val(date == "" ? "" : date); } }; var triggerFormValidation = function(fieldId, mandatory, fieldCode, dateFormat) { replaceDatePatternWithValue(mandatory, fieldCode, dateFormat); $('.js-fieldCode').formValidation('revalidateField', 'values[fieldCode_'+ fieldId + ']'); }; var removeDateMoleculeError = function(molecule) { if(molecule.hasClass('has-error')){ molecule.removeClass('has-error'); molecule.find('.help-block').find('span').remove(); } };
2

Assunto

Selecione um dos seguintes assuntos

Selecione o assunto/tema *
Qual é a hiperligação de rastreamento da minha encomenda?
Um artigo da minha encomenda chegou danificado
Um artigo da minha encomenda não foi enviado
Pode alterar o meu endereço de entrega?
Como poderei enviar a minha encomenda para outro país?
Outro
Como renovo a minha subscrição?
Como me torno sócio SCS?
Quando irei receber o meu pacote de subscrição?
Outro
O meu artigo pode ser reparado?
Qual o estado da minha reparação?
Quanto custa uma reparação?
Porque devo deslocar-me a uma loja para a reparação de um artigo?
Outro
Poderia indicar o tamanho do produto?
Onde está disponível este produto?
Quais as opções de cores disponíveis?
Outro
O meu endereço postal não é reconhecido como um endereço válido
Não consigo concluir o processo de pagamento da compra
Posso repor a palavra-passe da minha conta?
Não consigo iniciar sessão na minha conta
Outro
Outro
Como cancelo a minha subscrição da newsletter do Swarovski Club?
Por que motivo continuo a receber e-mails da Swarovski depois de cancelar a subscrição da newsletter?
O meu cupão Swarovski Club não funciona
O meu cupão de desconto Swarovski Club pode ser alargado?
O meu cupão de desconto Swarovski Club pode ser usado em artigos em saldo?
Como utilizo o meu cupão de oferta de aniversário?
Outro
O meu produto está coberto pela garantia?
Qual é a vossa política de garantia?
Outro
Posso trocar um produto da minha encomenda online?
Posso trocar um produto comprado numa loja de outro país?
Posso trocar a minha compra online numa loja?
Outro
Por que motivo o meu cartão presente eletrónico não é aceite online?
Posso usar mais de 1 cartão presente eletrónico para pagamento?
Como faço para pagar uma compra online com um cartão presente eletrónico?
Por que motivo o meu pagamento foi rejeitado?
Por que motivo o meu pagamento foi reembolsado?
Outro
Poderia dar informações sobre a promoção atual?
Pode estender a promoção?
Por que motivo a minha compra não é elegível para a promoção?
Outro
Poderia reenviar a confirmação da minha encomenda?
Qual é o estado da minha encomenda online?
Posso cancelar a minha encomenda online completa?
Posso cancelar parte da minha encomenda online?
Pode alterar o meu endereço de faturação?
Como posso devolver a minha encomenda online?
Qual é a vossa política de devoluções online?
Qual é o estado do meu reembolso online?
Outro
$(this).closest('#contactSubjectFormConfigWrapper').find('.js-contactSubjectFormConfig') .formValidation( { autoFocus: false, framework: 'bootstrap', icon: { valid: null, invalid: null, validating: null }, fields: { 'values[contactSubjectFormDefinition_contactSubject]': { trigger: 'change', validators: { notEmpty: { message: 'Selecione o assunto\/tema', message_en: 'Selecione o assunto\/tema' } } } } } ) .on('success.field.fv', function() { /* note: we need to check if there is an error in the form, as the plugin does a validation on field level. Validating the whole form on blur of a field is no option, as the customer does not want to see error messages on all fields when entering one field. In case of an error on at least one field we disable the submit button manually */ var $form = $(this).closest('form'); if ($form.find('.form-group.has-error').length > 0) { var $button = $form.find('.js-button'); if (!$button.hasClass('disabled')) { $button.addClass('disabled'); } } }) .on('err.field.fv', function(e, data) { /* * On error field validation, enable submit button. * Source: https://old.formvalidation.io/examples/enabling-submit-button/ */ data.fv.disableSubmitButtons(false); if(data.element.closest('.form-combo-molecule').length){ /* Get the messages of field */ var messages = data.fv.getMessages(data.element); /* Get the error message content of the field */ var errorContent = data.element.closest('.form-combo-molecule').find('.errors'); /* Get the hidden error message of the field */ var errorField = errorContent.find('.swa-form-input__error-message[data-field="' + data.field + '"][style="display: none;"]'); /* Loop over the messages */ for (var i in messages) { if (errorField[1] == undefined) { var newErrorContainer = document.createElement("small"); $(newErrorContainer).attr("class", "swa-form-input__error-message swa-headline-sans--supertiny"); $(newErrorContainer).attr("data-field", data.field); $(newErrorContainer).attr("data-fv-validator", "callback"); $(newErrorContainer).attr("data-fv-for", $(data.element[0]).attr("name") ); $(newErrorContainer).attr("data-fv-result", "INVALID"); $(newErrorContainer).attr("data-tracked", "true"); $(newErrorContainer).html(messages[i]); if (errorContent.text().includes(messages[i])) { $(newErrorContainer).hide(); } errorContent.append(newErrorContainer); } } } }) .on('success.field.fv', function(e, data) { /* * On success field validation, enable submit button. * Source: https://old.formvalidation.io/examples/enabling-submit-button/ */ data.fv.disableSubmitButtons(false); /* Remove the field messages */ $errorContent = data.element.closest('.form-combo-molecule').find('.errors'); $errorContent.find('.swa-form-input__error-message[data-field="' + data.field + '"]').remove(); $errorContent.find('.swa-form-input__error-message[data-fv-result="INVALID"]').removeAttr("style"); }) .on('success.form.fv', function() { var formId = 'ShortContactSubject'; if (!formId || formId === 'cfRequest' || formId === 'cfResponse') { formId = 'contactSubjectFormDefinition'; } ACC.tracking.pushFormSubmit(formId); }); var replaceDatePatternWithValue = function(mandatory, fieldConfigCode, fieldConfigPattern) { var date = fieldConfigPattern.toUpperCase(); var year = $("#" + fieldConfigCode + "_year").val(); var month = $("#" + fieldConfigCode + "_month").val(); var day = $("#" + fieldConfigCode + "_day").val(); date = date.replace(/[Y]+/, year); date = date.replace(/[M]+/, month); date = date.replace(/[D]+/, day); var hiddenDateField = $('.js-' + fieldConfigCode + '_hidden'); if (mandatory) { hiddenDateField.val(date); } else { hiddenDateField.val(date == "" ? "" : date); } }; var triggerFormValidation = function(fieldId, mandatory, fieldCode, dateFormat) { replaceDatePatternWithValue(mandatory, fieldCode, dateFormat); $('.js-fieldCode').formValidation('revalidateField', 'values[fieldCode_'+ fieldId + ']'); }; var removeDateMoleculeError = function(molecule) { if(molecule.hasClass('has-error')){ molecule.removeClass('has-error'); molecule.find('.help-block').find('span').remove(); } };
Assunto *
$(this).closest('#contactSubjectOtherFormConfigWrapper').find('.js-contactSubjectOtherFormConfig') .formValidation( { autoFocus: false, framework: 'bootstrap', icon: { valid: null, invalid: null, validating: null }, fields: { 'values[contactSubjectOtherFormDefinition_contactSubjectTxt]': { trigger: 'keyup', validators: { notEmpty: { message: 'Introduza o assunto', message_en: 'Introduza o assunto' }, stringLength: { message: 'Este campo deve ter entre 0 e 40 caracteres', message_en: 'The number of characters for this field must be between 0 and 40', min: 0 , max: 40 }, } } } } ) .on('success.field.fv', function() { /* note: we need to check if there is an error in the form, as the plugin does a validation on field level. Validating the whole form on blur of a field is no option, as the customer does not want to see error messages on all fields when entering one field. In case of an error on at least one field we disable the submit button manually */ var $form = $(this).closest('form'); if ($form.find('.form-group.has-error').length > 0) { var $button = $form.find('.js-button'); if (!$button.hasClass('disabled')) { $button.addClass('disabled'); } } }) .on('err.field.fv', function(e, data) { /* * On error field validation, enable submit button. * Source: https://old.formvalidation.io/examples/enabling-submit-button/ */ data.fv.disableSubmitButtons(false); if(data.element.closest('.form-combo-molecule').length){ /* Get the messages of field */ var messages = data.fv.getMessages(data.element); /* Get the error message content of the field */ var errorContent = data.element.closest('.form-combo-molecule').find('.errors'); /* Get the hidden error message of the field */ var errorField = errorContent.find('.swa-form-input__error-message[data-field="' + data.field + '"][style="display: none;"]'); /* Loop over the messages */ for (var i in messages) { if (errorField[1] == undefined) { var newErrorContainer = document.createElement("small"); $(newErrorContainer).attr("class", "swa-form-input__error-message swa-headline-sans--supertiny"); $(newErrorContainer).attr("data-field", data.field); $(newErrorContainer).attr("data-fv-validator", "callback"); $(newErrorContainer).attr("data-fv-for", $(data.element[0]).attr("name") ); $(newErrorContainer).attr("data-fv-result", "INVALID"); $(newErrorContainer).attr("data-tracked", "true"); $(newErrorContainer).html(messages[i]); if (errorContent.text().includes(messages[i])) { $(newErrorContainer).hide(); } errorContent.append(newErrorContainer); } } } }) .on('success.field.fv', function(e, data) { /* * On success field validation, enable submit button. * Source: https://old.formvalidation.io/examples/enabling-submit-button/ */ data.fv.disableSubmitButtons(false); /* Remove the field messages */ $errorContent = data.element.closest('.form-combo-molecule').find('.errors'); $errorContent.find('.swa-form-input__error-message[data-field="' + data.field + '"]').remove(); $errorContent.find('.swa-form-input__error-message[data-fv-result="INVALID"]').removeAttr("style"); }) .on('success.form.fv', function() { var formId = 'contactSubjectOther'; if (!formId || formId === 'cfRequest' || formId === 'cfResponse') { formId = 'contactSubjectOtherFormDefinition'; } ACC.tracking.pushFormSubmit(formId); }); var replaceDatePatternWithValue = function(mandatory, fieldConfigCode, fieldConfigPattern) { var date = fieldConfigPattern.toUpperCase(); var year = $("#" + fieldConfigCode + "_year").val(); var month = $("#" + fieldConfigCode + "_month").val(); var day = $("#" + fieldConfigCode + "_day").val(); date = date.replace(/[Y]+/, year); date = date.replace(/[M]+/, month); date = date.replace(/[D]+/, day); var hiddenDateField = $('.js-' + fieldConfigCode + '_hidden'); if (mandatory) { hiddenDateField.val(date); } else { hiddenDateField.val(date == "" ? "" : date); } }; var triggerFormValidation = function(fieldId, mandatory, fieldCode, dateFormat) { replaceDatePatternWithValue(mandatory, fieldCode, dateFormat); $('.js-fieldCode').formValidation('revalidateField', 'values[fieldCode_'+ fieldId + ']'); }; var removeDateMoleculeError = function(molecule) { if(molecule.hasClass('has-error')){ molecule.removeClass('has-error'); molecule.find('.help-block').find('span').remove(); } };
3

Opções de contacto

Escolha a sua opção de contacto preferida

E-mail

Tempo de espera previsto: 1- 3 dias úteis

Se tiver uma questão ou precisar de mais informações, contacte-nos utilizando o formulário abaixo. Teremos todo o prazer em ajudar.

Nome próprio *
Apelido *
Telefone
E-mail *
País *
Afeganistão
Albânia
Alemanha
Andorra
Angola
Anguilla
Antártida
Antígua e Barbuda
Argentina
Argélia
Arménia
Aruba
Arábia Saudita
Austrália
Azerbaijão
Bahamas
Bahrain
Bangladesh
Barbados
Belize
Benim
Bermudas
Bielorrússia
Bolívia
Bonaire, Santo Eustáquio e Saba
Botsuana
Brasil
Brunei Darussalam
Bulgária
Burkina Faso
Burundi
Butão
Bélgica
Bósnia-Herzegovina
Cabo Verde
Camarões
Camboja
Canadá
Cazaquistão
Chade
Chile
China continental
Chipre
Coletividade de São Bartolomeu
Colômbia
Comores
Congo
Congo, República Democrática do
Coreia, República Popular Democrática da
Coreia, República da
Costa Rica
Costa do Marfim
Croácia
Cuba
Curaçau
Dinamarca
Djibuti
Dominica
Egipto
El Salvador
Emirados Árabes Unidos
Equador
Eritreia
Eslováquia
Eslovénia
Espanha
Estados Unidos da América
Estónia
Etiópia
Fiji
Filipinas
Finlândia
França
Gabão
Gana
Geórgia
Gibraltar
Granada
Gronelândia
Grécia
Guadalupe
Guam
Guatemala
Guernsey
Guiana
Guiana Francesa
Guiné
Guiné Equatorial
Guiné-Bissau
Gâmbia
Haiti
Honduras
Hungria
Ilha Bouvet
Ilha Heard e Ilhas McDonald
Ilha Norfolk
Ilha de Man
Ilha de Natal
Ilhas Aland
Ilhas Caimão
Ilhas Cocos (Keeling)
Ilhas Cook
Ilhas Faroé
Ilhas Geórgia do Sul e Sandwich do Sul
Ilhas Malvinas
Ilhas Marianas Setentrionais
Ilhas Marshall
Ilhas Menores Distantes dos Estados Unidos
Ilhas Salomão
Ilhas Turcas e Caicos
Ilhas Virgens Americanas
Ilhas Virgens Britânicas
Indonésia
Iraque
Irlanda
Irão
Islândia
Israel
Itália
Iémen
Jamahiriya Árabe da Líbia
Jamaica
Japão
Jersey
Jordânia
Kiribati
Kuwait
Lesoto
Letónia
Libéria
Liechtenstein
Lituânia
Luxemburgo
Líbano
Macedónia
Madagáscar
Malawi
Maldivas
Mali
Malta
Malásia
Marrocos
Martinica
Mauritânia
Maurícia
Mayotte
Micronésia, Estados Federados da
Moldávia
Mongólia
Montenegro
Montserrat
Moçambique
Myanmar
México
Mónaco
Namíbia
Nauru
Nepal
Nicarágua
Nigéria
Niuê
Noruega
Nova Caledónia
Nova Zelândia
Níger
Omã
Palau
Panamá
Papua-Nova Guiné
Paquistão
Paraguai
Países Baixos
Peru
Pitcairn
Polinésia Francesa
Polónia
Porto Rico
Portugal
Qatar
Quirguistão
Quénia
RAE de Hong Kong
RAE de Macau
Região de Taiwan
Reino Unido
República Centro-Africana
República Checa
República Democrática Popular do Laos
República Dominicana
República Árabe da Síria
Reunião
Roménia
Ruanda
Sahara Ocidental
Saint Martin (parte francesa)
Samoa
Samoa Americana
Santa Helena, Ascensão e Tristão da Cunha
Santa Lúcia
Santa Sé (Estado da Cidade do Vaticano)
Senegal
Serra Leoa
Seychelles
Singapura
Sint Maarten (parte neerlandesa)
Somália
Sri Lanka
Suazilândia
Sudão
Suriname
Suécia
Suíça
Svalbard e Jan Mayen
São Cristóvão e Nevis
São Marino
São Pedro e Miquelão
São Tomé e Príncipe
São Vicente e Granadinas
Sérvia
Tailândia
Tajiquistão
Tanzânia
Território Britânico do Oceano Índico
Território Palestiniano
Territórios Franceses do Sul
Timor-Leste
Togo
Tonga
Toquelau
Trinidad e Tobago
Tunísia
Turquemenistão
Turquia
Tuvalu
Ucrânia
Uganda
Uruguai
Uzbequistão
Vanuatu
Venezuela
Vietname
Wallis e Futuna
Zimbabué
Zâmbia
África do Sul
Áustria
Índia
Número do pedido
Número da reparação
Assunto *
0
É membro da Swarovski Crystal Society (SCS)?
Número de membro *
Restam 1000 caracteres
Selecione o assunto/tema *
Informação sobre produtos
Promoções
Encomendas online
Troca
entrega
Pagamento
Problema no Website
Swarovski Club
Subscrição SCS
Garantia
Reparação
Outro
Selecione o assunto/tema *
Qual é a hiperligação de rastreamento da minha encomenda?
Um artigo da minha encomenda chegou danificado
Um artigo da minha encomenda não foi enviado
Pode alterar o meu endereço de entrega?
Como poderei enviar a minha encomenda para outro país?
Outro
Como renovo a minha subscrição?
Como me torno sócio SCS?
Quando irei receber o meu pacote de subscrição?
Outro
O meu artigo pode ser reparado?
Qual o estado da minha reparação?
Quanto custa uma reparação?
Porque devo deslocar-me a uma loja para a reparação de um artigo?
Outro
Poderia indicar o tamanho do produto?
Onde está disponível este produto?
Quais as opções de cores disponíveis?
Outro
O meu endereço postal não é reconhecido como um endereço válido
Não consigo concluir o processo de pagamento da compra
Posso repor a palavra-passe da minha conta?
Não consigo iniciar sessão na minha conta
Outro
Outro
Como cancelo a minha subscrição da newsletter do Swarovski Club?
Por que motivo continuo a receber e-mails da Swarovski depois de cancelar a subscrição da newsletter?
O meu cupão Swarovski Club não funciona
O meu cupão de desconto Swarovski Club pode ser alargado?
O meu cupão de desconto Swarovski Club pode ser usado em artigos em saldo?
Como utilizo o meu cupão de oferta de aniversário?
Outro
O meu produto está coberto pela garantia?
Qual é a vossa política de garantia?
Outro
Posso trocar um produto da minha encomenda online?
Posso trocar um produto comprado numa loja de outro país?
Posso trocar a minha compra online numa loja?
Outro
Por que motivo o meu cartão presente eletrónico não é aceite online?
Posso usar mais de 1 cartão presente eletrónico para pagamento?
Como faço para pagar uma compra online com um cartão presente eletrónico?
Por que motivo o meu pagamento foi rejeitado?
Por que motivo o meu pagamento foi reembolsado?
Outro
Poderia dar informações sobre a promoção atual?
Pode estender a promoção?
Por que motivo a minha compra não é elegível para a promoção?
Outro
Poderia reenviar a confirmação da minha encomenda?
Qual é o estado da minha encomenda online?
Posso cancelar a minha encomenda online completa?
Posso cancelar parte da minha encomenda online?
Pode alterar o meu endereço de faturação?
Como posso devolver a minha encomenda online?
Qual é a vossa política de devoluções online?
Qual é o estado do meu reembolso online?
Outro
* Campos obrigatórios
$(this).closest('#pt-contactEmailFormConfigWrapper').find('.js-pt-contactEmailFormConfig') .formValidation( { autoFocus: false, framework: 'bootstrap', icon: { valid: null, invalid: null, validating: null }, fields: { 'values[contactEmailFormDefinition_title]': { trigger: 'change', validators: { } }, 'values[contactEmailFormDefinition_firstName]': { trigger: 'blur', validators: { callback: { callback: function(value, validator, $field) { var messages = []; var messagesEN = []; var errorOccured = false; if ($field.attr('regexCheckDisabled') === 'true') { return true; } if (!value.trim().match(new RegExp('^[. \\u3000\'\\-a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F\\u4E00-\\u9FFF\\u3400-\\u4DBF\\u3040-\\u30FF\\uF900-\\uFAFF\\uFF66-\\uFF9F\\u1100-\\u11FF\\u3130-\\u318F\\uA960-\\uA97F\\uAC00-\\uD7FF\\u3005\\u3006\\u3024\\u3029\\u3031-\\u3035\\u0E00-\\u0E7F]*$', ''))) { messages.push('Apenas são permitidas letras'); messagesEN.push('Apenas são permitidas letras'); errorOccured |= true; } if (!value.trim().match(new RegExp('(?:^$)|(?:^.*[a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F]{2}.*$)|(?:^.*[^a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F. \\u3000\'\\-].*$)', ''))) { messages.push('Comprimento mínimo de 2 caracteres'); messagesEN.push('Comprimento mínimo de 2 caracteres'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Introduza o seu nome próprio.', message_en: 'Introduza o seu nome próprio.' }, stringLength: { message: 'Ultrapassou o comprimento máximo de 40 carateres para este campo', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[contactEmailFormDefinition_lastName]': { trigger: 'blur', validators: { callback: { callback: function(value, validator, $field) { var messages = []; var messagesEN = []; var errorOccured = false; if ($field.attr('regexCheckDisabled') === 'true') { return true; } if (!value.trim().match(new RegExp('^[. \\u3000\'\\-a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F\\u4E00-\\u9FFF\\u3400-\\u4DBF\\u3040-\\u30FF\\uF900-\\uFAFF\\uFF66-\\uFF9F\\u1100-\\u11FF\\u3130-\\u318F\\uA960-\\uA97F\\uAC00-\\uD7FF\\u3005\\u3006\\u3024\\u3029\\u3031-\\u3035\\u0E00-\\u0E7F]*$', ''))) { messages.push('Só são permitidas letras'); messagesEN.push('Só são permitidas letras'); errorOccured |= true; } if (!value.trim().match(new RegExp('(?:^$)|(?:^.*[a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F]{2}.*$)|(?:^.*[^a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F. \\u3000\'\\-].*$)', ''))) { messages.push('Comprimento mínimo de 2 caracteres'); messagesEN.push('Comprimento mínimo de 2 caracteres'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Introduza o seu apelido.', message_en: 'Introduza o seu apelido.' }, stringLength: { message: 'Ultrapassou o comprimento máximo de 40 carateres para este campo', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[contactEmailFormDefinition_phone]': { trigger: 'blur', validators: { callback: { callback: function(value, validator, $field) { var messages = []; var messagesEN = []; var errorOccured = false; if ($field.attr('regexCheckDisabled') === 'true') { return true; } if (!value.trim().match(new RegExp('^[\\\\+]{0,1}[0-9\\\\(\\\\)\\- \\\\.]*$', ''))) { messages.push('Introduza o seu número de telefone (apenas números, sem espaços)'); messagesEN.push('Introduza o seu número de telefone (apenas números, sem espaços)'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, stringLength: { message: 'Ultrapassou o comprimento máximo de 20 carateres para este campo', message_en: 'You have exceeded the maximum length of 20 characters for this field', max: 20 }, callbackPhone: { alias: 'callback', message: 'Introduza o seu número de telefone', message_en: 'Introduza o seu número de telefone', callback: function (value, validator, $field) { if (value === '') { return true; } var prefixCountry = $field.siblings('.flag-container').children('.selected-flag').attr('title'); var isValidPrefix = prefixCountry !== undefined && prefixCountry !== 'Unknown'; if (!isValidPrefix) { return false; } var prefix = prefixCountry.split("+")[1]; var isMinimumLength = true; var minLength = ""; if (minLength !== null) { if (value.startsWith("+")) { if ((value.length - prefix.length - 1) < minLength) { isMinimumLength = false; } } else if (value.length < minLength) { isMinimumLength = false; } } return isMinimumLength; } }, } }, 'values[contactEmailFormDefinition_email]': { trigger: 'blur', validators: { regexp: { regexp: new RegExp('^(?=.{0,255}$)(?=.{0,64}@)(?:(?!^\\.)(?!.*\\.@)(?!.*\\.\\.)[a-zA-Z0-9!#.$%&\'*+\/=?^_‘{|}~-]+|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f]){1,62}\")@(?!-)(?!.*\\.-)(?!.*-\\.)(?:[a-zA-Z0-9-]{1,61}\\.){1,126}(?=[a-zA-Z0-9-]*[a-zA-Z][a-zA-Z0-9-]*$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$', ''), message: 'Introduza o seu endereço de e-mail.', message_en: 'Introduza o seu endereço de e-mail.' }, notEmpty: { message: 'Introduza o seu endereço de e-mail.', message_en: 'Introduza o seu endereço de e-mail.' }, stringLength: { message: 'Este campo deve ter entre 0 e 70 caracteres', message_en: 'The number of characters for this field must be between 0 and 70', min: 0 , max: 70 }, } }, 'values[contactEmailFormDefinition_country]': { trigger: 'change', validators: { notEmpty: { message: 'Introduza o seu país\/a sua região.', message_en: 'Introduza o seu país\/a sua região.' } } }, 'values[contactEmailFormDefinition_swaClubMember]': { trigger: 'change', validators: { } }, 'values[contactEmailFormDefinition_scsMember]': { trigger: 'change', validators: { } }, 'values[contactEmailFormDefinition_scsMemberNumber]': { trigger: 'blur', validators: { notEmpty: { message: 'Introduza um n.º de membro SCS', message_en: 'Introduza um n.º de membro SCS' }, stringLength: { message: 'Este campo deve ter entre 0 e 11 caracteres', message_en: 'The number of characters for this field must be between 0 and 11', min: 0 , max: 11 }, } }, 'values[contactEmailFormDefinition_message]': { trigger: 'blur', validators: { notEmpty: { message: 'Introduza uma mensagem', message_en: 'Introduza uma mensagem' }, stringLength: { message: 'Este campo deve ter entre 0 e 1000 caracteres', message_en: 'The number of characters for this field must be between 0 and 1000', min: 0 , max: 1000 }, } }, 'values[contactEmailFormDefinition_contactOrderNo]': { trigger: 'blur', validators: { callback: { callback: function(value, validator, $field) { var messages = []; var messagesEN = []; var errorOccured = false; if ($field.attr('regexCheckDisabled') === 'true') { return true; } if (!value.trim().match(new RegExp('^([a-zA-Z0-9]{15})$|^$', ''))) { messages.push('Please enter a valid order number (15 digits)'); messagesEN.push('Please enter a valid order number (15 digits)'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, stringLength: { message: 'Este campo deve ter entre 0 e 40 caracteres', message_en: 'The number of characters for this field must be between 0 and 40', min: 0 , max: 40 }, } }, 'values[contactEmailFormDefinition_contactRepairNo]': { trigger: 'blur', validators: { stringLength: { message: 'Este campo deve ter entre 0 e 40 caracteres', message_en: 'The number of characters for this field must be between 0 and 40', min: 0 , max: 40 }, } }, 'values[contactEmailFormDefinition_contactTopic]': { trigger: 'change', validators: { notEmpty: { message: 'Selecione o assunto\/tema', message_en: 'Selecione o assunto\/tema' } } }, 'values[contactEmailFormDefinition_contactSubject]': { trigger: 'change', validators: { notEmpty: { message: 'Selecione o assunto\/tema', message_en: 'Selecione o assunto\/tema' } } }, 'values[contactEmailFormDefinition_contactSubjectTxt]': { trigger: 'blur', validators: { notEmpty: { message: 'Introduza o assunto', message_en: 'Introduza o assunto' }, stringLength: { message: 'Este campo deve ter entre 0 e 40 caracteres', message_en: 'The number of characters for this field must be between 0 and 40', min: 0 , max: 40 }, } } } } ) .on('success.field.fv', function() { /* note: we need to check if there is an error in the form, as the plugin does a validation on field level. Validating the whole form on blur of a field is no option, as the customer does not want to see error messages on all fields when entering one field. In case of an error on at least one field we disable the submit button manually */ var $form = $(this).closest('form'); if ($form.find('.form-group.has-error').length > 0) { var $button = $form.find('.js-button'); if (!$button.hasClass('disabled')) { $button.addClass('disabled'); } } }) .on('err.field.fv', function(e, data) { /* * On error field validation, enable submit button. * Source: https://old.formvalidation.io/examples/enabling-submit-button/ */ data.fv.disableSubmitButtons(false); if(data.element.closest('.form-combo-molecule').length){ /* Get the messages of field */ var messages = data.fv.getMessages(data.element); /* Get the error message content of the field */ var errorContent = data.element.closest('.form-combo-molecule').find('.errors'); /* Get the hidden error message of the field */ var errorField = errorContent.find('.swa-form-input__error-message[data-field="' + data.field + '"][style="display: none;"]'); /* Loop over the messages */ for (var i in messages) { if (errorField[1] == undefined) { var newErrorContainer = document.createElement("small"); $(newErrorContainer).attr("class", "swa-form-input__error-message swa-headline-sans--supertiny"); $(newErrorContainer).attr("data-field", data.field); $(newErrorContainer).attr("data-fv-validator", "callback"); $(newErrorContainer).attr("data-fv-for", $(data.element[0]).attr("name") ); $(newErrorContainer).attr("data-fv-result", "INVALID"); $(newErrorContainer).attr("data-tracked", "true"); $(newErrorContainer).html(messages[i]); if (errorContent.text().includes(messages[i])) { $(newErrorContainer).hide(); } errorContent.append(newErrorContainer); } } } }) .on('success.field.fv', function(e, data) { /* * On success field validation, enable submit button. * Source: https://old.formvalidation.io/examples/enabling-submit-button/ */ data.fv.disableSubmitButtons(false); /* Remove the field messages */ $errorContent = data.element.closest('.form-combo-molecule').find('.errors'); $errorContent.find('.swa-form-input__error-message[data-field="' + data.field + '"]').remove(); $errorContent.find('.swa-form-input__error-message[data-fv-result="INVALID"]').removeAttr("style"); }) .on('success.form.fv', function() { var formId = 'contactEmail'; if (!formId || formId === 'cfRequest' || formId === 'cfResponse') { formId = 'contactEmailFormDefinition'; } ACC.tracking.pushFormSubmit(formId); }); var replaceDatePatternWithValue = function(mandatory, fieldConfigCode, fieldConfigPattern) { var date = fieldConfigPattern.toUpperCase(); var year = $("#" + fieldConfigCode + "_year").val(); var month = $("#" + fieldConfigCode + "_month").val(); var day = $("#" + fieldConfigCode + "_day").val(); date = date.replace(/[Y]+/, year); date = date.replace(/[M]+/, month); date = date.replace(/[D]+/, day); var hiddenDateField = $('.js-' + fieldConfigCode + '_hidden'); if (mandatory) { hiddenDateField.val(date); } else { hiddenDateField.val(date == "" ? "" : date); } }; var triggerFormValidation = function(fieldId, mandatory, fieldCode, dateFormat) { replaceDatePatternWithValue(mandatory, fieldCode, dateFormat); $('.js-fieldCode').formValidation('revalidateField', 'values[fieldCode_'+ fieldId + ']'); }; var removeDateMoleculeError = function(molecule) { if(molecule.hasClass('has-error')){ molecule.removeClass('has-error'); molecule.find('.help-block').find('span').remove(); } };
Telefone

Telefone

Tempo de espera previsto: 2- 5 Minutos

Serviço ao cliente Portugal

Swarovski Ibérica S.A.
C/ Llacuna, 10-20 1ª Planta
08005 Barcelona
España

Horário de abertura: Seg - Sex: 09:00 - 17:00

Telefone:

+351 800 918 668