Автоматизация получения ID номенклатуры с сайта для печатных форм
Компания «Форватер» — интернет-магазин инженерной сантехники, который включает свыше 10 тысяч наименований продукции от более чем 70 ведущих брендов из Европы и США. У нас вы найдете все для монтажа сетей отопления, водоснабжения, канализации и других инженерных коммуникаций.
Проблема
В стандартном модуле обмена Битрикс источником данных по товарам является 1С. При синхронизации из 1С на сайт передается внешний код товара, но ID, сгенерированный на сайте, не возвращается в 1С. Это критично, так как для контроля отгрузок через маркетплейсы заказчику нужен в 1С именно ID сайта.
Решение
Внести в карточку товара в 1С новое поле «ID с сайта» и разработать обработку, которая будет автоматически подключаться к сайту, получать ID всех товаров и записывать значения в этот реквизит.
Реализация
В пользовательском режиме с помощью стандартной системы добавления дополнительных реквизитов и свойств добавили новый реквизит в подгруппе «Общие» справочника «Номенклатура»:
Тип реквизита: «Строка»
Наименование реквизита: «ID сайта»
Расположение реквизита: в карточке номенклатуры
Разработали внешнюю обработку интеграции с сайтом, которая:
устанавливает соединение с сайтом по указанному адресу, используя переданные логин и пароль
получает с сайта полный каталог номенклатурных позиций
сохраняет полученный каталог во временный файл
считывает данные из временного файла
сопоставляет номенклатурные позиции из файла с номенклатурой в 1С по полю «Внешний код»
для найденных соответствий записывает ID сайта в дополнительный реквизит «ID сайта» элемента справочника «Номенклатура»
проводит запись в регистр сведений о результатах проведенных действий в разрезе каждой номенклатурной позиции
если позиция в 1С не найдена, выводит сообщение «Номенклатура с ID [ID с сайта] в 1С не найдена! Запись доп. реквизита не проведена!»