решение из ленты заказов

Обмен остатками и ценами: 1С → сайт

«Настройте обмен 1С и Битрикс», «интеграция с 1С: запуск обмена данными между сайтом и 1С», «переход с МойСклад на 1С с интеграцией маркетплейсов» — это самая дорогая связка в теме интеграций: средний чек по такому заказу 63 438 ₽. И самая опасная. Обмен ломается не громко, а тихо: 1С отдала файл наполовину — и каталог на сайте обнулился; бухгалтер поправил единицу измерения — и цена за квадратный метр стала ценой за погонный; в выгрузке два раза один артикул с разными ценами — и сайт продаёт по той, что пришла последней. Здесь показана та часть, которая всё это ловит: выгрузка → нормализованный каталог → что именно изменится на сайте → карантин → журнал обмена. Вставьте свою выгрузку — или нажмите кнопку с аварией.

Стенд: сверка двух выгрузок

Слева две выгрузки, справа — решение обмена

Понимает CommerceML 2 («Обмен с сайтом» 1С), YML и таблицу из Excel — формат определяется сам. Всё считается в вашем браузере: файл никуда не уходит. В полях уже лежат две выгрузки вымышленного магазина, вчерашняя и сегодняшняя, и в сегодняшней нарочно несколько типичных бед.

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

Что изменится на сайте Карантин Нормализованный каталог Журнал обмена

Что именно делает обмен

🔢

Приводит цифры к одному виду

1С пишет цену как 14 900,00 с неразрывным пробелом, англоязычный Excel — как 1,234.50, а иногда в графе стоит «по запросу». Всё это становится одним числом или честным «цены нет». Цену без НДС по настройке доводим до цены витрины: иначе сайт дешевле кассы на 20 %.

📐

Сводит единицы и артикулы

шт., штука, код ОКЕИ 796 — это «шт»; кв.м и м² — это «м2». Артикул «СИФ 50», «СИФ-50» и «СИФ_50» — один товар, а «АБ-01» и «АБ-001» — разные: ведущие нули не трогаем, на этом горят чаще всего.

🏬

Считает остаток по складам честно

Остаток складывается по складам, но минус по складу — это ошибка учёта, а не «минус к общему остатку»: 9 на одном и −3 на другом дают 9, а не 6, иначе сайт продаёт то, чего нет. Можно считать только по своим складам — Москва не должна продавать питерский остаток.

🚧

Уводит подозрительное в карантин

Цена изменилась больше порога (340 → 34 — это потерянный ноль, а не акция), единица измерения сменилась, один артикул пришёл дважды с разными ценами, цены нет вовсе, цена 0 при остатке 400 — всё это на сайт само не идёт. Карантин — это список «посмотрите глазами», а не отказ от обмена.

🛑

Отменяет обмен целиком при обрезанной выгрузке

Самая дорогая авария: 1С отдала файл наполовину, обмен применил — и каталог пуст, реклама ведёт на «нет в наличии». Если из выгрузки пропало больше порога позиций, это не распродажа, а сбой: обмен не применяется ни одной строкой, и в журнале красная строка. Порог настраивается.

📋

Ведёт журнал обмена

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

Почему именно эта связка

Замер по ленте заказов, 13 дней, 781 заказ

Тема «Интеграции и API» — 116 заказов и средний чек 45 256 ₽, второе место по деньгам в ленте. Внутри темы связка «CRM/сайт ↔ 1С, склад, ERP» — 16 заказов, средний чек 63 438 ₽, медиана 37 500 ₽: самый высокий чек из всех связок. Формулировки почти дословно: «Настройка обмена между 1С розница 2.3 и Битрикс»; «Интеграция с 1С: настройка и запуск обмена данными между сайтом и системой 1С (стартовый этап)»; «Перестроить архитектуру обмена данными в fashion-ретейле: отказываемся от RetailCRM и МойСклад, переходим на связку 1С + 1С-Битрикс с розничной кассой» (45 000 ₽); «Ищем специалиста с опытом миграции с МойСклад, интеграции с маркетплейсами, сайтами и внешними системами».

Типовой срок — от одного дня (починить уже настроенный обмен, который отвалился) до 2–4 недель (первый запуск обмена с нуля плюс сопровождение). Заказчик почти никогда не просит «интеграцию» — он просит, чтобы на сайте были правильные цены и наличие.

Честные оговорки

Что здесь настоящее и чего здесь нет

Настоящее — движок. Разбор CommerceML, YML и таблицы, нормализация цен, единиц, артикулов и остатков, дифф, правила карантина и отмена обмена считаются на этой странице тем же кодом, который идёт на объект. Тринадцать наборов проверок в node и восемь независимых в pytest, среди них «карантин и применяемое не пересекаются» и «товар без цены на витрину не уходит».

Чего нет — подключения к чужой 1С и чужому сайту. Обмен нельзя показать публично: это доступ к базе учёта и к админке магазина. Ни к чьей 1С мы не подключались и доступов не просили. Поэтому стенд показывает результат — нормализованный каталог и точный список «что изменится на сайте», то самое, что на объекте уходит в каталог. На объекте к этому добавляется приёмник по расписанию, авторизация обмена и первая ручная сверка остатков с кладовщиком.

Товары в примере вымышленные. Мойки, столешницы и сифоны придуманы для стенда: ни одного настоящего каталога заказчика на витрине нет и быть не может.

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

Настроить обмен у вас

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

от 15 000 ₽разовая починка обмена, который отвалился: найти причину, поправить, поставить журнал и отмену при сбое. 1–3 дня.
от 35 000 ₽обмен с нуля: выгрузка из учёта, нормализация, цены и остатки на сайт по расписанию, карантин, журнал, сверка с кладовщиком. 1–2 недели.
от 8 000 ₽ / мессопровождение: следим за каждым обменом, разбираем карантин, предупреждаем до того, как каталог поехал.
Обсудить задачу →