Компания «ГольфСтрим» — поставщик оборудования для хлебопекарных и кондитерских производств. С 2007 года компания является не только дистрибьютором, но и производителем оборудования нескольких собственных торговых марок.
В 2017 году компания решила заменить старенький неадаптивный сайт на HostCMS на новый на 1С-Битрикс. В качестве дизайна использовали готовое решение от Аспро. Несколько советов по переносу сайта на 1С-Битрикс в отдельной статье.
Устаревший сайт на HostCMS.
ГольфСтрим обратились к нам за помощью в сложной задаче — доработке импорта товаров из 1С в Битрикс с целью внедрения наборов и опций в каталог.
Каждое кондитерское и хлебопекарное производство индивидуально. Основной техпроцесс выпечки хлеба не меняется, но есть особенности. Оборудование имеет отличительные характеристики. Их называют «опции».
Пример: есть условная хлебопечь за полмиллиона рублей. К ней еще за 100 тысяч можно купить опции «Вытяжной зонт» и «Душирующее устройство». Кто-то берет печь без опций. Кому-то нужна их комбинация. У некоторых товаров бывает до 15 различных опций.
Число вариантов поставки измеряется сотнями.
На сайте требуется выводить названия и цены опций для каждой единицы оборудования.
Похожая ситуация с наборами товаров. К печи сразу предлагается подставка и расстоечный шкаф. Это отдельные товары. Их можно покупать отдельно. Но удобней — в наборе.
Основная сложность задачи — в интеграции с 1С. Типовая выгрузка не передает данные по опциям и наборам с привязкой к оборудованию. В сотрудничестве с IT-отделом компании «Гольфстрим», мы смогли настроить выгрузку и связи, о структуре данных ниже.
Первоначальную установку и настройку готового сайта выполнила компания Аспро. К нам сайт пришел «свеженький». Базовая интеграция с 1С настроена. Можно работать.
Задача по доработке опций в каталоге выглядела так:
Внимание, «гуманитариям» далее не читать. Возможны помутнения разума от обилия технических терминов и диаграмм. Переходите сразу к разделу про внешний вид .
Совместно с заказчиком мы придумали решение для хранения и интеграции с 1С опций, наборов и множественных связей «товар - опция» и «товар - набор».
Товаров несколько сотен. Опций несколько десятков на весь каталог. Опции выгружаются из 1С в отдельную папку «Опции» (не активна). У товара-родителя заведено 15 свойств (максимальное количество опций у одного товара), в которых хранится внешний код товаров-опций. Тип данных: строка.
Во время предварительного анализа выявили несколько проблем и неопределенностей:
Мало придумать механизм отображения опций на сайте. Надо предусмотреть множество связанных областей — в 1С, в продажах, в SEO.
Многие вещи в этом проекте еще только предстоит сделать (например, изменение url для каждой комбинации опций). Мы не боимся сложных задач и готовы придумывать интеграционные решения на стыке веб-технологий, маркетинга и товарного учета.
Начальная оценка по задаче — 40+ часов. В итоге, все базовые доработки мы сделали за 38.
Еще около 30 часов потратили на интеграцию наборов и сопутствующие новые задачи.
Первым делом мы развернули собственную копию сайта на сервере для разработки и настроили git. Кроме нас на проекте работали ребята из Аспро, нам понадобилась система контроля версий.
Второй важный шаг — настройка логирования выгрузки из 1С. Это собственная разработка ИНТЕРВОЛГИ. При любом сеансе обмена между 1С и сайтом программа логирования записывает несколько десятков параметров обмена. Помогает раскопать проблемы, если они есть. Сделали выгрузку товаров на тестовый сервер, проверили корректность. Итак, все данные об опциях есть на сайте, можно заниматься их выводом.
Карточка товара немного изменилась :
Добавление опций повлекло за собой одну неприятную проблему, над решением которой долго бились.
При попытке передать в почтовое уведомление и счет на оплату заказа информации об опциях, передавались не только их названия, но и сопутствующие XML_ID.
Выглядело так:
Исправили, оставили только названия.
Результат изменения карточки товара ниже.
Оригинальный вид карточки товара
Карточка товара с опциями
1С не знает ничего про наборы и различные типы товаров. Для нее вся номенклатура одинаковая.
Перед началом работы по наборам мы проверили, что 1С не сбрасывает тип товара-набора при выгрузке:
Вывод. Типовой обмен товарами с 1С не меняет «тип товара». Осталось придумать, по какому признаку превращать товары в наборы. Это просто. Также, как и с опциями, мы завели свойство и передавали в него xml_id составляющих набор товаров.
Наборы передаются аналогично. Есть свойство «Товары набора». В нем передаются xml-id.
После проверки гипотезы перешли к основной части задачи по наборам — Конвертация товаров в наборы. Мы написали скрипт, который:
Скрипт стоит на cron в 4.30 каждый день. Работает.
Типовой обмен товарами с 1С не меняет «тип товара». Главное — конвертировать товар в набор.
Вторая часть задачи — связка «товар - опции - набор». Мы сделали так, что при выборе какой-либо опции товара-набора, она меняет цену не только самого товара, но и цену набора вместе с составными товарами. Магия.
Вся бизнес-логика работает. Можно заниматься внешним видом. Что сделали:
Удивительно, но самой трудоемкой оказалась задача второстепенной важности. Изначально выбор опций в товаре не влиял на стоимость набора с этим же товаром. Мы решили, что правильно при выборе опций одновременно менять цену набора (на этой же странице ниже).
Так вот, задача заняла 10 часов. Причина — товар с опциями добавляется в корзину «кастомным» скриптом через AJAX, а товар с набором стандартным скриптом с перезагрузкой. Пришлось написать что-то среднее.
Перед тем, как сдавать работу заказчику, мы составили и осуществили план тестирования.
После проведения тестирования нашли несколько мелких багов. В целом, работа выполнена хорошо и с первого раза.
ГольфСтрим — хороший пример проекта «быстрый запуск и поэтапное наращивание функций». В современном бизнесе скорость внедрения изменений играет большую роль. В интернете также.
Как мы пишем в статье про итерационную веб-разработку , «перфекционисты проигрывают».
Мы отказываемся от длинных проектов с толстыми ТЗ. Мы любим проекты с быстрым развертыванием новых функций в публичном доступе, чтобы заказчик сразу получил обратную связь от своих клиентов.
Что увидели клиенты и партнеры компании Гольфстрим на новом сайте:
Описанные функции мы внедрили на сайт меньше, чем за 2 месяца работы. Скорость внедрения новых функций — одна-две в неделю.
На данный момент в проекте 70 задач, из них 4 в работе. Остальные закрыты.
Проект запущен — http://www.golfstream.org .
Выражаем благодарность Андрею Щербаку, менеджеру по маркетингу компании ГольфСтрим за участие в проекте, постановку интересных задач и выработку совместных решений.
Мы готовы взять любой проект на сопровождение. Заполните форму или напишите на dav@intervolga.ru .
Вы можете войти, используя аккаунт одной из социальных сетей