Импорт прайс-листов поставщиков в интернет-магазин на платформе 1С-Битрикс

Дисклеймер

Цель данной статьи рассказать о самых частых “подводных камнях”, встречаемых при интеграции файлов выгрузок поставщиков в интернет-магазин. Эта статья написана для менеджеров проектов на стороне клиента, мы постарались в ней ответить на частые вопросы, которые возникают в процессе реализации или обсуждения задачи.

Наверное, самый важный вопрос при создании интернет-магазина: настроить и поддерживать актуальность цен и остатков товаров на складе

Решается эта задача, как правило, тремя способами:

  1. Править цены/остатки вручную. Этот способ подходит, когда товаров в магазине 50-100, если товаров больше, то это превращается в ад;
  2. Использовать интеграцию с 1С;
  3. Интегрировать выгрузки от поставщиков напрямую в магазин.

Сегодня мы поговорим о третьем способе: импорте прайс-листов в интернет-магазин напрямую и максимальной автоматизации этого процесса.

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

На практике чаще всего встречаются выгрузки в форматах: excel, csv, xml, yml, json.

Чаще всего возникают трудности именно с excel, xml и csv, так как для этих форматов нет единого регламента хранения информации. Поставщики выгружают “как могут” или как выгрузит их CMS/программист.

Примеры того, как выглядят выгрузки в жизни:

(вариант выгрузки формата excel)
(вариант выгрузки формата json)
(вариант выгрузки формата xml)

Типичные проблемы при настройке обновлений товаров из файлов поставщика

1. В каждой выгрузке поставщик указывает только товары в наличии

Пример:

В понедельник поставщик прислал вам прайс-лист с 100 позициями. Вы их успешно импортировали в магазин, присвоили им категории.
В среду этот же поставщик прислал вам выгрузку с 120 позициями, при этом: 40 позиций новых, которых ранее не было в его выгрузках, а 20 позиций из прошлой выгрузки в текущей нет.
В пятницу поставщик прислал уже 110 товаров, 20 из которых были в понедельник, 90 совпадают с выгрузкой среды.

Вопросы, которые необходимо решить перед реализацией:

  1. что делать с товарами, которых нет в новой выгрузке? Их можно:
    • деактивировать - вдруг в следующей они появятся;
    • удалить - если мы точно знаем, что товара больше не будет;
    • проставить нулевой остаток или написать “под заказ” - чтобы не потерять посадочную страницу)
    • и т.д.
  2. по какому свойству товара в прайс-листе сопоставлять товар с товаром в интернет-магазине? Можно:
    • по артикулу - самый распространенный вариант, подходит тем, у кого 1-3 поставщика и артикулы у них различаются, если выгрузок в магазин регулярно приходит большое количество от разных поставщиков к артикулам системно прибавляются префиксы в момент выгрузки;
    • по названию - не рекомендуется, но в ряде случаев другого выхода нет;
    • по внутреннему служебному полю из файла поставщика - например id товара поставщика хранить в служебном поле в битриксе;
    • по xmlID - если это выгрузка из 1С и нам надо реализовать нестандартный обмен товарами;
    • и т.д.

2. Поставщик указывает в выгрузке только один тип цены (розничную или оптовую)

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

3. Поставщик меняет описание товаров, изображения в выгрузке.

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

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

4. Автоматизация обмена

На практике поставщики предоставляют выгрузку следующим образом:

  1. Поставщик отправляет выгрузку письмом с вложением на почту - в этом случае можно настроить скрипт, который будет забирать по расписанию нужное письмо, выкачивать вложение и обрабатывать его;
  2. обновляет файл с прайс-листов в папке на яндекс.диске - через API яндекса загружаем нужный файл по расписанию;
  3. файл выгрузки храниться по прямой ссылке - загружаем файл или считываем файл (если это xml, yml) и обновляем информацию на сайте;
  4. файл выгрузки хранится в личном кабинете, доступ к которому осуществляется через пароль - в ряде случаев можно написать скрипт, который будет авторизовываться за вас и получать доступ к нужному файлу.

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

Выше мы описали только самые частые задачи при работе с файлами поставщиков. Следует понимать, что каждый случай индивидуальный и имеет свои особенности и ограничения при реализации. Если вам необходимо интегрировать файлы выгрузок ваших поставщиков в интернет-магазин на 1С-Битрикс - пишите нам.