Когда сайт обменивается данными с учетной системой, разработка каталога перестает быть задачей о верстке карточек. Она становится задачей о том, кто является источником правды и что делать, когда данные не сходятся. Эти вопросы дешевле обсудить до начала работ.
1. Кто хозяин данных
По каждому полю нужно решить, где оно живет: в учетной системе или на сайте. Название, цена, остаток — обычно приходят из учета. Описание, фотографии, тексты для поиска — обычно живут на сайте.
Проблема начинается, когда поле редактируют в обоих местах. Тогда очередной обмен затирает работу контент-менеджера, и это обнаруживается через неделю после запуска. Список полей, которые обмен не трогает, должен быть зафиксирован письменно.
2. Что является ключом товара
Сайту нужен признак, по которому он опознает товар при следующем обмене. Артикул кажется очевидным выбором, пока не выясняется, что артикулы менялись, повторяются или отсутствуют у части позиций.
Надежнее внутренний идентификатор учетной системы: он не зависит от того, что менеджер поправил название. Если ключ выбран неверно, при первом же обмене вы получите дубли товаров и потерянные адреса страниц.
3. В какую сторону и как часто
Обмен редко бывает односторонним. Товары и цены идут с учета на сайт, заказы — обратно. У каждого направления своя частота: цены раз в сутки, остатки раз в час, заказы сразу.
Здесь же решается вопрос об объеме: передавать все каждый раз или только изменения. Полная выгрузка проще в разработке и тяжелее в эксплуатации — на большом каталоге она в какой-то момент перестает укладываться в отведенное время.
4. Свойства и их значения
Фильтры в каталоге строятся на свойствах. Если в учетной системе цвет записан текстом в свободной форме, вы получите «Белый», «белый», «Белый матовый» и «бел.» как четыре разных значения фильтра.
Приводить это в порядок можно на стороне сайта, но каждый новый товар будет приносить новый вариант написания. Правильнее — договориться о справочниках в учетной системе до старта.
5. Что делать с тем, чего нет
Товар пропал из выгрузки. Это значит, что его сняли с производства, что он временно кончился или что менеджер ошибся при выгрузке?
Варианты поведения разные: скрыть, показать с пометкой «нет в наличии», оставить страницу доступной ради поисковых позиций. Последнее часто важнее, чем кажется: удаленная страница товара — это потерянный адрес, на который могли вести ссылки.
Товар, исчезнувший из выгрузки, и товар, снятый с продажи, — разные события. Если сайт не умеет их различать, каталог будет терять страницы при каждом сбое обмена.
6. Как узнать, что обмен сломался
Обмен ломается — это нормально и случается у всех: сеть, обновление учетной системы, изменение формата выгрузки. Ненормально, когда об этом узнают от клиента, который позвонил из-за неправильной цены.
До начала разработки стоит договориться: где пишется журнал обмена, кто и как получает уведомление об ошибке, что происходит с данными при частичной выгрузке — применяются или отбрасываются целиком.
7. Тестовый контур
Обмен нельзя отлаживать на живом сайте: ошибка в выгрузке цен видна всем посетителям сразу. Нужна копия сайта, на которую можно безопасно отправлять данные, и договоренность, кто ее поддерживает в актуальном состоянии.
Что это дает
Все семь вопросов задаются за одну встречу с человеком, который отвечает за учетную систему. Ответы на них определяют структуру каталога, а не наоборот. Разработка, начатая до этого разговора, почти гарантированно будет переделываться — обычно в тот момент, когда каталог уже наполнен и переделывать дороже всего.