Варианты управления показом ассортимента интернет-магазина

Это статья для администраторов интернет-магазинов со средним и выше опытом. В статье описываются принципы управления ассортиментом на сайте.

Сегодня во многих интернет-магазинах (ИМ) есть множество источников контентной информации о товарах (прайсы поставщиков, каталоги производителей, интернет-источники) и динамично меняющейся торговой информации (цены, остатки на складах). Этих данных много, и сложно управлять ими в ручном режиме; в то же время покупателю, как правило, нужно показывать только те товары, на которые принимаются заказы. А остальные товары рекомендуется отключать с сайта. Эта статья поможет посмотреть на проблему в общем и предложить решения по управлению ассортиментом, включению и исключению товаров из показа на сайте и продаж.

Для начала стоит определить понятие «Торгуемый ассортимент». Это все те товары, которые доступны для заказа в ИМ.  Товары могут быть в наличии на собственном складе(ах), на собственных магазине(ах), складах поставщиков, производителя или завода. Это те товары, которые покупатель может заказать в конкретной локации, с коротким или длинным сроком ожидания. А продавец может этот заказ выполнить. Именно этот фактор играет ключевую роль.

Не стоит путать признак «торгуемый» с «есть на складе». Товар может и отсутствовать на собственном складе, но заказ на него может приниматься. Торгуемый ассортимент могут называть торговым индексом. Товар который доступен для продажи, входит в торгуемый индекс.

Также не стоит путать признак «торгуемый» с показом на сайте. Не торгуемый товар может показываться на сайте по желанию ИМ. Торгуемый товар может быть временно отключен из показа по желанию ИМ, а потом снова включен. Товар, который разрешен для показа на сайте, входит в показываемый индекс.

Чаще всего показываемый индекс и торговый индекс равны друг другу, но не всегда.

Неторгуемый ассортимент — это те товары, на который магазин не принимает заказы. Эти товары чаще всего скрываются с сайта. Иногда это делается при автоматически при помощи обработчика, который «слушает» события изменений товаров и при выполнении определенных условий удаляет товар из торгового индекса, товары: например, весь товар продан, или администратор выставил товару определенный признак, то товары отключится.

Итого, у нас есть признаки:

  • Показывать товар в ИМ (входит в показываемый индекс);
  • Заказы на товар принимаются (входит в торгуемый индекс);
  • Наличие на складе (например, «да/нет», «мало/много» или точное количество на складе(ах);
  • Принимать ли заказы свыше доступного количества или под заказ (это может быть глобальная настройка ИМ или индивидуальная у разделов/товаров).

Как управлять индексами: торгуемыми и показываемыми товарами?

Управление по активности товаров

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

Не подходит для филиальных сетей — многоскладовых / многосайтовых ИМ, которые комплектуют заказы покупателя только из одного склада (или групп складов). Например, филиалы ИМ в крупных городах или разных странах. Часто в таких магазинах покупателю предлагается выбрать Ваш регион. При выборе конкретного региона (или ближайшего магазина) происходит фильтрация товаров только по торгуемому ассортименту данного региона (например одного, или нескольких складов)  То, что является торгуемым ассортиментом в одном магазине (например, в Москве), может быть неторгуемых в другом (Санкт-Петербурге), и наоборот.

Торгуемый ассортимент филиала может быть ограничен складскими запасами данного филиала (склада или группы складов). Это зависит от удаленности склада комплектации от покупателя и сборки и сроков доставки, т.к. покупатели сегодня не готовы ждать долго если есть альтернатива. В разных филиалах торговые ассортименты могут даже планироваться отдельно (например, некоторые бренды не очень известны в одном регионе, но гораздо более известны в другом). Или компания может торговать в одном месте одними товарными группами, а в другом — другими. База товаров может быть одна, а торгуемые фрагменты этой базы - свои у каждого филиала. Поэтому единственной галки «активность» недостаточно, чтобы управлять признаком торгуемого ассортимента для всей сети.

Также при помощи только активности, установленной у товара, позже невозможно понять, был ли деактивирован ли товар временно (например, пропал у поставщика) или его отключили навсегда (больше никогда не появится в продаже).

Управление торговым ассортиментом по общему остатку 

В этом случае торговом индексе доступны товары, у которых общий остаток по всем складам положителен. Для некоторых товаров может позволяться заказ выше доступного количества, для некоторых (и в большинстве случаев) — нет. Это зависит от многих факторов — возможного ожидания заказчика, характера приобретения и потребления продуктов, устоявшейся практики, конкуренции, желания ИМ попробовать продавать новые товары без закупки на свой склад (по остаткам на складе поставщиков)

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

Управление торговым ассортиментом по остатку в разрезе складов / магазинов 

К торгуемому ассортименту добавляется проверка положительного остатка на определенных складах. В каждом регионе может быть рассмотрена группа складов. Например, для одного ИМ торгуемый ассортимент может определяться, суммарным остатком основного склада с остатками собственных розничных магазинов города. То есть возможна ситуация, когда в одном заказе соберется товар, размещенный на нескольких склада/магазинах, и его надо будет предварительно оттуда забрать (в одном общем месте или по пути на доставку). Этот процесс может быть достаточно сложен и логистика может стоить ИМ или покупателю больше. Не все ИМ на это готовы.

Управление торговым ассортиментом по свойствам 

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

Опция хорошо подходит интернет-магазинам с большим кол-вом товаров, которые постоянно добавляются из прайсов поставщиков или из 1С, а контент к ним добавляется позже. В этом случае можно добавить наличие или отсутствие значений некоторых свойств в качестве условия для добавления / удаления в торгуемый индекс или включение / отключение показа на сайте. Например, наличие фото и описания может являются таким условием, иначе товар будет показан  в каталоге с низким шансом продажи. Такие настройки могут быть едиными для всех разделов каталога, индивидуальными для разделов и даже товаров (реже, из-за трудоемкости, но для особых товаров может применяться).

Такие условия задаются в специальных конфигурационных файлах. При запросе товаров из определенного раздела, эти условия поступают на вход, и из базы выбираются только соответствующие запросу товары. Важно, чтобы данная выборка происходила из базы 1 раз, то есть, чтобы не было многоступенчатой работы с данными. Неправильно (в 2 шага): запросили вначале все товары раздела, а потом уже начали разбирать по условиям и показывать соответствующие. Правильно (в 1 шаг):  запросить у только те товары раздела, которые соответствуют условиям, поданным на входе. Но даже это может снизить быстродействие. Особенно, если товаров на странице много. Кеширование  страницы спасает ненадолго (на выставленное время), но потом другой пользователь запросит такой же результат, и запросу к базе будет сделан заново, то есть будет вызвана дополнительная нагрузка. Ее можно снизить и ускорить таким оборазом отображение страниц списков товаров каталога.

Как ускорить? —Использовать предобработку!

Ускорение показа торгуемого индекса и показа на сайте —< предобработка.

Когда пользователь открывает страницу раздела, или пользуется поиском, он должен получить список товаров в соответствии с настройками показа на сайте. Можно получить этот список в тот момент, когда это нужно пользователю, например, когда он зашел в определенный раздел, компоненты сайта делают запрос товаров к базе с учетом условий показа (наличие остатков, свойства, их комбинация). Чтобы отработать данный запрос быстрее, желательно, чтобы результаты этих проверок были подготовлены заранее (предобработка).  Не в момент запроса пользователя, а в более ранний момент  когда добавлялся или изменялся товар. Результаты данной предобработки можно сохранить в специальное свойство «отображать на сайте (предобработка)». Тогда при загрузке страницы со списком товаров раздела нужно выполнять проверку лишь на одно свойство.

В случае с односайтовым не филиальным ИМ можно и рекомендуется использовать активность товаров, как результирующее значение. В таких ИМ торгуемый индекс равен индексу для показа. Обратите внимание, что в данном случае не администратор выставляет активность товару (активность — это не входной параметр, а выходной). Активность выставляет автоматизированная обработка, которая выполняет проверки и, возможно, активацию/деактивацию товара при выполнении / невыполнении заданных условий. Также использование активности корректно обновляет поисковый индекс: неактивные товары удаляются из поискового индекса, а активированные товары — добавляются. 

В случае многофилиальных магазинов, нужны будут несколько торгуемых товарных индексов, индексов для показа на сайте (если отличается от торгуемого) и поисковых индексов. Это может быть реализовано на отдельных таблицах, не связанных с CMS

Временное и постоянное включение/отключение товаров для показа

Следует различать постоянное и временное включение/отключение товаров с в/из торгуемого индекса и в/из индекса показов сайта (если торгуемый и показываемый индексы отличаются). Временное отключение может предполагать возвращение товара, а постоянное, как правило, что товар закончил свой жизненный цикл и больше никогда не будет показываться. Обычно постоянное отключение регулируется свойством. В зависимости от того, чего Например, «показывать на сайте» — позитивное свойство, а «Не показывать на сайте» — негативное. Выбирается тот или иной вариант, в зависимости от доли количества товаров, нужных в индексах, к общему кол-ву товаров; ежемесячной частоте добавления /удаления из индексов.

Некоторые магазины для целей SEO практикуют оставлять карточки неторгуемых товаров доступными для открытия по прямому url-адресу, но скрывают их «с пути активных покупателей». Скрывают из карты сайта, из показа в разделах каталога,  из поиска, из товарных «лент» (сопутствующих товаров в карточке, блоке «хиты продаж раздела»). В этом случае в компоненте карточки товара стоит дополнительная проверка, которая отображает такие товары но не дает их заказать. Это позволяет наращивать количество страниц в индексе поисковых систем, т.к. страницы товаров, которые из торгуемых перешли в неторгуемые, могут привлекать потенциально интересный траффик — людей, заинтересованных именно в этой модели. Так магазин получат шанс продать покупателю более новую модель или аналог. К тому же если контент был уникален, поисковики про это помнят.

Совместное использование фильтров по свойствам товаров и индексам продажи и показа

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

Для быстрой работы фильтров следует использоваить базовую фильтрацию (по индексам) и фильтрацию по свойствам одновременно, а не последовательно.

То есть, если пользователь в публичной части открывает раздел товаров, то компонент каталога запрашивает список товаров вначале с базовым фиьтром (по индексам). После использования дополнительной фильтрации по свойствам, нужно за 1 шаг запросить из базы товары соответствующую базовому фильтру и фильтру по свойствам. Если такую фильтрацию делать последовательно, но 2 шага (вначале базовая, а потом уже по свойствам), то это снизит быстродействие каталога.

Нужна помощь по созданию интернет-магазина?

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

Для решения проблем, описанных в статье, расширения стандартных возможностей CRM мы используем авторские разработки для CMS. Если у Вас возникнут вопросы, Вы можете обратиться за консультацией по созданию интернет-магазинов