Fortech
  • Аутстаффинг
  • Аутсорс
  • Веб-разработка
  • Мобильная разработка
  • ИИ-решения
  • UI/UX-дизайн
  • Техническая поддержка
КейсыКонтактыО насБлогКарьера
Связаться
  • Аутстаффинг
  • Аутсорс
  • Веб-разработка
  • Мобильная разработка
  • ИИ-решения
  • UI/UX-дизайн
  • Техническая поддержка
КейсыКонтактыО насБлогКарьера
Связаться
Fortech
Юридический адрес
344011, Ростовская область, г. Ростов-на-Дону, Лермонтовская ул, д. 22, офис 6, 7, 8
ИНН / КПП
6154162274 / 616401001
ОГРН
1226100005922
ОКВЭД
62.01 Разработка компьютерного программного обеспечения
Код вида деятельности в области IT
1.01, 1.04, 1.05, 1.06

Услуги

  • Аутстаф
  • Аутсорс
  • Веб-разработка
  • Мобильная разработка
  • ИИ-решения
  • UI/UX-дизайн
  • Техническая поддержка

Компания

  • Кейсы
  • Контакты
  • О нас
  • Блог

Соцсети

  • ВКонтакте
  • MAX
  • Telegram
  • Workspace
  • YouTube

Аккредитованная IT-компания
Запись №25727 от 13.04.2022

Минцифры России

Позвать нас в тендер

  • bidzaar
  • B2B-Center
Контент © fortech.dev • 2026Политика конфиденциальностиПолитика обработки персональных данных
  1. Главная/
  2. Кейсы/
  3. Интернет-магазин для опта и розницы с двусторонней интеграцией 1С

Интернет-магазин для опта и розницы с двусторонней интеграцией 1С

Как мы за пять месяцев собрали ядро магазина на NestJS: гибкие цены для трёх типов клиентов, обмен с 1С без дублей и поиск с русской морфологией

О проекте

Заказчик торгует в розницу и оптом и работает с постоянными клиентами на особых ценовых условиях. Компания решила сделать новую версию интернет-магазина: современную, безопасную и готовую к росту, с гибкой моделью цен и глубокой интеграцией с учётной системой 1С.

В магазине есть всё, что нужно покупателю: главная с подборками новинок, популярных товаров и категорий, каталог и карточка товара, поиск с подсказками, корзина, оформление заказа, избранное, подписка на поступление товара и личный кабинет с историей заказов. Для команды заказчика сделана админ-панель: контент и роли пользователей управляются там.

Проект вёл проектный офис Фортех. Команда была компактной: бэкенд-разработчик, фронтенд-разработчик и тестировщик. Бэкенд-разработчик сначала оценивал задачи нового проекта, а потом сам их и выполнил. Работа шла пять месяцев и закончилась передачей готового магазина заказчику.

Задача

  • Спроектировать базу данных и ядро магазина: пользователи, роли, товары, категории, корзина, заказы и складские операции.
  • Сделать гибкое ценообразование: розничные, оптовые и индивидуальные цены.
  • Связать магазин с 1С в обе стороны: товары, остатки, заказы и клиенты.
  • Сделать вход и регистрацию по SMS и ролевую модель покупателей.
  • Настроить быстрый поиск по каталогу с русской морфологией.
  • Обеспечить безопасность, производительность и резервное копирование.

Реализация

Ограничения задачи

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

Учётная система остаётся главной. Остатки, заказы и клиенты живут в 1С, поэтому обмен должен быть надёжным: без дублей при повторной отправке и с контролем резерва на складе.

Вход по SMS открывает дорогу перебору кодов, значит, нужна защита от брутфорса и ограничение частоты запросов.

Один клиент может заказывать с нескольких учётных записей, и история заказов не должна распадаться между ними.

Решение

Ядро магазина. Разработчик Фортех спроектировал структуру базы и реализовал ценообразование с розничными, оптовыми и индивидуальными ценами. Корзина хранится на сервере и при каждом изменении проверяет, есть ли товар на складе. Заказ проходит весь жизненный цикл: создание, резервирование, передача в 1С и обновление статусов.

Интеграция с 1С. Обмен товарами, остатками, заказами и клиентами идёт через защищённые API-эндпоинты. Операции идемпотентны: повторная отправка тех же данных не создаёт дублей. Ошибки синхронизации обрабатываются и записываются в лог, а резерв и актуальность остатков контролируются на стороне магазина.

Node.jsNestJSPostgreSQLNext.js1C

Пользователи и роли. Регистрация и вход работают по SMS, с ограничением частоты запросов и защитой от перебора кодов. Роли «обычный», «постоянный» и «супер оптовый» определяют цены и доступные условия. Механизм связанных аккаунтов объединяет историю заказов, если клиент заказывает с нескольких учётных записей.

Поиск. Каталог проиндексирован в Manticore Search: названия, описания, категории, артикулы и синонимы. Поиск понимает русскую морфологию, исправляет опечатки и подсказывает варианты, а индекс синхронизируется с каталогом. Релевантность и скорость отдельно оптимизированы под большой объём товаров.

Надёжность. API защищены, частые данные кэшируются в Redis, настроены резервное копирование и мониторинг, критичные бизнес-операции оптимизированы. Фронтенд на Next.js с серверным рендерингом, чтобы страницы каталога индексировались поисковиками.

Результат

Заказчик получил новый интернет-магазин, который одинаково работает для розничного покупателя, постоянного клиента и оптовика: каждый видит свои цены, а корзина проверяет остатки на складе.

Магазин и 1С обмениваются товарами, остатками, заказами и клиентами в обе стороны, без дублей при повторной отправке и с логом каждой синхронизации.

Покупатели входят по SMS и быстро находят товары: поиск понимает словоформы и опечатки. Клиенты с несколькими аккаунтами видят общую историю заказов.

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

Частые вопросы

Как сделать разные цены для розницы, постоянных клиентов и опта?
Заложить роли покупателей в модель данных и считать цену на сервере, в корзине и в заказе, а не на витрине. Тогда клиент с особыми условиями видит свою цену на всём пути до оформления.

Как избежать дублей при обмене интернет-магазина с 1С?
Делать операции обмена идемпотентными: повторная отправка тех же данных не создаёт новую запись. Плюс логировать каждую синхронизацию и контролировать резерв остатков на стороне магазина.

Какой поиск нужен каталогу на русском языке?
Поисковый движок с поддержкой морфологии и нечёткого поиска, например Manticore Search. Он находит товар по разным словоформам и опечаткам и подсказывает варианты при вводе.

Сколько длился проект?
Пять месяцев, от оценки задач до передачи готового магазина заказчику.

Нужен похожий проект?

Расскажите о задаче — оценим сроки и стоимость за 2–3 рабочих дня.

Написать в Telegram →

Связанные услуги

  • E-commerce разработка
  • Backend-разработка

Другие кейсы

  • Обложка кейса Фортех: B2B-каталог сантехники

    Ускорение B2B-каталога и обмена с 1С для федерального поставщика сантехники

    Как мы искали узкие места в каталоге на Strapi, наладили синхронизацию характеристик с 1С и проверяли, откуда в категориях берутся чужие бренды

  • Дистрибьютор косметических брендов FILARAcosmo

    Дистрибьютор косметических брендов FILARAcosmo

    Платформа розничной и оптовой продажи косметических средств

  • Веб-сервис М.Видео для персонализации промо-акций

    Веб-сервис М.Видео для персонализации промо-акций

    Веб-сервис для персонализации промо-акций, анализа поведения пользователей и формирования индивидуальных предложений

  • Обложка кейса Фортех: Система планирования бурения

    Формы программы бурения скважин для нефтегазовой компании

    Как фронтенд-разработчик Фортех сделал умное автозаполнение по справочнику и девять конфигурируемых форм для компоновки буровой колонны

Готовы начать?

Опишите задачу — пришлём оценку проекта за 2–3 рабочих дня или резюме специалистов за 1–2 рабочих дня.

  • partners@fortech.dev
  • +7 (989) 617-13-94
  • Телеграм: @fortech_sales