Что же мы подразумеваем под импортом данных в интернет-магазины? Для объяснения опишем сценарий, который наиболее типичен для владельцев интернет-магазинов.
Обычно владельцы интернет-магазинов хотят импортировать актульные данные из поставщиков. Им это нужно для того, чтобы актуализировать состояние базы данных своего интернет-магазина, чтобы у них быстро появлялись новинки, чтобы те товары, которые уже не продаются у поставщика, не были доступны для заказа в их интернет-магазине. И повторять этот процесс они хотят как можно чаще.
Данные поставщика — это:
— категории (с их иерархией или без),
— товары с описаниями, параметрами и атрибутами, изображениями, их комбинациями, если они есть,
— статус наличия, количество на складе, цена закупки, цена продажи, скидки, минимальный заказ.
Именно про эти данные будет идти речь. Возможны два варианта работы с этими данными:
1) интернет-магазин пустой, и нам не нужно учитывать, что в нем находится;
2) интернет-магазин уже наполнен.
Будем рассматривать второй вариант, потому что он наиболее полно отображает специфику процесса импорта данных для интернет-магазинов.
Требования
Что обычно хочет владелец интернет-магазина? Требования с его стороны к автоматизации импорта данных такие:
— если появилась новая категория на поставщике, необходимо, чтобы она тоже была создана у него в магазине;
— чтобы товары, которые отсутствуют в его магазине и присутствуют у поставщика, появились (имеется ввиду с описаниями, характеристиками, картинками, вариантами цвета и т.д.) в нужной категории и (или) категории “Новинки”;
— если товар присутствует в магазине заказчика, но отсутствует на складе поставщика, то нужно этот товар отключить (деактивировать) либо изменить статус на “нет на складе” (это нужно, чтобы товар стал недоступным для заказа);
— если товар присутствует и в магазине и у поставщика, то нужно обновить цены и количество (если такие данные есть).
Скрытые требования
На самом деле менеджер интернет-магазина хочет большего от импорта. Это так называемые скрытые требования, про которые никто не говорит вслух, но как бы все подразумевают уже при приемке проекта или эксплуатации в первый месяц.
Такими скрытыми требованиями для импорта данных в интернет-магазин являются следующие пункты:
— чтобы товары, которые пользователь вносит самостоятельно в интернет-магазин, процесс автоматического импорта не “менял” (не удалял, не деактивировал);
— чтобы правка описаний товаров, которые обновляются из склада поставщика, которые он делает с помощью копирайтеров, не пропадала (это важно для SEO);
— чтобы у новых категорий и товаров формировались правильные и красивые ЧПУ-“URL rewrite”;
— менять цену с учетом своей маржи, которая зависит от категории и популярности товара;
— получать отчеты о том, какие новые товары появились, а которых уже нет в продаже;
— чтобы процесс обновления данных в интернет-магазине был простой и занимал мало времени (несколько или 1 клик);
— если товар присутствует в системе поставщика в более чем в одной категории, то нужно привязать этот товар в соответствующие категории на стороне интернет-магазина;
— если товары, которые мы импортируем в интернет-магазин, это комбинационные товары (например, ботинок “красный цвет, 42 размер, 2300 рублей” и “черный цвет, 43 размер, 3100 рублей” и т.д.), надо, чтобы они обрабатывались корректно.
Решения
Все требования, которые описаны выше, вызваны спецификой e-commerce, и алгоритм, который будет импортировать данные, должен учитывать их в полном объеме.
Как выполнить эти требования, какие инструменты могут быть использованы?
— пользоваться стандартным импортом CMS (обычно из файлов из csv / xls / xml / yml и др.);
— импортировать через механизм обмена 1С-Битрикс (1С-Битрикс, UMI, HostCMS, и др., где есть обмен с 1С);
— программировать свой собственный механизм импорта.
Анализ каждого из предложенных вариантов будет представлен ниже.
Импорт данных через csv — вещь сама по себе очень простая и должна работать надежно. Правда, как показывает практика, это не всегда так. Возникают вопросы, если надо импортировать что-то более сложное чем набор “имя, описание, картинка, артикул, цена”. Что делать с характеристиками, опциями и т.д.? Сегодня этот вариант импорта данных в CMS запрограммирован не всегда хорошо в большинстве реализаций и всегда требует доработок. Плюс ко всему — это промежуточные файлы (их же надо сформировать), требования к
Импорт данных через механизм обмена 1С-Битрикс. Сама по себе идея очень хорошая. 1С есть у всех, а если ее нет, то сам протокол можно эмулировать. Но вот реализация на стороне интернет-магазинов заставляет задавать много вопросов. Если смотреть в сторону эталонного для всех Битрикса, то можно просто сказать, что на объемах более 10 тысяч товаров этот механизм уже дает сбой. Сбои бывают разные. Например, может отсутствовать поддержка ZIP. Могут быть проблемы с объемом доступной памяти для php-процесса. Скорость — это самая больная тема для импорта в Битрикс через 1С. Почему так медленно сложно сказать, но на сегодня это так. Например, битрикс по умолчанию импортирует не в стандартный инфоблок товаров, а в инфоблок, который специально создается для 1С. Плюс при работе через 1С мы имеем проигрыш во времени, т.е данные загружаются два раза — первый раз в 1С, второй раз в Битрикс. Если смотреть на другие CMS, то там реализации этого протокола находятся в состоянии, когда пользоваться им простым людьми без помощи программистов невозможно. Подробнее про импорт товаров в Битрикс мы писали в этой статье: habrahabr.ru/post/133993/.
Программирование собственного механизма. Импортировать этим путем сложно и дорого, однако реализация дарит массу преимуществ, недоступных сегодня из коробки в предлагаемых решениях. На наш взгляд, если стоит задача выполнять пункты, обозначенные в требованиях к импорту данных в полном объеме, то только этот вариант способен удовлетворить требования.
Следующие факторы являются ключевыми при выборе инструмента для импорта:
— частота обновления данных,
— объем передаваемых данных,
— скорость обновления данных,
— детализации информации,
— бюджет,
— компетенции и загруженность команды.
Т.е. получается вот такой график для выбора.
По поводу бюджетов ситуация неоднозначная и зависит в первую очередь от стоимости команды интегратора. На графике показана расстановка бюджетов и предложений на российском рынке. Завышенная стоимость интеграции 1С-Bitrix обусловлена нехваткой специалистов требуемого уровня 1С и Битрикс на рынке, что и вызывает соответственно удорожание цены разработки и поддержки решения. CSV-интеграция возможна и приемлема при малых объемах данных или при отсутствии бюджета, или при малой детализации импорта данных.
О том, как реализовать поддержку “прямого импорта в базу данных” более 10 популярных CMS интернет-магазинов, будет рассказано в следующих статьях.
Николай Кекиш,
директор CatalogLoader.com
Автор: CatalogLoader