Files
protekauto-frontend/src/lib/meta-config.ts

397 lines
25 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

interface MetaConfig {
title: string;
description: string;
keywords: string;
ogTitle?: string;
ogDescription?: string;
}
export const metaConfig: Record<string, MetaConfig> = {
// Главная страница
'/': {
title: 'Protek - Автозапчасти и аксессуары для всех марок автомобилей',
description: 'Protek - широкий ассортимент автозапчастей и аксессуаров для всех марок автомобилей. Быстрая доставка по России, гарантия качества, низкие цены.',
keywords: 'автозапчасти, запчасти для автомобилей, автоаксессуары, доставка запчастей, protek, протек',
ogTitle: 'Protek - Автозапчасти и аксессуары',
ogDescription: 'Широкий ассортимент автозапчастей и аксессуаров для всех марок автомобилей. Быстрая доставка, гарантия качества.'
},
// Каталог
'/catalog': {
title: 'Каталог автозапчастей - Protek',
description: 'Полный каталог автозапчастей для всех марок автомобилей. Более 1 миллиона наименований запчастей в наличии и под заказ.',
keywords: 'каталог запчастей, автозапчасти каталог, запчасти для авто, поиск запчастей',
ogTitle: 'Каталог автозапчастей - Protek',
ogDescription: 'Полный каталог автозапчастей для всех марок автомобилей. Более 1 миллиона наименований.'
},
// Марки автомобилей
'/brands': {
title: 'Все марки автомобилей - Каталог запчастей Protek',
description: 'Полный каталог автомобильных брендов для поиска запчастей. Выберите марку вашего автомобиля и найдите нужные запчасти.',
keywords: 'марки автомобилей, бренды авто, запчасти по маркам, автомобильные марки',
ogTitle: 'Все марки автомобилей - Protek',
ogDescription: 'Полный каталог автомобильных брендов для поиска запчастей.'
},
// Поиск по VIN
'/vin': {
title: 'Поиск запчастей по VIN коду - Protek',
description: 'Быстрый и точный поиск автозапчастей по VIN коду автомобиля. Определите совместимые запчасти для вашего авто.',
keywords: 'поиск по VIN, VIN код, запчасти по VIN, определение запчастей, совместимость',
ogTitle: 'Поиск запчастей по VIN коду - Protek',
ogDescription: 'Быстрый и точный поиск автозапчастей по VIN коду автомобиля.'
},
// Контакты
'/contacts': {
title: 'Контакты - Protek',
description: 'Контактная информация компании Protek. Адреса магазинов, телефоны, режим работы. Свяжитесь с нами для консультации.',
keywords: 'контакты protek, адрес, телефон, режим работы, магазины запчастей',
ogTitle: 'Контакты - Protek',
ogDescription: 'Контактная информация компании Protek. Адреса магазинов, телефоны, режим работы.'
},
// О компании
'/about': {
title: 'О компании Protek - Автозапчасти и аксессуары',
description: 'Компания Protek - надежный поставщик автозапчастей с многолетним опытом. Узнайте больше о нашей истории и преимуществах.',
keywords: 'о компании protek, история компании, преимущества, автозапчасти',
ogTitle: 'О компании Protek',
ogDescription: 'Компания Protek - надежный поставщик автозапчастей с многолетним опытом.'
},
// Оптовые продажи
'/wholesale': {
title: 'Оптовые продажи автозапчастей - Protek',
description: 'Оптовые продажи автозапчастей для автосервисов и дилеров. Специальные цены, гибкие условия сотрудничества.',
keywords: 'оптовые продажи, запчасти оптом, для автосервисов, дилерам, оптовые цены',
ogTitle: 'Оптовые продажи автозапчастей - Protek',
ogDescription: 'Оптовые продажи автозапчастей для автосервисов и дилеров. Специальные цены.'
},
// Корзина
'/cart': {
title: 'Корзина - Protek',
description: 'Корзина покупок. Оформите заказ на выбранные автозапчасти с быстрой доставкой.',
keywords: 'корзина покупок, оформление заказа, заказать запчасти',
ogTitle: 'Корзина - Protek',
ogDescription: 'Корзина покупок. Оформите заказ на выбранные автозапчасти.'
},
// Новости
'/news': {
title: 'Новости - Protek',
description: 'Актуальные новости компании Protek, события автомобильной индустрии и мира автозапчастей.',
keywords: 'новости protek, автомобильные новости, события автоиндустрии',
ogTitle: 'Новости - Protek',
ogDescription: 'Актуальные новости компании Protek и автомобильной индустрии.'
},
// Карточка товара
'/card': {
title: 'Карточка товара - Protek',
description: 'Подробная информация о товаре: характеристики, цены, наличие, отзывы.',
keywords: 'карточка товара, характеристики запчасти, цена, наличие',
ogTitle: 'Карточка товара - Protek',
ogDescription: 'Подробная информация о товаре: характеристики, цены, наличие.'
},
// Поиск автомобилей по артикулу
'/vehicles-by-part': {
title: 'Автомобили по артикулу - Protek',
description: 'Поиск автомобилей, в которых используется деталь с указанным артикулом.',
keywords: 'автомобили по артикулу, применимость детали, где используется',
ogTitle: 'Автомобили по артикулу - Protek',
ogDescription: 'Поиск автомобилей, в которых используется деталь с указанным артикулом.'
},
// Страницы оплаты
'/payment/success': {
title: 'Оплата прошла успешно - Protek',
description: 'Ваш платеж успешно обработан. Спасибо за покупку! Мы приступим к обработке заказа.',
keywords: 'оплата успешна, платеж прошел, заказ оплачен',
ogTitle: 'Оплата прошла успешно - Protek',
ogDescription: 'Ваш платеж успешно обработан. Спасибо за покупку!'
},
'/payment/cancelled': {
title: 'Оплата отменена - Protek',
description: 'Платеж был отменен. Вы можете попробовать оплатить заказ повторно.',
keywords: 'оплата отменена, платеж отклонен, повторная оплата',
ogTitle: 'Оплата отменена - Protek',
ogDescription: 'Платеж был отменен. Вы можете попробовать оплатить заказ повторно.'
},
'/payment/failed': {
title: 'Ошибка оплаты - Protek',
description: 'Произошла ошибка при обработке платежа. Попробуйте еще раз или выберите другой способ оплаты.',
keywords: 'ошибка оплаты, платеж не прошел, проблема с оплатой',
ogTitle: 'Ошибка оплаты - Protek',
ogDescription: 'Произошла ошибка при обработке платежа. Попробуйте еще раз.'
},
'/payment/invoice': {
title: 'Счёт на оплату - Protek',
description: 'Счёт на оплату заказа. Вы можете оплатить удобным для вас способом.',
keywords: 'счет на оплату, инвойс, оплата заказа',
ogTitle: 'Счёт на оплату - Protek',
ogDescription: 'Счёт на оплату заказа. Вы можете оплатить удобным для вас способом.'
},
// Дополнительные страницы профиля
'/profile-req': {
title: 'Реквизиты - Личный кабинет Protek',
description: 'Управление реквизитами организации в личном кабинете.',
keywords: 'реквизиты организации, личный кабинет, данные компании',
ogTitle: 'Реквизиты - Protek',
ogDescription: 'Управление реквизитами организации в личном кабинете.'
},
'/profile-acts': {
title: 'Акты сверки - Личный кабинет Protek',
description: 'Акты сверки взаиморасчетов в личном кабинете.',
keywords: 'акты сверки, взаиморасчеты, личный кабинет',
ogTitle: 'Акты сверки - Protek',
ogDescription: 'Акты сверки взаиморасчетов в личном кабинете.'
},
'/profile-balance': {
title: 'Баланс - Личный кабинет Protek',
description: 'Информация о балансе и финансовых операциях в личном кабинете.',
keywords: 'баланс счета, финансы, личный кабинет',
ogTitle: 'Баланс - Protek',
ogDescription: 'Информация о балансе и финансовых операциях.'
},
// Процесс заказа
'/order-confirmation': {
title: 'Подтверждение заказа - Protek',
description: 'Подтверждение оформленного заказа. Проверьте данные перед финальным подтверждением.',
keywords: 'подтверждение заказа, проверка заказа, финальный шаг',
ogTitle: 'Подтверждение заказа - Protek',
ogDescription: 'Подтверждение оформленного заказа. Проверьте данные.'
},
'/cart-step-2': {
title: 'Оформление заказа - Шаг 2 - Protek',
description: 'Второй шаг оформления заказа. Выберите способ доставки и оплаты.',
keywords: 'оформление заказа шаг 2, доставка, способ оплаты',
ogTitle: 'Оформление заказа - Шаг 2',
ogDescription: 'Второй шаг оформления заказа. Выберите способ доставки и оплаты.'
},
'/payments-method': {
title: 'Способы оплаты - Protek',
description: 'Выберите удобный способ оплаты: наличными, картой, банковским переводом.',
keywords: 'способы оплаты, оплата картой, наличные, банковский перевод',
ogTitle: 'Способы оплаты - Protek',
ogDescription: 'Выберите удобный способ оплаты: наличными, картой, банковским переводом.'
},
'/checkout': {
title: 'Оформление заказа - Protek',
description: 'Оформление заказа автозапчастей. Быстро и безопасно.',
keywords: 'оформление заказа, checkout, заказать запчасти',
ogTitle: 'Оформление заказа - Protek',
ogDescription: 'Оформление заказа автозапчастей. Быстро и безопасно.'
},
// Детальные страницы
'/detail_category': {
title: 'Категория товаров - Protek',
description: 'Просмотр товаров в выбранной категории автозапчастей.',
keywords: 'категория товаров, группа запчастей, каталог',
ogTitle: 'Категория товаров - Protek',
ogDescription: 'Просмотр товаров в выбранной категории автозапчастей.'
},
'/detail_product': {
title: 'Детальная информация о товаре - Protek',
description: 'Подробная информация о товаре: технические характеристики, совместимость, цены.',
keywords: 'детальная информация, технические характеристики, совместимость',
ogTitle: 'Детальная информация о товаре - Protek',
ogDescription: 'Подробная информация о товаре: технические характеристики, совместимость.'
},
'/detail_sku': {
title: 'Информация о SKU - Protek',
description: 'Детальная информация о конкретном артикуле товара.',
keywords: 'информация SKU, артикул товара, детали товара',
ogTitle: 'Информация о SKU - Protek',
ogDescription: 'Детальная информация о конкретном артикуле товара.'
},
// Избранное
'/favorite': {
title: 'Избранные товары - Protek',
description: 'Ваши избранные автозапчасти. Сохраните интересующие товары для быстрого доступа.',
keywords: 'избранные товары, сохраненные запчасти, избранное',
ogTitle: 'Избранные товары - Protek',
ogDescription: 'Ваши избранные автозапчасти. Сохраните интересующие товары.'
},
// Страница благодарности
'/thankyoupage': {
title: 'Спасибо за заказ - Protek',
description: 'Ваш заказ успешно оформлен. Мы свяжемся с вами в ближайшее время для подтверждения.',
keywords: 'заказ оформлен, спасибо за заказ, подтверждение заказа',
ogTitle: 'Спасибо за заказ - Protek',
ogDescription: 'Ваш заказ успешно оформлен. Мы свяжемся с вами в ближайшее время.'
},
// Новости - открытая статья
'/news-open': {
title: 'Новости - Protek',
description: 'Читайте актуальные новости и статьи от компании Protek о мире автозапчастей.',
keywords: 'новости protek, статьи, автозапчасти новости',
ogTitle: 'Новости - Protek',
ogDescription: 'Читайте актуальные новости и статьи от компании Protek.'
},
// Поиск
'/search': {
title: 'Поиск запчастей - Protek',
description: 'Универсальный поиск автозапчастей по артикулу, VIN коду или модели автомобиля.',
keywords: 'поиск запчастей, поиск по артикулу, поиск по VIN, универсальный поиск',
ogTitle: 'Поиск запчастей - Protek',
ogDescription: 'Универсальный поиск автозапчастей по артикулу, VIN коду или модели автомобиля.'
},
// Поиск по артикулу
'/article-search': {
title: 'Поиск деталей по артикулу - Protek',
description: 'Найдите автозапчасти по артикулу или номеру детали. Быстрый и точный поиск в каталоге.',
keywords: 'поиск по артикулу, номер детали, поиск запчастей по номеру',
ogTitle: 'Поиск деталей по артикулу - Protek',
ogDescription: 'Найдите автозапчасти по артикулу или номеру детали.'
},
// Профиль - заказы
'/profile-orders': {
title: 'Мои заказы - Личный кабинет Protek',
description: 'Управляйте своими заказами в личном кабинете. Отслеживайте статус и историю заказов.',
keywords: 'мои заказы, личный кабинет, история заказов, статус заказа',
ogTitle: 'Мои заказы - Protek',
ogDescription: 'Управляйте своими заказами в личном кабинете.'
},
// Профиль - настройки
'/profile-set': {
title: 'Настройки профиля - Личный кабинет Protek',
description: 'Настройки личного кабинета. Управляйте персональными данными и настройками аккаунта.',
keywords: 'настройки профиля, личные данные, настройки аккаунта',
ogTitle: 'Настройки профиля - Protek',
ogDescription: 'Настройки личного кабинета и персональных данных.'
},
// Профиль - адреса
'/profile-addresses': {
title: 'Мои адреса - Личный кабинет Protek',
description: 'Управляйте адресами доставки в личном кабинете. Добавляйте и редактируйте адреса.',
keywords: 'адреса доставки, мои адреса, личный кабинет',
ogTitle: 'Мои адреса - Protek',
ogDescription: 'Управляйте адресами доставки в личном кабинете.'
},
// Профиль - гараж
'/profile-gar': {
title: 'Мой гараж - Личный кабинет Protek',
description: 'Мой гараж - сохраняйте информацию о ваших автомобилях для быстрого подбора запчастей.',
keywords: 'мой гараж, мои автомобили, сохраненные авто',
ogTitle: 'Мой гараж - Protek',
ogDescription: 'Сохраняйте информацию о ваших автомобилях для быстрого подбора запчастей.'
},
// Профиль - история
'/profile-history': {
title: 'История просмотров - Личный кабинет Protek',
description: 'История просмотренных товаров и запчастей. Быстро найдите ранее просмотренные товары.',
keywords: 'история просмотров, просмотренные товары, личный кабинет',
ogTitle: 'История просмотров - Protek',
ogDescription: 'История просмотренных товаров и запчастей.'
},
// VIN поиск (шаг 2)
'/vin-step-2': {
title: 'Поиск запчастей по VIN - Шаг 2 - Protek',
description: 'Второй шаг поиска запчастей по VIN коду. Выберите нужные детали для вашего автомобиля.',
keywords: 'VIN поиск шаг 2, выбор деталей, поиск по VIN',
ogTitle: 'Поиск запчастей по VIN - Шаг 2',
ogDescription: 'Второй шаг поиска запчастей по VIN коду.'
},
};
// Функция для получения meta-тегов по пути
export const getMetaByPath = (path: string): MetaConfig => {
// Нормализуем путь (убираем query параметры)
const normalizedPath = path.split('?')[0];
// Проверяем точное совпадение
if (metaConfig[normalizedPath]) {
return metaConfig[normalizedPath];
}
// Проверяем динамические пути
if (normalizedPath.startsWith('/vehicle-search/')) {
return {
title: 'Поиск запчастей по автомобилю - Protek',
description: 'Найдите подходящие запчасти для вашего автомобиля. Точный подбор по марке, модели и году выпуска.',
keywords: 'поиск запчастей, подбор по автомобилю, запчасти для авто'
};
}
if (normalizedPath.startsWith('/search-result')) {
return {
title: 'Результаты поиска - Protek',
description: 'Результаты поиска автозапчастей. Найдите нужные запчасти среди широкого ассортимента.',
keywords: 'результаты поиска, поиск запчастей, найти запчасти'
};
}
if (normalizedPath.startsWith('/payment/')) {
return {
title: 'Оплата заказа - Protek',
description: 'Оплата заказа автозапчастей. Безопасные способы оплаты онлайн.',
keywords: 'оплата заказа, онлайн оплата, безопасная оплата'
};
}
// Возвращаем дефолтные meta-теги
return metaConfig['/'];
};
// Функция для создания динамических meta-тегов для товаров
export const createProductMeta = (product: {
name: string;
brand: string;
articleNumber: string;
price?: number;
}): MetaConfig => {
return {
title: `${product.brand} ${product.articleNumber} - ${product.name} - Protek`,
description: `Купить ${product.name} ${product.brand} артикул ${product.articleNumber}${product.price ? ` по цене ${product.price} руб.` : ''}. Гарантия качества, быстрая доставка.`,
keywords: `${product.name}, ${product.brand}, ${product.articleNumber}, запчасти, автозапчасти`,
ogTitle: `${product.brand} ${product.articleNumber} - ${product.name}`,
ogDescription: `Купить ${product.name} ${product.brand} артикул ${product.articleNumber}. Гарантия качества, быстрая доставка.`
};
};
// Функция для создания meta-тегов для категорий
export const createCategoryMeta = (categoryName: string, count?: number): MetaConfig => {
return {
title: `${categoryName} - Каталог запчастей Protek`,
description: `Купить ${categoryName.toLowerCase()} для автомобилей${count ? `. В наличии ${count} товаров` : ''}. Широкий выбор, низкие цены, быстрая доставка.`,
keywords: `${categoryName.toLowerCase()}, запчасти, автозапчасти, каталог`,
ogTitle: `${categoryName} - Protek`,
ogDescription: `Купить ${categoryName.toLowerCase()} для автомобилей. Широкий выбор, низкие цены.`
};
};