Программы для обработки прайс-листов. Часть 1. PriceMatrix

PriceMatrix v.10

Заранее поблагодарю администрацию сайта catalogloader за предоставленную полную версию для тестирования и знакомства.

Скачать демоверсию можно с сайта, ограничение демоверсии — в импорте всего 200 строк из прайс-листа. Это не единственная разработка данного разработчика, в других обзорах рассмотрим и другие решения.

На момент описания обзора, цена за стандартную версию (до 3000 товаров) — 10200р, профессиональная (без ограничений)  — 18600р. Также доступна помесячная аренда за 2200р.  Актуальную цену лучше уточнять на странице продукта

При запуске мы видим совсем простой дизайн с полным минимализмом в серых цветах. Первое действие которое необходимо сделать — загрузить главный прайс лист. Главный прайс-лист подразумевается собственный каталог или основного поставщика. Для эксперимента берем весьма популярного поставщика — Никс. И сразу получили замысловатую ошибку — Corrupt OpenXML document. Первое что пришло на ум  — наличие Microsoft Office, которого не оказалось. Но даже установка офиса не решило проблему. Решением оказалось простое открытие прайса и сохранение под другим именем. К сожалению программа понимает колонку “категория”, только когда она объявлена явно — в каждой строке. Когда категория объявлена в виде форматирования — распознать программа не может. Удалось выяснить, что в следующей версии данная функция будет реализована.

Импорт прайсов.

Берем другой прайс, не менее известного поставщика — Мерлион.

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

Редактирование прайса Catalogloader
Редактирование прайса Catalogloader

Из выбираемых полей можно выбрать — с какой строки загружать, название товара, артикул, цену, наличие, бренд, описание, Сео мета-теги, валюту, и уровни категорий. Отдельно стоит перечислить Код поставщика, в версии 0.2 этого поля очень не хватало. Но не обнаружил возможность склейки прайсов. (когда остатки в отдельном прайсе)

Изображения выбираются отдельно, и количество их неограниченно.

Следующая вкладка характеристики. Весьма интересно, если можно брать контент напрямую из прайсов. Конечно это мало где применимо, но например, для прайсов автомобильных шин, где характеристики в каждой ячейке — будет очень кстати.  Отдельно вкладка — модификации товаров, что очень актуально для обработки прайсов одежды.

Сразу обнаружил, что цена указывается только оптовая, в случае розничной или РРЦ — такой опции нет.  (в следующей версии эта опция появилась) В этом же окне настраивается наценка. Возможности наценки, несколько замысловаты, можно прибавлять процент и коэффициент к цене,в определенном диапазоне.

Ценообразование PriceMatrix
Ценообразование PriceMatrix

Диапазонов можно создать несколько. Кнопки очень мелкие и интуитивно не совсем понятные. В прайс листе должна быть только одна валюта, настройки мультивалютного прайса возможности нет. Если в прайсе несколько прайс-листов, то можно в визуальном окне выбрать другую страницу и для нее задать настройки.

Если вы при первой настройке совершили ошибку, например неверно указали колонку Бренд или категорию — товары так  и останутся с ошибкой, перезагрузка прайса не поможет. Необходимо зайти в настройку прайса и выбрать “Очистить” — все позиции удаляться. После этого уже произвести правильный импорт.

Импорт прайса происходит очень быстро, 22000 строк за пару секунд. Изумительный результат! Сохраняем и попадаем в основное окно.

Товары основного прайса
Товары основного прайса

В правой стороне мы видим колонку “производитель” и “категория” встречающихся в прайс-листе.Фильтрация работает очень быстро, причем между выбором категории и бренда действует условие «И». Было бы замечательно  если была возможность выделить несколько производителей или категорий сразу. Чтоб отобрать товары категории, надо выбрать категорию самого нижнего уровня — подкатегории не учитываются. Попробуем дальше. Создаем вручную категорию “блоки питания” и отфильтровываем товары по слову “блок питания”. Получаем в списке только блоки питания, есть даже кнопка — выделить все, но переместить все в выбранную категорию, никак не удается. Перемещение происходит для каждого товара в отдельности. Также весьма не удобно, что не отображается количество товаров в категории. Но очень удобно реализовано привязка товара к категориям — для каждого товара можно выбрать сколько угодно категорий.

Посмотрим какие есть еще возможности.  Любое из полей — артикул, название, цену, наличие можем править в окне редактировании товара. Редактировать прямо в общей таблице нельзя, но иногда это даже лучше. При редактировании артикля и названия — в главном окне программы изменения происходят сразу, при изменении же производителя необходимо обновить окно. ( в прошлой версии не работало)

Поиск работает быстро, с подсветкой результатов, но увы если несколько слов, нет условия «И».  Также над товарами есть пустая строка, в которую можно вводить значения, по идее это фильтр, но почему-то не работает.

Продолжим разбирать PriceMatrix. Добавляем прайс-поставщика — получаем вопрос — из екселя или YML или CLP (база от парсера V4) или CommerceML.

Выбор типа источника данных прайса или файл CLP от парсера собственной разработки (которые надо приобретать отдельно). Вот тут и становится многое ясно, что явно указывается — “Предполагается, что при необходимости загрузить “сложный” прайс необходимо воспользоваться парсером v4”

Что же, идея очень интересна. Почти у всех поставщиков есть портал или сайт, а то и целое API для запроса цен и остатков. Но большинство магазинов используют прайс листы, чья актуальность теряется каждый час. Но с другой стороны придется раскошелится на парсер каждого портала, ценник который от 5000 р. до 12000р. Парсер под заказ, где только цены и наличие  — 5000р.

Для полноты картины, проверим как программа справляется с большими прайс-листами, и тут результат впечатляет, импорт прайса в 35000 позиций занял 10 секунд, причем на компьютере явно не топовой конфигурации. В общей сложности загрузил 97000 строк с различных прайсов. Попутно вылезла недоработка по наличию. Если в прайсе несколько складов (колонок наличия) можно выбрать только один из них. Также важный момент — распознавание по наличию работает не на вхождение, а на полное совпадение. Т.е если мы поставили что «+ » — это наличие, то «++» или  «+++» программа проигнорирует, надо выставлять для каждого наличие явно. Если в прайсе указано число, оно так и передается.

После импорта прайсов поставщиков в правой части появились товары, с аналогичным поиском и фильтрам как для левой части. Фильтра для каждой колонки работают, но поиск только с начала строки.  Выбор категории осуществляется по категориям прайса, а не нашей иерархии. К сожалению необходимость выбрать поставщика обязательна, т.е. нельзя открыть все товары поставщиков и искать по ним сразу. Это конечно существенный недостаток.

Доступны 5 колонок — Артикул поставщика, Артикул производителя, бренд, название, цена и наличие.

Товары поставщика PriceMatrix
Товары поставщика PriceMatrix

Алгоритмы поиска и сравнения одинаковых товаров

Сейчас нам интересно проверить, каким образом объединяются одинаковые товары из прайс-листов. Проверять будет на основании прайса поставщика F-center. Для запуска механизма сравнения необходимо выбрать Связи> Автоматически связать товары.

По сравнению с версией 0.2 появились 2 новых механизма —  Поиск артикля производителя в названии товара поставщика и наоборот. Это значительный шаг вперед, т.к. у значительной части поставщиков нет отдельной колонки артикул, но почти 100% он будет в наименовании.

К сожалению в инструкции (можно скачать по ссылке http://catalogloader.com/docs/pricematrix/pricematrix_documentation.2015-03-31.rus.eu-rev.EU.pdf)  информации очень мало, а часть и вовсе относится к еще старой версии. Т.к. это, один из самых важных элементов в программе, сделаю пояснения.

  1. Поиск по Артикулу товара. Сравнивается код товара в нашей базе (главный прайс в терминологии программы) и код поставщика. Этот механизм имеет смысл только единственном случае — когда мы в качестве основы (главного прайса) взяли поставщика, и сейчас необходимо склеить его с прайсом.  Само добавление прайса как главным — не достаточно, без связей — расчеты цены и наличия не производится.
  2. Поиск по имени товара. Сравнивает товары учетной системы и прайса поставщика, связывает только в случае их полной идентичности. Например: Если у нас название в нашей системе “Роутер Wi-Fi ASUS RT-N66U” а  у поставщика “Роутер Wi-Fi ASUS RT-N66U 802.11n 450Mbps” программа посчитает товары различные.
  3. Поиск по Артикулу производителя. Этот и следующие механизмы наиболее просто объяснить на примере ноутбуков.

Ноутбук 17.3″ Lenovo IdeaPad z710 (59408520).  59408520 — это Артикул производителя, или партномер. Практически все брендовые и сложные изделия имеют партномер. Все программы и сервисы обработки прайсов в первую очередь ориентируются на партномер. Если у данной позиции поле артикул производителя заполнено (а оно должно быть заполнено) , и это колонка есть в прайсе поставщика — все совмещается легко и просто. Если же у поставщика отдельно данного поля нет, но есть в названии для этого и нужен механизм 4. Или же наоборот, по некой причине в учетной систему не был заполнен артикул, а у поставщика есть — нас выручает механизм 5.  Если же артикула отдельно нет нигде — ни один механизм не сработает.

Сравнение по всем механизмам из 21000 товаров поставщика и 23 000 в учетной системе занял 5 часов, причем обратил внимает что программа использует всего одно ядро, многоядерность увы не поддерживает.

Такое время объяснимо большим количество поиска по строке, в данном случае около 1 млдр операций поиска. Пожалуй разработчикам надо еще поработать над этим вопросом, например если искать только при совпадении производителя, количество операций уменьшится в тысячи раз. Более того в данном случае, без учета производителя большая вероятность ошибочных сопоставлений, особенно на коротких партномерах.

Также это касается более строгого алгоритма поиска только по артиклю. Такие производители как Verbatium, Steelseries,Defender, некоторые совместимые картриджи имеют артикул 5 цифр и имеют вероятность совпасть.

Несмотря на то, что операция сопоставления не относится к ежедневной, 5 часов для 23 тыс товара это много, и было бы хорошо оптимизировать, а также добавить ключ, что товар из данного прайс листа уже сравнивался.

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

К сожалению даже поверхностная проверка показала, что много ошибочных сопоставлений.

Товар “Газовая плита GEFEST/ ПГ 1500, 60x60x85 см, 65 л, гриль, серый рисунок «мрамор» с артиклем 1500, поставилась со множеством товаров — всеми жесткими дискам, с количеством оборотов 15000, вентиляторами в 1500 оборотов, блоками питания 1500W.   А кулер с артиклем WIND  вообще собрал все товары где встречается слово WINDOWS Похоже поиск работал просто по вхождению, даже не учитывал соседние символы.

Для того чтоб удалить лишнюю связь, прошлось несколько поискать. Для удалении связи надо четко кликнуть правой кнопкой на пунктирной рамочке

Если у товара сопоставлений несколько — удаляются все сразу.

Для чистоты совести, запустил прайс автоматическую связку по артиклю Мерлиона (с него мы брали главный прайс). Процесс прошел в считанные секунды. Естественно все товары стали связаны, но по непонятной причине появились странные связи с товарами, у которых совсем другой артикул (поиск шел только по артиклю)

Также проверим отдельно механизм поиска по артиклю производителя. Поиск производится только по точному совпадению артикля, что верно. Далеко не все магазины предоставляют колонку с парт-номером, а во многих случаях она и не однозначная (Asus, Gigabyte,Fsp проблема у многих) или может содержать дополнительные символы (как в LG, HP).

Похоже разработчики уже сделали первые шаги в этом направлении. В вкладке связи добавили функцию — редактор артикулов производителя, и в данном окне можно вручную исправлять артикли выбранного в данный момент прайса. А в настройках есть функции вырезания ненужных слов. Для проверки попробовал вырезать #ACB, что встречается в артикле HP.   После импорта прайс -листа, артикли так и содержат #ACB, но при сопоставлении по артиклю производителя они больше не мешают сопоставлению.

Конечно весьма не хватает функции автозамены, как артикула так и в названиях. Изменить название номенклатуры можно только вручную.

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

Ценообразование

Попробуем пересчет цен и наличия. Цены считаются корректно. Наши наценки и курс валют влияют только на конечную цену, в связях товары отображены цены из прайс-листах, что в большинстве случаев очень удобно. Конечно, большой минус, что нет наценки по категории /бренду.

Экспорт

И последнее экспорт. Доступен всего один вариант экспорта — сводный прайс-лист и в формате CatalogLoader. К сожалению никаких настроек экспорта нет — ни структуры файла, ни выбора шаблона генерации имени файла. Среди полей — артикль, название, цена, количество, и цена от поставщиков, точнее цена из прайса поставщика (как есть, без умножения на курс).  И самое неприятное, отдельно-загруженные характеристики, тоже не выгружаются. Полный минимализм.

А вот внешний модуль CatalogLoader позволяет выгружать данные практически во все известные русcкоязычные CMS, фаил YML, 1C-CommerceML и создавать свои шаблоны экспорта. Модуль экспорта  под конкретный магазин приобретается отдельно, можно ознакомится на странице К сожалению экспорт в формате CatalogLoader занимает слишком много времени.

Будущее проекта.

Программы обработки прайсов очень сложный продукт, на создание хорошего продукта уходят годы, а данному проекту менее года. Уже после первого моего обзора и перепиской с разработчиками  — большую часть ошибок исправили, и я внес поправки в статью. Разработчики гарантируют доработку продуктов под нужны своих клиентов. С учетом знакомства с другими разработками Catalogloader, можно быть уверенным в активном развитии продукта.

Работа техподдержки.

Связаться с разработчиками можно через Московский и Минский телефонный номер. Также через электронную почту. По электронной почте отвечают очень подробно. (Проверка качества техподдержки производилась до того, как стало известно о статье )

Выводы

Продукт PriceMatrix весьма молодой, еще содержит множество недочетов , но отличия в версиях и скорость их появления явно дают понять, что над продуктом работают и он становится лучше и лучше.

Плюсы

  • Наконец произведена попытка показать интернет-магазинам что прайсы уходят в прошлое, давно пора переходить на динамически обновляемую информацию — b2b порталы, API
  • Скорость импорта прайсов на отлично.

Минусы

  • Программа очень сырая, много еще недочетов, в том числе в юзабилити.
  • Не поддерживаются все форматы прайсов
  • Очень слабые механизмы сравнения. Артикли производителя есть далеко не везде, и могу отличатся. А также обязательно необходимо учитывать производителя для избежания ошибок.
  • Недостаточное ценообразование
  • Цена 17000р за такой продукт явно завышена. За такие деньги можно приобрести гораздо более полноценное решение.

Мнение эксперта

Я думаю что данная программа отлично бы заняло место в книжных интернет-магазинах, т.к все книги обязательно имеют ISBN, а в качестве производителя использовать автора. А также в категориях, где поле парт-номера является обязательным.

Будем верить что причина в новизне продукта, и в более новых версиях программа станет более функциональной и привлекательней для интернет-магазинов. Обязательно буду следить за новыми версиями.

http://im-business.com | Эксперт в сфере интернет-магазинов

Программы для обработки прайс-листов. Часть 1. PriceMatrix: Один комментарий

  1. комментарии
    mudryakova

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *