
Импорт остатков поставщика по нескольким складам
Разработали загрузку файла поставщика, сопоставление с торговыми предложениями и обновление цен и наличия по складам на сайте.
От проблемы к результату
Как мы решали конкретную задачу клиента и что получилось.
Проблема
Поставщик передавал остатки в табличном файле. Чтобы обновить сайт, сотрудникам приходилось сверять ассортимент и готовить отдельные файлы для каждого из трёх складов, затем загружать их по очереди.
Клиент хотел упростить подготовку данных и обновление наличия. Для этого требовалось связать строки поставщика с каталогом сайта и учитывать остатки по каждому складу.
Решение
Создали страницу в административной части сайта с формой загрузки документа и разработали скрипт импорта. Добавили интерфейс и функционал загрузки сопоставлений между данными поставщика и каталогом.
В ходе доработки перевели сопоставление с уровня товаров на торговые предложения и изменили хранение связей в Highload-блоке. Доработали обновление цен и наличия по складам, устранили ошибки обработки файлов на PHP 8.1, провели тестирование и подготовили инструкцию.
Результат
Реализован инструмент импорта с загрузкой файла в административной части сайта, сопоставлением позиций поставщика с торговыми предложениями и обновлением цен и наличия по складам.
Подготовлена инструкция по работе с инструментом. Проверены добавление и обновление данных, оптимизирован скрипт и доработана логика сопоставления.
Этапы реализации
Разбор файла и процесса обновления
Изучили исходную таблицу, текущую подготовку файлов по складам и требования к импорту. Спроектировали и описали решение.
Форма в административной части
Создали страницу с формой загрузки документа. Подключили библиотеку для чтения таблиц и написали скрипт импорта.
Связь с торговыми предложениями
Доработали интерфейс и загрузку сопоставлений. Перевели привязку на торговые предложения и изменили логику записи связей в Highload-блок.
Цены и наличие по складам
Доработали обработку артикулов, обновление цен и наличия с учётом отдельных складов поставщика.
Тестирование и инструкция
Проверили добавление и обновление данных, оптимизировали скрипт, исправили ошибки совместимости с PHP 8.1 и подготовили инструкцию.
От таблицы поставщика к остаткам на сайте
Вместо подготовки отдельных загрузок по каждому складу разработали специализированный импорт. Его основа: форма загрузки, сопоставление строк файла с каталогом и обработка цен и наличия по складам.
Ниже показана схема процесса. Она объясняет логику решения и не является снимком административного интерфейса.

До и после
Сотрудник сверял ассортимент с таблицей поставщика, готовил отдельные файлы по складам и загружал их по очереди. Такой процесс требовал повторяющихся ручных действий.
Созданы форма загрузки документа, интерфейс сопоставления и обработка цен и наличия по складам. Привязка данных адаптирована к торговым предложениям каталога.
Сопоставление на уровне торговых предложений
Для корректного обновления было важно определить, к какой позиции каталога относится строка поставщика. В ходе работ привязку изменили: вместо товаров стали использовать торговые предложения.
Это потребовало доработать интерфейс сопоставления и хранение связей в Highload-блоке, перейдя к идентификаторам. Отдельно скорректировали обновление цен и наличия по складам.
Что реализовали
Загрузка файла в административной части
Отдельная страница с формой загрузки документа и скриптом обработки таблицы поставщика.
Связь строк с каталогом
Интерфейс и загрузка сопоставлений, привязка к торговым предложениям, хранение связей в Highload-блоке.
Обновление цен и наличия
Доработанная обработка данных по складам, тестирование добавления и обновления, инструкция для работы с инструментом.
Технологии и инструменты

1С-Битрикс
Административная страница, торговые предложения, складские данные и Highload-блок для сопоставлений.

PHP
Скрипт и класс импорта, обработка данных. В ходе работ исправлены ошибки совместимости с PHP 8.1.

Табличные файлы
Чтение документа поставщика и подготовка его данных для обновления каталога.