Бесплатный экспресс-аудит сайта Безопасность, SEO, AI-поиск и 152-ФЗ — отчёт с баллами за минуту Проверить сайт
Обсудить проект

Цены и остатки не обновляются после обмена

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

Сначала: докуда дошли данные

Журнал обмена показывает этапы по отдельности. Строки вида «Выгрузка типов цен в XML завершено. Выгружено N» и «Выгрузка остатков в XML завершено» говорят, дошло ли дело до цен и остатков вообще. Если таких строк нет — проблема в 1С, и дальше на сайте искать нечего.

Дальше проверяйте по цепочке:

  1. Карточка товара в административной части сайта — новая цена там есть?
  2. Витрина в режиме инкогнито — там тоже новая?
  3. Корзина — цена не меняется при добавлении?

Если в карточке новое, а на витрине старое — это кеш, и всё остальное в этой инструкции вам не нужно.

Регистр изменений в 1С

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

  • Данные не зарегистрированы. Цена изменилась документом, который не регистрирует изменения для обмена, — и сайт о ней не узнает. Лечится принудительной регистрацией или полной выгрузкой.
  • Регистрация обгоняет отправку. На складах с частым движением остатки регистрируются непрерывно, а обмен не успевает их отдавать. Очередь перезаписывается, и часть изменений не доезжает. Симптом характерный: остатки обновляются, но выборочно и с отставанием.

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

Типы цен

Самая частая причина «цены не обновились» на стороне сопоставления. В 1С выгружается конкретный тип цены, на сайте он должен существовать и быть сопоставлен с нужным.

  • Тип цены переименовали в 1С — сайт создаст новый тип, а витрина продолжит показывать старый, пустой.
  • Выгружается несколько типов, а покупатель видит не тот: цена обновилась, но показывается другая.
  • Цена выгружается с иной валютой или единицей измерения — число приезжает, но выглядит бессмысленно.

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

Остатки и склады

Когда включён складской учёт, остаток считается по складам, и ломается это тремя способами:

  1. Склады не сопоставлены. 1С выгружает остатки по своим складам, на сайте их нет — остаток нулевой.
  2. Витрина смотрит не на тот склад. Данные есть, но показывается другой.
  3. Единицы измерения расходятся. Штуки против упаковок дают остатки, которые выглядят случайными.

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

Кеш витрины

После обмена кеш компонентов каталога нужно сбросить, иначе посетители видят сохранённую страницу. Штатный обмен делает это сам; если обмен дорабатывали, шаг могли потерять.

Проверка простая: сбросьте кеш вручную. Изменения появились — чините обмен, а не чистите кеш каждый раз. Про слои кеша есть отдельная инструкция.

Если нужно обновлять остатки часто

Запрос «хотим обновлять остатки каждые пять минут» звучит часто, и штатный обмен для этого не предназначен: он передаёт слишком много лишнего. Рабочие варианты:

  • отдельная выгрузка только остатков, запускаемая чаще основной;
  • обмен через промежуточный сервис, который принимает данные из 1С и отдаёт их сайту;
  • доработка, которая шлёт изменения точечно при движении по складу.

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

Как убедиться, что починилось

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

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

Цены обновились в административной части, а на витрине старые.

Это кеш компонентов каталога. Сбросьте его и проверьте страницу в режиме инкогнито. Если после ручной очистки всё появляется — значит обмен не сбрасывает кеш сам, и чинить нужно обмен.

Остатки в 1С есть, на сайте нули.

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

Обновились цены только у части товаров.

У остальных другой тип цены, они не попали в фильтр выгрузки или их изменения не зарегистрировались в 1С. Посмотрите в карточке все типы цен, а не только витринный.

Остатки обновляются выборочно и с отставанием.

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

Как обновлять остатки каждые пять минут?

Штатный обмен для этого не предназначен — он передаёт слишком много лишнего. Делают отдельную выгрузку только остатков, промежуточный сервис или доработку, которая шлёт изменения при движении по складу.

С чего начинать разбор?

С журнала обмена: строки про выгрузку типов цен и остатков показывают, дошло ли дело до них вообще. Нет таких строк — проблема в 1С, и на сайте искать нечего.