Компиляция прайсов и выгрузка на сайт.
Задача: написать ПО для десктопа (WinXP-7), которое позволяет из нескольких прайсов разных поставщиков собрать общий файл для выгрузки в каталог их сайта. Сайт на Битриксе, модуль импорта готов, принимает файлы в формате CSV.
Промежуточные задачи:
- сделать выборку всех данных по дискам и шинам (остальные номенклатуры игнорировать) со всех прайсов поставщиков (9 прайсов + прайс самого магазина).
- привести эту выборку к единому виду. Так как лишь в одном прайсе описание каждой номенклатуры разбито по отдельным столбцам, необходимо это описание разобрать из строчки с самой номенклатурой. То есть, из строки вида
«AEZ Bridge 8*17 5/114,3 38 71,6 (арт. ABRS0HA38) Колесный Диск»
выбрать название диска (AEZ), модель (Bridge), ширина (8), радиус (17), кол-во отверстий (5), расстояние между отверстиями (114,3), вылет (38), диаметр центрального отверстия (71,6).
Для автошин это будет название, модель, радиус, ширина профиля и высота покрышки.
Необходимо связать бренд и модель с определенной моделью из справочника для решения нескольких последующих задач.
- необходимо вывести список всех разобранных номенклатур в программу для редактирования оператором (менеджером). Так как из-за неточностей в описании номенклатуры возможны погрешности в определении данных диска – должна быть возможность ручного изменения этих данных, причем эти изменения должны «запомниться» на будущее (номенклатуры одного поставщика в основном не изменяются от прайса к прайсу).
Все данные должны быть отсортированы по: 1. Бренду. 2. Модели. 3. Характеристикам диска/шины. 4. Цене.
То есть в идеале один и тот же диск одного размера, но разных поставщиков, должен следовать друг за другом (поставщик естественно должен быть указан). Причем, если данная модель есть в прайсе самого магазина, то первым должна идти она, затем другие производители в прядке увеличения цены (самые дешевые вверху).
В программе должен быть предусмотрен фильтр, позволяющий быстро отобрать диски и шины по заданным характеристикам.
Должна быть возможность выбора, какие номенклатуры готовить для выгрузки (менеджер сам выбирает, диск какого поставщика выгрузить на сайт). Кроме того, должна быть возможность добавлять наценку, причем для разных поставщиков разную.
- должна осуществляться связь номенклатуры со справочником моделей дисков. Данный справочник администратор 1C магазина будет обновлять сам, делая выгрузку определенных полей в 1С в Excel. Справочник они будут вести сами. Дело в том, что на сайте часть товара уже заполнена, с фотографиями, описанием и прочим.. Поэтому выгрузка не должна заменять эти данные, и лишь обновлять и добавлять новые номенклатуры. Для этого у них каждой модели в 1C присвоен некий ID, равный id товара на сайте. При импорте данные автоматически пристыковываются по данному id к готовому товару на сайте. По поводу справочника, примера выгрузки и т.д. связь с администратором:
- в итоге формируется файл выгрузки в формате CSV с выбранными номенклатурами.
Изначально программа писалась на Delphi (RAD Studio XE5), никаких доп. компонент, все из коробки. На данный момент программа импортирует данные из выбранных XLS-прайсов, определяет тип прайса (вернее шаблон, по которому его разбирать) и разбирает данные по полям с помощью регулярок. Шаблоны в формате XML, что позволяет в дальнейшем модифицировать быстро шаблоны, либо добавлять новые. Мне данный подход показался удобным. В принципе, данные промежуточно нигде не сохраняются – строка забирается с одного файла, разбирается и тут же вставляется в итоговый.
Зарегистрируйтесь или войдите на сайт под своим именем.