Супер-импорт: как наполнить сайт с помощью одной таблицы

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

Digital-агентство Винтра: супер-импорт: наполняем сайт с помощью одной таблицы

Сложности наполнения

Проект заключался в создании интернет-магазина, каталог которого должен быть наполнен большим количеством номенклатуры без использования системы учета, такой как СБИС, Мой склад, 1С или CRM.Информация о товарах в основном собирается вручную из документов производителей. В таких случаях, когда требуется выгрузить на сайт большой объем информации и по тем или иным причинам отсутствует единая база данных, digital-агентство «Винтра» реализует импорт из простой электронной таблицы, о чем и пойдет речь в этом кейсе. А для собственно разработки сайта применено простое проверенное решение — «Аспро: Корпоративный сайт 3.0», работающий на CMS »1C-Битрикс» с лицензией «Старт».

Принцип работы

При использовании импорта из XLS-таблиц наполнение товарного каталога складывается из двух частей:

  1. Внесения данных о номенклатуре в Excel-таблицу, оптимизированную нами под выгрузку товаров.
  2. Настройки автоматизированного импорта информации на сайт.

И в дальнейшем созданная таблица импорта используется для управления содержимым каталога интернет-магазина.

5 причин использования Excel-подобных таблиц:

  • Электронные таблицы оптимально подходят для выполнения такой работы, как структурирование и обработка данных для их последующего использовании — это то, ради чего и придумали Excel и аналогичные программы.
  • Возможностьлегко автоматизировать работу с данными, используя вычисления, подстановку значений иззаранее предусмотренных вариантов, сохраненных в справочнике, и другие решения, максимально ускоряет процесс наполнения и, что самое главное, минимизирует влияние человеческого фактора.
  • Таблицы в формате .XLS и аналогичных занимают мало дискового пространства и открываются на всех компьютерах, в том числе бесплатными программами типа Open Office.
  • Интерфейс и основные принципы редактирования таблиц знакомы подавляющему большинству пользователей, поэтому для наполнения каталога не требуется выделение «специально обученного человека».
  • И конечно же, таблицы позволяют выполнять импорт товаров на сайт »1С-Битрикс» одним кликом.

Google Таблицы + «Импорт из Exel» = автоматизация

Уточним: мы используем не ставший классическим Excel, а Google Таблицы. Причем работаем именно с онлайн версией Google Sheets, что обеспечивает:

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

Для обработки таблицы и загрузки данных на сайт мы используем решение «Импорт из Excel» от команды Esolutions. На наш взгляд, это самая производительная, удобная и решающая абсолютно любые задачи система с привлекательной ценой и супер-командой поддержки.

Справочники

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

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

0ad76b2ff500c1798748b5a5fb09bf18.jpg

Заполнение характеристик с использованием справочников выполняется намного быстрее, чем вручную, и исключает ошибки в написании данных, правильность которого влияет на корректность заполнения всего каталога. Ведь если указать в нескольких местах товаров наименование производителя по-разному, например, Bosch, bosch и Bosh, на сайте при импорте создадутся три отдельных производителя.

Множественные значения

При использовании справочников нередко возникает необходимость выбирать для одного товара сразу нескольких позиций из списка. Например, чтобы перечислить области применения продукта или входящие в состав вещества. Но штатно ни Excel, ни Google Таблицы не умеют работать с множественными значениями, что очень сильно усложняет жизнь и делает, по сути, применение справочников бессмысленным, когда нужны перечисления параметров. Решить эту проблему можно путем самостоятельного добавления средств автоматизации. В Excel это реализуется с помощью макросов, а в Google Workspace — расширением Apps Script.

Нужное нам дополнение мы сделали используя скрипт, который выложен в открытом доступе. Для удобства работы мы внесли правки в код для своих таблиц: заменили название скрипта и надписи на кнопках на русскоязычные, а разделитель значений — на точку с запятой, необходимую для нормального функционирования модуля импорта. Для диапазонов, в которые требуется запись множественных значений, в расширенных настройках правил проверки данных для ячеек указали «Показывать предупреждение» для неверных значений.

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

  • «Запись» (Set) — ячейка заполняется выбранными данными. Если ячейка не пустая, находящиеся в ней записи затираются.
  • «Добавить» (Update)— отмеченные значения добавляются к тем, что есть в ячейке. Причем в скрипте предусмотрена проверка данных: повторно одно и то же значение не записывается.
  • «Сброс» (Reset) — снимается отметка со всех чек-боксов.
  • «Нов. список» (Refresh validation) — перезагружается список значений, доступных для выделенной ячейки. Обычно используется при переходе к диапазону с другим списком возможных значений.

Заполнение параметров с множеством разнообразных и сложных названий с помощью скрипта выполняется в разы быстрее, чем при копировании вручную.

Структура таблицы

Таблица имеет строгий порядок столбцов, для каждого из которых при импорте задается соответствие определенного параметра карточки товара. Дабы не переделывать ее бесконечно при необходимости добавить что-то новое, мы указываем в начале наиболее востребованные данные, используемые в 99% случаев, такие как:

  • id;
  • категория;
  • описание;
  • производитель;
  • цена.

Первые 3–5 столбцов закрепили, чтобы при редактировании далеко отстоящих от начала листа ячеек не путаться в строках. Дополнительные свойства, например, характеристики товаров, добавляем в последние столбцы по мере необходимости.

b42f26e8f77df8fa145fb6ead283d603.jpg

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

Инструкции

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

99bc8d3bf86dde6b27da95504f37c2e8.jpg

Они особенно нужны, когда таблица заполняется в том числе на стороне клиента. Уровень владения Google Таблицами у сотрудников заказчика может быть разным, поэтому мы написали максимально подробный и понятный пошаговый инструктаж. А чтобы исключить случайные правки, на лист с инструкциями установили защиту.

Торговые предложения

У многих товаров интернет-магазина несколько вариантов исполнения,. Например, грующие кабели одного типа могут различаться по мощности. С одной стороны, все вариации одного товара имеют немало общего: базовое наименование, описание, основные параметры. Поэтому логично собирать их в одной карточке. Но, с другой стороны, каждая такая позиция, называемая в »1С-Битрикс» торговым предложением —самостоятельная учетная единица со своей ценой, количеством остатков и рядом других уникальных параметров. 

Чтобы максимально упростить работу с предложениями прки импорте, прежде всего присвоили каждому товару id. Обычно оно содержит несколько букв и порядковый номер, например, ex_1. При копировании на новые строки в Google Таблицах (как и в Excel) число автоматически увеличивается, создавая уникальные идентификаторы для весех товаров: ex_2, ex_3 и так далее.

5010d215f1db051d9cf0f61de63f8a1a.jpg

По id выполняется связка между строкой в таблице импорта и элементом каталога сайта. Поэтому в дальнейшем при внесении изменений в цену или любой другой параметр в Google-таблице, на сайте обновления коснутся конкретного, ранее размещенного товара.

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

Для этого мы, во-первых, указали для модуля импорта наличие товарных предложения явно: в столбце «Товар имеет торговые предложения?» выбирается из справочника значение «Да». Во-вторых, создадили в таблице отдельный лист «Торговые предложения», и там прописаливсе варианты товаров, указав свойства, отличающиеся у разных предложений. В нашем примере такими параметрами стали:

  • признак наличия: «В наличии» или «Под заказ»;
  • наименование позиции (в нашем случае оно отличается у разных модификаций);
  • свойство для отбора предложения — «номинальная мощность»;
  • цена.

В случае работы с количественным учетом необходимо также вводится остаток на складе.

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

7b2fe0ba27c0c146c69ba0eda2c7d25c.jpg

Для этого используется id товара. Причем у каждого торгового предложения тоже есть свой идентификатор. Он формируется путем добавления через дефис порядкового номера к id товара-родителя. Получается так: {id_товара}-1, {id_товара}-2 и так далее. В нашем примере для товара с id ex_1 мы имеем предложения ex_1–1, ex_1–2, ex_1–3.

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

Но у общего товара физически нет остатка и цены, их имеет только конкретная вариация-предложение. Это становится проблемой, когда сайт создается на »1С-Битрикс» в редакции «Старт», как в данном кейсе. Лицензия «Старт» — самая простая и не имеет полноценного торгового каталога и самих предложений. Найти выход позволяет применение решения «Аспро: Корпоративный сайт 3.0», так как в него добавлен, пусть и в усеченном виде, функционал интернет-магазина, работающий даже в простых редакциях. 

Благодаря этому мы можем добавлять торговые предложения к карточкам каталога. Но у основного товара также должна быть цена, хотя в реальности ее не существует. Поэтому мы настроили модуль импорта, чтобы он:

  1. Перебирал цены всех торговых предложений рассматриваемого товара.
  2. Находил минимальное значение цены.
  3. Записывал это значение в качестве стоимости основного товара.

В результате в каталоге карточка товара с торговыми предложениями отображается нормально, и в качестве стоимости значится реально существующая стоимость — {минимальная цена предложения этого товара}.

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

e08ff86adf02287d3622b30d8caa72fa.jpg

В качестве свойства для отбора предложений стала «Номинальная мощность»: мы формируем несколько вариантов товара, отличающихся только по этой характеристике. Но родительский товар — один, и в его параметры нужно прописать все возможные значения номинальной мощности. Для этого мы настроили модуль импорта, чтобы он, обрабатывая предложения, собирал все варианты мощностей и записывал их в свойство основного товара как множественное значение.

Изображения

Для загрузки изображений к карточкам товаров мы использовали функционал мультизагрузки картинок, предусмотренный в модуль «Импорт из Excel». Так мы избавляем клиента (и себя) от необходимости загрузки по FTP-соединению, подразумевающему использование специальной программы, которую еще нужно правильно настроить и освоить.

Достаточно просто зайти в админку сайта, выбрать на компьютере папку с фото, и модуль загрузит все изображения в заранее определенную папку, например, у нас это /upload/imgToImport/

854f854513871f0b53f8f90c448a0f08.jpg

Для автоматической привязки картинок к нужной товарной карточке мы назначили картинкам имя в виде имени id товара с добавлением через дефис порядкового номера, если фото несколько, и прописали условие поиска изображений по маске. Например: ex_1–1.jpg, ex_1–2.png, ex_1–3.gif и так далее. Модуль ищет в заранее заданной папке все возможные варианты, начинающиеся с нужного id и, если находит, то загружает их в соответствующую карточку товара. Причем расширение — все, что после точки — никак не учитывается.

Картинка ex_1.jpg становится детальным изображением товара (анонсная картинка при этом генерируется автоматически стандартным инструментом »1С -Битрикс»). А все остальные фото загрузятся в поле дополнительных изображений (галерею). Таким образом, задача при наполнении сводится просто к указанию правильного наименования картинок и загрузке их на сайт простым перетаскиванием с компьютера.

Аналогично работает подгрузка изображений-документов в фотогалерею описания товара. Отбор картинок выполняется по наличию суффикса «dop». Например, для товара с id «ex_1» наименования имеют вид ex_1_dop-1.jpg, ex_1_dop-2.jpg и так далее.

От хранения изображений в облаке с загрузкой по ссылке, например, с Яндекс Диска или с того же Google Диска, мы отказались, посчитав нерациональным. Это требует разрешения вставки ключа доступа и не только, а еще скачивание картинки по внешней ссылке значительно замедляет импорт.

Наименование товара

Для удобства работы с заголовками, в том числе в плане SEO, товарам присваивается короткое название, соотвествующее модели или серии, например: BTV2-CR. Так позиция называется в таблице импорта, так же — в каталоге на сайте. А заголовок h1 в карточке товара генерируется с помощью штатного SEO-модуля »1С-Битрикс» путем добавления переменных — свойств элемента. Например, в категории «Греющие кабели», заголовки выглядят так:  «Промышленный греющий кабель Raychem BTV2-CR саморегулирующийся». Здесь:

  • Промышленный греющий кабель — наименование категории;
  • Raychem — значение свойства «бренд»;
  • BTV2-CR — собственно наименование товара;
  • саморегулирующийся — значение характеристики «Тип кабеля».

6a6594a5a1e2ed2482593b8eddaac7fe.jpg

Аналогичные формулы используются для генерации тайтла и дескрипшена. 

Связанные товары

Перечень позиций, отображаемых в блоке «Похожие товары» задается с помощью специальных формул. Например, в разделе «Промышленные греющие кабели» используется код:

{«CLASS_ID»: «CondGroup», «DATA»:{«All»: «AND», «True»: «True»}, «CHILDREN»:[{«CLASS_ID»: «CondIBSection», «DATA»:{«logic»: «Equal», «value»:»#IE_IBLOCK_SECTION_ID#»}},{«CLASS_ID»: «CondIBProp:43:636», «DATA»:{«logic»: «Equal», «value»:»#IP_PROP636#»}},{«CLASS_ID»: «CondIBElement», «DATA»:{«logic»: «Not», «value»:»#IE_ID#»}}]}

Модуль в блок «Похожие» добавит позиции из того же раздела, что и просматриваемый товар (#IE_IBLOCK_SECTION_ID#), у которого тот же тип кабеля (#IP_PROP636#) и исключит из подбора текущий товар. Поэтому в карточке отображаются только другие саморегулирующиеся кабели из категории «Промышленный греющий кабель».

Еще целая череда простых, но очень полезных моментов

В некоторых случаях модуль импорта сохраняет значение одной ячейки таблицы в качестве нескольких свойствах товара. Например, заполнив только один id, мы записываем его на сайте сразу и как «Артикул», и как «Символьный код», и как «Внешний код».

aa5ebccbcc053e8be76463c40803a67f.jpg

Если уникальный текст анонса отсуствует, в поле краткого описания загружаются первые 300 символов полного. Этого реализовано путем настройки PHP-преобразование в модуле импорта.

2d4322c5f9a6fc4d941735c34027fa39.jpg

Чтобы сделать отдельные товары более заметными в каталоге используются яркие метки «Хит продаж», «Новинка», «Акция» и аналогичные. Подборки товаров с этими метками выводятся на главной странице сайта в специальном блоке.

Иногда товар нужно скрыть из каталога, не удаляя насовсем, например, в связи с временным прекращением поставок. Для управления отображением товара в каталоге интернет-магазина в таблице импорта предусмотрен отдельный столбец «Показывать на сайте». При наличии в нем фразы «Нет» товар при импорте деактивируется (снимается отметка в чекбоксе «Активность»). Когда ячейка пуста товар остается активен, так как в модуле импорта прописано по умолчанию ставить «Да» в поле активности. И напомним, что все изменения в таблице переносятся на сайт автоматически благодаря cron-планировщику.

2581c89916cb74f4fedfd6774c344cd1.jpg

Результат

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

Перейти на сайт

Полный текст статьи читайте на CMS Magazine