AUDIT · SITE + CRM · CURRENCY · SECURITY

Витрина и CRM жили как два разных проекта — соединили в один

У бренда одежды ASHFIELD (капсульные DROP-коллекции) была зрелая CRM с защищённым API — но витрина ни разу к нему не обращалась: форма оформления писала в localStorage. Плюс скрытый разрыв в валюте расчётов. Связали компоненты в единый рабочий контур.

  • 46 unit-тестов, всё зелёное
  • Единая валюта расчётов
  • Закрыт критический риск в оплате
КонтекстБренд одежды (DROP)
СтекNext.js + Supabase + CRM
Проверка46 unit-тестов
Публичный статусВ разработке
ГАЛЕРЕЯ

Технический стиль витрины DROP 001

Плоские технические эскизы вместо фотостудии — это осознанный визуальный язык бренда, который сам по себе снижает затраты на контент между дропами.

ЗАДАЧА

Оформление заказа должно создавать заказ, а не имитацию

«Один проект» на словах и «один проект» на уровне данных — разные вещи. Разрыв между ними обычно не виден, пока не начинают приходить настоящие заказы.

Покупатель

Оформить заказ, а не просто заполнить форму

Форма оформления должна создавать реальный заказ в системе, а не показывать страницу «спасибо» без следа в CRM.

Владелец бренда

Видеть заказ, а не только письмо

Заявка должна попасть в CRM с корректной суммой — в той же валюте, в которой её увидел покупатель на сайте.

АРХИТЕКТУРА

От двух проектов — к одному контуру

Архитектура CRM была зрелой сама по себе. Работа была не в переписывании, а в связывании, согласовании валюты и доводке.

01

Диагностика

Статический разбор кода сайта и CRM, прогон tsc, eslint, vitest, next build — без доступа к боевой БД.

02

Связывание

Форма оформления заказа подключена к публичному API CRM вместо записи в localStorage.

03

Единая валюта

Цены на сайте и расчёты в CRM приведены к одной системе вместо скрытого рассинхрона.

04

Платёжный контур

Каркас платежей проверен по единицам расчёта; сам провайдер оплаты подключается отдельно от файловых правок.

СДЕЛАНО

Что вошло в связанный контур

Каждый пункт закрывает конкретный разрыв, найденный при диагностике, а не абстрактное улучшение.

  • Диагностика двух систем как одного проектаВыявлено, что сайт и CRM формально считались одним продуктом, но не обменивались данными.
  • Связанная форма заказаОформление создаёт запись в CRM вместо localStorage-заглушки.
  • Единая валюта расчётовЦены сайта и вычисления CRM переведены на одну систему.
  • Закрытый критический рискУстранена уязвимость уровня P0 в платёжной миграции на уровне файлов.
  • 46 unit-тестовЗафиксированное поведение системы, все проверки зелёные.
  • Карта зрелостиКаждая область оценена до и после работы, а не общими словами.
ПРОВЕРКА

Что проверяется до и после связывания

«Заказ отправлен» и «заказ создан в CRM» — разные утверждения. Разница проверяется на уровне кода и тестов, а не на глаз.

INTEGRATIONФорма пишет в CRM

Оформление заказа обращается к API CRM вместо локального хранилища браузера — проверено статическим разбором и тестами.

CURRENCYОдна валюта на обеих сторонах

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

TESTS46 unit-тестов зелёные

Vitest прогоняется в конфигурации проекта; e2e и проверка на боевой БД — следующий шаг, не заявляется как сделанное.

РЕЗУЛЬТАТ И ГРАНИЦЫ

Что доказывает этот кейс

Закрытый разрыв между сайтом и CRM подтверждает объём диагностической и инженерной работы, но не подменяет проверку на боевом окружении.

Подтверждённый технический результат

Сайт и CRM бренда одежды ASHFIELD связаны в единый контур: форма создаёт заказ в CRM, валюта расчётов согласована, критический риск в платёжной миграции закрыт на уровне файлов, 46 unit-тестов зелёные.

  • Форма связана с CRM, а не имитирует отправку
  • Валюта согласована на обеих сторонах
  • Критический риск закрыт в коде
ВАШ ПРОЕКТ

Сайт и CRM тоже формально «один проект»?

Опишите, что уже есть — сайт, CRM, платежи. Начну с диагностики: где заканчивается один контур и начинается имитация.

  • Сначала диагностика связей, а не макет
  • Валюта и данные — до дизайна
  • Ответ в течение рабочего дня

Или напрямую: Telegram · yariklapkin@gmail.com

Похожий разрыв?Ответ в рабочий день