projects/org/ideal-shop/V2-drupal11-bootstrap/RECIPES.md

Архитектура рецептов ideal-shop v2 Д2Б

Версия: 2.0.0
Дата: 2026-03-23


Стартовые варианты установки

Выбирается ДО установки. База не меняется после деплоя.

Вариант Тариф База Поиск Что включено
FREE 0 ₽ MariaDB Search API DB Drupal CMS + тема, без Commerce
BASE 4 900 ₽ MariaDB Search API DB Commerce + каталог + корзина + заказ
PROF 9 900 ₽ MariaDB или PostgreSQL Search API / pg_trgm / Elasticsearch BASE + оплата + доставка + 1С (на выбор)
CORP 19 900 ₽ PostgreSQL Elasticsearch всё из PROF + мультисайт + белый лейбл

Четыре уровня рецептов

Drupal CMS (база)
        ↓
┌───────────────────────────────────────────┐
│  УРОВЕНЬ 0 — СТАРТ  (ideal_start_*)       │
│  FREE / BASE / PROF / CORP                │
├───────────────────────────────────────────┤
│  УРОВЕНЬ 1 — ТЕМА  (ideal_theme_*)        │
│  Bootstrap Barrio + дочерняя тема         │
│  ⚠️ Проверить совместимость с Commerce    │
├───────────────────────────────────────────┤
│  УРОВЕНЬ 2 — ШОП  (ideal_shop_*)          │
│  Commerce + каталог + checkout + фичи     │
├───────────────────────────────────────────┤
│  УРОВЕНЬ 3 — ФИЧИ  (ideal_feat_*)         │
│  Специфика под тип товара (опционально)   │
└───────────────────────────────────────────┘

Уровень 0 — Старт

Рецепт Тариф БД Поиск Что включено Статус
ideal_start_free FREE MariaDB Search API DB Drupal CMS + тема, без Commerce TODO
ideal_start_base BASE MariaDB Search API DB Commerce + каталог + корзина + заказ TODO
ideal_start_prof PROF MariaDB / PostgreSQL Search API / Elasticsearch BASE + оплата + доставка + 1С TODO
ideal_start_corp CORP PostgreSQL Elasticsearch PROF + мультисайт + белый лейбл TODO

Выбирается один раз, ДО деплоя. После установки база не меняется.


Уровень 1 — Тема

Рецепт Что делает Статус
ideal_theme_base Ставит bootstrap_barrio + ideal_theme как дочернюю TODO
ideal_theme_tokens Дизайн-токены: цвета, шрифты, отступы TODO
ideal_theme_layouts Layout Builder регионы: header/footer/sidebar/main TODO

⚠️ Надо проверить: как рецепты темы встают поверх Commerce-шаблонов.
Commerce генерирует свои шаблоны — ideal_theme должна их корректно переопределять.


Уровень 2 — Шоп

Рецепт Что делает Статус
ideal_shop_core Commerce + Store + Product type + Checkout flow TODO
ideal_shop_catalog Категории + Views каталога + Facets + Search API TODO
ideal_shop_reviews Fivestar + вывод отзывов на карточке TODO
ideal_shop_wishlist Commerce Wishlist + кнопка ♥ в карточке TODO
ideal_shop_promo Commerce Promotion + промокод на checkout TODO
ideal_shop_demo 3 категории + 20 тестовых товаров + заказы TODO

Уровень 3 — Фичи

Рецепт Тема Что добавляет Статус
ideal_feat_food Продукты питания Фасовка/вес, дата поставки, состав, условия хранения TODO
ideal_feat_fashion Одежда и обувь Размерная сетка, таблица размеров, примерка TODO
ideal_feat_digital Цифровые товары Ключи/файлы, лицензии, без доставки TODO
ideal_feat_furniture Мебель и интерьер Габариты, материалы, 3D-просмотр, услуга сборки TODO
ideal_feat_auto Автозапчасти Совместимость по VIN, выбор марки/модели/года TODO

Порядок установки

# 1. Выбрать стартовый вариант (до деплоя)
drush recipe ideal_start_free   # пустой, без Commerce
drush recipe ideal_start_base   # Commerce + MariaDB
drush recipe ideal_start_prof   # Commerce + выбор БД/поиска
drush recipe ideal_start_corp   # Commerce + PostgreSQL + Elasticsearch

# 2. Тема (после старта)
drush recipe ideal_theme_base
drush recipe ideal_theme_tokens
drush recipe ideal_theme_layouts

# 3. Шоп — опциональные фичи
drush recipe ideal_shop_reviews
drush recipe ideal_shop_wishlist
drush recipe ideal_shop_promo

# 4. Интеграции (только PROF и CORP)
drush recipe ideal_shop_yukassa   # оплата ЮKassa
drush recipe ideal_shop_cdek      # доставка СДЭК
drush recipe ideal_shop_1c        # синхронизация 1С

# 5. Поиск (если не выбран при старте)
drush recipe ideal_shop_elastic   # Elasticsearch

# 6. Фичи под тип товара
drush recipe ideal_feat_food      # продукты питания
drush recipe ideal_feat_fashion   # одежда
drush recipe ideal_feat_auto      # автозапчасти

# 7. Демо-данные (для разработки)
drush recipe ideal_shop_demo

Структура папок

recipes/
├── ideal_start_free/
│   └── recipe.yml
├── ideal_start_base/
│   └── recipe.yml
├── ideal_start_prof/
│   └── recipe.yml
├── ideal_start_corp/
│   └── recipe.yml
├── ideal_theme_base/
│   └── recipe.yml
├── ideal_theme_tokens/
│   ├── recipe.yml
│   └── config/
├── ideal_theme_layouts/
│   ├── recipe.yml
│   └── config/
├── ideal_shop_core/
│   ├── recipe.yml
│   └── config/
├── ideal_shop_catalog/
│   ├── recipe.yml
│   └── config/
├── ideal_shop_reviews/
│   └── recipe.yml
├── ideal_shop_wishlist/
│   └── recipe.yml
├── ideal_shop_promo/
│   └── recipe.yml
├── ideal_shop_demo/
│   ├── recipe.yml
│   └── content/
├── ideal_feat_food/
│   ├── recipe.yml
│   └── config/
├── ideal_feat_fashion/
│   ├── recipe.yml
│   └── config/
├── ideal_feat_digital/
│   ├── recipe.yml
│   └── config/
├── ideal_feat_furniture/
│   ├── recipe.yml
│   └── config/
└── ideal_feat_auto/
    ├── recipe.yml
    └── config/

Зависимости

ideal_theme_base
    ↓
ideal_theme_tokens   ideal_theme_layouts
    ↓                       ↓
         ideal_shop_core
              ↓
         ideal_shop_catalog
              ↓
    ┌─────────┼─────────┐
    ↓         ↓         ↓
 reviews   wishlist   promo
    │
    └──── ideal_feat_* (любой, независимо)

← Назад | Стек → | BUILD-PLAN →