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