Создание сайта-каталога с личным кабинетом для казахстанского завода кабельной продукции, который продаёт оптом по странам СНГ: покупатели сами видят остатки и цены и оформляют заказы, а учёт завода получает их без перепечатки. Сайт связал с учётной системой Евгений Росляков. Статус у него — самозанятый, поэтому работа идёт по договору, а юрлицам он выдаёт закрывающие документы. Сайты и интеграции он делает с 2016 года; принимает в Москве, остальные проекты ведёт удалённо.
У завода учёт идёт в SAP. Раньше покупатель звонил, менеджер открывал систему, смотрел остаток кабеля нужного сечения и называл цену. Так проходила большая часть обращений, и менеджеры были заняты справками, а не продажами.
Картину усложняли ещё два контура. Дочерняя торговая компания в ОАЭ ведёт учёт в NetSuite и держит часть продукции на своём складе. Крупный покупатель присылает заказы из собственной системы Oracle Fusion, и их приходилось перепечатывать в SAP.
Покупатели разные: монтажные организации берут кабель партиями под объект, оптовики — барабанами на склад. Всем нужны были точные цифры в день обращения, а не «перезвоним после обеда».
Заводу требовался сайт, который отвечает на вопрос «есть ли и по чём», принимает заказ и не просит вводить его в ERP заново.
Сделал B2B-каталог. Кабель выбирается по марке, сечению, числу жил и виду поставки: бухта или барабан. У позиции есть карточка с характеристиками и документами. Покупатель входит в личный кабинет, где видит свои цены, остатки и историю заказов.
Остатки и цены берутся из SAP через функции, доступные по RFC. Часть нужных функций, обёрток над стандартными BAPI, написал на ABAP вместе с программистом завода. Он знает систему и отвечал за доступы и правила безопасности, а я описывал, какие данные нужны сайту и в каком виде. Сайт обращается к SAP не напрямую: между ними стоит небольшой сервис, который вызывает функции и отдаёт сайту ответ в обычном JSON. На стороне сайта данные кешируются, чтобы SAP не нагружался при каждом открытии страницы, и остаток обновляется по расписанию.
Заказ с сайта вызывает стандартную функцию создания заказа клиента в SAP. Менеджер получает его уже в учёте, с номером, и подтверждает, а не вводит заново.
Остатки торговой компании в ОАЭ подтягиваются из NetSuite по REST. Покупатель видит, что лежит на складе завода, а что у дочерней компании, и понимает, что сроки поставки отличаются.
Заказы крупного покупателя из Oracle Fusion принимаются файлами в согласованном формате. Сайт проверяет файл, сопоставляет артикулы и создаёт заказы в ERP. Ошибки в строках уходят покупателю списком и не ломают заказ целиком.
Покупатели перестали звонить за справками. Остаток и цену они смотрят в кабинете, а менеджеры занимаются условиями и крупными заказами. Заказ попадает в SAP без перепечатки, поэтому в данных больше порядка: меньше опечаток в артикулах и сечениях.
Заказы крупного покупателя из Oracle Fusion обрабатываются по одному формату. Если файл составлен неверно, сайт показывает, какая строка не прошла проверку, и покупатель исправляет только её.
Есть ограничения. Остатки приходят с небольшой задержкой из-за кеша, поэтому точный резерв кабеля по-прежнему за менеджером: сайт показывает наличие, а не гарантирует его. Обмен с NetSuite идёт в одну сторону: сайт читает остатки, но заказы там не создаёт. Файловый обмен с Oracle Fusion завод оставил на период проверки, а прямой обмен по API обсуждается с ИТ-службой покупателя.
Менеджеры заметили и неожиданный эффект: по кабинету видно, что именно ищут покупатели, и на складе стали внимательнее смотреть на ходовые марки.
Дальше можно добавить расчёт длины по весу барабана, выгрузку сертификатов к партии и подписку на поступление нужной марки. Что из этого делать первым, решает завод.
Нужен сайт, подключённый к учётной системе: каталог, кабинет или приём заказов? Напишите мне через freelance.ru, какая у вас ERP и о чём покупатели спрашивают чаще всего, и я объясню, как бы выстроил обмен данными.