VD72 — миграция и редизайн главной интернет-магазина стройматериалов «Ваш дом» (v-d72.ru)
Региональный интернет-магазин стройматериалов / DIY (РФ) · E-commerce, розничная торговля стройматериалами (DIY)
- PHP
- JavaScript
- HTML
- CSS/SCSS
- WordPress
- Porto (child-тема)
- WooCommerce
- ACF (ACF Free)
- CPT
- WPBakery (источник)
- Gutenberg (план)
- Swiper
- адаптивная вёрстка
- 1С/wc1c (контекст сайта)
- ~5300
- 69
- 5
- ~10
- 9
- 15 000+
- 5–8 дней
Контекст и задача
v-d72.ru — действующий интернет-магазин стройматериалов «Ваш дом» (с. Исетское / Исетский район, РФ) на WordPress 6.8.3 / PHP 8.3, тема Porto (premium classic) + porto-child, WooCommerce 10.1.3. Сайт нагружен бизнес-критичными интеграциями: синхронизация с 1С (wc1c, 6 модулей), DaData, YITH Wishlist, AJAX-поиск, фильтры WooCommerce. Старая главная собрана на WPBakery Visual Composer (v8.5) и плохо поддерживается. Задача — пересобрать главную страницу по готовому HTML-макету, сделав её редактируемой из админки, и при этом не задеть production и 1С. Работа выполнялась как независимый проект (2026), вне штатной занятости.
Что я сделал
- Реконструировал контент старой главной из дампов WPBakery (
wpbakery-content*.txt, 4 версии: vc_row / porto_ultimate_content_box / porto_products / vc_tta_accordion и т.п.) и перенёс его в новую структуру. - Разработал кастомный шаблон страницы
template-vd72-homepage.phpдля porto-child и ~12 template-parts по секциям (topbar, header/hero, categories, catalog, seasonal, services, about, cooperation, faq, gallery, footer). - Реализовал контент-модель на ACF Free (69 полей, экспорт в JSON) и 5 кастомных CPT (
vd72_service,vd72_stat,vd72_benefit,vd72_faq,vd72_usp) — сознательно без ACF Pro. - Написал ~2100 строк CSS и ~234 строки JS (Swiper, аккордеон, контролы количества) под макет; интегрировал каталог распродаж через
wc_get_products([. 'on_sale' => true])с возможностью ручного выбора товаров через ACF. - Подготовил два миграционных документа-промпта (Classic Editor + ACF и Gutenberg) под Claude Opus 4.5, архитектурный план гибридной миграции на Gutenberg и сравнительный аудит ACF-альтернатив.
- Настроил AI-инструментарий проекта (OpenCode, WordPress-скиллы, MCP к живому сайту) и оформил документацию по Diátaxis.
Честно о роли: это миграция + доработка существующего коммерческого сайта, а не greenfield. Новая главная — нетривиальный net-new код внутри уже работающего сайта; одновременно это перенос контента (WPBakery → ACF/PHP, далее планово → Gutenberg) и набор задач доработки. Запланированная Gutenberg-фаза (theme.json, block patterns, блоки на Interactivity API) на момент анализа задокументирована, но в коде темы не реализована.
Решение и подход
Ключевое инженерное решение — полная изоляция новой главной от production, чтобы не сломать Porto/WooCommerce/1С:
- условная загрузка ассетов только на странице с этим шаблоном;
- префикс
vd72_для всех CPT/полей/классов во избежание коллизий; - ACF-группы привязаны строго к шаблону
template-vd72-homepage.php; - никаких правок родительской темы и
functions.phpPorto — всё в porto-child; - простой rollback (снять шаблон/CPT — изменения откатываются).
Шаблон сознательно не использует header/footer Porto, чтобы избежать дублирования. Видимость секций управляется флагами ACF (vd72_show_*). Каталог: если в ACF выбраны товары — берутся они, иначе fallback на случайные товары со скидкой. Для будущего Gutenberg выбран гибридный вариант (Porto Child + Gutenberg + theme.json) против полного Block Theme — обоснование: неприемлемый риск для 1С-интеграции и WooCommerce-кастомизаций Porto; решение задокументировано с матрицей рисков, rollback-планом и «протоколом безопасности 1С».
Результат
- Собран и развёрнут на тестовой странице (
/glavnaya-chernovik/, Page ID 286584, статус draft/private) изолированный кастомный шаблон главной: ~5300 строк кода темы, 69 ACF-полей, ~10 секций с динамикой из WooCommerce/ACF (источник:porto-child/*,media-mapping.md). - Подготовлен полный пакет проектной документации: план доработок (10 задач), архитектурный план Gutenberg-миграции, аудит ACF-альтернатив, how-to по конвертации и настройке AI-окружения.
- Бизнес-метрики эффекта (производительность, Lighthouse, конверсия) не зафиксированы (уточнить у автора); факт вывода в production и завершённость доработок также не подтверждены.
Стек и обоснование
- WordPress + Porto (child) + WooCommerce — заданы существующим сайтом; работа строго в дочерней теме.
- ACF Free + CPT (без ACF Pro) — осознанное ограничение по лицензии: повторяющийся контент вынесен в CPT, т.к. Repeater/Flexible Content недоступны во Free; параллельно изучены SCF/Carbon Fields/CMB2/Meta Box/Pods на случай смены подхода.
- Нативные PHP-шаблоны + Swiper + ванильный JS — предсказуемость, отсутствие зависимости от jQuery/Porto JS, изоляция.
- Gutenberg/theme.json/Interactivity API — выбран гибридный путь (план) ради совместимости с Porto и 1С.
Роль ИИ в проекте
Проект — выраженный пример AI-augmented разработки на стеке OpenCode (а не Claude Code):
opencode.jsonподключает WordPress MCP (@automattic/mcp-wordpress-remote→ endpoint…/wp-json/mcp/mcp-adapter-default-server); на сайте активныabilities-api(v0.5.0) иmcp-adapter(v0.4.1) — MCP использовался для анализа живого сайта (тема, плагины, версии, CPT) и наполнен в.opencode/context/wordpress-site-analysis.mdиmedia-mapping.md..opencode/skills/— 9 скиллов: 8 из Automattic Agent Skills (wp-project-triage, wp-block-development, wp-block-themes, wp-plugin-development, wpds, wp-interactivity-api, wp-wpcli-and-ops, wordpress-router) + кастомныйwp-html-to-porto(адаптация HTML-вёрстки под Porto), оформленный по спецификации skills.- Среда: OpenCode CLI + Oh My OpenCode (
@opencode-ai/plugin), процесс — research → plan → implement. - Doc-driven / промпт-инжиниринг: подробные миграционные промпты (
GUTENBERG_MIGRATION_PROMPT.md,CLASSIC_EDITOR_ACF_MIGRATION_PROMPT.md) написаны под Claude Opus 4.5; документация по системе Diátaxis (docs/). - Конкретные артефакты:
opencode.json,.opencode/context/*,.opencode/skills/wp-html-to-porto/SKILL.md,docs/how-to/setup-wordpress-skills.md.
Инженерные вызовы
- Не сломать 1С/WooCommerce/Porto на живом магазине → стратегия изоляции + rollback + «протокол безопасности 1С» (логирование wc1c, staging, контрольная синхронизация).
- Ограничение ACF Free (нет Repeater/Flexible/Gallery/Options) → контент-модель на CPT + Group-поля; отдельный аудит альтернатив с весовой матрицей.
- Соответствие пиксель-в-пиксель макету при множестве breakpoints и переносе на динамику WooCommerce/ACF.
- Выбор пути модернизации (гибрид Gutenberg vs полный Block Theme) с учётом несовместимости FSE и Porto/1С.
- Конфликты стилей Porto/AWS-поиск и зависимость от jQuery — изоляция в module scope и более специфичные селекторы.
Услуги в проекте
- миграция
- разработка
- доработка legacy
- аудит
- деплой
- контент