Разработка кастомной темы WooCommerce под ключ

Разработка кастомной темы WooCommerce

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Разработка кастомной темы WooCommerce под ключ
Средний
~1-2 недели

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    981
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1241
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    994

Разработка кастомной темы WooCommerce

Стандартная тема Storefront не даёт гибкости под уникальный дизайн интернет-магазина. Каждый второй клиент приходит с вопросом: «Как убрать лишние поля из корзины?» или «Как добавить бейдж на карточку товара?». Ответ один — кастомная тема WooCommerce. Мы берём дизайн-макет и превращаем его в полностью работающий шаблон, не трогая ядро плагина. Наш опыт — более 30 проектов на WooCommerce, гарантия совместимости с последними версиями.

Благодаря кастомной разработке среднее время загрузки страницы сокращается на 30-40%, конверсия возрастает на 15-20%. Это напрямую связано с оптимизацией Core Web Vitals: LCP < 1.5 с, CLS < 0.1. По нашим данным, 70% магазинов на готовых темах имеют LCP > 3 с, что отрицательно сказывается на ранжировании.

Почему кастомная тема выгоднее готовой?

Готовая тема (Storefront, Flatsome, Astra) экономит время на старте, но даёт ограничения: лишний CSS, сложные переопределения через хуки, потеря производительности. Кастомная тема с нуля в 2-3 раза быстрее загружается за счёт отсутствия мёртвого кода и чистых шаблонов. Средний проект на кастомной теме окупается за 2-3 месяца за счёт роста конверсии.

Параметр Готовая тема Кастомная тема
Производительность Много лишних стилей и скриптов Только нужный код
Гибкость дизайна Ограничена структурой Любая верстка
Время доработок Долго из-за переопределений Быстрая кастомизация
Адаптивность Часто костыли Сразу под все экраны
Совместимость с обновлениями Требует проверки Гарантирована

Кроме того, кастомная тема не содержит мёртвого кода, что уменьшает объём CSS и JS на 40–60%. Это положительно влияет на ранжирование. Свяжитесь с нами для анализа вашего проекта.

Как переопределить шаблон в WooCommerce?

WooCommerce ищет шаблоны в папке woocommerce/ внутри активной темы. Если файл найден — он перекрывает оригинальный из плагина. Вот пошаговая инструкция:

  1. Определите, какие шаблоны нужно изменить (каталог, карточка, корзина и т.д.).
  2. Скопируйте их из /wp-content/plugins/woocommerce/templates/.
  3. Поместите копии в папку woocommerce/ вашей темы.
  4. Измените файлы в соответствии с дизайн-макетом.
  5. Настройте хуки для дополнительных функций, чтобы не копировать лишнее.
wp-content/themes/my-theme/ ├── woocommerce/ │ ├── archive-product.php # Страница каталога │ ├── single-product.php # Карточка товара │ ├── cart/ │ │ └── cart.php # Корзина │ ├── checkout/ │ │ ├── form-checkout.php # Форма оформления │ │ └── thankyou.php # Страница подтверждения │ ├── myaccount/ │ │ └── dashboard.php # Личный кабинет │ ├── content-product.php # Элемент каталога (карточка в списке) │ ├── single-product/ │ │ ├── tabs/ │ │ │ └── tabs.php # Вкладки товара │ │ └── related.php # Похожие товары │ └── loop/ │ ├── pagination.php │ └── add-to-cart.php └── functions.php 

Полный список шаблонов — в официальной документации WooCommerce.

Переопределение шаблона карточки товара

Вместо копирования content-product.php с минимальными правками — пишем с нуля под дизайн:

<?php // woocommerce/content-product.php defined('ABSPATH') || exit; global $product; if (!$product || !$product->is_visible()) return; $product_id = $product->get_id(); $permalink = get_the_permalink(); $thumbnail_url = get_the_post_thumbnail_url($product_id, 'woocommerce_thumbnail'); $badge = get_post_meta($product_id, '_product_badge', true); ?> <article <?php wc_product_class('product-card', $product); ?>> <a href="<?= esc_url($permalink) ?>" class="product-card__image-wrap" tabindex="-1"> <?php if ($thumbnail_url) : ?> <img src="<?= esc_url($thumbnail_url) ?>" alt="<?= esc_attr(get_the_title()) ?>" loading="lazy" class="product-card__image" > <?php else : ?> <div class="product-card__image product-card__image--placeholder"></div> <?php endif; ?> <?php if ($badge) : ?> <span class="product-card__badge"><?= esc_html($badge) ?></span> <?php endif; ?> <?php if ($product->is_on_sale()) : ?> <span class="product-card__sale"><?= esc_html(wc_get_sale_flash()) ?></span> <?php endif; ?> </a> <div class="product-card__body"> <a href="<?= esc_url($permalink) ?>" class="product-card__title"> <?= esc_html(get_the_title()) ?> </a> <?php if ($product->get_short_description()) : ?> <p class="product-card__desc"><?= wp_kses_post(wp_trim_words($product->get_short_description(), 12)) ?></p> <?php endif; ?> <div class="product-card__footer"> <span class="product-card__price"><?= wp_kses_post($product->get_price_html()) ?></span> <?php if ($product->is_in_stock()) : ?> <?php woocommerce_template_loop_add_to_cart(['class' => 'btn btn--primary btn--sm']); ?> <?php else : ?> <span class="product-card__outofstock">Нет в наличии</span> <?php endif; ?> </div> </div> </article> 

Как ускорить разработку с помощью хуков?

Многие изменения можно сделать через хуки, не трогая шаблоны:

// Убираем рейтинг из карточки в каталоге remove_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 5); // Добавляем артикул add_action('woocommerce_after_shop_loop_item_title', function () { global $product; $sku = $product->get_sku(); if ($sku) { echo '<span class="product-card__sku">Арт: ' . esc_html($sku) . '</span>'; } }, 6); // Перемещаем цену до заголовка на карточке товара remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 10); add_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 5); // Добавляем кастомную секцию после описания add_action('woocommerce_single_product_summary', function () { global $product; $benefits = get_post_meta($product->get_id(), '_product_benefits', true); if ($benefits) { echo '<div class="product-benefits">' . wp_kses_post($benefits) . '</div>'; } }, 25); 

Хуки позволяют избежать копирования шаблонов и ускоряют разработку. Например, с помощью хука woocommerce_before_shop_loop_item_title можно вывести кастомный бейдж без правки content-product.php.

Какие файлы чаще всего переопределяют? - archive-product.php - single-product.php - cart/cart.php - checkout/form-checkout.php - myaccount/dashboard.php - content-product.php

Что даёт кастомная галерея товара?

WooCommerce использует Flexslider для галереи — тяжело и устарело. Замена на кастомную реализацию:

// Отключаем стандартную галерею remove_action('woocommerce_product_thumbnails', 'woocommerce_show_product_thumbnails', 20); remove_action('woocommerce_before_single_product_summary', 'woocommerce_show_product_images', 20); // Подключаем свою add_action('woocommerce_before_single_product_summary', 'my_theme_product_gallery', 20); function my_theme_product_gallery(): void { global $product; $main_image_id = $product->get_image_id(); $gallery_ids = $product->get_gallery_image_ids(); $all_image_ids = $main_image_id ? array_merge([$main_image_id], $gallery_ids) : $gallery_ids; if (empty($all_image_ids)) { echo wc_placeholder_img('woocommerce_single'); return; } echo '<div class="product-gallery" data-lightbox="product">'; echo '<div class="product-gallery__main">'; foreach ($all_image_ids as $idx => $image_id) { $full = wp_get_attachment_image_url($image_id, 'full'); $large = wp_get_attachment_image_url($image_id, 'woocommerce_single'); $alt = get_post_meta($image_id, '_wp_attachment_image_alt', true) ?: get_the_title(); printf( '<a href="%s" class="product-gallery__slide%s" data-index="%d"> <img src="%s" alt="%s" loading="%s"> </a>', esc_url($full), $idx === 0 ? ' product-gallery__slide--active' : '', $idx, esc_url($large), esc_attr($alt), $idx === 0 ? 'eager' : 'lazy' ); } echo '</div>'; if (count($all_image_ids) > 1) { echo '<div class="product-gallery__thumbs">'; foreach ($all_image_ids as $idx => $image_id) { $thumb = wp_get_attachment_image_url($image_id, 'thumbnail'); printf( '<button class="product-gallery__thumb%s" data-index="%d" aria-label="Фото %d"> <img src="%s" alt="" loading="lazy"> </button>', $idx === 0 ? ' product-gallery__thumb--active' : '', $idx, $idx + 1, esc_url($thumb) ); } echo '</div>'; } echo '</div>'; } 

Кастомная галерея с зумом и свайпом улучшает пользовательский опыт и снижает количество возвратов.

Декларация поддержки WooCommerce

Тема должна явно заявить о поддержке WooCommerce, иначе будет показано предупреждение:

add_action('after_setup_theme', function () { add_theme_support('woocommerce', [ 'thumbnail_image_width' => 450, 'single_image_width' => 800, 'product_grid' => [ 'default_rows' => 3, 'min_rows' => 1, 'default_columns' => 4, 'min_columns' => 2, 'max_columns' => 6, ], ]); add_theme_support('wc-product-gallery-zoom'); add_theme_support('wc-product-gallery-lightbox'); add_theme_support('wc-product-gallery-slider'); }); 

Процесс работы и что входит

После получения дизайн-макета мы проводим анализ и определяем список переопределяемых файлов. Затем проектируем структуру папок woocommerce/, настраиваем хуки и фильтры. На этапе реализации пишем шаблоны каталога, карточки, корзины, оформления заказа и личного кабинета. Добавляем кастомные элементы — галерею, бейджи, дополнительные поля. После вёрстки тестируем на всех устройствах и браузерах, замеряем Core Web Vitals. В конце передаём документацию по хукам, доступы и инструкцию по обновлению.

Сроки в зависимости от сложности:

Уровень кастомизации Сроки
Базовая (основные шаблоны) 5-7 дней
Средняя (галерея, фильтры) 12-18 дней
Полная (все страницы, AJAX) 20-30 дней

Стоимость рассчитывается индивидуально — оценка проекта бесплатно. Получите консультацию по вашему проекту — мы поможем определить оптимальный состав работ и сроки. Закажите разработку кастомной темы — получите уникальный магазин с высокой производительностью и конверсией.

Мы реализовали более 30 проектов на WooCommerce, каждый со своей архитектурой. Используем только актуальные версии PHP и WordPress. Гарантируем совместимость с плагинами и обновлениями. Пишем чистый код без лишних зависимостей, что снижает нагрузку на сервер и ускоряет загрузку. Кастомная тема не требует лицензионных отчислений — экономия на лицензиях. Свяжитесь с нами, чтобы мы могли проанализировать ваш дизайн и предложить оптимальное решение.