Разработка сайтов / ≈ 6 МИН ЧТЕНИЯ
Архитектура интернет-магазина: каталог, оплата и интеграции
Разбираем состав интернет-магазина до начала проектирования.
01 / РАЗДЕЛ
Модель каталога
Начните с типов товаров, вариантов, характеристик и связей между категориями. Продумайте, какие свойства должны фильтроваться и какие используются только в карточке.
Не храните критичные характеристики в произвольном описании: структурированные данные проще проверять, обновлять и использовать в поиске.
02 / РАЗДЕЛ
Корзина и оформление заказа
Опишите гостевую покупку, способы доставки, налоги, скидки, промокоды и сценарии изменения состава корзины.
Важно заранее решить, как обрабатываются недоступный товар, изменение цены и повторное нажатие кнопки оплаты.
03 / РАЗДЕЛ
Платежи и безопасность
Платёжные данные лучше обрабатывать через проверенного платёжного провайдера. Сервер должен проверять состояние платежа, а не доверять только сообщению браузера.
Настройте права доступа, защиту административных маршрутов и безопасное хранение персональных данных.
04 / РАЗДЕЛ
Интеграции и остатки
Если магазин связан со складом или CRM, определите источник истины для цены, остатков и статуса заказа. Продумайте задержки синхронизации и повторную обработку событий.
Для интеграций нужны журналы ошибок и понятная процедура восстановления после сбоя.
05 / РАЗДЕЛ
SEO и развитие
Категории и карточки должны иметь устойчивые адреса и содержательные описания. Индексирование фильтров настраивают избирательно, чтобы не создавать тысячи малополезных дублей.
После запуска анализируйте поиск по каталогу, брошенные корзины и ошибки оформления заказа.
06 / РАЗДЕЛ
Как моделировать товар до разработки интерфейса
У товара бывают свойства, которые отвечают за поиск, отображение и покупку: бренд, категория, вариант, размеры, совместимость, цена, остаток, изображения, документы. Сначала определите, какие поля обязательны и кто является источником истины. Например, остаток может приходить из учётной системы, а маркетинговое описание редактируется в CMS. Если эти роли не разделить, каталог быстро перестанет быть достоверным.
Отдельно различайте товар и его варианты. Футболка в трёх цветах и размерах может быть одним карточным представлением с несколькими SKU; оборудование с независимыми комплектациями может требовать другой структуры. Решение влияет на URL, остатки, фильтры и корзину. Зафиксируйте несколько сложных примеров заранее, иначе схема данных окажется рассчитана только на самый простой товар.
07 / РАЗДЕЛ
Сценарии оформления заказа
Корзина — не только список позиций. Она должна учитывать изменившийся остаток, ограничения доставки, недоступный промокод, сохранение состояния после возвращения и возможность исправить количество товара. У оформления заказа должны быть понятные шаги, итоговая стоимость и объяснение дополнительных сборов. Человек должен видеть результат своих действий без перезагрузок, которые неожиданно сбрасывают выбор.
В перечень тестов включите гостевой заказ, авторизованного клиента, отказ платежа, повторную отправку формы и конфликт остатков. Не обещайте оплату до тех пор, пока платёжный провайдер не подтвердил транзакцию. Сервер должен обрабатывать повторные уведомления безопасно: один платёж не должен создать два независимых заказа. Эту логику лучше предусмотреть в архитектуре, а не чинить после первых жалоб.
08 / РАЗДЕЛ
Интеграция склада и витрины
Для синхронизации данных определите направления обмена и периодичность. Что происходит, когда товар переименован в учётной системе? Где редактируется SEO-текст? Как быстро должен обновиться остаток и что показывает витрина при временной недоступности API? Ответы на эти вопросы важнее названия конкретной платформы интеграции.
Пропишите идемпотентность и журнал ошибок: одно входящее событие должно применяться один раз, а сбой не должен исчезать бесследно. Администратору требуется инструмент повторной обработки и понятная диагностика. Даже небольшой магазин выигрывает от такой дисциплины, потому что она снижает риск продажи отсутствующего товара и потери заказов.
09 / РАЗДЕЛ
SEO и навигация по каталогу
Категории должны соответствовать способам выбора товара, а не только внутренней структуре склада. Покупатели могут искать «наушники для работы» и «беспроводные наушники» разными путями. Группируйте востребованные запросы в осмысленные страницы, а случайные комбинации фильтров не превращайте автоматически в индексируемые URL.
Карточка товара должна содержать собственную полезную информацию: характеристики, варианты, условия поставки, ответы на частые вопросы и доступность. Для вариаций URL выбирают осознанно, чтобы не создавать сотни почти идентичных страниц. Проверяйте хлебные крошки, структурированные данные и внутренние ссылки между категорией и товаром.
10 / РАЗДЕЛ
Что проверить до первого заказа
Перед запуском пройдите полный путь в тестовом окружении: создание товара, публикация, поиск, добавление в корзину, покупка, оплата, изменение статуса, уведомление и возврат. Подключите журнал ошибок и понятные события аналитики. Попросите сотрудников, которые будут обслуживать магазин, выполнить операции самостоятельно.
Отдельный набор проверок нужен для телефона и медленной сети. Изображения должны загружаться оптимально, фильтры — оставаться управляемыми, а итог заказа — быть виден без сложных жестов. Не публикуйте магазин только на основании того, что его главная страница выглядит красиво: основная ценность появляется после устойчивого выполнения всей цепочки.
11 / РАЗДЕЛ
Реальный сценарий каталога с вариантами
Представим магазин электроники с наушниками разных цветов и комплектаций. Внутренний склад хранит отдельные SKU, а покупатель ожидает одну карточку с выбором варианта. Архитектура должна связывать товарную группу, конкретную продаваемую единицу, цену, наличие и изображение. Если привязать остаток только к родительскому товару, витрина рискует продавать недоступный цвет.
Покупатель открывает карточку, переключает комплектацию и отправляет товар в корзину. Перед подтверждением заказа сервер проверяет актуальные цену и остаток. Если наличие изменилось, человеку показывают понятное сообщение и возможность исправить корзину. Логика не должна молча удалять позиции или оформлять покупку с неверной стоимостью.
После успешного заказа система создаёт устойчивый идентификатор, сохраняет историю и передаёт данные в учётную систему. При повторном уведомлении провайдера оплата не должна приводить к дублирующему заказу. Такой пример показывает, что корзина и карточка товара связаны с моделью данных и серверной устойчивостью, а не только с визуальным дизайном.
12 / РАЗДЕЛ
Матрица проверок перед релизом магазина
Составьте набор тестовых товаров: доступный, отсутствующий, со скидкой, с несколькими вариантами, с несовместимой доставкой и с большим названием. Для каждого попробуйте поиск, фильтрацию, изменение количества и оформление заказа. Особое внимание уделите тому, как сайт объясняет ограничения — они должны быть понятны до последнего шага оплаты.
Отдельно имитируйте нестабильную сеть и ошибки внешних интеграций. Что видит пользователь, если API доставки временно недоступен? Сохраняется ли корзина? Можно ли повторить действие без двойной оплаты? В административной части проверьте, видны ли неудачные обмены данными и кто может исправить их вручную.
После публикации наблюдайте реальные бизнес-события: поиск, просмотр карточки, добавление в корзину, создание заказа, подтверждение оплаты. Но не отправляйте в обычную веб-аналитику чувствительные данные покупателей. Система измерений должна помогать улучшать путь к заказу, сохраняя конфиденциальность.