diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index a46f110..083c6c9 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -4,7 +4,7 @@ import { defineConfig } from 'vitepress' export default defineConfig({ title: "REES46", description: "Документация платформы", - base: '/help', + base: '/docs', themeConfig: { // https://vitepress.dev/reference/default-theme-config @@ -21,39 +21,101 @@ export default defineConfig({ sidebar: { '/guides/': [], - // TODO переделать на верхнеуровневые разделы, а внутри уже расширенные локальные разделы '/integration/': [ - { - text: 'Базовая интеграция', - collapsed: true, - items: [ - { text: 'Введение', link: '/setup/' }, - { text: 'Трекинг через SDK', link: '/loyalty/tracking' }, - ] - }, - { - text: 'Товарный фид', + { + text: 'Начальная интеграция', + collapsed: true, + items: [ + { text: 'Введение', link: '/integration/start/index.md' }, + { text: 'Установка SDK', link: '/integration/start/sdk.md' }, + { text: 'Инициализация сессии', link: '/integration/start/init.md' }, + { text: 'Стандартные события', link: '/integration/start/events.md' }, + { text: 'Кастомные события', link: '/integration/start/custom-events.md' }, + { text: 'Профиль', link: '/integration/start/profile.md' }, + ] + }, + { + text: 'Каталог', + collapsed: true, + items: [ + { text: 'Введение', link: '/integration/catalog/index.md' }, + ] + }, + { + text: 'Каналы коммуникации', + collapsed: true, + items: [ + { text: 'Введение', link: '/integration/channels/index.md' }, + ] + }, + { + text: 'Товарные рекомендации', + collapsed: true, + items: [ + { text: 'Введение', link: '/integration/recommendations/index.md' }, + ] + }, + { + text: 'Поиск', + collapsed: true, + items: [ + { text: 'Введение', link: '/integration/search/index.md' }, + ] + }, + { + text: 'Листинг товаров', + collapsed: true, + items: [ + { text: 'Введение', link: '/integration/listing/index.md' }, + ] + }, + { + text: 'Товарные коллекции', + collapsed: true, + items: [ + { text: 'Введение', link: '/integration/collections/index.md' }, + ] + }, + { + text: 'Сторис', + collapsed: true, + items: [ + { text: 'Введение', link: '/integration/stories/index.md' }, + ] + }, + { + text: 'Попапы и in-app push', + collapsed: true, + items: [ + { text: 'Введение', link: '/integration/popups/index.md' }, + ] + }, + { + text: 'Программа лояльности', + collapsed: true, + items: [ + { text: 'Введение', link: '/integration/loyalty/index.md' }, + { + text: 'Wallet', collapsed: true, items: [ - { text: 'Введение', link: '/feed/' }, - { text: 'Импорт через XML', link: '/feed/xml' }, - { text: 'Импорт через API', link: '/feed/api' }, - { text: 'Импорт через БД', link: '/feed/database' }, - { text: 'Расширенные свойства', link: '/feed/industry-properties' }, + { text: 'Введение', link: '/integration/loyalty/wallet/index.md' }, + { text: 'Настройка Apple Wallet', link: '/integration/loyalty/wallet/apple.md' }, + { text: 'Настройка Google Wallet', link: '/integration/loyalty/wallet/google.md' }, + { text: 'Распространение', link: '/integration/loyalty/wallet/distribute.md' }, ] - }, + } + ] + }, { - text: 'Программа лояльности', + text: 'Режим PRO', collapsed: true, items: [ - { text: 'Основное подключение', link: '/loyalty/setup/' }, - { text: 'Участники', link: '/loyalty/membership' }, - { text: 'Уровни', link: '/loyalty/levels' }, - { text: 'Бонусы', link: '/loyalty/bonuses' }, - { text: 'Стикеры', link: '/loyalty/stickers' }, - { text: 'Акции', link: '/loyalty/promotions' }, - { text: 'Промокоды и купоны', link: '/loyalty/promo-codes' }, - { text: 'Реферальная программа', link: '/loyalty/referral' }, + { text: 'Введение', link: '/integration/extended/index.md' }, + { text: 'On-premise', link: '/integration/extended/on-premise.md' }, + { text: 'White label', link: '/integration/extended/white-label.md' }, + { text: 'S2S – серверная интеграция', link: '/integration/extended/s2s.md' }, + { text: 'Dashboard API', link: '/integration/extended/dashboard-api.md' }, ] }, ], @@ -75,7 +137,6 @@ export default defineConfig({ text: 'Поиск', collapsed: true, items: [ - { text: 'Фасетный поиск', link: '/mechanics/search/facet-search' } ] }, { @@ -101,18 +162,19 @@ export default defineConfig({ '/education/': [], '/glossary/': [ + { text: 'E-commerce', collapsed: true, items: [ - { text: 'DIY', link: '/glossary/ecommerce/dyi' }, - { text: 'E-pharmacy', link: '/glossary/ecommerce/e-pharmacy' }, - { text: 'FMCG', link: '/glossary/ecommerce/fmcg' }, - { text: 'FoodTech', link: '/glossary/ecommerce/food-tech' }, - { text: 'Health & Beauty', link: '/glossary/ecommerce/health-and-beauty' }, - { text: 'eGrocery', link: '/glossary/ecommerce/egrocery' }, - { text: 'Конверсия', link: '/glossary/ecommerce/conversion' }, - { text: 'Товарный фид', link: '/glossary/ecommerce/products-feed' } + { text: 'DIY', link: '/glossary/ecommerce/dyi.md' }, + { text: 'E-pharmacy', link: '/glossary/ecommerce/e-pharmacy.md' }, + { text: 'FMCG', link: '/glossary/ecommerce/fmcg.md' }, + { text: 'FoodTech', link: '/glossary/ecommerce/food-tech.md' }, + { text: 'Health & Beauty', link: '/glossary/ecommerce/health-and-beauty.md' }, + { text: 'eGrocery', link: '/glossary/ecommerce/egrocery.md' }, + { text: 'Конверсия', link: '/glossary/ecommerce/conversion.md' }, + { text: 'Товарный фид', link: '/glossary/ecommerce/products-feed.md' } ] }, @@ -120,34 +182,34 @@ export default defineConfig({ text: 'Email-маркетинг', collapsed: true, items: [ - { text: 'Double opt-in', link: '/glossary/email-marketing/double-opt-in' }, - { text: 'Liquid Markup', link: '/glossary/email-marketing/liquid-markup' }, - { text: 'Mobile push', link: '/glossary/email-marketing/mobile-push' }, - { text: 'Opt-out', link: '/glossary/email-marketing/opt-out' }, - { text: 'Push-рассылки', link: '/glossary/email-marketing/push-campaigns' }, - { text: 'Push-токены', link: '/glossary/email-marketing/push-token' }, - { text: 'Welcome-цепочка', link: '/glossary/email-marketing/welcome-campaign' }, - { text: 'Автосборщик email', link: '/glossary/email-marketing/email-collector' }, - { text: 'Веб-пуш', link: '/glossary/email-marketing/web-push' }, - { text: 'Грейлистинг', link: '/glossary/email-marketing/gray-listing' }, - { text: 'Динамический сегмент', link: '/glossary/email-marketing/dynamic-segment' }, - { text: 'Канал доставки', link: '/glossary/email-marketing/delivery-channel' }, - { text: 'Комбинированная форма подписки', link: '/glossary/email-marketing/combined-subscription-form' }, - { text: 'Массовые рассылки', link: '/glossary/email-marketing/bulk-campaigns' }, - { text: 'Отложенная отправка', link: '/glossary/email-marketing/scheduled-campaign' }, - { text: 'Пользовательские сегменты', link: '/glossary/email-marketing/segment' }, - { text: 'Прехедер', link: '/glossary/email-marketing/pre-header' }, - { text: 'Реактивационное письмо', link: '/glossary/email-marketing/reactivation-message' }, - { text: 'Событие-триггер', link: '/glossary/email-marketing/event-trigger' }, - { text: 'Ссылка отписки (англ. unsubscribe link)', link: '/glossary/email-marketing/unsubsribe-link' }, - { text: 'Статичный сегмент', link: '/glossary/email-marketing/static-segment' }, - { text: 'Тестовое письмо', link: '/glossary/email-marketing/test-message' }, - { text: 'Транзакционные SMS', link: '/glossary/email-marketing/transactional-sms' }, - { text: 'Транзакционные email', link: '/glossary/email-marketing/transactional-email' }, - { text: 'Транзакционные мультисообщения', link: '/glossary/email-marketing/transactional-cascade-message' }, - { text: 'Транзакционные рассылки', link: '/glossary/email-marketing/transactional-messages' }, - { text: 'Триггерные цепочки', link: '/glossary/email-marketing/trigger-campaigns' }, - { text: 'Целевые клики', link: '/glossary/email-marketing/target-clicks' } + { text: 'Double opt-in', link: '/glossary/email-marketing/double-opt-in.md' }, + { text: 'Liquid Markup', link: '/glossary/email-marketing/liquid-markup.md' }, + { text: 'Mobile push', link: '/glossary/email-marketing/mobile-push.md' }, + { text: 'Opt-out', link: '/glossary/email-marketing/opt-out.md' }, + { text: 'Push-рассылки', link: '/glossary/email-marketing/push-campaigns.md' }, + { text: 'Push-токены', link: '/glossary/email-marketing/push-token.md' }, + { text: 'Welcome-цепочка', link: '/glossary/email-marketing/welcome-campaign.md' }, + { text: 'Автосборщик email', link: '/glossary/email-marketing/email-collector.md' }, + { text: 'Веб-пуш', link: '/glossary/email-marketing/web-push.md' }, + { text: 'Грейлистинг', link: '/glossary/email-marketing/gray-listing.md' }, + { text: 'Динамический сегмент', link: '/glossary/email-marketing/dynamic-segment.md' }, + { text: 'Канал доставки', link: '/glossary/email-marketing/delivery-channel.md' }, + { text: 'Комбинированная форма подписки', link: '/glossary/email-marketing/combined-subscription-form.md' }, + { text: 'Массовые рассылки', link: '/glossary/email-marketing/bulk-campaigns.md' }, + { text: 'Отложенная отправка', link: '/glossary/email-marketing/scheduled-campaign.md' }, + { text: 'Пользовательские сегменты', link: '/glossary/email-marketing/segment.md' }, + { text: 'Прехедер', link: '/glossary/email-marketing/pre-header.md' }, + { text: 'Реактивационное письмо', link: '/glossary/email-marketing/reactivation-message.md' }, + { text: 'Событие-триггер', link: '/glossary/email-marketing/event-trigger.md' }, + { text: 'Ссылка отписки (англ. unsubscribe link)', link: '/glossary/email-marketing/unsubsribe-link.md' }, + { text: 'Статичный сегмент', link: '/glossary/email-marketing/static-segment.md' }, + { text: 'Тестовое письмо', link: '/glossary/email-marketing/test-message.md' }, + { text: 'Транзакционные SMS', link: '/glossary/email-marketing/transactional-sms.md' }, + { text: 'Транзакционные email', link: '/glossary/email-marketing/transactional-email.md' }, + { text: 'Транзакционные мультисообщения', link: '/glossary/email-marketing/transactional-cascade-message.md' }, + { text: 'Транзакционные рассылки', link: '/glossary/email-marketing/transactional-messages.md' }, + { text: 'Триггерные цепочки', link: '/glossary/email-marketing/trigger-campaigns.md' }, + { text: 'Целевые клики', link: '/glossary/email-marketing/target-clicks.md' } ] }, @@ -155,40 +217,40 @@ export default defineConfig({ text: 'Маркетинг', collapsed: true, items: [ - { text: 'A/B-тест', link: '/glossary/marketing/ab-test' }, - { text: 'API', link: '/glossary/marketing/api' }, - { text: 'Big Data', link: '/glossary/marketing/big-data' }, - { text: 'Customer journey', link: '/glossary/marketing/customer-journey' }, - { text: 'Data-driven', link: '/glossary/marketing/data-driven' }, - { text: 'Google Analytics', link: '/glossary/marketing/google-analytics' }, - { text: 'KPI', link: '/glossary/marketing/kpi' }, - { text: 'Mindmap', link: '/glossary/marketing/mindmap' }, - { text: 'No-code solutions', link: '/glossary/marketing/no-code-solutions' }, - { text: 'On-premise', link: '/glossary/marketing/on-premise' }, - { text: 'Performance-маркетинг', link: '/glossary/marketing/performance-marketing' }, - { text: 'SaaS', link: '/glossary/marketing/saas' }, - { text: 'UTM-метки', link: '/glossary/marketing/utm' }, - { text: 'Воронка продаж', link: '/glossary/marketing/sales-funnel' }, - { text: 'Дашборд', link: '/glossary/marketing/dashboard' }, - { text: 'Карта кликов (англ. click map)', link: '/glossary/marketing/click-map' }, - { text: 'Копакинг', link: '/glossary/marketing/co-packing' }, - { text: 'Лид (продажи)', link: '/glossary/marketing/lead' }, - { text: 'Лид-магнит', link: '/glossary/marketing/lead-magnet' }, - { text: 'Лидогенерация', link: '/glossary/marketing/lead-gen' }, - { text: 'Ликвидность', link: '/glossary/marketing/liquidity' }, - { text: 'Логика «ЕСЛИ/ТО»', link: '/glossary/marketing/if-else-logic' }, - { text: 'Логика «И/ИЛИ»', link: '/glossary/marketing/and-or-logic' }, - { text: 'Маржинальность', link: '/glossary/marketing/price-margin' }, - { text: 'Охват', link: '/glossary/marketing/reach' }, - { text: 'Попап', link: '/glossary/marketing/popup' }, - { text: 'Премодерация', link: '/glossary/marketing/pre-moderation' }, - { text: 'Программа лояльности', link: '/glossary/marketing/loyalty-program' }, - { text: 'Редирект', link: '/glossary/marketing/redirect' }, - { text: 'Ретаргетинг', link: '/glossary/marketing/retargeting' }, - { text: 'Сервис коротких ссылок (url shortener)', link: '/glossary/marketing/url-shortener' }, - { text: 'Сквозная аналитика', link: '/glossary/marketing/end-to-end-analytics' }, - { text: 'Соцдем', link: '/glossary/marketing/socio-demographics' }, - { text: 'Целевая аудитория', link: '/glossary/marketing/target-audience' } + { text: 'A/B-тест', link: '/glossary/marketing/ab-test.md' }, + { text: 'API', link: '/glossary/marketing/api.md' }, + { text: 'Big Data', link: '/glossary/marketing/big-data.md' }, + { text: 'Customer journey', link: '/glossary/marketing/customer-journey.md' }, + { text: 'Data-driven', link: '/glossary/marketing/data-driven.md' }, + { text: 'Google Analytics', link: '/glossary/marketing/google-analytics.md' }, + { text: 'KPI', link: '/glossary/marketing/kpi.md' }, + { text: 'Mindmap', link: '/glossary/marketing/mindmap.md' }, + { text: 'No-code solutions', link: '/glossary/marketing/no-code-solutions.md' }, + { text: 'On-premise', link: '/glossary/marketing/on-premise.md' }, + { text: 'Performance-маркетинг', link: '/glossary/marketing/performance-marketing.md' }, + { text: 'SaaS', link: '/glossary/marketing/saas.md' }, + { text: 'UTM-метки', link: '/glossary/marketing/utm.md' }, + { text: 'Воронка продаж', link: '/glossary/marketing/sales-funnel.md' }, + { text: 'Дашборд', link: '/glossary/marketing/dashboard.md' }, + { text: 'Карта кликов (англ. click map)', link: '/glossary/marketing/click-map.md' }, + { text: 'Копакинг', link: '/glossary/marketing/co-packing.md' }, + { text: 'Лид (продажи)', link: '/glossary/marketing/lead.md' }, + { text: 'Лид-магнит', link: '/glossary/marketing/lead-magnet.md' }, + { text: 'Лидогенерация', link: '/glossary/marketing/lead-gen.md' }, + { text: 'Ликвидность', link: '/glossary/marketing/liquidity.md' }, + { text: 'Логика «ЕСЛИ/ТО»', link: '/glossary/marketing/if-else-logic.md' }, + { text: 'Логика «И/ИЛИ»', link: '/glossary/marketing/and-or-logic.md' }, + { text: 'Маржинальность', link: '/glossary/marketing/price-margin.md' }, + { text: 'Охват', link: '/glossary/marketing/reach.md' }, + { text: 'Попап', link: '/glossary/marketing/popup.md' }, + { text: 'Премодерация', link: '/glossary/marketing/pre-moderation.md' }, + { text: 'Программа лояльности', link: '/glossary/marketing/loyalty-program.md' }, + { text: 'Редирект', link: '/glossary/marketing/redirect.md' }, + { text: 'Ретаргетинг', link: '/glossary/marketing/retargeting.md' }, + { text: 'Сервис коротких ссылок (url shortener)', link: '/glossary/marketing/url-shortener.md' }, + { text: 'Сквозная аналитика', link: '/glossary/marketing/end-to-end-analytics.md' }, + { text: 'Соцдем', link: '/glossary/marketing/socio-demographics.md' }, + { text: 'Целевая аудитория', link: '/glossary/marketing/target-audience.md' } ] }, @@ -196,41 +258,41 @@ export default defineConfig({ text: 'Метрики и аббревиатуры', collapsed: true, items: [ - { text: 'ABC-сегменты', link: '/glossary/metrics/abc-segments' }, - { text: 'AOV', link: '/glossary/metrics/aov' }, - { text: 'ARPPU', link: '/glossary/metrics/arppu' }, - { text: 'ARPU', link: '/glossary/metrics/arpu' }, - { text: 'Bounce rate', link: '/glossary/metrics/bounce-rate' }, - { text: 'CDP (customer data platform)', link: '/glossary/metrics/cdp' }, - { text: 'CMS (content management system)', link: '/glossary/metrics/cms' }, - { text: 'CPE', link: '/glossary/metrics/cpe' }, - { text: 'CPM', link: '/glossary/metrics/cpm' }, - { text: 'CPS', link: '/glossary/metrics/cps' }, - { text: 'CR (Conversion Rate)', link: '/glossary/metrics/conversion-rate' }, - { text: 'CRM', link: '/glossary/metrics/crm' }, - { text: 'CSV (формат файла)', link: '/glossary/metrics/csv' }, - { text: 'CTOR (рассылки)', link: '/glossary/metrics/ctor' }, - { text: 'CTR (рассылки)', link: '/glossary/metrics/ctr' }, - { text: 'D2C', link: '/glossary/metrics/d2c' }, - { text: 'DMP (data management platform)', link: '/glossary/metrics/dmp' }, - { text: 'Delivery Rate (рассылки)', link: '/glossary/metrics/delivery-rate' }, - { text: 'FM-анализ', link: '/glossary/metrics/fm-analysis' }, - { text: 'Hard bounce', link: '/glossary/metrics/hard-bounce' }, - { text: 'LTV', link: '/glossary/metrics/ltv' }, - { text: 'NPS (Net Promoter Score)', link: '/glossary/metrics/nps' }, - { text: 'O2O', link: '/glossary/metrics/o2o' }, - { text: 'OR (Open Rate)', link: '/glossary/metrics/open-rate' }, - { text: 'RF-анализ', link: '/glossary/metrics/rf-analysis' }, - { text: 'RFM-анализ', link: '/glossary/metrics/rfm-analysis' }, - { text: 'RM-анализ', link: '/glossary/metrics/rm-analysis' }, - { text: 'ROI', link: '/glossary/metrics/roi' }, - { text: 'ROMI', link: '/glossary/metrics/romi' }, - { text: 'RPE', link: '/glossary/metrics/rpe' }, - { text: 'Soft bounce', link: '/glossary/metrics/soft-bounce' }, - { text: 'Spam complaint rate', link: '/glossary/metrics/spam-rate' }, - { text: 'UnR (unsubscribe rate)', link: '/glossary/metrics/unsubscribe-rate' }, - { text: 'Валовая прибыль', link: '/glossary/metrics/gross-profit' }, - { text: 'Коэффициент оттока клиентов (англ. churn rate)', link: '/glossary/metrics/churn-rate' } + { text: 'ABC-сегменты', link: '/glossary/metrics/abc-segments.md' }, + { text: 'AOV', link: '/glossary/metrics/aov.md' }, + { text: 'ARPPU', link: '/glossary/metrics/arppu.md' }, + { text: 'ARPU', link: '/glossary/metrics/arpu.md' }, + { text: 'Bounce rate', link: '/glossary/metrics/bounce-rate.md' }, + { text: 'CDP (customer data platform)', link: '/glossary/metrics/cdp.md' }, + { text: 'CMS (content management system)', link: '/glossary/metrics/cms.md' }, + { text: 'CPE', link: '/glossary/metrics/cpe.md' }, + { text: 'CPM', link: '/glossary/metrics/cpm.md' }, + { text: 'CPS', link: '/glossary/metrics/cps.md' }, + { text: 'CR (Conversion Rate)', link: '/glossary/metrics/conversion-rate.md' }, + { text: 'CRM', link: '/glossary/metrics/crm.md' }, + { text: 'CSV (формат файла)', link: '/glossary/metrics/csv.md' }, + { text: 'CTOR (рассылки)', link: '/glossary/metrics/ctor.md' }, + { text: 'CTR (рассылки)', link: '/glossary/metrics/ctr.md' }, + { text: 'D2C', link: '/glossary/metrics/d2c.md' }, + { text: 'DMP (data management platform)', link: '/glossary/metrics/dmp.md' }, + { text: 'Delivery Rate (рассылки)', link: '/glossary/metrics/delivery-rate.md' }, + { text: 'FM-анализ', link: '/glossary/metrics/fm-analysis.md' }, + { text: 'Hard bounce', link: '/glossary/metrics/hard-bounce.md' }, + { text: 'LTV', link: '/glossary/metrics/ltv.md' }, + { text: 'NPS (Net Promoter Score)', link: '/glossary/metrics/nps.md' }, + { text: 'O2O', link: '/glossary/metrics/o2o.md' }, + { text: 'OR (Open Rate)', link: '/glossary/metrics/open-rate.md' }, + { text: 'RF-анализ', link: '/glossary/metrics/rf-analysis.md' }, + { text: 'RFM-анализ', link: '/glossary/metrics/rfm-analysis.md' }, + { text: 'RM-анализ', link: '/glossary/metrics/rm-analysis.md' }, + { text: 'ROI', link: '/glossary/metrics/roi.md' }, + { text: 'ROMI', link: '/glossary/metrics/romi.md' }, + { text: 'RPE', link: '/glossary/metrics/rpe.md' }, + { text: 'Soft bounce', link: '/glossary/metrics/soft-bounce.md' }, + { text: 'Spam complaint rate', link: '/glossary/metrics/spam-rate.md' }, + { text: 'UnR (unsubscribe rate)', link: '/glossary/metrics/unsubscribe-rate.md' }, + { text: 'Валовая прибыль', link: '/glossary/metrics/gross-profit.md' }, + { text: 'Коэффициент оттока клиентов (англ. churn rate)', link: '/glossary/metrics/churn-rate.md' } ] }, @@ -238,13 +300,13 @@ export default defineConfig({ text: 'Товарные рекомендации', collapsed: true, items: [ - { text: 'Upsell', link: '/glossary/product-recommendations/upsell' }, - { text: 'Блоки товарных рекомендаций', link: '/glossary/product-recommendations/product-recommendations-block' }, - { text: 'Коллаборативная фильтрация', link: '/glossary/product-recommendations/collaborative-filtering' }, - { text: 'Машинная персонализация', link: '/glossary/product-recommendations/machine-personalization' }, - { text: 'Отраслевая персонализация', link: '/glossary/product-recommendations/industry-personalization' }, - { text: 'Перекрёстные продажи (англ. cross-selling)', link: '/glossary/product-recommendations/cross-selling' }, - { text: 'Персонализация', link: '/glossary/product-recommendations/personalization' } + { text: 'Upsell', link: '/glossary/product-recommendations/upsell.md' }, + { text: 'Блоки товарных рекомендаций', link: '/glossary/product-recommendations/product-recommendations-block.md' }, + { text: 'Коллаборативная фильтрация', link: '/glossary/product-recommendations/collaborative-filtering.md' }, + { text: 'Машинная персонализация', link: '/glossary/product-recommendations/machine-personalization.md' }, + { text: 'Отраслевая персонализация', link: '/glossary/product-recommendations/industry-personalization.md' }, + { text: 'Перекрёстные продажи (англ. cross-selling)', link: '/glossary/product-recommendations/cross-selling.md' }, + { text: 'Персонализация', link: '/glossary/product-recommendations/personalization.md' } ] }, @@ -252,19 +314,19 @@ export default defineConfig({ text: 'Поиск', collapsed: true, items: [ - { text: 'Findability', link: '/glossary/search/findability' }, - { text: 'Natural Language Search', link: '/glossary/search/natural-language-search' }, - { text: 'Аппроксимация', link: '/glossary/search/approximation' }, - { text: 'Быстрый поиск', link: '/glossary/search/instant-search' }, - { text: 'Голосовой поиск', link: '/glossary/search/voice-search' }, - { text: 'Запросы с максимальной выручкой', link: '/glossary/search/most-profitable-requests' }, - { text: 'Нулевая выдача', link: '/glossary/search/empty-search-results' }, - { text: 'Персональное ранжирование', link: '/glossary/search/personalized-ranking' }, - { text: 'Полный поиск', link: '/glossary/search/full-search' }, - { text: 'Популярные запросы без выручки', link: '/glossary/search/popular-requests-without-purchases' }, - { text: 'Синонимы (запросы)', link: '/glossary/search/synonym' }, - { text: 'Стемминг', link: '/glossary/search/stemming' }, - { text: 'Стоп-лист', link: '/glossary/search/stop-list' } + { text: 'Findability', link: '/glossary/search/findability.md' }, + { text: 'Natural Language Search', link: '/glossary/search/natural-language-search.md' }, + { text: 'Аппроксимация', link: '/glossary/search/approximation.md' }, + { text: 'Быстрый поиск', link: '/glossary/search/instant-search.md' }, + { text: 'Голосовой поиск', link: '/glossary/search/voice-search.md' }, + { text: 'Запросы с максимальной выручкой', link: '/glossary/search/most-profitable-requests.md' }, + { text: 'Нулевая выдача', link: '/glossary/search/empty-search-results.md' }, + { text: 'Персональное ранжирование', link: '/glossary/search/personalized-ranking.md' }, + { text: 'Полный поиск', link: '/glossary/search/full-search.md' }, + { text: 'Популярные запросы без выручки', link: '/glossary/search/popular-requests-without-purchases.md' }, + { text: 'Синонимы (запросы)', link: '/glossary/search/synonym.md' }, + { text: 'Стемминг', link: '/glossary/search/stemming.md' }, + { text: 'Стоп-лист', link: '/glossary/search/stop-list.md' } ] }, @@ -275,20 +337,20 @@ export default defineConfig({ text: 'Юридические документы', collapsed: false, items: [ - { text: 'Список документов', link: 'legal/index' }, - { text: 'Пользовательское соглашение', link: 'legal/agreement' }, - { text: 'Договор-оферта', link: 'legal/offer' }, - { text: 'Политика конфиденциальности', link: 'legal/policy' } + { text: 'Список документов', link: 'legal/index.md' }, + { text: 'Пользовательское соглашение', link: 'legal/agreement.md' }, + { text: 'Договор-оферта', link: 'legal/offer.md' }, + { text: 'Политика конфиденциальности', link: 'legal/policy.md' } ] }, { text: 'Согласия', collapsed: false, items: [ - { text: 'Согласие на получение и обработку персональных данных при запросе на обратную связь', link: 'legal/feedback' }, - { text: 'Согласие на получение и обработку персональных данных', link: 'legal/personal-data' }, - { text: 'Согласие на получение и обработку персональных данных в целях рекламы', link: 'legal/ads' }, - { text: 'Согласие на получение и обработку персональных данных при регистрации', link: 'legal/registration' } + { text: 'Согласие на получение и обработку персональных данных при запросе на обратную связь', link: 'legal/feedback.md' }, + { text: 'Согласие на получение и обработку персональных данных', link: 'legal/personal-data.md' }, + { text: 'Согласие на получение и обработку персональных данных в целях рекламы', link: 'legal/ads.md' }, + { text: 'Согласие на получение и обработку персональных данных при регистрации', link: 'legal/registration.md' } ] } ], @@ -298,4 +360,4 @@ export default defineConfig({ // { icon: 'github', link: 'https://github.com/vuejs/vitepress' } ] } -}) +}) \ No newline at end of file diff --git a/docs/.vitepress/theme/components/APITabs.vue b/docs/.vitepress/theme/components/APITabs.vue new file mode 100644 index 0000000..b922a94 --- /dev/null +++ b/docs/.vitepress/theme/components/APITabs.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/docs/.vitepress/theme/components/BasicBlock.vue b/docs/.vitepress/theme/components/BasicBlock.vue new file mode 100644 index 0000000..2dbb458 --- /dev/null +++ b/docs/.vitepress/theme/components/BasicBlock.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/docs/.vitepress/theme/components/Layout.vue b/docs/.vitepress/theme/components/Layout.vue new file mode 100644 index 0000000..f8fb1bf --- /dev/null +++ b/docs/.vitepress/theme/components/Layout.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/docs/.vitepress/theme/components/RightActionPanel.vue b/docs/.vitepress/theme/components/RightActionPanel.vue new file mode 100644 index 0000000..32218b5 --- /dev/null +++ b/docs/.vitepress/theme/components/RightActionPanel.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/docs/.vitepress/theme/index.js b/docs/.vitepress/theme/index.js new file mode 100644 index 0000000..8065213 --- /dev/null +++ b/docs/.vitepress/theme/index.js @@ -0,0 +1,15 @@ +import DefaultTheme from 'vitepress/theme' +import CustomLayout from './components/Layout.vue' + +import BasicBlock from './components/BasicBlock.vue' + +export default { + ...DefaultTheme, + Layout: CustomLayout, + enhanceApp({ app }) { + DefaultTheme.enhanceApp?.({ app }) + + app.component('BasicBlock', BasicBlock) + } +} + diff --git a/docs/.vitepress/theme/rightPanel.js b/docs/.vitepress/theme/rightPanel.js new file mode 100644 index 0000000..961fea4 --- /dev/null +++ b/docs/.vitepress/theme/rightPanel.js @@ -0,0 +1,10 @@ +export const rightPanels = [ + { + id: 'api', + title: 'API Reference', + buttonLabel: 'API', + items: [ + { text: 'Introduction', link: 'docs/integration/api/' }, + ] + } +] diff --git a/docs/integration/api/index.md b/docs/integration/api/index.md new file mode 100644 index 0000000..e4785e0 --- /dev/null +++ b/docs/integration/api/index.md @@ -0,0 +1,33 @@ +# Introduction + +Welcome to <%= config[:service_name] %> API Reference. This reference will help you to create new, more effective S2S or M2S integration. + +Our API is RESTful and you can use any language to work with it. + +We provide examples as: + +- cURL +- Javascript (web) +- Swift (iOS) +- Kotlin (Android) +- Java (Android) + +Every request in this API can include a set of parameters — some mandatory, others optional. + +Optional parameters may affect how requests are processed. + +For example, the stream parameter (explained below) provides a way to label the source of data. + + \ No newline at end of file diff --git a/docs/integration/index.md b/docs/integration/index.md index 30404ce..1978ddb 100644 --- a/docs/integration/index.md +++ b/docs/integration/index.md @@ -1 +1,17 @@ -TODO \ No newline at end of file +# Интеграция и API + +Интеграция любого инструмента REES46 начинается с базовой интеграции CDP: + +1. Установка SDK на сайт и в мобильные приложения. +2. Трекинг действий посетителей. +3. Синхронизация заказов. +4. Первичный импорт аудитории и истории заказов. +5. Загрузка фида с товарами или услугами. + +Поэтому рекомендуем начать с раздела "[Начальная интеграция](./start/index.md)" и выполнить максимум рекомендаций. + +Платформа может работать с любым устройством, у которого есть интернет. + +Есть SDK и есть REST API. + +Для управления есть еще Dashboard API, ссылка на него идет отдельно. \ No newline at end of file diff --git a/docs/integration/loyalty/wallet/apple.md b/docs/integration/loyalty/wallet/apple.md new file mode 100644 index 0000000..b965090 --- /dev/null +++ b/docs/integration/loyalty/wallet/apple.md @@ -0,0 +1,63 @@ +# Настройка Apple Wallet + +Вам потребуется аккаунт Apple Developer и MacBook, чтобы сгенерировать сертификат Apple Pass. Если с этим есть сложности, обратитесь к нашей команде поддержки. + +Краткий план действий: + +1. Создаем идентификатор Pass ID +2. Создаем CSR файл +3. Генерируем CER-файл +4. Импортируем в Keychain +5. Выгружаем сертификат P12 +6. Загружаем в личный кабинет + +## Создаем идентификатор Pass ID + +1. Зайдите в Apple Developer +2. Перейдите в раздел `Certificates, Identifiers & Profiles` +3. Выберите `Identifiers` +4. Нажмите `[+]` +5. Впишите описание (любой текст) и идентификатор пасса, что-то вроде `pass.ru.mywebsite.loyalty` (строка может быть любая, главное чтобы это было похоже на Reverse DNS) +6. Нажмите "Сохранить" + +Не закрывайте окно, нам потребуется форма создания сертификата через один шаг. + +## Создаем CSR файл + +1. Откройте на MacBook приложение `Keychain Access` +2. В меню выберите `Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority...` +3. В новом окне в параметре `Request is` выберите вариант `Saved to disk` +4. Сохраните файл `CertificateSigningRequest.certSigningRequest` на жесткий диск, он потребуется на следующем шаге + +## Генерируем CER-файл + +1. Вернитесь в окно браузера, где вы создали `Pass Identifier` (если закрыли, то откройте `Certificates, Identifiers & Profiles > Identifiers`, справа-сверху вместо `App IDs` выберите `Pass Type IDs`, и кликните в идентификатор, который вы создали ранее) +2. Нажмите кнопку `Create certificate` +3. В имя сертификата впишите что угодно +4. Выберите в поле файла созданный ранее файл `CertificateSigningRequest.certSigningRequest` +5. Нажмите `Continue` +6. На следующем экране скачайте `.cer` файл на жесткий диск + +## Импортируем в Keychain + +1. Двойной клик на полученный `.cer` файл +2. Откроется `Keychain Access` +3. В секции `login` через поле поиска найдите тот Pass Type ID, который вы создали в секции `Создаем идентификатор Pass ID` + +## Выгружаем сертификат P12 + +1. Правой кнопкой на имя `Pass Type ID`, откроется контекстное меню +2. Выберите `Export "Pass Type ID ..."` +3. Откроется окно с указанием имени файла (по-умолчанию `Certificates`), оставьте его как есть, и формат файла `.p12` тоже. Нажмите `Save` +4. В следующем окне введите пароль к сертификату (обязательно) + +## Загружаем в личный кабинет + +1. Откройте в личном кабинете REES46 экран настройки Wallet +2. Скроллируйте вниз, пока не увидите форму загрузки сертификата Apple +3. Выберите файл из предыдущего пункта и введите пароль +4. Нажмите "Загрузить" +5. Если получили ошибку пароля, значит пароль указан неправильно (проверьте, что не вставляете лишние пробелы) +6. После успешной загрузки вы увидите дату, до которой действует сертификат. Не забывайте проверять ее и загрузить новый сертификат до того, как наступит эта дата, иначе вы не сможете создавать новые пассы + +На этом с Apple все. Настройте [Google](./google.md) и можно приступать к [выдаче пассов вашим клиентам](./distribute.md). \ No newline at end of file diff --git a/docs/integration/loyalty/wallet/distribute.md b/docs/integration/loyalty/wallet/distribute.md new file mode 100644 index 0000000..1fc2abe --- /dev/null +++ b/docs/integration/loyalty/wallet/distribute.md @@ -0,0 +1,3 @@ +# Передача пассов клиентам + +Как получить pass-файлы и отдать клиентам. \ No newline at end of file diff --git a/docs/integration/loyalty/wallet/google.md b/docs/integration/loyalty/wallet/google.md new file mode 100644 index 0000000..db662e1 --- /dev/null +++ b/docs/integration/loyalty/wallet/google.md @@ -0,0 +1,46 @@ +# Настройка Google Wallet + +Вам потребуется аккаунт разработчика Google. + +Краткий план действий: + +1. Активируем Google Wallet +2. Создаем сервисный аккаунт в Google Console +3. Загружаем ключ сервисного аккаунта в настройки Wallet +4. Публикуем свой Google Wallet для всех клиентов + +## Активируем Google Wallet + +1. Зайдите в Google Wallet Console: https://pay.google.com/business/console/home +2. Перейдите в пункт меню `Google Wallet API` слева в меню +3. Скопируйте длинное числовое значение `Issuer ID` (19-значное число немного правее заголовка страницы `Google Wallet API`). Это значение понадобится на странице настройки Wallet в личном кабинете REES46 +4. Перейдите в Google Console: https://console.cloud.google.com +5. Найдите в поиске Google Wallet API и перейдите на его страницу: https://console.cloud.google.com/marketplace/product/google/walletobjects.googleapis.com?q=search&referrer=search +6. Нажмите "Activate" + +## Создаем сервисный аккаунт в Google Console + +1. Перейдите в раздел `Credentials`: https://console.cloud.google.com/apis/credentials +2. Сверху нажмите кнопку `+ Create credentials` +3. Выберите в меню `Service Account` +4. В форме укажите имя ключа (любое) и `Service account ID` (любой) +5. Нажмите `Done` +6. На следующей странице найдите созданный вами сервисный аккаунт и перейдите в него +7. На странице сервисного аккаунта кликните в меню `Keys` +8. Далее `Add key` и в выпадающем меню `Create new key` +9. Выберите формат JSON и нажмите `Create` +10. Сохраните скачанный файл, он потребуется на следующем шаге + +## Загружаем ключ сервисного аккаунта в настройки Wallet + +1. Откройте в личном кабинете REES46 экран настройки Wallet +2. Скроллируйте вниз, пока не увидите форму загрузки файла ключа Google +3. Выберите файл из предыдущего пункта и в поле `Issuer ID` впишите значение, полученное ранее +4. Нажмите `Загрузить` +5. После успешной загрузки вы увидите сообщение о том, что файл ключа загружен + +Можно приступать к [выдаче пассов вашим клиентам](./distribute.md). + +## Больше информации + +Подробная инструкция по Google Wallet: https://developers.google.com/wallet/generic \ No newline at end of file diff --git a/docs/integration/loyalty/wallet/index.md b/docs/integration/loyalty/wallet/index.md new file mode 100644 index 0000000..ac22a4b --- /dev/null +++ b/docs/integration/loyalty/wallet/index.md @@ -0,0 +1,16 @@ +# Введение в Wallet + +Wallet позволяет хранить пассы (pass, виртуальные карты лояльности) в телефоне покупателя. + +Первичная настройка оформления пасса выполняется в личном кабинете в разделе `Программа лояльности > Wallet`. + +Вы можете выбрать цвет фона и текста, загрузить логотип и стрип (горизонтальная картинка), указать контактные данные и до 10 точек геолокации с вашими розничными точками продаж. + +Затем необходимо загрузить сертификаты Apple и Google, чтобы заработала поддержка пасс-файлов: + +1. [Сертификат Apple](./apple.md) +2. [Сертификат Google](./google.md) + +## Полезная информация + +* Структура Apple Pass, из каких компонентов состоит pass и пр. [Читать](https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/PassKit_PG/Creating.html) \ No newline at end of file diff --git a/docs/integration/start/index.md b/docs/integration/start/index.md new file mode 100644 index 0000000..b939154 --- /dev/null +++ b/docs/integration/start/index.md @@ -0,0 +1,17 @@ +# Начальная интеграция + + + + \ No newline at end of file diff --git a/docs/public/integration/start/api/android-java.md b/docs/public/integration/start/api/android-java.md new file mode 100644 index 0000000..d548577 --- /dev/null +++ b/docs/public/integration/start/api/android-java.md @@ -0,0 +1 @@ +adssdsdf \ No newline at end of file diff --git a/docs/public/integration/start/api/android-kotlin.md b/docs/public/integration/start/api/android-kotlin.md new file mode 100644 index 0000000..9733108 --- /dev/null +++ b/docs/public/integration/start/api/android-kotlin.md @@ -0,0 +1 @@ +sdsdsd \ No newline at end of file diff --git a/docs/public/integration/start/api/curl.md b/docs/public/integration/start/api/curl.md new file mode 100644 index 0000000..0e9e67d --- /dev/null +++ b/docs/public/integration/start/api/curl.md @@ -0,0 +1 @@ +dssdsdfsdf \ No newline at end of file diff --git a/docs/public/integration/start/api/general.md b/docs/public/integration/start/api/general.md new file mode 100644 index 0000000..2448afd --- /dev/null +++ b/docs/public/integration/start/api/general.md @@ -0,0 +1 @@ +sdsdsdsd \ No newline at end of file diff --git a/docs/public/integration/start/api/ios.md b/docs/public/integration/start/api/ios.md new file mode 100644 index 0000000..8e48f46 --- /dev/null +++ b/docs/public/integration/start/api/ios.md @@ -0,0 +1 @@ +dssdsd \ No newline at end of file diff --git a/docs/public/integration/start/api/js.md b/docs/public/integration/start/api/js.md new file mode 100644 index 0000000..2448afd --- /dev/null +++ b/docs/public/integration/start/api/js.md @@ -0,0 +1 @@ +sdsdsdsd \ No newline at end of file diff --git a/docs/public/integration/start/api/react-native.md b/docs/public/integration/start/api/react-native.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/public/integration/start/content/1.md b/docs/public/integration/start/content/1.md new file mode 100644 index 0000000..92fe939 --- /dev/null +++ b/docs/public/integration/start/content/1.md @@ -0,0 +1 @@ +тест 1 \ No newline at end of file diff --git a/docs/public/integration/start/content/2.md b/docs/public/integration/start/content/2.md new file mode 100644 index 0000000..48595e2 --- /dev/null +++ b/docs/public/integration/start/content/2.md @@ -0,0 +1,14 @@ +Что такое Lorem Ipsum? +Lorem Ipsum - это текст-"рыба", часто используемый в печати и вэб-дизайне. Lorem Ipsum является стандартной "рыбой" для текстов на латинице с начала XVI века. В то время некий безымянный печатник создал большую коллекцию размеров и форм шрифтов, используя Lorem Ipsum для распечатки образцов. Lorem Ipsum не только успешно пережил без заметных изменений пять веков, но и перешагнул в электронный дизайн. Его популяризации в новое время послужили публикация листов Letraset с образцами Lorem Ipsum в 60-х годах и, в более недавнее время, программы электронной вёрстки типа Aldus PageMaker, в шаблонах которых используется Lorem Ipsum. + +Почему он используется? +Давно выяснено, что при оценке дизайна и композиции читаемый текст мешает сосредоточиться. Lorem Ipsum используют потому, что тот обеспечивает более или менее стандартное заполнение шаблона, а также реальное распределение букв и пробелов в абзацах, которое не получается при простой дубликации "Здесь ваш текст.. Здесь ваш текст.. Здесь ваш текст.." Многие программы электронной вёрстки и редакторы HTML используют Lorem Ipsum в качестве текста по умолчанию, так что поиск по ключевым словам "lorem ipsum" сразу показывает, как много веб-страниц всё ещё дожидаются своего настоящего рождения. За прошедшие годы текст Lorem Ipsum получил много версий. Некоторые версии появились по ошибке, некоторые - намеренно (например, юмористические варианты). + + +Откуда он появился? +Многие думают, что Lorem Ipsum - взятый с потолка псевдо-латинский набор слов, но это не совсем так. Его корни уходят в один фрагмент классической латыни 45 года н.э., то есть более двух тысячелетий назад. Ричард МакКлинток, профессор латыни из колледжа Hampden-Sydney, штат Вирджиния, взял одно из самых странных слов в Lorem Ipsum, "consectetur", и занялся его поисками в классической латинской литературе. В результате он нашёл неоспоримый первоисточник Lorem Ipsum в разделах 1.10.32 и 1.10.33 книги "de Finibus Bonorum et Malorum" ("О пределах добра и зла"), написанной Цицероном в 45 году н.э. Этот трактат по теории этики был очень популярен в эпоху Возрождения. Первая строка Lorem Ipsum, "Lorem ipsum dolor sit amet..", происходит от одной из строк в разделе 1.10.32 + +Классический текст Lorem Ipsum, используемый с XVI века, приведён ниже. Также даны разделы 1.10.32 и 1.10.33 "de Finibus Bonorum et Malorum" Цицерона и их английский перевод, сделанный H. Rackham, 1914 год. + +Где его взять? +Есть много вариантов Lorem Ipsum, но большинство из них имеет не всегда приемлемые модификации, например, юмористические вставки или слова, которые даже отдалённо не напоминают латынь. Если вам нужен Lorem Ipsum для серьёзного проекта, вы наверняка не хотите какой-нибудь шутки, скрытой в середине абзаца. Также все другие известные генераторы Lorem Ipsum используют один и тот же текст, который они просто повторяют, пока не достигнут нужный объём. Это делает предлагаемый здесь генератор единственным настоящим Lorem Ipsum генератором. Он использует словарь из более чем 200 латинских слов, а также набор моделей предложений. В результате сгенерированный Lorem Ipsum выглядит правдоподобно, не имеет повторяющихся абзацей или "невозможных" слов. \ No newline at end of file diff --git a/docs/public/integration/start/content/3.md b/docs/public/integration/start/content/3.md new file mode 100644 index 0000000..99dcc48 --- /dev/null +++ b/docs/public/integration/start/content/3.md @@ -0,0 +1 @@ +тест 3 \ No newline at end of file diff --git a/package.json b/package.json index cbda090..3091a70 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,10 @@ "docs:preview": "vitepress preview docs" }, "devDependencies": { - "vitepress": "^2.0.0-alpha.12" + "vitepress": "^2.0.0-alpha.12", + "vue": "^3.5.25" + + }, + "dependencies": { } }