CINXE.COM
Tilaus - Simply.com
<!-- We are honoured you clicked "View source" :) --> <!DOCTYPE html> <html data-bs-theme="light" lang="fi" dir="ltr" class="no-js "> <head> <link rel="preconnect" href="https://static.simply.com" crossorigin> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <title>Tilaus - Simply.com</title> <meta charset="UTF-8"> <meta name="author" content="Tom Sommer"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5"> <meta name="format-detection" content="telephone=no"> <meta name="description" content="Tilaa tuote Simply.comilta"> <meta name="keywords" content="webhotelli, verkkotunnus, webhotellit, halpa webhotelli, osta verkkotunnus"> <meta property="fb:pages" content="37207469397"> <meta property="fb:admins" content="630139270"> <meta property="fb:app_id" content="157484727617117"> <meta property="og:type" content="website"> <meta property="og:title" content="Tilaus"> <meta property="og:description" content="Tilaa tuote Simply.comilta"> <meta property="og:site_name" content="Simply.com"> <meta property="og:url" content="https://www.simply.com/fi/order/?id=basicsuite"> <!-- <meta property="og:url" content="https://www.simply.com/fi/order/">--> <meta property="og:image" content="https://static.simply.com/assets/simply-logo-opengraph.png?aeac4832a7a69eeec2118e51db8e9a1684af5927"> <meta property="og:image" content="https://static.simply.com/assets/simply-logo-opengraph-wide.png?aeac4832a7a69eeec2118e51db8e9a1684af5927"> <!-- <meta property="og:image" content="https://static.simply.com/assets/simply-logo-color-square-text.png"> --> <meta property="og:locale" content="fi_FI"> <!-- <meta property="og:locale:alternate" content="da_DK"> --> <!-- <meta property="og:locale:alternate" content="de_DE"> --> <!-- <meta property="og:locale:alternate" content="en_US"> --> <!-- <meta property="og:locale:alternate" content="es_ES"> --> <!-- <meta property="og:locale:alternate" content="fr_FR"> --> <!-- <meta property="og:locale:alternate" content="it_IT"> --> <!-- <meta property="og:locale:alternate" content="nl_NL"> --> <!-- <meta property="og:locale:alternate" content="nn_NO"> --> <!-- <meta property="og:locale:alternate" content="pl_PL"> --> <!-- <meta property="og:locale:alternate" content="pt_PT"> --> <!-- <meta property="og:locale:alternate" content="sv_SE"> --> <meta name="twitter:card" content="summary"> <meta name="twitter:site" content="@simplydotcom"> <meta name="twitter:creator" content="@simplydotcom"> <meta name="twitter:title" content="Tilaus"> <meta name="twitter:description" content="Tilaa tuote Simply.comilta"> <meta name="twitter:domain" content="simply.com"> <meta name="twitter:image" content="https://static.simply.com/assets/simply-logo-twitter.png?aeac4832a7a69eeec2118e51db8e9a1684af5927"> <meta name="apple-mobile-web-app-capable" content="no"> <meta name="apple-mobile-web-app-title" content="Simply.com"> <meta name="application-name" content="Simply.com"> <meta name="theme-color" content="#fff" media="(prefers-color-scheme: light)"> <meta name="theme-color" content="#000" media="(prefers-color-scheme: dark)"> <meta name="XSRF-TOKEN" content="6fd59fa4a910375071180f8bed5aa4bc6f73d8b8"> <!-- <link rel="icon" href="data:;base64,iVBORw0KGgo="> --> <link rel="icon" type="image/png" href="https://static.simply.com/assets/simply-favicon-96px.png?aeac4832a7a69eeec2118e51db8e9a1684af5927" sizes="96x96"> <link rel="icon" type="image/png" href="https://static.simply.com/assets/simply-favicon-180px.png?aeac4832a7a69eeec2118e51db8e9a1684af5927" sizes="180x180"> <link rel="icon" type="image/svg+xml" href="https://static.simply.com/assets/simply-favicon.svg?aeac4832a7a69eeec2118e51db8e9a1684af5927"> <link rel="apple-touch-icon" type="image/png" href="https://static.simply.com/assets/simply-favicon-96px.png?aeac4832a7a69eeec2118e51db8e9a1684af5927" sizes="96x96"> <link rel="apple-touch-icon" type="image/png" href="https://static.simply.com/assets/simply-favicon-180px.png?aeac4832a7a69eeec2118e51db8e9a1684af5927" sizes="180x180"> <link rel="mask-icon" href="https://static.simply.com/assets/simply-favicon-maskicon.svg?aeac4832a7a69eeec2118e51db8e9a1684af5927" color="#aa2484"> <!-- <link rel="alternate" hreflang="x-default" href="https://www.simply.com/order/?id=basicsuite"> --> <link rel="alternate" hreflang="da" href="https://www.simply.com/dk/order/?id=basicsuite"> <link rel="alternate" hreflang="de" href="https://www.simply.com/de/order/?id=basicsuite"> <link rel="alternate" hreflang="en" href="https://www.simply.com/en/order/?id=basicsuite"> <link rel="alternate" hreflang="es" href="https://www.simply.com/es/order/?id=basicsuite"> <link rel="alternate" hreflang="fr" href="https://www.simply.com/fr/order/?id=basicsuite"> <link rel="alternate" hreflang="it" href="https://www.simply.com/it/order/?id=basicsuite"> <link rel="alternate" hreflang="nl" href="https://www.simply.com/nl/order/?id=basicsuite"> <link rel="alternate" hreflang="nb" href="https://www.simply.com/no/order/?id=basicsuite"> <link rel="alternate" hreflang="pl" href="https://www.simply.com/pl/order/?id=basicsuite"> <link rel="alternate" hreflang="pt" href="https://www.simply.com/pt/order/?id=basicsuite"> <link rel="alternate" hreflang="fi" href="https://www.simply.com/fi/order/?id=basicsuite"> <link rel="alternate" hreflang="sv" href="https://www.simply.com/se/order/?id=basicsuite"> <!-- Google Tag Manager --> <script>!function () { "use strict"; function e(e) { return function (e) { for (var t = 0, r = document.cookie.split(";"); t < r.length; t++) { var n = r[t].split("="); if (n[0].trim() === e) return n[1] } }(e) } function t(e) { return localStorage.getItem(e) } function r(e) { return window[e] } function n(e, t) { var r = document.querySelector(e); return t ? null == r ? void 0 : r.getAttribute(t) : null == r ? void 0 : r.textContent } !function (o, i, a, c, u, l, s, v, d, f, g) { var E, I, m, T; try { I = d && (m = navigator.userAgent, (T = new RegExp("Version/([0-9._]+)(.*Mobile)?.*Safari.*").exec(m)) && parseFloat(T[1]) >= 16.4) ? function (o, i, a) { void 0 === i && (i = ""); var c = {cookie: e, localStorage: t, jsVariable: r, cssSelector: n}, u = Array.isArray(i) ? i : [i]; if (o && c[o]) for (var l = c[o], s = 0, v = u; s < v.length; s++) { var d = v[s], f = a ? l(d, a) : l(d); if (f) return f } else console.warn("invalid uid source", o) }(d, "user_id", "") : void 0 } catch (e) { console.error(e) } var _ = o; _[c] = _[c] || [], _[c].push({"gtm.start": (new Date).getTime(), event: "gtm.js"}); var p = i.getElementsByTagName(a)[0], A = I ? "&bi=" + encodeURIComponent(I) : "", N = i.createElement(a), D = I ? "kp" + v : v, R = !I && s ? s : "https://gtm.simply.com"; N.async = !0, N.src = R + "/" + D + ".js?id=GTM-TZV8MD" + A, null === (E = p.parentNode) || void 0 === E || E.insertBefore(N, p) }(window, document, "script", "dataLayer", 0, 0, "", "qwpsducp", "cookie") }();</script> <!-- End Google Tag Manager --> <script> window.dataLayer = window.dataLayer || []; function gtag() { window.dataLayer.push(arguments) } gtag('js', new Date()); </script> <script> var _hsq = window._hsq || []; function hsq() { _hsq.push(arguments); } </script> <script> var translations = []; translations['LabelOkay'] = "Selv\u00e4"; translations['LabelIAmSure'] = "Kyll\u00e4, olen varma"; translations['LabelNoCancel'] = "Peruutta"; translations['LabelAreYouSure'] = "Oletko varma?"; translations['TextAreYouSure'] = "Oletko varma?"; translations['TextCapsLockEnabled'] = "Caps-Lock on p\u00e4\u00e4ll\u00e4 tietokoneessasi."; translations['IubendaHeadline'] = "Sin\u00e4 hallitset tietojasi"; </script> <script> document.documentElement.classList.remove('no-js'); document.documentElement.classList.add('js'); </script> <link rel="stylesheet" href="https://static.simply.com/assets/build/app.css?_r=aeac4832a7a69eeec2118e51db8e9a1684af5927"> <script src="https://static.simply.com/assets/build/app.js?_r=aeac4832a7a69eeec2118e51db8e9a1684af5927" defer="defer"></script> <link rel="alternate" type="application/rss+xml" title="Simply.com - Blogi (RSS)" href="https://blog.simply.com/feed/rss/"> <link rel="search" type="application/opensearchdescription+xml" href="/fi/opensearch-domaincheck.xml" title="Simply.com - Domainitesti"> <link rel="search" type="application/opensearchdescription+xml" href="/fi/opensearch-support.xml" title="Simply.com - Asiakaspalvelu"> <script> const SimplyComIsUserLoggedIn = false; const SimplyComIsInternalSupport = false; </script> <script> gtag({'VisitorIsLoggedIn': SimplyComIsUserLoggedIn}); gtag({'VisitorIsInternalSupport': SimplyComIsInternalSupport}); </script> <script type="text/javascript"> var _iub = _iub || []; _iub.csLangConfiguration = { 'da': { "cookiePolicyId": 85398683, // "cookiePolicyUrl": "https://www.simply.com/dk/privacy-policy/", }, 'sv': { "cookiePolicyId": 64422143, // "cookiePolicyUrl": "https://www.simply.com/se/privacy-policy/", }, 'no': { "cookiePolicyId": 11901605, // "cookiePolicyUrl": "https://www.simply.com/no/privacy-policy/", }, 'pl': { "cookiePolicyId": 79851764, // "cookiePolicyUrl": "https://www.simply.com/pl/privacy-policy/", }, 'fi': { "cookiePolicyId": 76653875, // "cookiePolicyUrl": "https://www.simply.com/fi/privacy-policy/", }, 'de': { "cookiePolicyId": 40978846, // "cookiePolicyUrl": "https://www.simply.com/de/privacy-policy/", }, 'fr': { "cookiePolicyId": 68648577, //"cookiePolicyUrl": "https://www.simply.com/fr/privacy-policy/", }, }; _iub.csConfiguration = { "askConsentAtCookiePolicyUpdate": false, "cookiePolicyId": 85215963, "floatingPreferencesButtonDisplay": "bottom-left", "localConsentDomain": "www.simply.com", "perPurposeConsent": true, 'cookiePolicyInOtherWindow': false, "purposes": "1,2,3,4,5", 'promptToAcceptOnBlockedElements': true, "preferenceCookie": { "expireAfter": 360 }, "siteId": 3298105, "i18n": { "da": { "banner": { "title": translations['IubendaHeadline'] } }, "en-GB": { "banner": { "title": translations['IubendaHeadline'] } }, "sv": { "banner": { "title": translations['IubendaHeadline'] } }, "no": { "banner": { "title": translations['IubendaHeadline'] } }, "pl": { "banner": { "title": translations['IubendaHeadline'] } }, "fi": { "banner": { "title": translations['IubendaHeadline'] } }, "de": { "banner": { "title": translations['IubendaHeadline'] } }, "fr": { "banner": { "title": translations['IubendaHeadline'] } } }, // "cookiePolicyUrl": "https://www.simply.com/privacy-policy/", "banner": { "acceptButtonCaptionColor": "var(--bs-white)", "acceptButtonColor": "var(--bs-success)", "acceptButtonDisplay": true, 'applyStyles ': false, "backgroundColor": "var(--bs-white)", 'backgroundOverlay': true, 'brandBackgroundColor': "var(--bs-white)", 'brandTextColor': "var(--bs-black)", "closeButtonDisplay": false, "continueWithoutAcceptingButtonColor": "var(--bs-light)", "customizeButtonCaptionColor": "var(--bs-black)", "customizeButtonColor": "var(--bs-light)", "customizeButtonDisplay": true, "explicitWithdrawal": true, "floatingPreferencesButtonColor": "var(--bs-light)", "fontSizeBody": "14px", "linksColor": "var(--bs-primary)", "listPurposes": true, 'logo': 'https://static.simply.com/assets/simply-logo-color.svg', "position": "float-center", "rejectButtonCaptionColor": "var(--bs-white)", "rejectButtonColor": "var(--bs-success)", "rejectButtonDisplay": true, "showPurposesToggles": true, "textColor": "var(--bs-black)", }, "callback": { "onPreferenceExpressed": function (preference) { console.log('onPreferenceExpressed', preference); }, "onPreferenceExpressedOrNotNeeded": function (preference) { dataLayer.push({ iubenda_ccpa_opted_out: _iub.cs.api.isCcpaOptedOut(), }); var otherPreferences = _iub.cs.api.getPreferences(); if (otherPreferences) { var usprPreferences = otherPreferences.uspr; if (usprPreferences) { for (var purposeName in usprPreferences) { if (usprPreferences[purposeName]) { dataLayer.push({ event: 'iubenda_consent_given_purpose_' + purposeName, }); } } } } if (!preference) { dataLayer.push({ event: 'iubenda_preference_not_needed', }); } else if (preference.consent === true) { dataLayer.push({ event: 'iubenda_consent_given', }); } else if (preference.consent === false) { dataLayer.push({ event: 'iubenda_consent_rejected', }); } else if (preference.purposes) { for (var purposeId in preference.purposes) { if (preference.purposes[purposeId]) { dataLayer.push({ event: 'iubenda_consent_given_purpose_' + purposeId, }); } } } } }, }; </script> <script type="text/javascript" src="https://cs.iubenda.com/autoblocking/3298105.js"></script> <script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Simply.com", "url": "https://www.simply.com/", "logo": "https://www.simply.com/assets/simply-logo-color-square.png", "sameAs": [ "https://www.facebook.com/simplycom", "https://www.instagram.com/simplycom/", "https://www.trustpilot.com/review/simply.com", "https://www.twitter.com/simplydotcom", "https://www.linkedin.com/company/simplycom", "https://da.wikipedia.org/wiki/Simply.com" ], "contactPoint": [ { "@type": "ContactPoint", "telephone": "+45-86515030", "contactType": "customer service", "availableLanguage": [ "English", "Danish" ] }, { "@type": "ContactPoint", "telephone": "+46-776650650", "contactType": "customer service", "availableLanguage": [ "English", "Swedish" ] } ] } </script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "WebSite", "url": "https://www.simply.com/", "name": "Simply.com", "potentialAction": [ { "@type": "SearchAction", "target": "https://www.simply.com/support/search/?q={search_term_string}", "query-input": "required name=search_term_string" }, { "@type": "SearchAction", "target": "https://www.simply.com/domains/?q={search_term_string}", "query-input": "required name=search_term_string" } ] } </script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "WebPage", "url": "https://www.simply.com/", "name": "Simply.com" } </script> <script src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit&onload=onloadTurnstileCallback" defer="defer"></script> <script> window.onloadTurnstileCallback = () => { let element = document.getElementById('cf-turnstile'); if (element) { window.turnstile.render(element, { sitekey: "0x4AAAAAAABQFoXasJ1MPHI3", action: element.dataset.action, 'callback': (token) => { console.log('Captcha success'); if (element.dataset.callback) { eval(element.dataset.callback)(token); } }, 'unsupported-callback': () => { alert('Captcha not supported. Change browser.'); }, 'error-callback': (error) => { // window.turnstile.reset(); if (element.dataset.errorCallback) { eval(element.dataset.errorCallback)(error); } console.log('Turnstile error code: ' + error); window.axios.get('/turnstile-errorlog?error=' + error); alert('Captcha failed. Disable adblockers or try another browser if the problem persists. Error code: ' + error); return false; }, }); if (element.dataset.startCallback) { eval(element.dataset.startCallback)(); } } }; </script> </head> <body> <!-- Google Tag Manager (noscript) --> <noscript> <iframe src="https://gtm.simply.com/ns.html?id=GTM-TZV8MD" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <!-- End Google Tag Manager (noscript) --> <div class="grid-container"> <div class="grid-header"> <section class="container"> <div class="d-flex flex-column gap-1"> <section class="flex-fill text-lg-start text-center align-middle align-items-center collapse show" id="betterlanguage-warning"> <div class="container"> <div class="align-items-center d-flex flex-column flex-md-row gap-2"> <div class="fs-6 d-block"> <i class="rounded-circle flag-icon-squared fi fi-gb"></i> Our website is available in English, switch languages to see content for your location </div> <div class="d-block"> <a class="btn btn-primary btn-sm d-xl-inline" rel="alternate" href="/en/order/?id=basicsuite"><i class="rounded-circle flag-icon-squared fi fi-gb"></i> Switch language to English </a> <button type="button" class="btn btn-sm text-reset" data-bs-toggle="collapse" data-bs-target="#betterlanguage-warning" id="betterlanguage-button"> <i class="fal fa-fw fa-times"></i> </button> </div> </div> </div> </section> <script> window.addEventListener('DOMContentLoaded', () => { document.getElementById('betterlanguage-button').addEventListener('click', () => { sessionStorage.setItem('betterlanguage-show', false) }) document.getElementById('betterlanguage-warning').classList.toggle('show', sessionStorage.getItem('betterlanguage-show') ?? true) }) </script> <noscript> <div class="alert alert-warning" id="noscript-warning"> Selaimestasi on poistettu JavaScript, minkä vuoksi jotkin asiat verkkosivustollamme eivät toimi tarkoitetulla tavalla. </div> </noscript> </div> <nav class="header-navbar navbar navbar-expand-xl gap-3 pt-2 py-xl-4 py-xxl-5 " id="mainmenu"> <a class="navbar-brand p-0 pb-xl-1" href="/fi/"> <img src="//static.simply.com/assets/simply-logo-color.svg?aeac4832a7a69eeec2118e51db8e9a1684af5927" alt="Simply.com"> </a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse p-5 p-xl-0" id="navbarNav"> <!--<div class="d-lg-none pb-5 mb-1 text-end" data-bs-toggle="collapse" data-bs-target="#navbarNav"><i class="fa-duotone fa-xmark fs-6"></i></div> --> <ul class="navbar-nav nav-hover gap-xl-3 me-auto primary-navigation align-items-xl-center text-nowrap"> <li class="nav-item d-xl-none"> <a class="nav-link text-uppercase d-flex justify-content-between d-none" href="/fi/"> <span>Kotisivu</span> <i class="far fa-arrow-right-long d-lg-none"></i> </a> </li> <li class="nav-item"> <a class="nav-link text-uppercase d-flex justify-content-between" href="/fi/domains/"> <span>Domain</span> <i class="far fa-arrow-right-long d-lg-none"></i> </a> </li> <li class="nav-item"> <a class="nav-link text-uppercase d-flex justify-content-between align-items-center" href="/fi/hosting/"> <span>Webhotelli</span> <i class="far fa-arrow-right-long d-lg-none"></i> </a> </li> <li class="nav-item d-xl-none"> <a class="nav-link text-uppercase d-flex justify-content-between align-items-center" href="/fi/email/"> <span>Sähköposti</span> <i class="far fa-arrow-right-long d-lg-none"></i> </a> </li> <li class="nav-item"> <a class="nav-link text-uppercase d-flex justify-content-between align-items-center" href="/fi/websitebuilder/"> <span>Verkkosivuston suunnittelija</span> <i class="far fa-arrow-right-long d-lg-none"></i> </a> </li> <li class="nav-item"> <a class="nav-link text-uppercase d-flex justify-content-between align-items-center" href="/fi/wordpress/"> <span>Wordpress</span> <i class="far fa-arrow-right-long d-lg-none"></i> </a> </li> <li class="nav-item d-xl-none"> <a class="nav-link text-uppercase d-flex justify-content-between align-items-center" href="/fi/woocommerce/"> <span>WooCommerce</span> <i class="far fa-arrow-right-long d-lg-none"></i> </a> </li> </ul> <ul class="navbar-nav secondary-links mt-3 mt-xl-0 rounded-3 border border-xl-0 px-2 p-xl-0 align-items-xl-center"> <li class="nav-item text-truncate"> <a class="nav-link fs-xl-7" href="/fi/support/"> <i class="far fa-fw fa-life-ring d-xl-none"></i> Asiakaspalvelu </a> </li> <li class="nav-item text-truncate"> <a class="nav-link fs-xl-7" href="/fi/webmail/"> <i class="far fa-fw fa-envelope"></i> Webmail </a> </li> <li class="nav-item text-truncate"> <a class="nav-link fs-xl-7" href="/fi/controlpanel/"> <i class="far fa-fw fa-lock"></i> Hallintapaneeli </a> </li> </ul> </div> </nav> </section> </div> <div class="grid-content"> <style> #footer-asides, #sitemap, #topbanners { display: none; } #menu-services, #menu-products { visibility: hidden; } </style> <div class="container pt-3 pb-4" xmlns:v-on="http://www.w3.org/1999/xhtml" id="app-order" v-cloak> <div id="cf-turnstile" data-action="order" data-callback="turnstileCallback"></div> <div class="row"> <div class="col-lg-8"> <h1 class="h2"><i class="fat text-primary text-gradiant fa-fw" v-bind:class="'fa-'+ product.image"></i> Tilaa {{product.name}} </h1> <div v-if="turnstileAuthed === null" class="text-center my-6"> <h6> <i class="fal fa-spin fa-spinner fa-fw text-primary"></i> Tarkistaa selainta.. odota hetki </h6> </div> <div v-if="turnstileAuthed === false" class="text-center text-danger my-6"> <h6> Selainta ei voitu hallita!</i> </h6> </div> <div class="card mb-3 shadow-sm" v-show="order.domains.length > 0"> <div class="card-body"> <h3 class="card-title" v-if="multidomain">Valitut verkkotunnukset</h3> <div v-show="order.domains.length === 1"> <div v-for="(domain, index) in order.domains"> <div class="text-center"> <h3 class="h2 fw-bold m-0">{{domain.domain}} <a href="#" v-on:click.prevent="order.domains.splice(0, 1)" class="ms-2 position-absolute link-danger fs-6"><i class="far fa-times" title="Vaihda verkkotunnus"></i></a></h3> <p v-show="domain.transfertype === 'OP'" class="dimmed"> <small>Verkkotunnus rekisteröidään sinun nimellesi</small> </p> <p v-show="domain.transfertype === 'RE'" class="dimmed"> <small>Verkkotunnus siirretään Simply.comiin <i class="fal fa-info-circle fa-fw" data-bs-toggle="tooltip" title="Verkkotunnuksen siirto käynnistyy automaattisesti. Sinä päätät, milloin lopullinen siirto tehdään."></i></small> </p> <p v-show="domain.transfertype === 'EG'" class="dimmed"> <small>Verkkotunnus EI ole siirtynyt Simply.com:iin</small> </p> </div> </div> </div> <div v-show="order.domains.length > 1"> <div class="d-grid gap-2"> <div v-for="(domain, index) in order.domains" class="d-flex align-items-center gap-2"> <div> <i class="fal fa-lg fa-fw text-primary" v-bind:class="'fa-'+ products.find(item => item.id == domain.service_id).image"></i> </div> <div class="flex-grow-1"> <h3 class="h6 fw-bold text-break m-0">{{domain.domain}}</h3> <div v-if="domain.transfertype === 'OP'" class="col-xl-6 text-success small fw-bold"><i class="fas fa-fw fa-check-circle"></i> Rekisteröinti</div> <div v-if="domain.transfertype === 'RE'" class="col-xl-6 text-success small fw-bold"><i class="fas fa-fw fa-check-circle"></i> Siirto</div> <div v-if="domain.transfertype === 'EG'" class="col-xl-6 text-success small fw-bold"><i class="fas fa-fw fa-check-circle"></i> Ilman siirtoa</div> </div> <div> <button v-on:click.prevent="order.domains.splice(index, 1)" class="btn btn-link btn-xs link-danger"><i class="fas fa-times"></i></button> </div> </div> </div> </div> <div class="alert alert-warning text-lg-center mt-3" v-if="order.domains.some(item => (/\.no$/.test(item.domain) && item.transfertype === 'OP'))"> <h4>Erityisesti .no-verkkotunnusten rekisteröinnin osalta</h4> <p>Rekisteröidäksesi .no-verkkotunnuksen sinulla on oltava joko norjalainen sosiaaliturvatunnus tai norjalainen organisaationumero.</p> </div> </div> </div> <div class="card mb-3 shadow-sm" v-if="(multidomain || order.domains.length <= 0) && turnstileAuthed"> <div class="card-body"> <div v-if="(multidomain && order.domains.length >= 1) && Object.keys(currentSearchResult).length <= 0"> <h5 class="card-title">Voit lisätä useita verkkotunnuksia samaan tilaukseen</h5> <form v-on:submit.prevent="runQuery()"> <div class="input-group"> <input name="domain" id="multidomain" autocapitalize="off" inputmode="url" required autofocus v-model="query" type="text" value="" autocomplete="off" class="form-control form-control-sm border-primary" spellcheck="false" placeholder="Syötä verkkotunnus"> <button type="submit" name="submit" class="btn btn-sm btn-primary">Lisää</button> </div> <div v-show="multidomain" class="text-end"> <button type="button" data-bs-toggle="modal" data-bs-target="#bulkdialog" class="btn btn-xs btn-link opacity-75">Bulkki-tilaus</button> </div> </form> <div class="alert alert-light mb-3 border-success alert-dismissible" v-if="multidomain && !order.coupon && order.domains.length === 1 && order.domains.some(item => /\.dk$/.test(item.domain) && item.transfertype === 'OP') && (thisSuggestion = domainSuggestions.find(suggestion => /\.online$/.test(suggestion.domain)))"> <div class="d-flex align-items-center justify-content-between gap-1"> <div> <h5 class="badge badge-success">Yhdistä ja säästä rahaa</h5> <h6>Rekisteröi <b>{{ thisSuggestion.domain }}</b> ilmaiseksi .dk verkkotunnuksen kanssa ja <b>säästät 7 €</b>!</h6> </div> <div> <button type="button" v-on:click.prevent="addDomainToOrder(thisSuggestion.domain, 'OP'); order.coupon = 'DKBUNDLE'" class="btn btn-primary btn-xs">Lisää</button> </div> </div> <button type="button" class="btn-close btn-xs" data-bs-dismiss="alert" aria-label="Close"></button> </div> <div v-show="multidomain && order.domains.length >= 1 && domainSuggestions.length > 0"> <h5>Nämä verkkotunnukset ovat saatavilla juuri nyt, varaa ne jo tänään</h5> <div class="d-flex flex-column gap-1"> <div class="justify-content-between align-content-center align-items-center d-flex" v-for="(suggestion, index) in domainSuggestions.slice(0, 4)"> <div class="d-flex align-items-center gap-2"> <small class="badge badge-success d-none d-sm-block"><i class="fal fa-check-circle fa-fw"></i> Vapaa verkkotunnus</small> <p class="fs-6 m-0 text-break">{{ suggestion.domain.split('.')[0] }}<b>{{ '.' + suggestion.domain.split('.').slice(1).join('.') }}</b> </p> </div> <div class="text-nowrap"> <small class="text-break small badge badge-cta">{{ suggestion.result.price_currency_formatted }}</small> <button type="button" v-on:click.prevent="addDomainToOrder(suggestion.domain, 'OP'); domainSuggestions.splice(index, 1)" class="btn btn-primary btn-xs">Lisää</button> <button type="button" v-on:click.prevent="domainSuggestions.splice(index, 1)" class="btn btn-link link-danger btn-xs" title="Poista"><i class="fal fa-times-circle"></i></button> </div> </div> </div> </div> </div> <div v-if="order.domains.length === 0 && Object.keys(currentSearchResult).length <= 0"> <form v-on:submit.prevent="runQuery()"> <div class="row"> <div class="col-lg-10 offset-lg-1"> <h3 class="mb-2">Valitse verkkotunnus <i class="fal fa-sm fa-question-circle dimmed fa-fw" data-bs-toggle="tooltip" title="Valitse haluamasi verkkotunnus yhdessä tuotteesi kanssa. Voit valita jo omistamasi verkkotunnuksen tai rekisteröidä täysin uuden verkkotunnuksen nimelläsi."></i> </h3> <div class="input-group"> <input name="domain" id="domain" autocapitalize="off" inputmode="url" required autofocus v-model="query" type="text" value="" autocomplete="off" class="form-control form-control-lg" spellcheck="false" placeholder="Syötä verkkotunnus"> <button type="submit" name="submit" class="btn btn-primary btn-lg">Valitse</button> </div> <div class="form-text d-none"> Valitse haluamasi verkkotunnus yhdessä tuotteesi kanssa. Voit valita jo omistamasi verkkotunnuksen tai rekisteröidä täysin uuden verkkotunnuksen nimelläsi. </div> <div v-show="multidomain" class="text-end"> <button type="button" data-bs-toggle="modal" data-bs-target="#bulkdialog" class="btn btn-xs btn-link opacity-75 small">Bulkki-tilaus</button> </div> </div> </div> </form> </div> <div v-show="currentSearchResult.loading" class="text-center"> <i class="fat fa-spin fa-spin-fast fa-compass fa-fw fa-5x mb-3 text-gradiant"></i> <h3>Hetkinen, tarkistamme vain {{query}}</h3> </div> <div v-if="currentSearchResult.result == 1"> <div class="text-center mb-4"> <h2>{{currentSearchResult.domain}} on jo varattu</h2> <p class="lead">Jos olet verkkotunnuksen omistaja, voimme siirtää sen Simply.comiin</p> <p class="fw-bold text-success" v-if="currentSearchResult.period_transfer > 0 && false">Jos verkkotunnus siirretään, se uusitaan ylimääräisellä {{currentSearchResult.period_transfer}} vuodella.</p> <p class="fw-bold text-success" v-if="currentSearchResult.freetransfer">Verkkotunnuksen siirtäminen Simply.com-sivustoon on ILMAISTA.</p> </div> <div v-show="!currentSearchResult.controlled"> <div class="row mt-3"> <div class="col-xl-6 col-sm-12 order-xl-first order-last"> <a href="#" data-bs-target="#notransferdialog" data-bs-toggle="modal" class="btn btn-light btn-block text-start"> <h5 class="h6"><i class="far fa-exclamation-triangle fa-fw fa-lg float-left mr-3"></i> Tilaa ILMAN verkkotunnuksen siirtämistä Simply.comiin</h5> <small class="fw-normal fst-italic">{{currentSearchResult.domain}} on verkkotunnukseni</small> </a> </div> <div class="col-xl-6 mb-3 mb-xl-0"> <a href="#" v-on:click.prevent="addDomainToOrder(currentSearchResult.domain, 'RE')" class="btn btn-success btn-block text-start"> <h5><i class="far fa-check fa-fw fa-lg float-left mr-3"></i> Siirrä verkkotunnus simply.comiin <i class="fal fa-info-circle fa-fw fa-sm" data-bs-toggle="tooltip" title="Valitset itse milloin teet verkkotunnuksen siirron."></i></h5> <small class="fw-normal fst-italic">{{currentSearchResult.domain}} on verkkotunnukseni</small> </a> </div> </div> </div> <div v-show="currentSearchResult.controlled"> <div class="row mt-3"> <div class="col-lg-6 offset-lg-3"> <a href="#" v-on:click.prevent="addDomainToOrder(currentSearchResult.domain, 'EG')" class="btn btn-success btn-block text-start"> <h5><i class="far fa-check fa-fw fa-lg float-left mr-3"></i> Jatka tilauksen tekemistä</h5> <small class="fw-normal fst-italic">{{currentSearchResult.domain}} on verkkotunnukseni</small> </a> </div> </div> </div> <div class="text-center mt-3"> <button type="button" v-on:click.prevent="currentSearchResult = {}" class="btn btn-link link-danger">Valitse toinen verkkotunnus</button> </div> </div> <div v-show="currentSearchResult.result === 4"> <div class="text-center"> <i class="far fa-exclamation-circle fa-fw fa-6x text-danger mb-3"></i> <h3 class="text-danger">{{currentSearchResult.domain}} on jo Simply.comissa</h3> <p>Jos olet verkkotunnuksen omistaja, voit hallita sitä hallintapaneelimme kautta.</p> <button type="button" v-on:click.prevent="currentSearchResult = {}" class="btn btn-link">Valitse toinen verkkotunnus</button> </div> </div> <div v-show="currentSearchResult.result === 12"> <div class="text-center"> <i class="far fa-exclamation-circle fa-fw fa-6x text-danger mb-3"></i> <h3 class="text-danger">{{currentSearchResult.domain}} on aliverkkotunnus verkkotunnukseen joka on jo Simply.comissa</h3> <p>Jos olet verkkotunnuksen omistaja voit tilata {{currentSearchResult.domain}} käyttämällä ensisijaista verkkotunnusta Simply.com-ohjauspaneelin kautta.</p> <div class="text-center mt-3"> <button type="button" v-on:click.prevent="currentSearchResult = {}" class="btn btn-link">Valitse toinen verkkotunnus</button> </div> </div> </div> <div v-show="currentSearchResult.result === 6 || currentSearchResult.result === 13 || currentSearchResult.result === 8"> <div class="text-center"> <i class="fal fa-exclamation-circle fa-fw fa-5x text-warning mb-3"></i> <h2>Olet valinnut verkkotunnuksen, jota emme voi siirtää</h2> <p class="lead">{{currentSearchResult.domain}} on sellainen verkkotunnustyyppi (TLD), jota emme voi siirtää hallintaamme.</p> <p>Tämä tarkoittaa, että sinun on huolehdittava verkkotunnuksen {{currentSearchResult.domain}} hallinnasta itse nykyisen verkkotunnuksen tarjoajan kanssa.</p> <div class="alert alert-warning mt-3 mb-3 text-start"> <p>Olet itse vastuussa verkkotunnuksen osoittamisesta palvelimillemme ja/tai nimipalvelimillemme ja mahdollisesti päivitää DNS itse mikäli se on vaihdettava tulevaisuudessa.</p> <p>Verkkotunnusta EI siirretä tai delegoida Simply.comille. Simply.com ei voi käsitellä esimerkiksi verkkotunnuksen uusimista. </p> </div> <p class="text-center">Haluatko silti valita <strong>{{currentSearchResult.domain}}</strong>?</p> <div class="row"> <div class="col-xl-6 mb-3 mb-xl-0"> <a href="#" v-on:click.prevent="currentSearchResult = {}" class="btn btn-block text-start btn-light"> <i class="far fa-chevron-left fa-fw fa-2x float-left mr-3"></i> <strong> Valitse toinen verkkotunnus </strong> <br> <small style="font-weight: normal; font-style:italic;">{{currentSearchResult.domain}} EI ole verkkotunnukseni</small> </a> </div> <div class="col-xl-6"> <a href="#" v-on:click.prevent="addDomainToOrder(currentSearchResult.domain, 'EG')" class="btn btn-block text-start btn-success"> <i class="far fa-exclamation-triangle fa-fw fa-2x float-left mr-3"></i> <strong> Jatka tilaamista</strong> <br> <small style="font-weight: normal; font-style:italic;">{{currentSearchResult.domain}} on oikein</small> </a> </div> </div> </div> </div> <div v-if="currentSearchResult.result === 3"> <div class="text-center"> <i class="fal fa-exclamation-circle fa-fw fa-6x text-danger mb-3"></i> <h3 class="text-danger">{{currentSearchResult.domain}} ei ole kelvollinen verkkotunnus.</h3> <button type="button" v-on:click.prevent="currentSearchResult = {}" class="btn btn-link">Valitse toinen verkkotunnus</button> </div> <hr v-if="order.domains.length > 0"> </div> <div v-show="currentSearchResult.result === 7"> <div class="text-center"> <i class="fal fa-exclamation-circle fa-fw fa-6x text-danger mb-3"></i> <h3 class="text-danger"> Väliaikaisen ongelman vuoksi ei ole tällä hetkellä mahdollista kerätä tietoja {{currentSearchResult.domain}}. Pyydämme yrittämään myöhemmin uudelleen.</h3> <button type="button" v-on:click.prevent="runQuery()" class="btn btn-link">Yritä uudestaan</button> <button type="button" v-on:click.prevent="currentSearchResult = {}" class="btn btn-link">Valitse toinen verkkotunnus</button> </div> <hr v-if="order.domains.length > 0"> </div> <div v-show="currentSearchResult.result === 11"> <div class="text-center"> <i class="fal fa-exclamation-circle fa-fw fa-6x text-danger mb-3"></i> <h3 class="text-danger"> Valitettavasti emme voi rekisteröidä verkkotunnusta {{currentSearchResult.domain}}</h3> <button type="button" v-on:click.prevent="currentSearchResult = {}" class="btn btn-link">Valitse toinen verkkotunnus</ > </div> <hr v-if="order.domains.length > 0"> </div> <div v-show="currentSearchResult.result === 10"> <div class="text-center"> <i class="fal fa-exclamation-circle fa-fw fa-6x text-danger mb-3"></i> <h3 class="text-danger">Virheellinen verkkotunnus</h3> <p class="lead">"{{currentSearchResult.domain}}" on virheellinen verkkotunnus.</p> <button type="button" v-on:click.prevent="currentSearchResult = {}" class="btn btn-primary">Valitse toinen verkkotunnus</button> <div class="mt-5" v-if="domainSuggestions"> <h4>Voit mahdollisesti harkita jotakin seuraavista käytettävissä olevista verkkotunnuksista:</h4> <div class="d-flex justify-content-evenly flex-wrap"> <div v-for="(suggestion, index) in domainSuggestions.slice(0, 4)"> <button v-on:click.prevent="addDomainToOrder(suggestion.domain, 'OP')" class="btn btn-sm btn-outline-success btn-block mb-3 text-left text-nowrap"><i class="fal fa-fw fa-check"></i> {{suggestion.domain}}</button> </div> </div> </div> </div> </div> </div> </div> <div class="card mb-3 shadow-sm" v-show="order.domains.length > 0"> <div class="card-body"> <div class="row"> <div class="col-xxl-4"> <div class="card mb-3"> <h4 class="card-header text-center p-2 fs-6"> Okno sinulla jo Simply.com-tili? </h4> <div class="card-body p-3"> <div class="d-flex flex-column gap-2"> <div class="form-check"> <input class="form-check-input" v-model="selectedAccountType" v-on:click="order.accounttype = ''; order.existingaccountname = null" id="useExistingAccount" name="accounttype" type="radio" value="existing"> <label class="form-check-label" for="useExistingAccount">Käytä olemassa olevaa tiliä </label> </div> <div class="form-check"> <input class="form-check-input" v-model="selectedAccountType" v-on:click="order.accounttype = ''" id="useNewAccount" name="accounttype" type="radio" value="new"> <label class="form-check-label" for="useNewAccount">Luo uusi tili</label> </div> </div> </div> </div> </div> <div class="col-xxl-8"> <div v-show="selectedAccountType === 'existing'"> <h2 class="text-center">Olemassaoleva tili</h2> <p>Käytä olemassa olevaa Simply.com-tiliä tuotteiden keräämiseen.</p> <div class="alert alert-info"> <p>Jos haluat tehdä tilauksen olemassa olevalla Simply.com-tilillä sinun on kirjauduttava sisään tälle tilille ennen tilauksen tekemistä.</p> <a href="/fi/controlpanel/" class="btn btn-primary btn-block">Kirjaudu sisään</a> </div> </div> <div v-show="selectedAccountType === 'current'"> <h2 class="text-center">Olemassaoleva tili</h2> <p>Käytä olemassa olevaa Simply.com-tiliä tuotteiden keräämiseen.</p> <div class="alert alert-info"> <p>Jos haluat tehdä tilauksen olemassa olevalla Simply.com-tilillä sinun on kirjauduttava sisään tälle tilille ennen tilauksen tekemistä.</p> <a href="/fi/controlpanel/" class="btn btn-primary btn-block">Kirjaudu sisään</a> </div> </div> <div v-show="selectedAccountType === 'new'"> <h2 class="text-center">Yhteystiedot</h2> <form name="formNewAccount" data-vv-scope="newaccount" v-on:submit.prevent="checkNewAccount()"> <div class="form-group row"> <label for="data-company" class="col-lg-4 col-form-label">Toiminimi</label> <div class="col-lg-8"> <input name="company" autocomplete="organization" placeholder="(Valinnainen)" type="text" id="data-company" class="form-control" spellcheck="false" v-model="order.account.company" :readonly="order.accounttype == 'new'"> <small class="form-text"> Yrityksen nimi voidaan jättää pois, jos toimit yksityishenkilönä </small> </div> </div> <div class="form-group row"> <label for="data-name" class="col-lg-4 col-form-label">Yhteyshenkilö</label> <div class="col-lg-8"> <input name="name" autocomplete="name" type="text" class="form-control" id="data-name" required="required" spellcheck="false" v-model="order.account.name" :readonly="order.accounttype === 'new'" pattern="[^.,]{2,} .*[^.,]{2,}"> </div> </div> <div class="form-group row" v-if="!order.account.company.length && countries.find(item => item.id === order.account.country)?.code === 'SE' && order.domains.some(item => /\.(se|nu)$/.test(item.domain))"> <label for="data-personno" class="col-lg-4 col-form-label">Henkilötunnus</label> <div class="col-lg-8"> <input name="personno" autocomplete="personno" type="text" class="form-control" id="data-personno" spellcheck="false" v-model="order.account.personno" :readonly="order.accounttype === 'new'"> </div> </div> <div class="form-group row"> <label for="data-address" class="col-lg-4 col-form-label">Osoite</label> <div class="col-lg-8"> <input name="address" autocomplete="address-line1" type="text" class="form-control" id="data-address" required="required" spellcheck="false" v-model="order.account.address" pattern=".+ .+" :readonly="order.accounttype === 'new'"> </div> </div> <div class="form-group row"> <label for="data-zipcode" class="col-lg-4 col-form-label">postinro. & kaupunki</label> <div class="col-lg-8"> <div class="row g-3"> <div class="col-4"> <input name="zipcode" autocomplete="postal-code" inputmode="numeric" type="text" id="data-zipcode" class="form-control" required="required" spellcheck="false" v-model="order.account.zipcode" :readonly="order.accounttype === 'new'"> </div> <div class="col-8"> <input name="city" autocomplete="locality" type="text" class="required form-control" id="data-city" required="required" spellcheck="false" v-model="order.account.city" :readonly="order.accounttype === 'new'"> </div> </div> </div> </div> <div class="form-group row"> <label for="data-phone" class="col-lg-4 col-form-label">Puhelin nro.</label> <div class="col-lg-8"> <div class="row g-3"> <div class="col-4"> <select name="phone_prefix" id="data-phone-prefix" autocomplete="tel-country-code" class="form-select" tabindex="-1" v-model="order.account.phone_prefix" :readonly="order.accounttype === 'new'" required="required"> <option v-for="option in phonePrefixes" v-bind:value="option.prefix">+{{ option.prefix }}</option> </select> </div> <div class="col-8"> <input name="phone" autocomplete="tel-national" type="text" inputmode="tel" class="form-control" id="data-phone" required="required" v-model="order.account.phone" :readonly="order.accounttype === 'new'"> </div> </div> </div> </div> <div class="form-group row"> <label for="email" class="col-lg-4 col-form-label">Sähköposti</label> <div class="col-lg-8"> <input name="email" v-validate="'email_remote'" autocomplete="email" inputmode="email" ref="email" type="text" class="form-control" id="email" required="required" spellcheck="false" v-model="order.account.email" :readonly="order.accounttype === 'new'"> </div> </div> <div class="form-group row"> <label for="data-country" class="col-lg-4 col-form-label">Maa</label> <div class="col-lg-8"> <select name="country" autocomplete="billing country" id="data-country" class="form-select" v-model="order.account.country" required="required" :readonly="order.accounttype === 'new'"> <option v-for="option in countries" v-bind:value="option.id">{{ option.name }}</option> </select> </div> </div> <div class="form-group"> <button class="btn btn-primary btn-block btn-lg" type="submit" v-show="!order.accounttype"> <!-- Perusta Simply.com-tili --> Jatka tilaamista </button> </div> </form> </div> </div> </div> </div> </div> <div class="card mb-3 shadow-sm" v-if="order.domains.length > 0 && order.accounttype === 'new' && order.account.company.length > 0"> <!-- <h3 class="card-header">Asiakassuhde</h3> --> <div class="card-body"> <h2 class="card-title">Toimin kuin ..</h2> <p>Jotta voimme laskuttaa sinua oikein ilmoita mikä asiakassuhde sinulla on kanssamme.</p> <div class="mb-2"> <div class="form-check"> <input class="form-check-input" name="vatmethod" type="radio" value="private" id="rb_private" v-model="vatmethod" v-on:click="order.account.vatmethod = 'private'"> <label class="form-check-label" for="rb_private"> Yksityishenkilö </label> </div> </div> <div class="mb-2" v-if="countries.find(item => item.id === order.account.country).vatpercent > 0"> <div class="form-check"> <input class="form-check-input" name="vatmethod" type="radio" value="hasvat" id="rb_vat" v-model="vatmethod" v-on:click="order.account.vatmethod = null; order.account.vatnumber = null;"> <label class="form-check-label" for="rb_vat"> ALV-rekisteröity yritys tai laitos, jolla on eurooppalainen ALV-numero. </label> </div> </div> <div v-show="vatmethod === 'hasvat'"> <div class="form-group d-flex align-items-center gap-2"> <label class="" for="vatnumber">ALV-numero</label> <div> <div class="input-group input-group-sm"> <span class="input-group-text">{{ countries.find(item => item.id === order.account.country)?.code }}</span> <input name="vatnumber" v-model="vatnumber" type="text" id="vatnumber" v-on:blur="validateVAT()" inputmode="numeric" pattern="[0-9A-za-z]+" placeholder="Esim. 12345678" class="form-control" :readonly="order.account.vatmethod"> <button type="submit" name="submit" class="btn btn-primary" v-on:click="validateVAT()" v-if="!order.account.vatmethod" :disabled="isValidatingVat"><i class="fas fa-spin fa-spinner fa-fw" v-if="isValidatingVat"></i> Vahvista</button> </div> </div> <span class="text-success fw-bold" v-if="order.account.vatmethod"><i class="fas fa-check-circle fa-fw"></i> Vahvistettu</span> </div> </div> <div class="mb-2"> <div class="form-check"> <input class="form-check-input" name="vatmethod" type="radio" value="novat" id="rb_novat" v-model="vatmethod" v-on:click="order.account.vatmethod = 'novat'; vatmethod = 'novat'"> <label class="form-check-label" for="rb_novat"> Yritys, yhdistys tai laitos ILMAN eurooppalaista ALV-rekisteröityä ALV-numeroa </label> </div> </div> <div v-show="vatmethod === 'novat'"> <div class="form-group row"> <label for="orgno" class="col-auto col-form-label col-form-label-sm">Organisaationumero</label> <div class="col-auto"> <input name="orgno" type="text" id="orgno" inputmode="numeric" pattern="[0-9a-zA-Z]*" v-model="order.account.orgno" class="form-control form-control-sm" required> <small class="form-text" v-if="parseInt(countries.find(item => item.id === order.account.country).vatpercent) === 0">Vapautettu Euroopan arvonlisäverosta</small> </div> </div> </div> </div> </div> <div class="card shadow-sm mb-3" v-if="order.domains.length > 0 && order.accounttype.length > 0"> <div class="card-body"> <h2 class="card-title mb-3">Tuotteen yksityiskohdat</h2> <form name="config" data-vv-scope="config" v-on:submit.prevent="updateIsOrderComplete()"> <div class="form-group row" v-show="product.webservice"> <label class="col-lg-4 col-form-label">Tuotetyyppi <i class="fal fa-question-circle dimmed fa-sm" data-bs-toggle="tooltip" title="Mikäli olet epävarma, kannattaa valita PHP."></i></label> <div class="col-lg-8"> <div class="d-flex gap-2 justify-content-between flex-wrap flex-row"> <div class="flex-fill"> <input type="radio" id="type-php" v-model="order.config.style" value="php" name="style" class="btn-check" required> <label class="btn btn-sm btn-block btn-outline-primary" for="type-php" data-bs-toggle="tooltip" title="PHP:tä käytetään esim. Wordpressissa, Drupalissa, Typo3:ssa ja Joomlassa. Valitse PHP, mikäli olet epävarma.">PHP</label> </div> <div class="flex-fill"> <input type="radio" id="type-asp" v-model="order.config.style" value="asp" name="style" class="btn-check" required> <label class="btn btn-sm btn-block btn-outline-primary" for="type-asp" data-bs-toggle="tooltip" title="ASP.NET:iä käytetään esimerkiksi Umbracossa.">ASP / ASP.NET</label> </div> </div> </div> </div> <div class="form-group row" v-show="product.initial_months > 0"> <label class="col-lg-4 col-form-label">Maksuajanjakso</label> <div class="col-lg-8"> <div class="d-flex gap-2 justify-content-between flex-wrap flex-row"> <div class="flex-fill" v-for="months in [product.initial_months, 24, 36, 60]"> <input type="radio" v-model="order.config.period" :value="months" :id="'period-'+ months" name="period" class="btn-check"> <label class="btn btn-xs btn-block btn-outline-primary" :for="'period-'+ months">{{months}} kk</label> </div> </div> </div> </div> <div class="form-group"> <div class="form-check"> <input name="autorenew" type="checkbox" id="autorenew" value="true" v-model="order.config.autorenew" class="form-check-input"> <label class="form-check-label" for="autorenew">Uudista automaattisesti voimassaolon päättyessä</label> </div> </div> <div class="form-group" v-show="order.accounttype === 'new' || true"> <div class="form-check"> <input name="newsletter" type="checkbox" id="newsletter" value="true" v-model="order.config.newsletter" class="form-check-input"> <label class="form-check-label" for="newsletter">Vastaanota uutiskirjeitä uusista tuotteista, toiminnoista ja erikoistarjouksista.</label> <div class="form-text">Emme käytännössä koskaan lähetä uutiskirjeitä, mutta kun lähetämme, ne ovat hyviä ja osuvia.</div> </div> </div> <button type="submit" id="configSubmit" class="d-none"></button> </form> </div> </div> <!-- <div class="d-none"> <form action="" method="post" ref="orderform" v-on:submit.prevent="submitOrder()" id="orderform"> <div class="mb-3"> <button class="btn btn-success btn-block btn-lg shadow-sm mx-auto" name="submitform" type="submit" :disabled="!isOrderComplete" v-show="order.accounttype.length > 0 && order.domains.length > 0">Jatka tilaamista</button> </div> </form> </div> --> </div> <div class="col-lg-4" id="order-menu"> <div class="sticky-xl-top"> <div v-show="(order.accounttype.length > 0 && order.domains.length > 0) || payment.lines?.length > 0 || true"> <h2>Tilauksesi</h2> <div class="card shadow-sm mb-3"> <div class="card-body"> <div v-if="order.domains.length <= 0" class="text-body-secondary text-center my-md-7"> <p class="small">Anna verkkotunnus jatkaaksesi tilaamista.</p> </div> <div v-if="!orderkey" class="text-body-secondary text-center my-md-7"> <p class="small">Ole hyvä ja odota</p> </div> <div v-show="order.accounttype.length > 0 && order.domains.length > 0"> <form action="" method="post" ref="orderform" v-on:submit.prevent="submitOrder()" id="orderform"> <input type="hidden" v-model="orderkey" name="orderkey"> <div class="mb-3"> <div class="form-check"> <input type="checkbox" name="conditions2" v-model="order.terms.unoeuro" id="conditions2" value="yes" required="required" class="form-check-input"> <label for="conditions2" class="form-check-label">Hyväksyn Simply.comin ehdot <span class="small dimmed fw-normal">(<a href="/fi/terms-of-service/" target="_blank" class="dimmed">Lukea</a>)</span> </label> </div> </div> <div class="mb-3"> <button class="btn btn-block btn-success shadow-sm" type="submit" :disabled="!isOrderComplete">Jatka tilaamista</button> </div> </form> </div> <div v-if="payment.lines?.length > 0"> <div v-if="!showPaymentAsSummary"> <dl v-for="paymentline in payment.lines.filter((line) => line.price !== null)" class="d-flex justify-content-between m-0 align-items-center gap-1"> <dt class="fw-normal small text-break">{{ paymentline.text }} <small class="dimmed small text-nowrap">{{ paymentline.quantity_unit !== 'stk' && paymentline.quantity > 0 ? paymentline.quantity + ' ' + paymentline.quantity_unit_formatted : ''}}</small> </dt> <dd class="text-end small text-nowrap" v-bind:class="{'text-success': paymentline.price_total <= 0}">{{paymentline.price_total == 0 ? 'ILMAINEN' : formatMoney(paymentline.price_total_withvat_currency / 100) + ' ' + payment.currency }}</dd> </dl> </div> <div v-else-if="showPaymentAsSummary"> <dl v-for="paymentGroup in getPaymentLinesAsSummary().filter(item => item.price_total !== 0).sort((a,b) => a.price_total >= b.total_price)" class="d-flex justify-content-between m-0 align-items-center gap-1"> <dt class="fw-normal small text-break"> {{ paymentGroup.text }} </dt> <dd class="text-end small text-nowrap" v-bind:class="{'text-success': paymentGroup.price_total <= 0}">{{ paymentGroup.price_total == 0 ? 'ILMAINEN' : formatMoney(paymentGroup.items.reduce((carry, item) => carry + item.price_total_withvat_currency, 0) / 100) + ' ' + payment.currency }}</dd> </dl> <div class="text-end"> <button type="button" v-on:click.prevent="showPaymentAsSummary = false" class="btn btn-xs btn-link">Näytä tiedot</button> </div> </div> </div> <div class="d-flex justify-content-between fs-3 border-top border-1 pt-1" v-if="payment.lines?.length > 0"> <div class="fw-bold">Yhteensä</div> <div class="text-end fw-bold text-nowrap" v-bind:class="{'text-success': payment.total_currency <= 0}"> <!-- <s class="text-danger fs-4 fw-normal d-print-none me-2">{{ formatMoney(payment.lines.reduce((previousValue, paymentline) => paymentline.price_total_currency > 0 ? previousValue + paymentline.price_total_currency : previousValue, 0) / 100) + ' ' + payment.currency }}</s> --> {{ payment.total_currency == 0 ? 'ILMAINEN' : formatMoney(payment.total_withvat_currency / 100) + ' ' + payment.currency}} </div> </div> <div class="d-flex justify-content-between text-muted small" v-if="payment.lines?.length > 0 && payment.total_vatamount_currency > 0"> <div class="fw-normal">josta ALV</div> <div class="text-end text-nowrap">{{formatMoney(payment.total_vatamount_currency / 100) + ' ' + payment.currency}}</div> </div> <!-- <div class="d-flex justify-content-between mt-2" v-if="payment.lines"> <div class="small fw-normal">Normaalihinta</div> <div class="small text-end text-nowrap">{{ formatMoney(payment.lines.reduce((previousValue, paymentline) => paymentline.price_total_withvat_currency > 0 ? previousValue + paymentline.price_total_withvat_currency : previousValue, 0) / 100) + ' ' + payment.currency }}</div> </div> --> <div class="d-flex justify-content-between text-success mt-2" v-if="payment.lines?.length > 0"> <div class="small fw-normal">Säästöt yhteensä</div> <div class="small text-end text-nowrap text-decoration-line-through">{{ formatMoney(payment.lines.reduce((previousValue, paymentline) => paymentline.price_total_withvat_currency < 0 ? previousValue + paymentline.price_total_withvat_currency : previousValue, 0) / 100) + ' ' + payment.currency }}</div> </div> </div> </div> <div v-if="product.upgrade_id && order.domains.length === 1 && parseInt(product.id) === 1" class="mb-3 d-none d-sm-block card border-success"> <h6 class="card-header bg-success text-bg-success"><i class="fas fa-fw fa-star fa-sm"></i> Päivitä {{product.upgrade_name}}</h6> <div class="card-body"> <p>Hanki verkkosivusto, sähköpostiosoite ja muuta verkkotunnusta varten.</p> <button type="button" v-on:click.prevent="setProduct(product.upgrade_id)" class="btn btn-success btn-block btn-sm"><i class="far fa-fw fa-arrow-circle-up"></i> Valitse {{product.upgrade_name}}</button> </div> </div> <div class="row" v-if="showCouponField || order.coupon || order.domains.length > 0"> <div class="col"> <div class="form-group row"> <label for="coupon" class="col-form-label-sm col-auto small bg-body dimmed fw-normal">Kuponkikoodi</label> <div class="col"> <input name="coupon" type="text" id="coupon" placeholder="" class="form-control form-control-sm" v-bind:class="{'is-valid': payment.coupon_isvalid === true}" v-model="order.coupon" tabindex="-1" autocomplete="off" autocapitalize="off" spellcheck="false"> <!-- <div class="form-text text-danger" v-if="payment.coupon_isusable === false">Kuponkikoodia ei voi enää käyttää</div> --> </div> </div> <div v-show="order.accounttype === 'new' && order.coupon === '' && false"> <a href="#" v-on:click="order.coupon = '3GRATIS'" class="form-text dimmed small fs-5">Ekö sinulla ole kuponkikoodia? Annahan meidän lisätä yksi puolestasi! :)</a> </div> </div> </div> </div> <!-- <div v-for="(product, index) in products" v-if="!payment" class="mb-1 text-center d-none d-sm-block"> <div class="card" v-bind:class="{'bg-success' : product.id == order.service_id}"> <div class="card-body text-center p-2"> <h3><i class="fa fa-fw"></i>{{product.name}}</h3> </div> </div> </div> --> <div class="mt-lg-6"> <div class="mb-3 text-muted d-none d-lg-flex align-items-center"> <i class="fal fa-heart fa-lg fa-fw me-2 text-primary"></i> <h5 class="m-0 fw-normal">Trustpilot 5 tähteä</h5> <div class="bgimage-trustpilot-stars ms-3 h-100 w-25"> </div> </div> <div class="mb-3 text-muted d-none d-lg-flex align-items-center"> <i class="fal fa-badge-check fa-lg fa-fw me-2 text-primary"></i> <h5 class="m-0 fw-normal">14 päivän rahat-takaisin takuu</h5> </div> <div class="mb-3 text-muted d-none d-lg-flex align-items-center"> <i class="fal fa-wand-magic fa-lg fa-fw me-2 text-primary"></i> <h5 class="m-0 fw-normal">Pääset alkuun nopeasti ja helposti</h5> </div> <div class="mb-3 text-muted d-none d-lg-flex align-items-center"> <i class="fal fa-lock fa-lg fa-fw me-2 text-primary"></i> <h5 class="m-0 fw-normal">Turvallinen verkkomaksu</h5> </div> </div> </div> </div> </div> <div class="modal" id="dkhostmaster-dialog" data-bs-keyboard="false" data-bs-backdrop="static"> <div class="modal-dialog modal-lg modal-dialog-scrollable modal-dialog-centered"> <div class="modal-content"> <div class="modal-header"> <h2 class="modal-title">Vahvista Punktum dk A/S:n ehdot</h2> </div> <div class="modal-body"> <p>Rekisteröidäksesi .dk-verkkotunnuksen, sinun on tehtävä käyttöoikeussopimus Punktum dk A/S:n kanssa. Punktum dk hoitaa kaikkien .dk-verkkotunnusten hallinnoinnin.</p> <p class="fw-bold small"> Punktum dk A/S<br> Ørestads Boulevard 108, 11. etage<br> 2300 København S </p> <div class="fst-italic small"> <p>Jeg accepterer hermed at indgå en aftale om brugsret til det angivne .dk-domænenavn på de vilkår, der gælder herfor. Dette indebærer bl.a., at jeg til enhver tid skal sikre, at mine kontaktoplysninger som registrant er korrekte. Jeg gennemfører Punktum dk A/S' identitetskontrol, når der anmodes herom.</p> <p>Min brugsret til det angivne .dk-domænenavn kan overdrages, suspenderes, slettes og blokeres på de betingelser, der fremgår af Punktum dk A/S' vilkår.</p> <p>Jeg accepterer, at jeg efter den danske forbrugeraftalelov, § 18, stk. 2, nr. 13 giver afkald på retten til at fortryde indgåelse af aftale om brugsret til det angivne .dk-domænenavn.</p> <p>Jeg er indforstået med, at Punktum dk A/S som domæneadministrator anvender personoplysninger om mig i overensstemmelse med sin persondatapolitik.</p> <p>Jeg er indforstået med, at betaling for den første registreringsperiode af det angivne .dk-domænenavn sker til Simply.com A/S</p> </div> <ul> <li><a href="https://www.punktum.dk/en/terms" target="_blank">Punktum dk:n ehdot</a></li> <li><a href="https://www.punktum.dk/en/privacy-policy" target="_blank">Punktum dk:n tietosuojakäytäntö</a></li> </ul> <div v-if="order.accounttype === 'new'"> <h3>Käytä olemassa olevaa Punktum dk handle:a</h3> <div class="form-group row"> <label class="col-form-label col-form-label-sm col-lg-6" for="dkhandle"> Olemassa oleva Punktum dk -Handle </label> <div class="col-lg-6"> <input type="text" value="" name="dkhandle" id="dkhandle" v-model="order.config.dkhandle" class="form-control form-control-sm" placeholder="Esim. AB1234-DK"> <small class="form-text dimmed small">Valinnainen</small> </div> </div> </div> <h3>Jälleenmyyjän käsittely</h3> <p class="small">Antamalla Simply.comin käsitellä verkkotunnustasi hyväksyt, että annat Simply.comille oikeuden suorittaa maksuja Punktum dk:lle, vaihtaa nimipalvelimia, muuttaa yhteystietoja ja peruuttaa verkkotunnuksen puolestasi. Voit muuttaa tätä milloin tahansa Punktum dk:n itsepalvelun kautta. </p> <div class="form-check"> <input type="checkbox" value="" id="dkmanaged" class="form-check-input" v-model="order.config.dkmanaged"> <label for="dkmanaged" class="form-check-label">Hyväksyn, että Simply.com käsittelee .dk verkkotunnukseni</label> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-success" v-on:click="order.terms.dkhostmaster = true; submitOrder();">Vahvista</button> </div> </div> </div> </div> <div class="modal" id="invalidvatdialog"> <div class="modal-dialog modal-dialog-centered modal-lg"> <div class="modal-content"> <div class="modal-header"> <h2 class="modal-title">Virheellinen ALV-numero</h2> </div> <div class="modal-body"> <p>Olet antanut virheellisen ALV-numeron. On tärkeää, että annat EU:n ALV-rekisterinumeron.</p> <p>Mikäli arvonlisäveronumeroa ei ole rekisteröity EU:ssa, voit tehdä tilauksen yksityishenkilönä ilman arvonlisäveronumeron ilmoittamista ja syöttää sen myöhemmin hallintapaneelimme kautta.</p> <p>Voit tarkistaa, onko ALV-numerosi rekisteröity EU:ssa, katsomalla sen täältä: <a href="http://ec.europa.eu/taxation_customs/vies/vatRequest.html" target="_blank">http://ec.europa.eu/taxation_customs/vies/vatRequest.html</a></p> </div> <div class="modal-footer"> <button type="button" class="btn btn-light" data-bs-dismiss="modal">Selvä</button> </div> </div> </div> </div> <div class="modal" id="notransferdialog"> <div class="modal-dialog modal-dialog-centered modal-lg"> <div class="modal-content"> <div class="modal-header"> <h2 class="modal-title">Verkkotunnuksen siirron poistaminen käytöstä</h2> </div> <div class="modal-body"> <div class="text-center"> <i class="fal fa-fw fa-exclamation-triangle mb-3 fa-3x"></i> <h3>Olet KIELTÄMÄSSÄ {{currentSearchResult.domain}} siirtoa Simply.comiin</h3> </div> <p>Mikäli kieltäydyt verkkotunnuksesi siirtämisestä, sinun on ohjattava {{currentSearchResult.domain}} nimipalvelimillemme tai verkkopalvelimillemme itse. {{currentSearchResult.domain}} EI voi myöskään uusia Simply.com:in kautta</p> <p>Jos haluat tilata nyt mutta odotaa ja siirtä siirtoa verkkotunnukselle {{currentSearchResult.domain}} myöhempään ajankohtaan, tulee sinun silti tilata verkkotunnuksen {{currentSearchResult.domain}} siirto nyt ja odottaa siirtopyynnön hyväksymistä, kunnes olet valmis verkkotunnuksen siirtoon.</p> </div> <div class="modal-footer"> <button type="button" class="btn btn-light" data-bs-dismiss="modal" v-on:click.prevent="addDomainToOrder(currentSearchResult.domain, 'EG');">Jatka siirtämättä verkkotunnusta</button> <button type="button" class="btn btn-success" data-bs-dismiss="modal" v-on:click.prevent="addDomainToOrder(currentSearchResult.domain, 'RE');">Siirrä {{currentSearchResult.domain}} osoitteeseen Simply.com</button> </div> </div> </div> </div> <div class="modal" id="bulkdialog"> <div class="modal-dialog modal-xl modal-dialog-centered modal-dialog-scrollable"> <div class="modal-content"> <div class="modal-header"> <h2 class="modal-title">Bulk merkintä</h2> </div> <div class="modal-body"> <div v-show="!bulkdomains.length"> <p>Kirjoita luettelo verkkotunnuksista jotka haluat tilata saadaksesi ne samaan tilaukseen.</p> <textarea class="form-control" v-model="bulkdata" style="min-height: 150px" placeholder="example1.com,example2.com example3.com"></textarea> </div> <div v-show="bulkdomains.length"> <p>Seuraavat verkkotunnukset löytyivät syöttämilläsi tiedoitta</p> <table id="domains" class="table table-xs table-hover table-striped"> <thead> <tr> <th width="1"> </th> <th>Domain</th> <th>Verkkotunnuksen tila</th> <th>Toimenpide</th> <th width="1"> </th> </tr> </thead> <tbody> <tr v-for="(item, index) in bulkdomains"> <td> <button v-on:click="bulkdomains.splice(index, 1)" class="btn btn-danger btn-sm"><i class="far fa-fw fa-trash-alt"></i></button> </td> <th>{{item.domain}}</th> <td><i class="fas fa-fw fa-spin fa-spinner" v-if="!item.check"></i> <div v-if="item.check && item.check.result"> <div v-if="item.check.result === 9" class="text-success fw-bold"> <i class="far fa-fw fa-check"></i> Vapaa </div> <div v-else-if="item.check.result === 1" class="text-warning fw-bold"> <i class="far fa-fw fa-exclamation-triangle"></i> Varattu </div> <div v-else-if="item.check.result === 6" class="text-danger"> <i class="far fa-fw fa-exclamation-circle"></i> Varattu </div> <div v-else-if="item.check.result === 13" class="text-danger"> <i class="far fa-fw fa-exclamation-circle"></i> Premium verkkotunnus </div> <div v-else-if="item.check.result === 4" class="text-danger"> <i class="far fa-fw fa-exclamation-circle"></i> Hostattu Simply.comissa </div> <div v-else-if="item.check.result === 11" class="text-danger"> <i class="far fa-fw fa-exclamation-circle"></i> Vapaa </div> <div v-else class="text-danger"> <i class="far fa-fw fa-exclamation-circle"></i> Virhe </div> </div> </td> <td> <div v-if="item.transfertype === 'OP'" class="text-success fw-bold"> <i class="far fa-fw fa-check"></i> Rekisteröinti lisätty </div> <div v-else-if="item.transfertype === 'RE'" class="text-success fw-bold"> <i class="far fa-fw fa-check"></i> Siirto lisätty </div> <div v-else-if="item.transfertype === 'EG'" class="text-success fw-bold"> <i class="far fa-fw fa-check"></i> Lisätty ilman siirtämistä </div> </td> <td class="text-nowrap"> <button type="button" class="btn btn-warning btn-sm btn-block" v-on:click="item.transfertype = 'EG'" v-if="item.transfertype === 'RE' && item.check && item.check.result === 1">Älä siirrä</button> <button type="button" class="btn btn-success btn-sm btn-block" v-on:click="item.transfertype = 'RE'" v-if="item.transfertype === 'EG' && item.check && item.check.result === 1">Siirrä</button> </td> </tr> </tbody> </table> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-light" data-bs-dismiss="modal">Peruutta</button> <button type="button" class="btn btn-success" data-bs-dismiss="modal" v-show="bulkdomains.length > 0" v-on:click="addBulkDomains()">Lisää tilaukseen</button> <button class="btn btn-primary" v-show="!bulkdomains.length" v-on:click="queryBulkDomains()">Etsi verkkotunnuksia</button> </div> </div> </div> </div> </div> <script> var app; let ajaxTurnstileEndpoint = "\/fi\/ajax\/domaincheck-turnstile\/"; let ajaxDomaincheckEndpoint = "\/fi\/ajax\/domaincheck\/"; window.turnstileCallback = (token) => { window.axios.post(ajaxTurnstileEndpoint, { turnstileResponse: token }).then((response) => { app.turnstileAuthed = response.data.verified; app.runQuery(); // app.updateSuggestions(); }); }; window.addEventListener('DOMContentLoaded', () => { var defaultCountry = 190; var defaultPhonePrefix = 65; var serviceIdFromQueryString = 2; var domainsFromSession = null; var domainsFromQueryString = UnoEuro.getQueryString('domain'); var orderkeyFromQueryString = UnoEuro.getQueryString('order'); var promotedCcTld = ""; app = new Vue({ el: '#app-order', data: { turnstileAuthed: null, products: [{"id":1,"name":"DNS Service","image":"globe","type":"service","initial_months":0,"upgrade_name":"Basic Suite","upgrade_id":2,"webservice":0},{"id":2,"name":"Basic Suite","image":"home","type":"suite","initial_months":12,"upgrade_name":"Standard Suite","upgrade_id":3,"webservice":10000},{"id":3,"name":"Standard Suite","image":"building","type":"suite","initial_months":12,"upgrade_name":"Pro Suite","upgrade_id":4,"webservice":20000},{"id":4,"name":"Pro Suite","image":"industry-alt","type":"suite","initial_months":12,"upgrade_name":"Enterprise Suite","upgrade_id":17,"webservice":100000},{"id":17,"name":"Enterprise Suite","image":"city","type":"suite","initial_months":12,"upgrade_name":null,"upgrade_id":null,"webservice":200000},{"id":66,"name":"Basic Mail","image":"envelope","type":"suite","initial_months":12,"upgrade_name":null,"upgrade_id":null,"webservice":0},{"id":80,"name":"Starter Suite","image":"tent","type":"suite","initial_months":12,"upgrade_name":"Basic Suite","upgrade_id":2,"webservice":500}], isOrderComplete: false, isCalculatingPrice: false, isValidatingVat: false, domainSuggestions: [], suggestionTLDs: window.uniq([promotedCcTld, 'dk', 'com', 'store', 'eu', 'nu', 'se', 'online']), selectedAccountType: 'new', vatmethod: 'private', vatnumber: '', bulkdomains: [], bulkdata: '', phonePrefixes: [{"id":36,"prefix":1},{"id":120,"prefix":7},{"id":86,"prefix":30},{"id":159,"prefix":31},{"id":20,"prefix":32},{"id":72,"prefix":33},{"id":65,"prefix":34},{"id":97,"prefix":36},{"id":106,"prefix":39},{"id":182,"prefix":40},{"id":40,"prefix":41},{"id":13,"prefix":43},{"id":223,"prefix":44},{"id":56,"prefix":45},{"id":189,"prefix":46},{"id":160,"prefix":47},{"id":173,"prefix":48},{"id":54,"prefix":49},{"id":168,"prefix":51},{"id":150,"prefix":52},{"id":29,"prefix":55},{"id":43,"prefix":56},{"id":14,"prefix":61},{"id":98,"prefix":62},{"id":171,"prefix":63},{"id":165,"prefix":64},{"id":190,"prefix":65},{"id":209,"prefix":66},{"id":109,"prefix":81},{"id":233,"prefix":84},{"id":45,"prefix":86},{"id":216,"prefix":90},{"id":101,"prefix":91},{"id":258,"prefix":211},{"id":59,"prefix":213},{"id":144,"prefix":222},{"id":248,"prefix":225},{"id":155,"prefix":227},{"id":25,"prefix":229},{"id":126,"prefix":231},{"id":206,"prefix":235},{"id":44,"prefix":237},{"id":85,"prefix":240},{"id":74,"prefix":241},{"id":30,"prefix":242},{"id":242,"prefix":243},{"id":18,"prefix":246},{"id":135,"prefix":261},{"id":247,"prefix":262},{"id":5,"prefix":264},{"id":127,"prefix":266},{"id":33,"prefix":267},{"id":4,"prefix":268},{"id":114,"prefix":269},{"id":64,"prefix":291},{"id":15,"prefix":297},{"id":71,"prefix":298},{"id":81,"prefix":299},{"id":80,"prefix":350},{"id":177,"prefix":351},{"id":129,"prefix":352},{"id":99,"prefix":353},{"id":105,"prefix":354},{"id":146,"prefix":356},{"id":52,"prefix":357},{"id":67,"prefix":358},{"id":22,"prefix":359},{"id":128,"prefix":370},{"id":130,"prefix":371},{"id":61,"prefix":372},{"id":1,"prefix":376},{"id":133,"prefix":377},{"id":196,"prefix":378},{"id":239,"prefix":381},{"id":244,"prefix":382},{"id":250,"prefix":383},{"id":95,"prefix":385},{"id":192,"prefix":386},{"id":17,"prefix":387},{"id":53,"prefix":420},{"id":194,"prefix":421},{"id":124,"prefix":423},{"id":26,"prefix":441},{"id":76,"prefix":473},{"id":35,"prefix":501},{"id":202,"prefix":503},{"id":94,"prefix":504},{"id":167,"prefix":507},{"id":96,"prefix":509},{"id":84,"prefix":590},{"id":91,"prefix":592},{"id":78,"prefix":594},{"id":179,"prefix":595},{"id":199,"prefix":597},{"id":226,"prefix":598},{"id":260,"prefix":670},{"id":89,"prefix":671},{"id":10,"prefix":672},{"id":162,"prefix":674},{"id":170,"prefix":675},{"id":214,"prefix":676},{"id":186,"prefix":677},{"id":234,"prefix":678},{"id":68,"prefix":679},{"id":178,"prefix":680},{"id":42,"prefix":682},{"id":164,"prefix":683},{"id":12,"prefix":684},{"id":113,"prefix":686},{"id":154,"prefix":687},{"id":218,"prefix":688},{"id":169,"prefix":689},{"id":211,"prefix":690},{"id":70,"prefix":691},{"id":136,"prefix":692},{"id":141,"prefix":853},{"id":121,"prefix":856},{"id":148,"prefix":960},{"id":118,"prefix":965},{"id":166,"prefix":968},{"id":251,"prefix":970},{"id":2,"prefix":971},{"id":100,"prefix":972},{"id":31,"prefix":975},{"id":140,"prefix":976},{"id":161,"prefix":977},{"id":210,"prefix":992},{"id":212,"prefix":993},{"id":253,"prefix":5999}], countries: [{"id":249,"code":"AX","name":"\u00c5land Islands","vatpercent":0},{"id":59,"code":"DZ","name":"Algeria","vatpercent":0},{"id":12,"code":"AS","name":"American Samoa","vatpercent":0},{"id":1,"code":"AD","name":"Andorra","vatpercent":0},{"id":5,"code":"AI","name":"Anguilla","vatpercent":0},{"id":10,"code":"AQ","name":"Antarctica","vatpercent":0},{"id":4,"code":"AG","name":"Antigua and Barbuda","vatpercent":0},{"id":15,"code":"AW","name":"Aruba","vatpercent":0},{"id":14,"code":"AU","name":"Australia","vatpercent":0},{"id":13,"code":"AT","name":"Austria","vatpercent":20},{"id":30,"code":"BS","name":"Bahamas","vatpercent":0},{"id":18,"code":"BB","name":"Barbados","vatpercent":0},{"id":20,"code":"BE","name":"Belgium","vatpercent":21},{"id":35,"code":"BZ","name":"Belize","vatpercent":0},{"id":25,"code":"BJ","name":"Benin","vatpercent":0},{"id":26,"code":"BM","name":"Bermuda","vatpercent":0},{"id":31,"code":"BT","name":"Bhutan","vatpercent":0},{"id":17,"code":"BA","name":"Bosnia and Herzegovina","vatpercent":0},{"id":33,"code":"BW","name":"Botswana","vatpercent":0},{"id":32,"code":"BV","name":"Bouvet Island","vatpercent":0},{"id":29,"code":"BR","name":"Brazil","vatpercent":0},{"id":27,"code":"BN","name":"Brunei Darussalam","vatpercent":0},{"id":22,"code":"BG","name":"Bulgaria","vatpercent":20},{"id":44,"code":"CM","name":"Cameroon","vatpercent":0},{"id":36,"code":"CA","name":"Canada","vatpercent":0},{"id":119,"code":"KY","name":"Cayman Islands","vatpercent":0},{"id":206,"code":"TD","name":"Chad","vatpercent":0},{"id":43,"code":"CL","name":"Chile","vatpercent":0},{"id":45,"code":"CN","name":"China","vatpercent":0},{"id":51,"code":"CX","name":"Christmas Island","vatpercent":0},{"id":37,"code":"CC","name":"Cocos (Keeling) Islands","vatpercent":0},{"id":114,"code":"KM","name":"Comoros","vatpercent":0},{"id":42,"code":"CK","name":"Cook Islands","vatpercent":0},{"id":95,"code":"HR","name":"Croatia (Hrvatska)","vatpercent":25},{"id":253,"code":"CW","name":"Cura\u00e7ao\r\n","vatpercent":0},{"id":52,"code":"CY","name":"Cyprus","vatpercent":19},{"id":53,"code":"CZ","name":"Czech Republic","vatpercent":21},{"id":56,"code":"DK","name":"Denmark","vatpercent":25},{"id":254,"code":"CD","name":"DR Congo","vatpercent":0},{"id":215,"code":"TP","name":"East Timor","vatpercent":0},{"id":202,"code":"SV","name":"El Salvador","vatpercent":0},{"id":85,"code":"GQ","name":"Equatorial Guinea","vatpercent":0},{"id":64,"code":"ER","name":"Eritrea","vatpercent":0},{"id":61,"code":"EE","name":"Estonia","vatpercent":20},{"id":71,"code":"FO","name":"Faroe Islands","vatpercent":0},{"id":68,"code":"FJ","name":"Fiji","vatpercent":0},{"id":67,"code":"FI","name":"Finland","vatpercent":24},{"id":72,"code":"FR","name":"France","vatpercent":20},{"id":73,"code":"FX","name":"France, Metropolitan","vatpercent":0},{"id":78,"code":"GF","name":"French Guiana","vatpercent":0},{"id":169,"code":"PF","name":"French Polynesia","vatpercent":0},{"id":74,"code":"GA","name":"Gabon","vatpercent":0},{"id":54,"code":"DE","name":"Germany","vatpercent":19},{"id":80,"code":"GI","name":"Gibraltar","vatpercent":0},{"id":86,"code":"GR","name":"Greece","vatpercent":24},{"id":81,"code":"GL","name":"Greenland","vatpercent":0},{"id":76,"code":"GD","name":"Grenada","vatpercent":0},{"id":84,"code":"GP","name":"Guadeloupe","vatpercent":0},{"id":89,"code":"GU","name":"Guam","vatpercent":0},{"id":259,"code":"GG","name":"Guernsey","vatpercent":0},{"id":91,"code":"GY","name":"Guyana","vatpercent":0},{"id":96,"code":"HT","name":"Haiti","vatpercent":0},{"id":94,"code":"HN","name":"Honduras","vatpercent":0},{"id":97,"code":"HU","name":"Hungary","vatpercent":27},{"id":105,"code":"IS","name":"Iceland","vatpercent":0},{"id":101,"code":"IN","name":"India","vatpercent":0},{"id":98,"code":"ID","name":"Indonesia","vatpercent":0},{"id":99,"code":"IE","name":"Ireland","vatpercent":23},{"id":256,"code":"IM","name":"Isle of Man\r\n","vatpercent":0},{"id":100,"code":"IL","name":"Israel","vatpercent":0},{"id":106,"code":"IT","name":"Italy","vatpercent":22},{"id":248,"code":"CI","name":"Ivory Coast","vatpercent":0},{"id":107,"code":"JM","name":"Jamaica","vatpercent":0},{"id":109,"code":"JP","name":"Japan","vatpercent":0},{"id":255,"code":"JE","name":"Jersey","vatpercent":0},{"id":120,"code":"KZ","name":"Kazakhstan","vatpercent":0},{"id":113,"code":"KI","name":"Kiribati","vatpercent":0},{"id":250,"code":"XK","name":"Kosovo","vatpercent":18},{"id":118,"code":"KW","name":"Kuwait","vatpercent":0},{"id":121,"code":"LA","name":"Laos","vatpercent":0},{"id":130,"code":"LV","name":"Latvia","vatpercent":21},{"id":127,"code":"LS","name":"Lesotho","vatpercent":0},{"id":126,"code":"LR","name":"Liberia","vatpercent":0},{"id":124,"code":"LI","name":"Liechtenstein","vatpercent":0},{"id":128,"code":"LT","name":"Lithuania","vatpercent":21},{"id":129,"code":"LU","name":"Luxembourg","vatpercent":17},{"id":141,"code":"MO","name":"Macau","vatpercent":0},{"id":135,"code":"MG","name":"Madagascar","vatpercent":0},{"id":148,"code":"MV","name":"Maldives","vatpercent":0},{"id":146,"code":"MT","name":"Malta","vatpercent":18},{"id":136,"code":"MH","name":"Marshall Islands","vatpercent":0},{"id":144,"code":"MR","name":"Mauritania","vatpercent":0},{"id":238,"code":"YT","name":"Mayotte","vatpercent":0},{"id":247,"code":"YT","name":"Mayotte","vatpercent":0},{"id":150,"code":"MX","name":"Mexico","vatpercent":0},{"id":70,"code":"FM","name":"Micronesia","vatpercent":0},{"id":133,"code":"MC","name":"Monaco","vatpercent":0},{"id":140,"code":"MN","name":"Mongolia","vatpercent":0},{"id":244,"code":"ME","name":"Montenegro","vatpercent":0},{"id":145,"code":"MS","name":"Montserrat","vatpercent":0},{"id":153,"code":"NA","name":"Namibia","vatpercent":0},{"id":162,"code":"NR","name":"Nauru","vatpercent":0},{"id":161,"code":"NP","name":"Nepal","vatpercent":0},{"id":159,"code":"NL","name":"Netherlands","vatpercent":21},{"id":163,"code":"NT","name":"Neutral Zone","vatpercent":0},{"id":154,"code":"NC","name":"New Caledonia","vatpercent":0},{"id":165,"code":"NZ","name":"New Zealand","vatpercent":0},{"id":155,"code":"NE","name":"Niger","vatpercent":0},{"id":164,"code":"NU","name":"Niue","vatpercent":0},{"id":156,"code":"NF","name":"Norfolk Island","vatpercent":0},{"id":142,"code":"MP","name":"Northern Mariana Islands","vatpercent":0},{"id":160,"code":"NO","name":"Norway","vatpercent":25},{"id":166,"code":"OM","name":"Oman","vatpercent":0},{"id":178,"code":"PW","name":"Palau","vatpercent":0},{"id":251,"code":"PS","name":"Palestine","vatpercent":0},{"id":167,"code":"PA","name":"Panama","vatpercent":0},{"id":170,"code":"PG","name":"Papua New Guinea","vatpercent":0},{"id":179,"code":"PY","name":"Paraguay","vatpercent":0},{"id":168,"code":"PE","name":"Peru","vatpercent":0},{"id":171,"code":"PH","name":"Philippines","vatpercent":0},{"id":175,"code":"PN","name":"Pitcairn","vatpercent":0},{"id":173,"code":"PL","name":"Poland","vatpercent":23},{"id":177,"code":"PT","name":"Portugal","vatpercent":23},{"id":176,"code":"PR","name":"Puerto Rico","vatpercent":0},{"id":181,"code":"RE","name":"Reunion","vatpercent":0},{"id":182,"code":"RO","name":"Romania","vatpercent":19},{"id":115,"code":"KN","name":"Saint Kitts and Nevis","vatpercent":0},{"id":236,"code":"WS","name":"Samoa","vatpercent":0},{"id":196,"code":"SM","name":"San Marino","vatpercent":0},{"id":200,"code":"ST","name":"Sao Tome and Principe","vatpercent":0},{"id":190,"code":"SG","name":"Singapore","vatpercent":0},{"id":194,"code":"SK","name":"Slovak Republic","vatpercent":20},{"id":192,"code":"SI","name":"Slovenia","vatpercent":22},{"id":186,"code":"Sb","name":"Solomon Islands","vatpercent":0},{"id":258,"code":"SS","name":"South Sudan","vatpercent":0},{"id":65,"code":"ES","name":"Spain","vatpercent":21},{"id":252,"code":"VC","name":"St Vincent and Grenadines\r\n","vatpercent":0},{"id":191,"code":"SH","name":"St. Helena","vatpercent":0},{"id":174,"code":"PM","name":"St. Pierre and Miquelon","vatpercent":0},{"id":199,"code":"SR","name":"Suriname","vatpercent":0},{"id":189,"code":"SE","name":"Sweden","vatpercent":25},{"id":40,"code":"CH","name":"Switzerland","vatpercent":0},{"id":210,"code":"TJ","name":"Tajikistan","vatpercent":0},{"id":209,"code":"TH","name":"Thailand","vatpercent":0},{"id":245,"code":"IO","name":"The British Indian Ocean","vatpercent":0},{"id":260,"code":"TL","name":"Timor-Leste\r\n","vatpercent":0},{"id":211,"code":"TK","name":"Tokelau","vatpercent":0},{"id":214,"code":"TO","name":"Tonga","vatpercent":0},{"id":217,"code":"TT","name":"Trinidad and Tobago","vatpercent":0},{"id":216,"code":"TR","name":"Turkey","vatpercent":0},{"id":212,"code":"TM","name":"Turkmenistan","vatpercent":0},{"id":205,"code":"TC","name":"Turks and Caicos Islands","vatpercent":0},{"id":218,"code":"TV","name":"Tuvalu","vatpercent":0},{"id":2,"code":"AE","name":"United Arab Emirates","vatpercent":0},{"id":223,"code":"GB","name":"United Kingdom","vatpercent":0},{"id":225,"code":"US","name":"United States","vatpercent":0},{"id":226,"code":"UY","name":"Uruguay","vatpercent":0},{"id":224,"code":"UM","name":"US Minor Outlying Islands","vatpercent":0},{"id":234,"code":"VU","name":"Vanuatu","vatpercent":0},{"id":233,"code":"VN","name":"Viet Nam","vatpercent":0},{"id":235,"code":"WF","name":"Wallis and Futuna Islands","vatpercent":0},{"id":63,"code":"EH","name":"Western Sahara","vatpercent":0},{"id":239,"code":"YU","name":"Yugoslavia","vatpercent":0},{"id":242,"code":"ZR","name":"Zaire","vatpercent":0}], query: domainsFromQueryString || domainsFromSession || sessionStorage.getItem('domaincheck-lastquery') || '', currentSearchResult: {}, showCouponField: false, showPaymentAsSummary: false, multidomain: false, payment: {}, product: {}, orderkey: null, order: { // This is watched accounttype: '', existingaccountname: null, account: { company: '', name: '', address: '', zipcode: '', personno: '', city: '', phone: '', phone_prefix: defaultPhonePrefix, email: '', country: defaultCountry, vatmethod: 'private', vatnumber: '', orgno: '' }, config: { style: 'php', dkhandle: '', dkmanaged: false, period: 12, newsletter: true, promotions: false, autorenew: true }, terms: { unoeuro: false, dkhostmaster: false }, domains: [], coupon: sessionStorage.getItem('coupon') || UnoEuro.getQueryString('coupon') || '', } }, computed: { totalDiscount: function () { let discount = 0; this.payment.lines.forEach((line) => { if (line.price < 0) { discount = discount + line.price; } }); return discount; } }, watch: { order: { handler: function (newValue, oldValue) { if (!this.product) { window.location = '/fi/hosting/'; } this.updateIsOrderComplete(); this.debouncedUpdatePayment(); }, deep: true }, 'order.domains': function () { this.showPaymentAsSummary = this.order.domains.length > 1; // this.debouncedUpdateSuggestions(); } }, created: function () { this.debouncedUpdateSuggestions = debounce(1000, this.updateSuggestions); this.debouncedUpdatePayment = throttle(1000, this.updatePayment); }, mounted: function () { }, methods: { submitOrder: function () { if (!this.isOrderComplete) { return false; } /* Check if order contains .dk domains */ if (!this.order.terms.dkhostmaster && this.order.domains.some((item) => (/\.dk$/.test(item.domain) && item.transfertype === 'OP'))) { $('#dkhostmaster-dialog').modal('show'); return false; } _hsq.push(['trackCustomBehavioralEvent', { name: "pe25171416_completed_order", properties: {}, }]); return this.$refs.orderform.submit(); }, debouncedUpdateSuggestions: function () { /* Stub */ }, debouncedUpdatePayment: function () { /* Stub */ }, updateIsOrderComplete: function () { this.isOrderComplete = this.order.domains.length > 0 && this.order.accounttype.length > 0 && !this.isCalculatingPrice; if (this.order.accounttype === 'new' && !this.order.account.vatmethod) { this.isOrderComplete = false; } if (this.order.accounttype === 'existing' && !this.order.existingaccountname) { this.isOrderComplete = false; } $('form[name="config"]submit').trigger('click'); // Hacky this.$validator.validateAll('config').then((valid) => { if (!valid) { this.isOrderComplete = false; } }); }, formatMoney: function (value) { return value.toFixed(2).toLocaleString(); }, updateSuggestions: function () { if (!this.turnstileAuthed) { return; } this.domainSuggestions = []; let testlistOfDomains = []; let testLabels = []; if (this.query.length > 0) { testlistOfDomains.push(this.query.trim()); testLabels.push(this.query); testLabels.push(this.query); } this.order.domains.forEach((item) => { let split = item.domain.match(/^(.+)\.([a-z]+)$/); if (split) { let label = split[1]; let tld = split[2]; testLabels.push(label); testLabels.push(label.replace(/-/, '')); testLabels.push(label.replace(/æ/, 'ae')); testLabels.push(label.replace(/ø/, 'oe')); testLabels.push(label.replace(/å/, 'aa')); this.suggestionTLDs.push(tld); } }); testLabels.forEach((label) => { this.suggestionTLDs.forEach((suggestTLD) => { testlistOfDomains.push(label + '.' + suggestTLD); }); }); testlistOfDomains = window.uniq(testlistOfDomains); testlistOfDomains = testlistOfDomains.filter((testDomain) => { if (this.order.domains.find((item) => item.domain === testDomain)) { return false; } if (this.domainSuggestions.find((item) => item.domain === testDomain)) { return false; } return true; }); testlistOfDomains = testlistOfDomains.splice(0, 20); // For performance reasons testlistOfDomains.forEach((testItem) => { window.axios.post(ajaxDomaincheckEndpoint, { domain: testItem, }).then((response) => { if (response.data.result === 9) { this.domainSuggestions.push({ domain: response.data.domain, result: response.data }); } }); }); }, getPaymentLinesAsSummary: function () { return Object.values(this.payment.lines.reduce((group, item) => { const key = item.text; if (!group[key]) { group[key] = {price_total: 0, items: []}; } group[key].text = item.text; group[key].price_total += item.price_total; group[key].items.push(item); return group; }, {})); }, addDomainToOrder: function (domain, transfertype) { domain = domain.trim(); let serviceId = this.order.domains.length === 0 && this.product ? parseInt(this.product.id) : 1; this.order.domains.forEach((item, index) => { if (item.domain === domain) { Vue.delete(this.order.domains, index); } }); this.order.domains.push({ domain: domain, service_id: serviceId, transfertype: transfertype }); this.currentSearchResult = {}; this.query = ''; this.debouncedUpdateSuggestions(); _hsq.push(['trackCustomBehavioralEvent', { name: "pe25171416_added_domain_to_order", properties: { domain: domain, transfertype: transfertype, orderkey: this.orderkey, service_id: serviceId, }, }]); }, runQuery: function () { if (this.query.length <= 0) { return; } if (!this.turnstileAuthed) { return; } this.query = this.query.trim(); if (this.query.split(/[,;\n]/).length > 1 && this.multidomain) { this.bulkdata = this.query; $('#bulkdialog').modal('show'); this.queryBulkDomains(); return; } this.currentSearchResult = { loading: true }; sessionStorage.setItem('domaincheck-lastquery', this.query); window.axios.post(ajaxDomaincheckEndpoint, { domain: this.query, extended: true, }).then((response) => { this.currentSearchResult = response.data; if (this.currentSearchResult.result === 9) { this.addDomainToOrder(this.currentSearchResult.domain, 'OP'); } }); this.debouncedUpdateSuggestions(); }, addBulkDomains: function () { this.bulkdomains.forEach((item) => { if (item.transfertype) { this.addDomainToOrder(item.domain, item.transfertype); } }); this.bulkdomains = []; this.bulkdata = ''; }, queryBulkDomains: function () { let domains = this.bulkdata.split(/[,;\n]/); domains.forEach((domain) => { if (!domain.length) { return; } let index = this.bulkdomains.push({ domain: domain }); window.axios.post(ajaxDomaincheckEndpoint, { domain: domain, extended: true, }).then((response) => { let transfertype = ''; if (response.data.result === 9 ) { transfertype = 'OP'; } if (response.data.result === 1 ) { transfertype = 'RE'; } this.bulkdomains.splice(index - 1, 1, { domain: response.data.domain, check: response.data, transfertype: transfertype }); }); }); }, updatePayment: async function () { if (!this.turnstileAuthed) { return; } this.isCalculatingPrice = true; await window.axios.post('/fi/ajax/order-update/', {data: this.$data}).then((response) => { this.payment = response.data.payment; this.orderkey = response.data.orderkey; if (this.orderkey) { window.history.replaceState(null, null, '?order=' + this.orderkey); window.sessionStorage.setItem('orderdata-' + this.orderkey, JSON.stringify(this.$data)); } window.gtag('event', 'begin_checkout', { currency: response.data.payment.currency, value: response.data.payment.total_withvat_currency / 100, items: response.data.payment.lines?.map((item) => { return { item_id: item.iid, item_name: item.text, item_category: item.category, item_category2: this.order.accounttype === 'new' ? 'new' : 'existing', value: item.price_currency / 100, quantity: item.quantity, }; }), }); }).catch((error) => { console.log(error); this.orderkey = null; window.location = '/fi/hosting/?orderfailed=1'; }).finally(() => { this.isCalculatingPrice = false; this.updateIsOrderComplete(); }); }, validateVAT: function () { this.isValidatingVat = true; window.axios.post('/ajax/order.checkvat.php', { vatno: this.vatnumber, country_id: this.order.account.country, }).then((response) => { if (response.data.valid) { this.order.account.vatmethod = 'hasvat'; this.order.account.vatnumber = this.vatnumber; } else { $('#invalidvatdialog').modal('show'); } }).finally(() => { this.isValidatingVat = false; }); }, checkNewAccount: function () { if (!SimplyComIsUserLoggedIn && !SimplyComIsInternalSupport) { _hsq.push(['identify', { email: this.order.account.email }]); } _hsq.push(['trackCustomBehavioralEvent', { name: "pe25171416_contact_details_during_order", properties: { email: this.order.account.email, orderkey: this.orderkey, name: this.order.account.name, phonenumber: '+' + this.order.account.phone_prefix + this.order.account.phone, }, }]); return this.$validator.validateAll('newaccount').then((valid) => { if (valid) { this.order.accounttype = 'new'; this.order.account.vatmethod = 'private'; this.vatmethod = 'private'; } return valid; }); }, setProduct: function (service_id) { this.product = this.products.find((item) => parseInt(item.id) === parseInt(service_id)); if (!this.product) { alert('Unknown product'); window.location = '/fi/hosting/'; } this.multidomain = this.product.type === 'service'; if (!this.multidomain && this.order.domains && this.order.domains.length > 1) { this.order.domains = []; } this.order.domains.forEach((item) => item.service_id = parseInt(this.product.id)); this.updatePayment(); } } }); if (orderkeyFromQueryString) { let orderDataFromStorage = window.sessionStorage.getItem('orderdata-' + orderkeyFromQueryString); if (orderDataFromStorage) { Object.assign(app.$data, JSON.parse(orderDataFromStorage)); } else { window.axios.get('/ajax/order.load.php?orderkey=' + orderkeyFromQueryString).then((response) => { Object.assign(app.$data, response.data.data); }).catch(() => { window.location = '/fi/hosting/'; }); } } else { app.setProduct(serviceIdFromQueryString); } app.runQuery(); }); </script> <script> _hsq.push(['trackCustomBehavioralEvent', { name: "pe25171416_started_order", properties: {}, }]); </script> <script> fbq('track', 'InitiateCheckout'); fbq('track', 'Lead'); </script> </div> </div> <footer class="mt-6 pb-6"> <div class="container border-top pt-6"> <div class="row justify-content-between"> <div class="col-md-4 pe-xxl-6"> <a href="/fi/?aeac4832a7a69eeec2118e51db8e9a1684af5927"><img class="footer-logo" alt="Simply logo" src="//static.simply.com/assets/simply-logo-color.svg" loading="lazy"></a> <div class="pt-3 fs-7 opacity-75"> Perustettu vuonna 2004 - Tavoitteenamme on tarjota toimivia teknisiä ratkaisuja, jotka tyydyttävät sekä syvällisen teknisen osaamisen omaavia että niitä ilman olevia asiakkaita. </div> </div> <div class="col-md-7"> <div class="row mt-4 mt-md-0"> <div class="col-lg-3"> <div class="fw-semibold pb-lg-3 pt-lg-1 py-2 d-flex justify-content-between align-items-center collapsed" data-bs-toggle="collapse" data-bs-target="#footerProducts"> <span>Tuotteet</span> <i class="fa-regular fa-angle-down d-lg-none"></i> </div> <div class="collapse dont-collapse pb-4" id="footerProducts"> <ul class="list-unstyled"> <li><a href="/fi/hosting/">Hosting</a></li> <li><a href="/fi/websitebuilder/">Verkkosivujen suunnittelija</a></li> <li><a href="/fi/">Webhotelli</a></li> <li><a href="/fi/domains/">Verkkotunnukset</a></li> <li><a href="/fi/domainprices/"> Verkkotunnusten hinnat</a></li> <li><a href="/fi/wordpress/">WordPress</a></li> <li><a href="/fi/woocommerce/">WooCommerce</a></li> <li><a href="/fi/email/">Sähköposti</a></li> <li><a href="/fi/iubenda/">iubenda</a></li> </ul> </div> </div> <div class="col-lg-3"> <div class="fw-semibold pb-lg-3 pt-lg-1 py-2 border-top border-top-lg-0 d-flex justify-content-between align-items-center collapsed" data-bs-toggle="collapse" data-bs-target="#footerServices"> <span>Palvelut</span> <i class="fa-regular fa-angle-down d-lg-none"></i> </div> <div class="collapse dont-collapse pb-4" id="footerServices"> <ul class="list-unstyled"> <li><a href="/fi/domains/">Domainitesti</a></li> <li><a href="/fi/webmail/">Webmail</a></li> <li><a href="/fi/ninja/">Domain ninja</a></li> <li><a href="/fi/diagnostics/">Diagnostiikka</a></li> <li><a href="/fi/docs/api/">API-dokumentaatio</a></li> <li><a href="/fi/partner/">Kumppanit</a></li> </ul> </div> </div> <div class="col-lg-3"> <div class="fw-semibold pb-lg-3 pt-lg-1 py-2 border-top border-top-lg-0 d-flex justify-content-between align-items-center collapsed" data-bs-toggle="collapse" data-bs-target="#footerSupport"> <span>Asiakaspalvelu</span> <i class="fa-regular fa-angle-down d-lg-none"></i> </div> <div class="collapse dont-collapse pb-4" id="footerSupport"> <ul class="list-unstyled"> <li><a href="/fi/support/">Ota yhteyttä</a></li> <li><a href="/fi/support/">Tietopankki</a></li> <li><a href="/fi/serverstatus/">Toimintatila</a></li> </ul> </div> </div> <div class="col-lg-3"> <div class="fw-semibold pb-lg-3 pt-lg-1 py-2 border-top border-top-lg-0 d-flex justify-content-between align-items-center collapsed" data-bs-toggle="collapse" data-bs-target="#footerAbout"> <span>Simply.com</span> <i class="fa-regular fa-angle-down d-lg-none"></i> </div> <div class="collapse dont-collapse pb-4" id="footerAbout"> <ul class="list-unstyled"> <li><a href="/fi/about/">Simply.com:ista</a></li> <li><a href="https://blog.simply.com">Uutiset / Blogi</a></li> <!-- <li><a href="/fi/podcast/">Podcast</a></li> --> <li><a href="/fi/ebook/">E-kirja</a></li> <li><a href="/fi/compliance/">Compliance</a></li> <li><a href="/fi/terms-of-service/">Käyttöehdot</a></li> <li><a href="/fi/privacy-policy/">Tietosuoja & evästekäytäntö</a></li> </ul> </div> </div> </div> </div> </div> <div class="row mb-xxl-7 my-6 pb-1 align-items-end justify-content-between"> <div class="col-lg-auto mb-5 mb-lg-1"> <div class="border rounded-4 p-3 py-lg-4 w-100"> <div class="text-uppercase opacity-75">Turvallinen ja suojattu maksu</div> <div class="d-flex align-items-center justify-content-between py-lg-4 gap-lg-2 flex-wrap"> <i class="pf pf-visa pf-2x" data-bs-toggle="tooltip" title="VISA"></i> <i class="pf pf-mastercard-alt pf-2x" data-bs-toggle="tooltip" title="Mastercard"></i> <i class="pf pf-visa-debit pf-2x" data-bs-toggle="tooltip" title="VISA Debit"></i> <i class="pf pf-google-wallet-alt pf-2x" data-bs-toggle="tooltip" title="Google Pay"></i> <i class="pf pf-apple-pay pf-2x" data-bs-toggle="tooltip" title="Apple Pay"></i> </div> <div class="opacity-75"> Kaikki hinnat ovat EUR ilman. arvonlisäveroa </div> </div> </div> <div class="col-lg-auto"> <ul class="list-inline justify-content-evenly d-flex gap-3"> <li class="list-inline-item"><a href="https://www.facebook.com/simplycom" target="_blank" title="Facebook"><i class="fab fa-facebook fa-fw fa-lg text-decoration-none"></i></a></li> <li class="list-inline-item"><a href="https://www.twitter.com/simplydotcom" target="_blank" title="X"><i class="fab fa-x-twitter fa-fw fa-lg text-decoration-none"></i></a></li> <li class="list-inline-item"><a href="https://www.instagram.com/simplycom/" target="_blank" title="Instagram"><i class="fab fa-instagram fa-fw fa-lg text-decoration-none"></i></a></li> <li class="list-inline-item"><a href="https://www.youtube.com/@simplycom" target="_blank" title="YouTube"><i class="fab fa-youtube fa-fw fa-lg text-decoration-none"></i></a></li> <li class="list-inline-item"><a href="https://www.linkedin.com/company/simplycom/" target="_blank" title="LinkedIn"><i class="fab fa-linkedin fa-fw fa-lg text-decoration-none"></i></a></li> </ul> </div> </div> </div> <div class="container fluid-max-width pt-1 pt-xxl-0"> <div class="bg-bright-blue rounded-4 px-1 py-3 px-xxl-5 p-1 py-xxl-5"> <div class="container my-1"> <div class="row justify-content-between align-items-center gap-3"> <nav class="col-12 col-md-7 col-lg-auto"> <ul class="nav"> <li class="nav-item"><a href="/fi/about/" class="nav-link">Tietoa</a></li> <li class="nav-item"><a href="https://blog.simply.com/" class="nav-link">Uutiset</a></li> <li class="nav-item"><a href="/fi/serverstatus/" class="nav-link">Toimintatila</a></li> <li class="nav-item"><a href="/fi/terms-of-service/" class="nav-link">Käyttöehdot</a></li> </ul> </nav> <nav class="col-12 col-md-5 col-lg-auto pt-2 pt-md-0"> <div class="nav"> <div class="nav-item dropdown"> <button type="button" class="nav-link dropdown-toggle" data-bs-toggle="dropdown"> <span class="fi fi-fi"></span> Suomeksi </button> <div class="dropdown-menu"> <h3 class="dropdown-header">Vaihda kieli</h3> <a href="/dk/order/?id=basicsuite" rel="alternate" hreflang="da" class="dropdown-item"> <span class="fi fi-dk"></span> Dansk <small class="text-muted">(Danish)</small> </a> <a href="/de/order/?id=basicsuite" rel="alternate" hreflang="de" class="dropdown-item"> <span class="fi fi-de"></span> Deutsch <small class="text-muted">(German)</small> </a> <a href="/en/order/?id=basicsuite" rel="alternate" hreflang="en" class="dropdown-item"> <span class="fi fi-gb"></span> English <small class="text-muted">(English)</small> </a> <a href="/es/order/?id=basicsuite" rel="alternate" hreflang="es" class="dropdown-item"> <span class="fi fi-es"></span> Español <small class="text-muted">(Spanish)</small> </a> <a href="/fr/order/?id=basicsuite" rel="alternate" hreflang="fr" class="dropdown-item"> <span class="fi fi-fr"></span> Français <small class="text-muted">(French)</small> </a> <a href="/it/order/?id=basicsuite" rel="alternate" hreflang="it" class="dropdown-item"> <span class="fi fi-it"></span> Italiano <small class="text-muted">(Italien)</small> </a> <a href="/nl/order/?id=basicsuite" rel="alternate" hreflang="nl" class="dropdown-item"> <span class="fi fi-nl"></span> Nederlands <small class="text-muted">(Dutch)</small> </a> <a href="/no/order/?id=basicsuite" rel="alternate" hreflang="nb" class="dropdown-item"> <span class="fi fi-no"></span> Norsk <small class="text-muted">(Norwegian)</small> </a> <a href="/pl/order/?id=basicsuite" rel="alternate" hreflang="pl" class="dropdown-item"> <span class="fi fi-pl"></span> Polski <small class="text-muted">(Polish)</small> </a> <a href="/pt/order/?id=basicsuite" rel="alternate" hreflang="pt" class="dropdown-item"> <span class="fi fi-pt"></span> Português <small class="text-muted">(Portuguese)</small> </a> <a href="/fi/order/?id=basicsuite" rel="alternate" hreflang="fi" class="dropdown-item"> <span class="fi fi-fi"></span> Suomeksi <small class="text-muted">(Finnish)</small> </a> <a href="/se/order/?id=basicsuite" rel="alternate" hreflang="sv" class="dropdown-item"> <span class="fi fi-se"></span> Svenska <small class="text-muted">(Swedish)</small> </a> </div> </div> </div> </nav> </div> </div> </div> </div> </footer> <div id="fb-root"></div> <div class="modal" id="haveibeenpwned-modal" aria-hidden="true" data-bs-backdrop="static" data-bs-keyboard="false"> <div class="modal-dialog modal-dialog-centered modal-lg modal-dialog-scrollable"> <div class="modal-content"> <div class="modal-header"> <div class="h2 modal-title">Salasana on vaarantunut</div> </div> <div class="modal-body"> <div class="alert alert-warning text-center"> <i class="fal fa-fw fa-exclamation-triangle mb-3 fa-5x"></i> <p class="h4">Suosittelemme, että valitset toisen salasanan</p> </div> <p>Syötetty salasana tunnetaan "Have I Been Pwned" -tietokannassa, joka on julkinen tietokanta Internetissä vuotaneista salasanoista.</p> <p>Oletettavasti olet (tai joku muu) käyttänyt salasanaa aiemmin toisella verkkosivustolla, joka on vuotanut salasanan. Salasana ei siksi ole turvallinen käyttää.</p> <p class="fw-bold">Suosittelemme, että valitset toisen salasanan.</p> <p>Katso lisätietoja salasanasta täältä: <a href="https://haveibeenpwned.com/Passwords" target="_blank" class="fw-bold" rel="nofollow">https://haveibeenpwned.com/Passwords</a>.</p> </div> <div class="modal-footer"> <button type="button" class="btn btn-primary" data-bs-dismiss="modal">Ymmärretty</button> </div> </div> </div> </div> <noscript> <img src="/noscript.png" width="1" height="1" alt=""> </noscript> <script> /* Old IE-compat code */ if (window.document.documentMode) { var el = document.getElementById('ie-warning'); if (el.classList) { el.classList.remove('d-none'); } el.style.cssText = 'display: block;'; el.setAttribute('style', 'display: block'); el.className += " d-block"; } </script> <script> (function () { var mmapiws = window.__mmapiws = window.__mmapiws || {}; mmapiws.accountId = 11830; var loadDeviceJs = function () { var element = document.createElement('script'); element.async = true; element.src = 'https://device.maxmind.com/js/device.js'; document.body.appendChild(element); }; if (window.addEventListener) { window.addEventListener('load', loadDeviceJs, false); } else if (window.attachEvent) { window.attachEvent('onload', loadDeviceJs); } })(); </script> </body> </html>