B2BPRO.KZ | Рекламное агентство в Алматы

Каталог товаров на WordPress без интернет-магазина: когда это оправдано

Схема каталога товаров на сайте WordPress: разделы, карточки товаров, панель фильтра и форма запроса цены

Каталог и магазин решают разные задачи

К нам регулярно приходят с формулировкой «нужен интернет-магазин», а через полчаса разговора выясняется, что продавать через сайт компания вообще не собирается. Оплата идёт по счёту, отгрузка со склада, цена зависит от объёма и от того, кто именно звонит. Сайт в этой схеме нужен для другого: показать ассортимент, дать характеристики, избавить менеджера от необходимости двадцатый раз за день пересылать прайс в мессенджере.

Это и есть каталог товаров. WordPress под такую задачу подходит хорошо, но подходов к реализации несколько, и цена ошибки на старте измеряется не деньгами за разработку, а месяцами доработок потом. Ниже описано, как мы выбираем схему, что спрашиваем у клиента до начала работы и где чаще всего промахиваются.

Когда сайт-каталог без магазина оправдан

Есть несколько типовых ситуаций, в которых корзина на сайте только мешает.

Первая: цена непубличная. В опте, в промышленном оборудовании, в стройматериалах цена формируется индивидуально. Партия, отсрочка, логистика, история отношений. Выставить одну цифру на сайт означает либо отпугнуть крупного клиента завышенным прайсом, либо обесценить переговоры заниженным. Каталог решает это просто: характеристики есть, кнопка «запросить цену» есть, цифры нет.

Вторая: товар нельзя купить в один клик. Станок подбирают под задачу заказчика. Окна нужно замерить. Мебель на заказ считается по чертежу. Корзина тут создаёт ложное обещание. Посетитель нажимает «купить», а дальше всё равно попадает к менеджеру, который начинает выяснять параметры с нуля. Получается раздражение вместо конверсии.

Третья: ассортимент витринный, а продажа идёт офлайн. Дилерские сети, шоурумы, дистрибьюторы. Задача сайта здесь довести человека до звонка или визита, а не забрать оплату. Магазинный функционал в такой ситуации просто не используется, но продолжает требовать обслуживания и обновлений.

И четвёртая: юридические ограничения. Часть товарных категорий в Казахстане нельзя продавать дистанционно или можно только с оговорками. Витрина без возможности оформить заказ снимает вопрос.

Обратный признак тоже полезен. Если у вас фиксированные розничные цены, склад с остатками, доставка и вы готовы принимать оплату онлайн, вам нужен магазин, и статья дальше почти не пригодится. Каталог в такой ситуации станет ограничением, которое придётся снимать через полгода.

Три способа сделать каталог товаров на WordPress

Технически задача решается тремя разными путями. Они не равнозначны, и выбор между ними определяется не вкусом разработчика, а тем, что происходит с товарами у клиента.

WooCommerce с отключённой корзиной

Первое, что приходит в голову: поставить WooCommerce и убрать всё лишнее. Логика понятная, потому что готовая структура товаров, атрибуты, вариации, категории, галереи и импорт из CSV в нём уже есть.

Здесь важно знать одну вещь, о которой обычно узнают уже в процессе. Штатной настройки «режим каталога» в WooCommerce нет. Официальные материалы WooCommerce прямо предлагают либо расширения, либо правку кода. Среди платных решений на маркетплейсе есть Catalog Visibility Options, Hide Add to Cart and Price и Advanced Catalog Mode for WooCommerce. Первое, например, умеет отключать покупку для всех либо оставлять её только авторизованным пользователям. Удобная штука для дилерских кабинетов, где розничный посетитель видит витрину, а партнёр видит цены.

Плюсы подхода очевидны: почти всё уже написано, специалистов на рынке много, любой интегратор разберётся в структуре без документации. Минусы всплывают позже. WooCommerce тянет за собой заказы, купоны, налоги, зоны доставки, страницы корзины и оформления. Весь этот аппарат остаётся в базе и в админке, даже если им никто не пользуется. Плюс зависимость от стороннего расширения ровно в той точке, которая определяет поведение сайта. Обновилось расширение неудачно, и на витрине внезапно появились кнопки «в корзину».

Мы берём этот вариант, когда у клиента есть хотя бы намерение когда-нибудь начать продавать онлайн. Или когда товарная структура сложная: вариации по размеру и цвету, десятки атрибутов, регулярная выгрузка из учётной системы.

Собственный тип записи

Второй путь состоит в том, чтобы не тащить магазинный движок вообще, а описать товары как отдельную сущность средствами самого WordPress. В системе изначально есть несколько типов записей: записи, страницы, вложения, ревизии, элементы меню и служебные. К ним добавляется свой, через функцию register_post_type. Официальная документация WordPress отдельно рекомендует объявлять такой тип в плагине или mu-плагине, а не в теме, чтобы при смене оформления контент никуда не делся.

Дальше подключаются свои таксономии вместо категорий, произвольные поля под характеристики и шаблоны вывода. Тема ищет файлы по имени типа: single-product.php для карточки, archive-product.php для списка. Выборки строятся через WP_Query, а если товары нужно подмешать в общую ленту, для этого есть хук pre_get_posts.

Получается ровно то, что нужно, и ничего сверху. Админка чистая: менеджер видит «Товары», три поля характеристик и загрузку фото вместо тридцати вкладок с настройками доставки. База не раздувается. Скорость выше, потому что на каждой странице не грузятся скрипты корзины.

Расплата в том, что за всё отвечаете вы. Фильтры, сортировка, поиск по характеристикам, импорт из прайса, вывод в структурированных данных для поисковиков: каждая функция пишется отдельно. Для каталога на сто позиций с пятью характеристиками это разумно. Для каталога на восемь тысяч позиций с вариациями вы будете дописывать WooCommerce заново, только хуже.

Специализированный плагин каталога

Промежуточный вариант: плагины, изначально написанные под витрину без продажи. Они дают тип «товар», фильтры и форму запроса цены из коробки, без магазинного балласта.

Подход рабочий, но требует осторожности. Каталог здесь становится ядром сайта, и ставить ядро на плагин небольшой команды рискованно. У нас были случаи, когда разработчик переставал поддерживать продукт, а клиент оставался с базой в закрытом формате. Перед выбором мы смотрим на дату последнего обновления, совместимость с актуальной версией WordPress, наличие экспорта данных и то, насколько легко из этого плагина уйти. Если экспорта нет, не рассматриваем вообще.

Что решает выбор: короткая матрица

Мы обычно задаём клиенту четыре вопроса, и ответы почти всегда закрывают спор о технологии.

Сколько позиций и как часто они меняются? До двухсот стабильных позиций хватит собственного типа записи. Тысячи с еженедельной выгрузкой лучше вести на WooCommerce, ради готового импорта и производительных выборок.

Есть ли вариации? Один товар в пяти размерах и трёх цветах это не пятнадцать карточек, а одна карточка с матрицей. Писать такую логику с нуля дорого, в WooCommerce она уже есть.

Откуда берутся данные? Если из 1С, из Битрикс24 или из Excel-прайса, который бухгалтерия обновляет по вторникам, смотрите на готовые механизмы импорта. Самописный каталог придётся снабжать собственным парсером.

Планируются ли продажи через сайт в горизонте двух лет? Честный ответ «может быть» на практике означает «да», и тогда лучше сразу заложить WooCommerce, просто выключив покупку.

Пройти этот выбор мы помогаем до подписания сметы, так дешевле для всех. Если задача уже сформулирована, есть смысл сразу обсудить разработку сайта-каталога под ключ, чтобы не платить дважды за переезд с неудачной архитектуры.

SEO: главная причина, по которой каталог вообще делают

Витрина без продажи всё равно должна приводить людей из поиска, иначе смысла в ней немного. Здесь есть несколько моментов, которые в каталогах проседают чаще, чем в магазинах.

Карточка товара работает как посадочная страница. Название модели, артикул, синонимы наименования, применимость. Люди ищут «фильтр гидравлический hf6553» и «фильтр на погрузчик», и обе фразы должны находить одну и ту же карточку. Если на странице только фото и таблица характеристик без единого предложения текста, ранжироваться ей нечем.

Категории при этом важнее карточек. Основной трафик собирают разделы, а не отдельные позиции: «гидравлические фильтры купить в Алматы» это запрос категории. Значит, у категории должен быть свой заголовок, описание, ссылки на подразделы. Пустая страница со списком плиток такой запрос не возьмёт.

Отдельная головная боль это фильтры. Каждая комбинация параметров создаёт свой URL, и через месяц в индексе оказываются тысячи почти одинаковых страниц. Часть комбинаций, наоборот, стоит оставить открытыми, те, у которых есть спрос. Разделение делается до запуска, а не после.

И структурированные данные. Разметка Product помогает поисковику понять, что перед ним товар. В каталоге без цен её ставят урезанной, без предложения о продаже, только характеристики и наличие. Тут лучше недодать, чем отдать поисковику противоречивые сведения.

Пример: каталог запчастей на четыреста позиций

Приведу типичный для нас сценарий, детали изменены, но задача узнаваемая. Компания поставляет расходники для спецтехники. Прайс живёт в Excel, обновляется раз в две недели, цены закрытые: каждому клиенту своя скидка от базовой. Раньше был сайт-визитка и PDF-прайс на пятьдесят страниц по ссылке.

Что сделали. Собственный тип записи для товаров, две таксономии: тип детали и марка техники. Восемь произвольных полей под характеристики. Фильтр по двум таксономиям и по одному числовому параметру. Импорт из того же Excel, который ведёт снабжение, причём колонки не меняли, чтобы не переучивать людей.

Вместо цены кнопка «узнать стоимость» с формой, которая передаёт артикул в CRM. Менеджер видит, какую именно позицию смотрел человек, и не тратит первую минуту разговора на выяснение.

Через четыре месяца заметная часть заявок приходила с карточек, до которых люди доходили из поиска по артикулу, той самой строке, которая раньше была спрятана внутри PDF. Отдельно выяснилось, что менеджеры сами пользуются каталогом чаще клиентов: искать позицию на сайте оказалось быстрее, чем в файле.

Разработка заняла около трёх недель вместе с импортом и переносом данных. Магазин на том же объёме занял бы столько же или больше, но добавил бы функционал, который никому не нужен.

Навигация: где каталоги проваливаются чаще всего

Техническая часть решаема почти всегда. Гораздо чаще каталог не работает потому, что им неудобно пользоваться, и это заметно только на реальном ассортименте, а не на десяти тестовых позициях.

Глубина вложенности идёт первым пунктом. Два уровня разделов человек проходит спокойно, три терпит, на четвёртом закрывает вкладку. Если ассортимент не укладывается в два уровня, обычно проблема не в товарах, а в том, что структуру взяли из складской номенклатуры. Складская логика и покупательская редко совпадают: снабженец думает категориями поставщика, клиент думает своей задачей.

Второй пункт это поиск по каталогу. Стандартный поиск WordPress ищет по заголовку и тексту записи и не заглядывает в произвольные поля. Значит, артикул, лежащий в отдельном поле, штатным поиском не находится, хотя именно артикул чаще всего и вбивают. Это доделывается, но помнить об этом надо на этапе проектирования, а не когда клиент жалуется, что сайт не находит собственные товары.

Третий пункт: хлебные крошки и связи между позициями. Человек, попавший на карточку из поиска, должен за один клик увидеть, что рядом есть аналоги и что вообще есть в этом разделе. Блок «похожие товары» на витрине без цен работает не хуже, чем в магазине, потому что удерживает человека внутри каталога.

Отдельно про мобильные. В каталогах трафик с телефонов обычно выше, чем в среднем по сайту: люди смотрят позиции на объекте, на складе, в машине. Фильтр, который на десктопе стоит колонкой слева, на телефоне должен открываться отдельной панелью, а таблица характеристик должна прокручиваться, а не ломать вёрстку.

Заявка с карточки должна доезжать до менеджера

Каталог без продажи держится на одном действии: посетитель нашёл позицию и оставил запрос. Всё, что мешает этому действию, обнуляет остальную работу.

Форма на карточке должна знать, к какому товару относится. Артикул и название подставляются автоматически и уходят в письмо или в CRM вместе с контактом. Разница ощущается сразу: менеджер перезванивает уже с ответом по конкретной позиции, вместо того чтобы спрашивать, что именно вас интересовало.

Полей в форме нужен минимум. Имя и один канал связи. Каждое дополнительное поле стоит части заявок, а данные, которые вы собираете на всякий случай, всё равно потом уточняются голосом.

И стоит сразу решить, куда заявки складываются. Почта на общий ящик это худший вариант из рабочих: письма теряются, история не собирается, посчитать конверсию нельзя. Передача в CRM даёт то, ради чего каталог и делали. Видно, какие разделы приносят обращения, а какие занимают место в меню и не дают ничего.

Ошибки, которые обходятся дороже всего

Каталог в виде одного длинного списка. Двести позиций на одной странице с бесконечной прокруткой это не каталог, а тот же PDF, только в браузере. Найти в нём ничего нельзя, а поиск не индексирует то, что подгружается скриптом.

Характеристики текстом в описании. Пока параметры лежат абзацем внутри описания, по ним нельзя ни отфильтровать, ни отсортировать. Каждая характеристика должна быть отдельным полем с самого начала, переносить их потом на четырёхстах карточках вручную больно.

Нет пути от карточки к заявке. Человек нашёл нужную позицию и упирается в общую форму обратной связи внизу страницы, где надо самому вписать, что именно ему нужно. Половина уходит. Кнопка на карточке должна подставлять артикул автоматически.

Товары заведены обычными записями блога. Работает ровно до момента, когда понадобится фильтр или отдельный шаблон карточки. Дальше начинается перенос контента между типами записей, а вместе с ним потеря адресов страниц и позиций в поиске.

Никто не отвечает за наполнение. Каталог живёт, пока кто-то добавляет новые позиции и убирает снятые с производства. Если ответственного не назначили на этапе запуска, через год половина ассортимента будет неактуальной, и доверие к сайту закончится.

Если каталог перерастёт в магазин

Такое случается, и заранее закладываться на это стоит хотя бы на уровне данных. Переезд с собственного типа записи на WooCommerce не катастрофа: товары переносятся скриптом, если характеристики лежат в отдельных полях, а не в описании. Адреса страниц сохраняются или закрываются переадресацией, чтобы не потерять накопленные позиции в поиске.

По-настоящему больно бывает в другом случае, когда каталог собран на закрытом плагине без экспорта. Тогда данные вытаскивают запросами прямо из базы и восстанавливают связи руками. Это оплаченные часы за то, что на старте решалось одним вопросом про экспорт.

Поэтому совет простой: как бы вы ни делали каталог, убедитесь, что товары можно выгрузить в понятный файл в любой момент. Это ваш запасной выход из любой архитектуры, и единственная страховка, которая ничего не стоит на этапе выбора.

Частые вопросы

Можно ли сделать каталог товаров на WordPress без плагинов вообще?
Да. Свой тип записи регистрируется штатной функцией WordPress, характеристики хранятся в произвольных полях, вывод делается шаблонами темы. Плагин может понадобиться для удобного редактирования полей и для фильтров, но сама структура каталога это возможность самой системы.

Что дешевле: WooCommerce с отключённой покупкой или свой тип записи?
На малых объёмах дешевле свой тип записи, там меньше настройки и не нужно ничего отключать. На больших и сложных ассортиментах выигрывает WooCommerce: импорт, вариации и фильтры в нём уже есть, писать их заново дороже, чем убрать корзину.

Правда ли, что у WooCommerce есть встроенный режим каталога?
Нет. Официальные материалы WooCommerce предлагают для этого расширения либо правку кода. Готового переключателя «выключить продажи» в базовой поставке не предусмотрено.

Будет ли сайт каталог без магазина продвигаться в поиске?
Будет, и часто лучше магазина, потому что конкуренция по информационно-товарным запросам ниже. Условие одно: у категорий и карточек должен быть осмысленный текст, а не только фото и таблица параметров.

Как показывать цены только оптовым клиентам?
Это решается разграничением по ролям пользователей: розничный посетитель видит витрину, авторизованный партнёр видит цены. В WooCommerce такую логику дают отдельные расширения, например Catalog Visibility Options, которое умеет оставлять покупку доступной только вошедшим в систему. В самописном каталоге видимость поля с ценой проверяется парой строк в шаблоне.

Сколько времени занимает разработка каталога?
Зависит от объёма и источника данных. Витрина на несколько сотен позиций с фильтрами и импортом из прайса это недели, а не месяцы. Основное время уходит не на код, а на приведение прайса в пригодный для загрузки вид.

Прокрутить вверх