Toyota
Тойота Центр Екатеринбург Запад
г. Екатеринбург, ул. Металлургов, 60, к.1
Позвонить

Специальное предложение «Особая забота» — это комплекс косметических услуг для вашей любимой Toyota. Воспользуйтесь этим комплексом и получите еще больше удовольствия от вождения автомобиля Toyota.

«Особая забота» — ваш идеальный выбор, если

  • Вы хотите быстро и легко преобразить ваш автомобиль.
  • Вы хотите вернуть первоначальный блеск кузова.

  • Вы хотите добиться чистоты и запаха свежести в салоне.

Основные преимущества услуги

Лёгкая полировка кузова для придания блеска

Обработка салона антистатиком

Дезодорирование салона

Подберите подходящий пакет услуг

В официальных дилерских центрах Тойота вы можете выбрать наиболее подходящий вам пакет профессиональных услуг по уходу за автомобилем.

Услуги

Пакет «Базовый»

Пакет «Оптимальный»

Мойка автомобиля

Да

Да

Уборка автомобиля

Да Да

Дезодорирование салона

Да Да

Обработка салона антистатиком

Да Да

Очистка кондиционера

Нет Да

Легкая полировка кузова для придания блеска

Нет Да

Очистка литых дисков

Нет Да

* Описание пакетов носит информационный характер. Финальное наполнение услугами может быть изменено. За подробностями обращайтесь к Официальным Дилерам/Уполномоченным Партнерам Тойота, оказывающим услугу.

Почему важно обслуживаться у официальных дилеров Тойота?

Высокий уровень профессионального мастерства механиков, прошедших подготовку на базе Toyota Motor.

Гарантия подлинности запасных частей (отсутствие контрафакта). Гарантированный подбор деталей именно для вашего автомобиля.

Вы сможете продать свой автомобиль по более высокой цене на вторичном рынке.

Сервисы Toyota, которые сделают владение автомобилем еще более комфортным

Пакетное ТО

Оплатите сразу несколько регулярных технических осмотров, чтобы гарантировать сохранение стоимости последующего обслуживания.

Подробнее

Формула уверенности

Добавьте еще два года спокойствия к трем годам гарантии от Toyota, чтобы дольше не иметь поводов для волнений.

Подробнее

Программа «Помощь на дороге»

Это ваш анти-стресс, который отвечает за решение практически всех проблем на дороге — от замены пробитого колеса, до ночевки в незнакомом городе.

Подробнее

[[ state.complectation.FullTitle ]]
[[ state.complectation.Brand.Title ]]
[[ state.complectation.Model.Title ]] [[ state.complectation.Title ]]
[[ state.complectation.Modification.Drivetrain.Id | dwtFormat:'numeric' ]], [[ state.complectation.Modification.Engine.Volume | number:1 ]] л., [[ state.complectation.Modification.Engine.Fuel.title ]]?, [[ state.complectation.Modification.Transmission.Type | transmissionFormat:'long' ]]
Поле автоматически заполнится,
когда Вы определитесь с комплектацией Посмотреть автомобили в наличии
Поле автоматически заполнится,
когда Вы определитесь с комплектацией Посмотреть автомобили в наличии
[[ specialOfferService.getCurrentProfitPercent(state.prices) | number:0 ]]% Использование выгоды на
Максимальная выгода составляет - [[ specialOfferService.getMaxProfit(state.prices) | number ]] a
[[ state.complectation.FullTitle ]]
[[ state.complectation.Brand.Title ]]
[[ state.complectation.Model.Title ]] [[ state.complectation.Title ]]
[[ state.complectation.Modification.Drivetrain.Id | dwtFormat:'numeric' ]], [[ state.complectation.Modification.Engine.Volume | number:1 ]] л., [[ state.complectation.Modification.Engine.Fuel.title ]]?, [[ state.complectation.Modification.Transmission.Type | transmissionFormat:'long' ]]
Мы сохраним список просмотренных автомобилей,
чтобы вы могли к нему вернуться

Посмотреть
Добавляйте автомобиль в избранное,
чтобы посмотреть его еще раз позже

Посмотреть
var host_url = "https://cdn.gravitec.net/", app_key = "5e1e51892f4238f55b5c404fca03bef0", api_url = "https://api.gravitec.net/", loadScript = false, version = '16-05-2018', functions = { 'install': onInstallFunc, 'activate': onActivateFunc, 'push': onPushFunc, 'pushclick': onPushClickFunc, 'pushclose': onPushCloseFunc }; self.addEventListener('install', installDefault); self.addEventListener('activate', activateDefault); self.addEventListener('push', pushDefault); self.addEventListener('notificationclick', notificationclickDefault); self.addEventListener('notificationclose', notificationCloseDefault); function pushDefault(event) { if(typeof push == 'undefined'){ loadBase(); } if(push) { return push(event) } sendMessage("tracing SW Push", "Begin Push Event", true); var promise = functions.push.call(self, event); event.waitUntil(promise.then(function (promiseObjects) { return Promise.all(promiseObjects.map(function (promiseObj) { return promiseObj.close; })); })); return promise.then(function (promiseObjects) { return promiseObjects[0].show; }); } function notificationclickDefault(event) { if(typeof notificationclick == 'undefined'){ loadBase(); } if(notificationclick) { return notificationclick(event) } var promise = this.registration.pushManager.getSubscription(); return event.waitUntil(promise.then(function (subscription) { var regID = prepareId(subscription).gid; return Promise.all(functions.pushclick(event, regID)); })); } function notificationCloseDefault(event) { if (typeof notificationclose == 'undefined') { loadBase(); if (typeof notificationclose !== 'undefined') return notificationclose(event); } event.waitUntil(this.registration.pushManager.getSubscription() .then(function (subscription) { var regID = prepareId(subscription).gid; return Promise.all(functions.pushclose(event, regID)); })); } function activateDefault(event) { if (typeof activate == 'undefined') { loadBase(); if (typeof activate !== 'undefined') return activate(event); } else { loadBase(); } sendMessage("Trace worker", 'activate', true); event.waitUntil(functions.activate(event)); } function installDefault(event) { if (typeof install == 'undefined') { loadBase(); if (typeof install !== 'undefined') return install(event); } else { loadBase(); } sendMessage("Trace worker", 'install', true); event.waitUntil(functions.install(event)); } function wait(ms) { return new Promise(function (resolve) { setTimeout(resolve, ms); }); } function loadBase() { try { return importScripts(host_url + 'push/shim/base.js?token=' + new Date().getTime()) } catch (e) { sendMessage("Error get file from server", e, false); } } function loadShim(shim) { importScripts(host_url + 'push/shim/helper.js?token=' + new Date().getTime()) return new Promise(function (resolve) { importScripts(host_url + 'push/shim/' + shim + '.js?token=' + new Date().getTime()); }); } function onInstallFunc(event) { return skipWaiting(); } function onActivateFunc(event) { return clients.claim(); } function onPushFunc(event) { return this.registration.pushManager.getSubscription().then(function (subscription) { sendMessage('tracing SW Push with subscription', 'Begin Push Event', true, subscription && (subscription.subscriptionId || subscription.endpoint)); var regID; try { regID = prepareId(subscription).gid; } catch (e) { sendMessage("Error parsing gid", e, false, subscription); return onErrorMessage(); } var dataJson = event.data && event.data.json() if (dataJson) { return showNotifications([dataJson], regID); } var fetchItteration = 0, countOfNeedItteration = 1; var serverResponse = {}; function fetchDataFromServer() { fetchItteration++; return fetch(api_url + "api/sites/lastmessage/?regID=" + encodeURIComponent(regID) + "&app_key=" + app_key + "&version=" + (version || 1)) .then(function (response) { serverResponse = response; if (response.status < 200 || response.status >= 300) { if (logging) console.log('Looks like there was a problem. Status Code: ' + response.status); sendMessage("Last message fetching error", { errorCode: response.status, errorMessage: response.statusText }, false, regID); return onErrorMessage(); } return response.json().then(function (jsons) { if (!jsons || (jsons instanceof Array && jsons.length == 0)) { sendMessage("Last message response object error", 'The API returned an error.', false, regID); return onErrorMessage(); } return Promise.resolve(showNotifications(jsons, regID)); }).catch(function (err) { sendMessage("Error parsing last message response json", err, false, regID); return onErrorMessage(); }); }) .catch(function (err) { if (fetchItteration > countOfNeedItteration) { sendMessage("Last message fetching request error", serverResponse, false, regID); return onErrorMessage(); } else { return wait(500).then(function () { return fetchDataFromServer(); }); } }); } return fetchDataFromServer(); }).catch(function (err) { sendMessage("Error during getSubscription()", err, false); return onErrorMessage(); }); } function onErrorMessage() { debugger var title = 'Service notification'; var message = 'Your subscription has been updated. Thank you for staying with us!'; var notificationTag = 'notification-error'; var promise = {}; promise.show = promise.close = self.registration.showNotification(title, { body: message, tag: notificationTag }); return [promise]; } function onPushClickFunc(event, regID) { var notification = event.notification; var data = getNotificationData(notification) || {}; var url = decodeURI(data.url || data.redirectUrl); var messageid = data.messageid || data.pushId; var buttonData; var promiseRequest; sendMessage('Tracing push click data', {notificationData: data, messageid: messageid, url: url}, true); if (event.action) { buttonData = data.buttons[event.action]; if (buttonData.url) { promiseAction = clientActions(decodeURI(buttonData.url), buttonData.action); promiseRequest = fetch(api_url + "api/sites/" + messageid + "/read?regID=" + encodeURIComponent(regID) + "&app_key=" + app_key + "&button_id=" + buttonData.id) } if (buttonData.request) { promiseRequest = fetch(decodeURI(buttonData.request)); } } else if (url) { promiseAction = clientActions(url, data.action); promiseRequest = fetch(api_url + "api/sites/" + messageid + "/read?regID=" + encodeURIComponent(regID) + "&app_key=" + app_key + "&version=" + (version || 1)); } promiseRequest.catch(function (err) { sendMessage("Error fetching read", err, false); }); notification.close(); return [promiseAction || Promise.resolve(), promiseRequest || Promise.resolve()]; } function onPushCloseFunc(event, regID) { var notification = event.notification; var data = getNotificationData(notification) || {}; var messageid = data.messageid || data.pushId; var promiseRequest; sendMessage('Tracing push close data', {notificationData: data, messageid: messageid}, true); promiseRequest = fetch(api_url + "api/sites/" + messageid + "/close?regID=" + encodeURIComponent(regID) + "&app_key=" + app_key + "&version=" + (version || 1)); promiseRequest.catch(function (err) { sendMessage("Error fetching close", err, false); }); notification.close(); return [promiseRequest || Promise.resolve()]; } function showNotifications(jsons, regID) { var notif; try { sendMessage("Trace worker", 'showNotifications executed', true, regID); var i, nots = []; if (jsons instanceof Array) { for (i = 0; i < jsons.length; i++) { fetch(api_url + "api/sites/receive/" + jsons[i].id + "?regID=" + encodeURIComponent(regID) + "&app_key=" + app_key + "&version=" + (version || 1)).catch(function (err) { sendMessage("Error fetching receive", err, false, regID); }); } for (i = 0; i < jsons.length; i++) { sendMessage('displaying push', 'index: ' + i + ', id: ' + jsons[i].id, true, regID); nots.push(showNotification(jsons[i], regID)); sendMessage('displayed push', 'index: ' + i + ', id: ' + jsons[i].id, true, regID); } return nots; } fetch(api_url + "api/sites/receive/" + jsons.id + "?regID=" + encodeURIComponent(regID) + "&app_key=" + app_key + "&version=" + (version || 1)).catch(function (err) { sendMessage("Error fetching receive", err, false, regID); }); notif = showNotification(jsons, regID); } catch (e) { sendMessage("Error iterating over messages", e, false, regID); } return [notif]; } function showNotification(json, regID) { sendMessage("Trace worker", 'showNotification executed', true, regID); var notifData = {}; var notifOptions = {}; var displayDuration = json.duration; var notifId = json.id; notifData.messageid = json.id; notifData.url = encodeURI(json.redirect); notifData.action = json.action; notifData.buttons = generateButtonsData(json.buttons); notifOptions.body = json.tx; notifOptions.icon = (json.icon || host_url + 'img/icons/Icon-Message.png') + '?' + generateQueryString(notifData); notifOptions.vibrate = json.vibrate || []; notifOptions.direction = json.direction || 'auto'; notifOptions.actions = generateButtons(json.buttons); if (json.image) { notifOptions.image = json.image; } notifOptions.data = notifData; notifOptions.requireInteraction = true; var promiseObj = {}; promiseObj.show = self.registration.showNotification(json.tl || "Title", notifOptions); promiseObj.close = displayDuration ? promiseObj.show.then(function () { wait(displayDuration * 1000).then(function () { return closeNotifications(notifId); }); }) : promiseObj.show; return promiseObj; } function generateQueryString(data) { var params = []; for (var i in data) { params.push(i + '=' + (typeof data[i] === 'string' ? data[i] : JSON.stringify(data[i]))); } return params.join('&'); } function parseQueryString(str) { var data = {}; var params = str.split('&'); var param; for (var i in params) { param = params[i].split('='); data[param[0]] = param[1]; } return data; } function closeNotifications(id) { self.registration.getNotifications().then(function (notifications) { var data; for (var i = 0; i < notifications.length; ++i) { if (id) { data = getNotificationData(notifications[i]); if (id == data.messageid) { notifications[i].close(); } } else { notifications[i].close(); } } }); } function getNotificationData(notification) { return notification.data || parseQueryString((notification.icon || notification.iconUrl).split('?')[1]); } function generateButtonsData(buttons) { buttons = buttons || []; var button; var data = {}; for (var i = 0, l = buttons.length; i < l; i++) { button = buttons[i]; data[i] = { url: encodeURI(button.url), request: encodeURI(button.request), action: 'open', id: button.id }; } return data; } function generateButtons(buttons) { buttons = buttons || []; var button; var actions = []; for (var i = 0, l = buttons.length; i < l; i++) { button = buttons[i]; if(button.icon) { actions.push({ action: i, title: button.title, icon: button.icon }); }else{ actions.push({ action: i, title: button.title, }); } } return actions; } function prepareId(subscription, additions) { additions = additions || {}; var i, browser; var subscriptionId = (subscription && 'subscriptionId' in subscription) ? subscription.subscriptionId : subscription && subscription.endpoint; var browsers = [ { name: 'CHROME', prefix: 'https://android.googleapis.com/gcm/send/' }, { name: 'FIREFOX', prefix: 'https://updates.push.services.mozilla.com/' } ]; for (i = 0; i < browsers.length; i++) { browser = browsers[i]; if (~subscriptionId.indexOf(browsers[i].prefix)) { additions.gid = subscriptionId.split(browsers[i].prefix)[1]; additions.browser = browsers[i].name; } } if (!additions.gid) { var subId = subscriptionId && subscriptionId.split && subscriptionId.split('/'); if (subId && subId.length) { subId = subId.pop(); } additions.gid = subId; } return additions; } function sendMessage(subject, error, isTrace, token) { if (isTrace) { return Promise.resolve(); } var promise = Promise.resolve(typeof token == 'string' ? token : JSON.stringify(token)); if (!token) { promise = self.registration.pushManager.getSubscription().then(function (subscription) { var prepared = prepareId(subscription); return Promise.resolve(prepared && prepared.gid); }).catch(function (err) { return Promise.resolve(null); }); } if (typeof error != 'string') error = JSON.stringify(error.message ? error.message : error); error = (subject || "No subject") + ": " + error; return promise.then(function (token) { var errorUrl = api_url + 'api/sites/' + (isTrace ? 'logtraceworker' : 'logworkerrors') + '/?app_key=' + app_key + '&token=' + token + '&time=' + Math.floor(Date.now() / 1000) + "&version=" + (version || 1); return fetch(errorUrl, { method: 'post', body: error }); }); } function clientActions(url, action) { if (url) { if (action === 'open' && clients.openWindow) { return self.clients.openWindow(url); } return self.clients.matchAll({ type: "window" }) .then(function (windowClients) { var i, client, promise; for (i = 0; i < windowClients.length; i++) { client = windowClients[i]; if ('focus' in client && client.url.indexOf(url) === 0) { promise = client.focus(); if (action === 'focus') { return promise; } } } if (!action) { return self.clients.openWindow(url); } }); } return Promise.reject(); }{ "display": "standalone", "gcm_sender_id": "330561634409", "gcm_user_visible_only": true }