Модернизация сайта на готовом решении Аспро: Шины и диски 2.0 и наполнение каталога из кастомной 1С
В этом кейсе мы покажем, что пришлось сделать, чтобы номенклатура из старой «1С:Предприятие» адекватно воспринималась сайтом на «Аспро: Шины и диски 2.0», который требует данные в строго определенном виде.
Задача
От нас требовалось:
- развернуть готовое решение «Аспро: Шины и диски 2.0» на лицензии «1С-Битрикс: Управление сайтом» в редакции «Бизнес»;
- настроить решение под требования заказчика и специфику бизнеса, доработать функционал решения;
- интегрировать сайт с «1С:Предприятие» с учетом уже имеющейся номенклатуры и ее структуры, преобразовав данные из «1С» под требования решения «Аспро».
Этап 1. Настройка сайта с минимальной кастомизацией, наполнение контентом готового решения «Аспро», доработка дизайна
Компания «ШинСнаб.рф» на рынке с 1997 года, и сайт у нее уже был. Но достался он нам не в лучшем виде. Сайт был собран на решении «Аспро: Шины и диски 2.0» с обновлениями от 2021 года. Битрикс-ядро сайта не обновлялось примерно с того же времени. Использовался дорогущий хостинг на виртуальной машине BitrixVM, который также никто не обновлял, PHP — версии 7.4, присутствовали десятки различных вирусов.
В результате часть функционала сайта не работала по причине нехватки места на диске из-за непомерно растущей БД, зараженной вирусами.
Мы
обрисовали клиенту различные сценарии решения поставленных задач по реанимации сайта и привели весомые аргументы в пользу отказа от спасения
текущей версии и разворачивания заново абсолютно чистого проекта. После
недолгих обсуждений этот вариант был одобрен. Поэтому мы не разрабатывали веб-проект с нуля, а создали копию имеющегося сайта с минимальными изменениями в структуре и дизайне.
Решение
«Аспро: Шины и диски 2.0» — специфичное. Конечно, оно имеет ряд общих моментов по настройке с другими решениями «Аспро», с которыми мы регулярно работаем, но заточено исключительно под торговлю автотоварами.
Разработчики заложили богатый функционал, который на демо-сайте выглядит впечатляюще. Но заставить так же работать версию из коробки оказалось той еще задачей.
Нам пришлось столкнуться с большим количеством подводных камней и нюансов, из-за которых незначительное отступление от положенных настроек приводило к полному отказу всей цепочки процессов. Поэтому прежде всего мы изучили довольно-таки емкую документацию.
Затем, применяя полученные знания на практике, выполнили следующие операции:
- Сверстали дизайн-макет от старого сайта и интегрировали его в решение «Аспро», убрали все лишнее и наполнили контентную часть.
- Доработали шапку сайта под нужды клиента и особенности его бизнеса: разместили адреса магазинов и выделили пункт меню «Запись на шиномонтаж».
- Доработали Мегаменю. В аспровской версии меню выглядит компактно и удобно, но работать с ним оказалось невозможно. В частности, нельзя управлять брендами, выводимыми в меню. На демо-сайте их не так много, а у нас — более ста в каждой категории.К тому же мы хотели сделать из Мегаменю инструмент для дальнейшего построения SEO-меню, включающего в себя блоки и пункты, необходимые для продвижения. Поэтому решили отказаться от стандартного для «Шины и диски 2.0» меню и реализовали с использованием штатного функционала «Аспро» собственное решение.
- Вывели блок с категориями товаров на главную. Почему-то в том варианте решения, который мы выбрали не был предусмотрен вывод каталога на главной странице. А это было необходимо сделать в первую очередь для мобильной версии: здесь меню прячется в гамбургер и если не открыть его, то перечень ассортимента не увидеть.
- Доработали блок с подпиской на email-рассылку на сайте. Считаем, что это уже давно устаревший функционал. Поэтому заменили стандартные блоки в левом меню и в подвале сайта на кнопку подписки на официальный Telegram-канал компании.
- Переработали страницу «Контакты». В стандартном решении есть две близкие по назначению страницы: «Контакты» и "Магазины«.При этом на странице «Магазины» сделан чудесный функционал фильтрации точек продаж по предоставляемым в них услугам: шиномонтаж, хранение шин, выдача товаров. А на странице «Контакты» размещена только текстовая контактная информация и форма обратной связи. Мы решили объединить эти две страницы и использовать получившуюся комбинацию на странице «Контакты». Это решение будет особенно полезно по мере добавления новых магазинов и пунктов выдачи, открытие которых запланировано на ближайшее время.
- Доработали карточку товара: изменили вид выводимой информации справа от изображения, добавили кнопку «Купить в рассрочку», отредактировали стандартные информационные пояснения.
Этап 2. Интеграция с 1С (20 000 SKU), преобразование полученных данных от 1С под требования решения и обмен по расписанию
В
компании уже была внедрена система учета «1С», и в ней годами велась работа с номенклатурой. Сотрудники заказчика самостоятельно вели карточки товаров, вручную заполняли характеристики, добавляли картинки, иногда экспериментировали с экспортом товаров через разные компоненты. Все это привело к захламлению номенклатуры, задвоению, а в некоторых случаях и затроению номенклатуры, категорий и папок. В характеристиках оказались созданы многочисленные вариации одного по сути значения, например: наличие шипов, шипованный, с шипами и так далее.
Естественно, работать с такой базой было невозможно: для реализации задачи по интеграции требовалось сначала привести каталог в порядок. Поэтому мы обратились к нашим партнерам по продуктам «1С» — компании ООО «Правда». Она специализируется на доработках любой сложности продуктов от «1С» и имеет гигантский опыт внедрения.
Настройка 1С
Перед специалистами «Правды» мы поставили задачу по автоматизации наполнения каталога «1С» через модуль «4точки» средствами API.
Суть решения заключается в получении с помощью модуля всей необходимой номенклатуры с описаниями, картинками, ценами, остатками и другими параметрами от компаний-поставщиков, которые работают с «4точки».
Процесс может быть абсолютно автоматизированным. В процессе работы 1С-специалистам потребовалось:
- Настроить импорт так, чтобы товары обновляли имеющуюся номенклатуру и добавляли отсутствующие позиции в уже существующие разделы. А по умолчанию импорт ведется в новую папку. С учетом того, что у нас и так уже присутствовали лишние версии номенклатуры, создание дополнительных копий было бы безумием.
- Привести к единому формату значения параметров. Так как модуль собирает данные от разных поставщиков, значения импортируемых свойств имеют разные варианты записи. Например, радиус покрышки может быть обозначен и R20, и 20.0, и 20. Если все эти значения передадутся на сайт, в фильтре будет несколько вариантов одного и того же значения, что приведет к путанице.
С этими сложностями ребята из «Правды» отлично справились, сделав номенклатуру в «1С» удобной для работы и способной обновляться в автоматическом режиме.
Настройка сайта и интеграции
Дойдя до настройки обмена с интернет-магазином и, в частности, до настроек отбора выгрузки, мы поняли, что в «Аспро» сделано хранение каждой категории («Шины», «Диски», «Грузовые шины» и так далее) в отдельном инфоблоке.
Вероятно, по мнению разработчиков, это должно было упростить работу администратора магазина по заполнению свойств, особенных для каждой категории. Но для нас это стало серьезной проблемой. Мало того, что на сайте настройки компонента приходится изменять столько раз, сколько инфоблоков наполняется, так еще и в модуле обмена нужно настраивать каждую выгрузку отдельным профилем.
Приняв во внимание, что во всей номенклатуре в БД содержится более 50 000 SKU, мы решили, что на сайт необходимо выгружать только те товары, чей суммарный остаток по избранным складам больше нуля. А также мы настроили:
- отбор только нужных для отображения на сайте свойств из более чем пятидесяти, содержащихся в «1С»;
- отбор нужных складов;
- выбор определенного типа цен.
Далее мы совместили выборку по группам номенклатуры таким образом, чтобы в выгрузку, например, по шинам попали товары находящиеся в папках и «Легковые зимние шины», и «Легковые летние шины». И все они импортируются в одну категорию «Шины» на сайте.
Таким образом мы получили единообразную базу данных, которую можно выгружать в каталог интернет-магазина по расписанию. Далее необходимо было привести импортируемые на сайт данные к формату, используемому в «Аспро: Шины и диски 2.0».
Для выполнения преобразований мы воспользовались решением «Импорт каталога товаров из 1С, МойСклад и business.ru» от команды esolutions, продукты которой мы не раз применяли в предыдущих проектах. Оно предоставляет все необходимое для того, чтобы за счет преобразований при импорте сделать данные из «1С» совместимыми с сайтом на «Аспро». Так, например, с помощью этого решения нам удалось:
- Полностью автоматически преобразовывать иерархию номенклатуры из «1С» в структуру, которая должна быть, по мнению «Аспро», на сайте. Например, аспровское решение предусматривает, что номенклатура должна храниться для инфоблока «Шины» так: Бренд/Модель/Наименование товара. А в нашей «1С» товар доступен по пути «Шины/Летние легковые шины/Бренд/Модель». Прописывать сопоставления вручную с учетом сотней брендов и тысяч моделей немыслимо.Решением стало создание необходимой структуры в момент импорта с использованием данных из файла выгрузки. Например, «Бренд» есть в свойстве «Производитель», а модель в значении параметра «Модель». И это заполнено для каждого товара. Зная эти данные, мы создали сценарий, который отменяет текущую иерархию товаров и выстраивает свою, соответствующую логике "Аспро«.Таким образом, при импорте создаются категории для брендов и моделей. Для категорий моделей берется картинка первого товара модельной линейки. Такое решение позволило реализовать отображение каталога, задуманное разработчиками из «Аспро».
- Изменить тип свойства «Радиус» со «список» на «текстовая строка», который требуется в «Аспро». Из «1С» значения приходят списком и если этот тип не преобразовать, то не будут переключаться варианты по радиусу в карточке модели.
- Изменить стандартную логику «Аспро» по наличию шипов на летних и зимних шинах. Проконсультировавшись с клиентом, мы пришли к выводу, что указание иконок «без шипов» на летних шинах абсурдно. Ведь летняя резина всегда нешипованная, в отличие от зимней, для которой такая отметка актуальна. Поэтому мы настроили удаление любой отметки о наличии/отсутствии шипов, приходящей из 1С, для всех товаров раздела «летние шины».
- Преобразовать все варианты значений параметров, чтобы привести вид свойств к единому стандарту, необходимому для работы всего заложенного функционала «Аспро».
Этап 3. Интеграция БД TyresAddict «Подбор шин и дисков по авто»
База данных от ресурса TyresAddict
была приобретена и интегрирована в уже имеющуюся базу данных моделей на
сайте. Работа проводилась исключительно по инструкции «Аспро», за нее им отдельное спасибо.
В результате нехитрых манипуляций на сайте появился полноценный подбор по авто с базой всех возможных машин
Этап 4. Доработка старого модуля записи на шиномонтаж под PHP 8.1
На старом сайте было классное решение, которое полностью устраивало клиента своим функционалом. Но разработчик этого модуля утратил к нему интерес и прекратил поддержку. Поэтому решение не подходило под PHP 8 и выше, и, кроме того, было заражено опасными вирусами. Мы полностью переписали код модуля и установили его на новую редакцию сайта. А также немного доработали страницу услуги и добавили в нее не только сам модуль, но и описание услуги и цены. В результате получили следующее:
- Удобный для клиента модуль записи на нужное время. Можно выбрать пункт шиномонтажа и отменить уже назначенную запись.
- Простой административный интерфейс, понятно показывающий текущую загрузку шиномонтажа.
Этап 5. Внедрение расчета времени доставки в зависимости от фактического наличия товара на складе на лету
У клиента есть много складов, с которых он может привезти товар клиенту, но они имеют разное расстояние от фактического пункта выдачи .И естественно, шина из Москвы не сможет прибыть в Самару на следующий день.
Поэтому
мы каждому складу присвоили свой срок доставки и реализовали функционал, который проверяет запрашиваемое число товаров и показывает в
поле «Доступность» реальный срок получения, учитывая, сколько товара нужно и как его собрать по складам.
Для получения результата срок доставки с самого удаленного склада из выбранных прибавляется к текущей дате, и пользователь видит точную актуальную картину.
Этап 6. Интеграция рассрочки от ОТП Банка с автоматическим прохождением шагов от карточки товара до выбора способа оплаты в корзине за один клик
После клика по кнопке «Купить в рассрочку» товар автоматически добавляется в корзину и открывается страница заказа с выбранным способом оплаты «Рассрочка ОТП Банка».
Этап 7. Автоматизация стикеров «Новинка»
Стандартная автоматизация стикеров, доступная из коробки в новых версиях продуктов от «Аспро», на использованном нами решении отсутствует.
Но для главной страницы есть компонент, выводящий товары со специальной отметкой: «Спецпредложение», «Шиномонтаж в подарок».
Поэтому
мы реализовали самостоятельное решение. При каждом обмене с «1С» время создания товара на сайте сравнивается с текущей датой, и если разница меньше 30 дней, то ставится метка «Новинка». Если же разница становится больше 30 дней — метка снимается.
Таким образом, в интернет-магазине появился еще один функционал, привлекающий пользователей, но не требующий внимания администраторов сайта.
Результаты
В ходе работ по проекту выполнены:
- Настройка сайта интернет-магазина с минимальной кастомизацией, наполнение контентом готового решения «Аспро», доработка дизайна.
- Интеграция с 1С (20 000 SKU), преобразование полученных данных из 1С под требования решения «Аспро» и настройка обмена по расписанию.
- Интеграция БД TyresAddict «Подбор шин и дисков по авто».
- Доработка старого модуля записи на шиномонтаж под PHP 8.1.
- Внедрение расчета времени доставки в зависимости от фактического наличия товара на складе на лету.
- Интеграция рассрочки от ОТП Банка с автоматическим прохождением шагов от карточки товара до выбора способа оплаты в корзине за один клик.
- Автоматизация стикеров «Новинка» для товаров.
Все эти решения позволили номенклатуру из замусоренной дублями и неупорядоченной «1С» аккуратно представить в каталоге интернет-магазина «ШинСнаб.рф», предлагающего покупателям все необходимое для удобного выбора и покупки автотоваров.
А вам приходилось решать подобные задачи по интеграции «1С»? Поделитесь опытом в комментариях! А если потребуется помощь в настройке обмена между «1С:Предприятие» и интернет-магазином — digital-агентство «Винтра» всегда на связи.