Новый интернет-магазин для старого клиента: переезд без потерь, гибкий каталог и экстремальная забота о SEO
Мир магнитов: полное обновление через 10 лет
Сибирикс

Мир магнитов

Интернет-магазин с двумя каталогами и максимально щепетильной настройкой SEO

Мир магнитов

Интернет-магазин с двумя каталогами и максимально щепетильной настройкой SEO
Когда продаешь всевозможные магниты на российском рынке уже 17+ лет, то знаешь о своем бизнесе всё. И о покупателях — тоже. Поэтому стараешься сделать сайт своего интернет-магазина максимально информативным и функциональным. Но в какой-то момент упираешься в ограничения привычной системы и понимаешь — интернет-магазин нужен новый. Так и случилось у «Мира магнитов».
  • «Мир Магнитов» — крупнейший в России онлайн-магазин магнитов и магнитной продукции, который работает оптом и в розницу. В каталоге компании — всевозможные изделия: от поисковых магнитов и магнитных инструментов до прикольных головоломок и антистресс-игрушек.

    «Мир Магнитов» появился на рынке в 2007-м, и сегодня компания обрабатывает более 80 тысяч заказов в год, имея в каталоге под 3500 наименований самых разных магнитных изделий.

Проблемы текущего сайта и задачи для нового

«Мир магнитов» — наш давний клиент, которому мы создали сайт ещё в далеком 2014 году. С той поры заказчик дорабатывал его своими силами. Постепенно функционала перестало хватать — поэтому добавлялись сторонние сервисы, делались всевозможные доработки текущих решений и использовались прочие «костыльные» методы (часто — неизбежные, когда нужно быстро масштабироваться).

Игорь
Руководитель проекта
— За годы работы старого сайта менялись команды разработчиков, сам проект покрывался слоями кода, в котором уже никто не мог разобраться. Доработок было много: в админ-панели сайта, в функционале доставки, рассылках, скидочной системе, на фронтенде. И это всё клиенту было нужно и важно. Поэтому, когда он пришел к нам снова, предстояло сначала распутать этот клубок противоречий :)
Заказчик хотел запустить мощный интернет-магазин:
  • с подключением разных систем оплат и нескольких служб доставок;
  • реализацией сложной системы скидок;
  • интеграцией с 1С;
  • выгрузкой фидов;
  • и триггерными рассылками.

Всё это заказчику хотелось реализовать на микросервисах.

Агрегация требований, которая всё упростила

Чтобы проанализировать ситуацию, на этапе агрегации мы собрали требования и пожелания заказчика, а также разобрали действующий сайт «по косточкам», чтобы понять взаимосвязи и оценить, что там вообще есть «под капотом». В результате появился список из 98 пунктов — того, что есть на старом сайте и что нужно обязательно учесть на новом.

Игорь
Руководитель проекта
— Мы тщательно проанализировали требования и пришли к выводу, что всё необходимое можно реализовать на привычном заказчику Битриксе, добавив дополнительные интеграции.

Иван
Технический директор
— Когда мы проанализировали существующий проект, то решили, что классические микросервисы в виде совершенно независимого кода, запускаемого в докер-контейнерах, — тут не нужны.

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

При этом использовать микросервисы для ускорения работы отдельных функций сайта — таких как поиск, фильтрация, обмен с ERP и т. д. — эффективно.

Магнетическая главная страница

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

Для wow-эффекта главной страницы «Мира магнитов» мы предложили слайдер с интерактивным промо-блоком, где буквы из слов по нажатию на кнопку крепко примагничиваются к самому распространенному в сознаниии людей образу магнита: в виде подковы с красно-синими «ушками».
Другая идея, которую мы презентовали для главной — показать, что пользователю очень нужен магнит: просто он ещё об этом не догадывается. Чтобы подтолкнуть к покупке, мы разместили на странице цветные плашки с видами магнитов и ссылки сразу на два каталога: основной и каталог «по применению», который показывает товары, разделив их по направлениям: как если бы пользователь гуглил что-то конкретное. Например, «магниты для коробок» или «магниты для рекламных панелей».

Игорь
Руководитель проекта
— Решение сразу с двумя 2 каталогами — в чём-то новаторское. Но такой нестандартный подход повышает вовлеченность и, тем самым, увеличивает продажи на сайте.
У заказчика были фирменные цвета, которые мы использовали в дизайне. Но нам показалось, что «Мир магнитов» может выглядеть чуть брутальнее — поэтому мы предложили альтернативу с темным промоблоком и сдержанными «металлическими» подложками в оттенках серого. В итоге заказчик остался верен себе и своей стилистике, которую ценят и любят постоянные покупатели бренда.

Каталог «по применению»

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

Роман
Разработчик
— Заказчик просил очень гибкие посадочные для каталога «по применению» с возможностью создавать страницы с различными красивыми блоками контента и «хитрыми» привязками из административной части сайта.

Мы сделали специальный инфоблок с разделами, элементами и привязками к другим сущностям. При создании элемента автоматически создается предзаполненная типовая страница каталога, которая позволяет добавлять разнообразный контент легко и гибко.

В итоге получилось решение-конструктор, покрывающее все задачи заказчика.

Основной каталог

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

Мощный фильтр, который мы реализовали на базе ElasticSearch. Учитывает примерно миллион параметров в каждой категории: тут и размеры, и материалы, и типы, и форматы поставки, и производители, и даже тип намагничивания и срок размагничивания. Кроме того, почти по каждому параметру можно вводить запрос текстом в отдельных строках поиска внутри фильтра, чтобы сделать выдачу каталога максимально точной под потребности пользователя.

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

Детальная страница товара

Страница товара настолько информативна, что ей позавидуют даже самые матерые маркетплейсы. Здесь пользователя ждут:

  • галерея с видео и зумом по ховеру;
  • прозрачные цены: можно прямо в карточке отрегулировать количество товара и увидеть итоговую цену за него, с учетом всех скидок за объем покупки, плюс всегда на виду вилка оптовых цен;
  • более десятка вариантов доставки, для которых выводится актуальная цена в зависимости от геолокации пользователя;
  • реальные отзывы о товаре с изображениями, а также вопросы и ответы;
  • детальное описание товара.

Игорь
Руководитель проекта
— В описание товара можно добавить два типа контента. Первый — общие блоки, которые описывают базовые свойства магнитов, правила обращения с ними, кейсы использования. Блоки могут содержать текст, видео и картинки, задаются в админ-панели и привязываются к товарам или категориям товаров как штучно, так и группами.

Второй тип контента — уникальный, который касается конкретного товара и задается вручную.

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

Корзина и оформление заказа

Корзина на сайте — тоже в лучших традициях маркетплейсов с продающими фишками:

  • Чек-боксы. Пользователю необязательно выкупать все товары из корзины — он может, как на любом маркетплейсе, накидать в корзину много позиций, а затем выбрать из них то, что реально нужно, и оформить заказ. Остальные товары останутся лежать в корзине и встретят его там при следующем визите на сайт.
  • «Убедительная математика»: наглядно показываем пользователям, сколько ещё магнитов нужно купить, чтобы получить скидку.
  • Возможность отрегулировать количество каждой позиции: можно сразу увидеть, как пересчитывается общая сумма и, главное, цена за штуку при добавлении количества — «Мир магнитов» предлагает весьма приятные скидки за объем заказа.
  • Ограничения: некоторые позиции невозможно купить штучно — только в определенном количестве (упаковкой): в этом случае в корзине появится предупреждение вроде «товар продается кратно 70 шт». Причем, корзина сама подставит ближайшее нужное значение при вводе: например, если при кратности в 70 шт ввести 130, она округлит до нужных 140, а если ввести 250 — округлит до 280.
  • Ключевые параметры каждого товара: артикул, тип, вес, размеры — чтобы можно было ещё раз пробежаться глазами и проверить, а то ли ты собираешься купить. А ещё, исходя из веса каждого товара, шустро считается вес всего заказа.

Игорь
Руководитель проекта
— В корзине мы реализовали сложную логику «порогов цен»: для каждого товара из 1С получаем «пороги» и цену. Например, при покупке от 1 до 3 шт — цена 100 рублей, от 4 до 7 шт уже 90 рублей. Таких порогов у каждого товара может быть от 4 до 8.

Причем, при изменении количества товара в корзине, на лету считается и отображается:
  • общая стоимость всех товаров;
  • стоимость за единицу (зависит от пороговой цены);
  • зачеркнутая старая цена;
  • сколько нужно добавить единиц товара до следующего порога;
  • экономия в рублях на следующем пороге цены.

Также корзина «на лету» пересчитывает общий вес товаров и стоимость доставки, а ещё показывает, сколько нужно докупить, чтобы доставка стала бесплатной.
На этапе оформления заказа пользователь может выбрать тип доставки (самовывоз из ПВЗ или адресная доставка) и город. Когда пользователь выбирает доставку в ПВЗ или на конкретный адрес, сайт за секунды подтягивает несколько вариантов служб доставки, сроки и стоимость в каждой.

Евгений
Разработчик
— Чтобы на сайте было с десяток доставок на любой вкус, надо было или интегрироваться с каждой службой отдельно, или найти агрегатор доставки, который обеспечил бы высокую скорость обмена данными.

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

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

Такое решение сокращает количество обращений к API агрегатора (а ведь каждое ещё и стоит денег), а пользователь при этом — сразу получает актуальную цену доставки.
менее
1 секунды
время загрузки на сайта данных по 1700 ПВЗ в Москве
Следующий шаг оформления заказа — контактные данные. Для физических лиц есть возможность «ленивой регистрации»: личный кабинет для отслеживания заказа создается автоматически. Для удобства юридических лиц мы добавили ввод данных из daData: по названию подтягиваются все данные компании.

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

Личный кабинет

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

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

Интеграция с 1С

1С «Мира магнитов» хранит все типы цен (основные и те, что со скидкой от количества, например) и пороги для пересчета цен по каждому товару. В каталоге около 3,5 тысяч товаров — и у каждого за счет таких ценовых вариаций можно насчитать до 18 типов цен. Мы настроили всё так, чтобы любое их количество передавалось на сайт без задержек.

В 1С клиента варианты одного и того же товара (SKU) хранятся как отдельные позиции каталога. Но пользователям сайта так — неудобно. Поэтому важно было гибко связать варианты товаров между собой. Лучше всего делать это на стороне 1С, но по историческим причинам это было невозможным.

Поэтому мы реализовали «псевдоSKU» на стороне сайта — торговые линейки, в которые через заданные свойства можно объединить несколько товаров. Благодаря этому решению на детальной странице каждого из таких товаров отображаются и остальные товары линейки с учетом их наличия — пользователю очень удобно выбирать.

Роман
Разработчик
— Чтобы реализовать торговые линейки, мы модернизировали административную часть Битрикса. Причем, товары в линейку можно быстро и удобно добавлять по свойствам, а не искать по всему каталогу. Например, можно задать для линейки параметры «все товары двухсторонние магниты круглой формы» — и подходящие товары автоматически привяжутся.

Особенно удобно, что весь процесс как на ладони: в реальном времени видно, какие товары пойдут в линейку, какие уже привязаны к другой и в эту не попадут, а также ссылки на сами товары.
Отдельный контур — работа с заказами. В истории в личном кабинете должны выводиться все-все заказы клиента. Это просто, когда заказы делают только пользователи на сайте, но у «Мира магнитов» заказы часто создают менеджеры прямо в 1С. Чтобы такие заказы также были видны пользователям, мы специально написали отдельное API для работы с 1С заказчика.

Большой блок работ над продвижением

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

У «Мира магнитов» было отдельное ТЗ для SEO-оптимизации, которое описывало SEO-настройки для старого сайта, но для нового проекта оно, ожидаемо, не подходило. Поэтому мы разобрали его построчно: что-то взяли в работу, что-то усовершенствовали.

Игорь
Руководитель проекта
— Для некоторых SEO-решений заказчика нам приходилось дополнительно и максимально въедливо работать с логикой — ведь на первый взгляд, кроме магии, их ничем нельзя было объяснить.

В итоге настройка от запутанного ТЗ до последних штрихов потребовала множества созвонов с SEO-специалистами заказчика — такого щепетильного подхода к SEO мы не видели ни на одном проекте.

Роман
Разработчик
— Заказчик сразу запросил по SEO значительно больше, чем может дать Битрикс из коробки: различные падежи текущего города, разные тексты в зависимости от поддомена сайта и от города, выбранного пользователем, вставку номеров телефонов для этого города, количества отзывов и т. п.

Чтобы все это реализовать, мы разработали специальную систему макросов, которая скорее похожа на псевдоязык программирования. Но главное — всё это работает во всех SEO-полях сайта.
Ещё один инструмент продвижения «Мира магнитов» — фиды. Это файлы с информацией о товарах: их названиями, техническими характеристиками и фото. Фиды нужны для автонастройки рекламы в е-коммерс, передачи товаров в маркетплейсы и не только.

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

Роман
Разработчик
— На моей памяти выгрузка каталога в фид ещё никогда не была настолько гибкой :)

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

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

Готовый проект