397 lines
25 KiB
TypeScript
397 lines
25 KiB
TypeScript
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()} для автомобилей. Широкий выбор, низкие цены.`
|
||
};
|
||
};
|