Стенд: сверка двух выгрузок
Слева две выгрузки, справа — решение обмена
Понимает 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С мы не подключались и доступов не просили. Поэтому стенд показывает результат — нормализованный каталог и точный список «что изменится на сайте», то самое, что на объекте уходит в каталог. На объекте к этому добавляется приёмник по расписанию, авторизация обмена и первая ручная сверка остатков с кладовщиком.
Товары в примере вымышленные. Мойки, столешницы и сифоны придуманы для стенда: ни одного настоящего каталога заказчика на витрине нет и быть не может.
Файл, который вы вставите, остаётся в браузере. Страница ничего не отправляет и ничего не хранит. Обновите — и данных нет.
Настроить обмен у вас
Смотрим, что уже выгружается из учёта и что умеет сайт, ставим обмен по расписанию, вводим карантин и отмену при обрезанной выгрузке, отдаём журнал. Первую неделю сверяем остатки руками — обмен без сверки это обмен на удачу.