Работа с импортом (ч.2)
В прошлой статье по работе с импортом я разбирал типовой вариант импорта товаров, когда у товара одна цена, нет сложных зависимостей, настройки импорта и т.п.. Во второй части статьи я разберу более сложные варианты импорта, обновление информации через импорт/экспорт и другие полезные вещи, не освещённые в первой части статьи.
Важное замечание: все материалы и описания данной статьи базируются на интерфейсе версии 7.0, поэтому Вы можете заметить различия в самом интерфейсе, а также в настройках по сравнению с интерфейсом версии 6.0.Х.Х.
Настройки файла описания импорта
Кратко пройдусь по настройкам, о которых я подробно писал в первой части статьи. Чтобы работать с количеством, нужно отметить соответствующий пункт в настройках модуля «Магазин»:
Настройки описания файла импорта доступны по следующему пути:
Для удобства работы в настройках я включаю следующие опции:
- Первая строка в файле импорта/экспорта будет содержать название полей.
- Данные после импорта будут сразу опубликованы (появятся на сайте).
- Импорт и экспорт я буду производить в отдельную тестовую категорию.
Если Ваш файл или результат отличается от представленного в статье - проверьте эти настройки.
Товары со связанными данными
Сначала скажу пару слов про характеристики. Они могут быть доступны при заказе и при этом ещё и влиять на цену. Покажу как это выглядит на примере тестового товара. Так это выглядит на сайте:
А так это выглядит в админ-панели. Слева - характеристика, справа - товар с этой характеристикой. Возможны различные варианты использования характеристик.
Если создаём характеристику с типом "Выпадающий список", то можно для товара выбрать одно из внесённых значений в админ-панели. Его и увидит пользователь на сайте. [1]
Можно указать тип "Список с выбором нескольких значений". При этом можно будет выбрать несколько значений одновременно. Пользователь увидит на сайте все выбранные. [2]
А если отметить галку "доступен к выбору при заказе" вкупе с типом "Список с выбором нескольких значений", то со стороны админ-панели всё то же самое, но выбирать из указанного уже может пользователь. [2]+[3]
И последний вариант - с галкой "Влияет на цену". Тут в админ-панели нужно указать для каждого варианта характеристики цену и изображение, если оно имеется. Пользователь на сайте будет выбирать характеристику и при этом будет изменяться цена на товар и его изображение, если оно было указано. [2]+[3]
Последний вариант характеристик с влиянием на цену указывается при импорте не как доп.характеристика, а в поле "Цена". На нём я заострю внимание ниже.
В статье рассматривается импорт товаров с разным количеством на складе, разными ценами, зависимыми характеристиками с влиянием на цену, имеющими изображения характеристик. Поэтому создам такую характеристику конкретно для тестовой категории с отметкой "доступен к выбору при заказе". Эта настройка позволяет характеристике влиять на цену:
Также создам в категории товар и заполню в нём все вышеуказанные параметры, которые буду экспортировать и импортировать в дальнейшем:
В результате получаем товар с двумя вариантами цвета с разными ценами, скидками (по старой цене), в разных валютах и с разным количеством остатков на складе. Теперь имеем сложные данные и можем переходить к работе с ними.
Описывать создание и настройку полноценного описания файла импорта/экспорта и его полей я не буду, т.к. уже уделил этому время в предыдущей части статьи. Тут разберём создание краткого описания для решения конкретных узкоспециализированных задач.
Обновление цен через импорт-экспорт в ручном режиме
Для того, чтобы обновить цены для уже имеющихся товаров на сайте, достаточно создать описание файла импорта всего с двумя полями - "ID" и полем "Цена". В моём случае имеются характеристики с прикреплёнными изображениями, влияющие на цену, поэтому я добавлю также третье поле "Изображения", чтобы иметь возможность добавлять новые варианты (расцветки) товара. Ниже я покажу как это делать.
Создаём новое описание (Тестовый ID4) и добавляем туда поля. Идентификатор с параметром "ID на сайте", поскольку товары уже загружены на сайт и им присвоен ID, с которым я и буду работать.
Далее создаём поле "Цена" и указываем в нём все необходимые настройки, имеющиеся у товара:
- Тип поля (Цена)
- Разделитель (символ, разделяющий параметры цен в строке - param1¶m2&...)
- Определение параметров "По названию" (проще ориентироваться в файле).
- Количество каждой позиции товара (в рассматриваемом случае - кол-во каждого цвета).
- Указана старая цена (цена до скидки).
- Использование разных валют у товара.
- Определение валют "Название валюты" (проще ориентироваться в файле).
- В файле будут указаны изображения для характеристик, влияющих на цену.
- Поле нужно для кратного увеличения цен в процентах при импорте.
- Категория товара (в моём случае "Тестовая").
Важно понимать, что в строке отмеченные параметры будут следовать слева направо друг за другом, разделяясь символом, указанным в настойках (в данном случае символ &). Пропуск хотя бы одного из них в любом товаре приведёт к смещению остальных параметров, что может привести к ошибке.
Поэтому отсутствующие параметры должны быть отделены в файле импорта символом разделителем &&, вот так:
param1&¶m3&...
Второй параметр пропущен, но место под него зарезервировано. Просто не указывать параметр не получится. В табличном редакторе об этом помнить не нужно, там всё будет указано автоматически. А вот при работе в текстовом редакторе - нужно обязательно.
Поле №9 можно использовать для формирования наценки. Например, вы выгрузили товары с ценами от поставщика и вам нужна своя наценка в размере 20%. Указываете в этом поле множитель 1.2 (100% + 20%) и при импорте цена будет скорректирована, в т.ч. "Старая цена", если она есть. Данное поле не фигурирует в файле импорта и используется в процессе импорта как множитель.
Далее создаём поле "Изображение". Если вам понадобится добавить к товару новый цвет, т.е. дополнить характеристику "Цвет" новым значением и новым изображением, то это изображение нужно будет загружать через поле "Изображения", а также указывать его в параметрах товара.
Для версии DIAFAN.CMS 6.0.13.3 в процессе импорта при обработке строки с данными товара фото будет сначала загружено, а затем прикреплено к характеристике товара, к которому привязано. В противном случае процесс импорта завершится с ошибкой.
Для версии DIAFAN.CMS 7.Х изображение, принадлежащее характеристике и указанное в поле "Цена", загрузится автоматически и само будет прикреплено к товару. Указывать его отдельно в поле "Изображение" уже не требуется.
Итого, для обновления цен получаем такое описание файла импорта:
Если Вы сами регулируете цены в интернет-магазине, то обновлять их нужно через процедуру экспорта-импорта. Сначала файл выгружается во вкладке "Экспорт":
Затем в полученном CSV-файле цены правятся вручную, либо они повышаются глобально с помощью поля №9. В этом случае файл править не надо. Давайте посмотрим на содержимое файла:
ID;Цена;Фото
90;32.00&12&37&Euro&1.jpg&Цвет=красный|3000.00&10&3500&0&2.jpg&Цвет=синий;1.jpg|2.jpg|3.jpg
Первая строка - название полей (3 поля). Во второй строке эти 3 поля разделены между собой точкой с запятой. Во втором поле ("Цена") параметры разделены символом амперсанда &. Слева направо:
Цена & Кол-во & Старая цена & Валюта & Фото характеристики & Характеристика
Обратите внимание, что, не смотря на настройки, основная валюта указывается как ноль (0). Все прочие валюты указываются согласно настройкам, в данном случае в виде названия (Euro).
Затем файл через вкладку "Импорт" загружается обратно на сайт. В настройках на первом шаге указывается кодировка файл (cp1251 или utf8), на втором шаге важно не забыть указать описание файла импорта, которое используем.
После загрузки файла все цены на товары, содержащиеся в файле импорта, будут обновлены. При этом сам файл получается очень компактный.
Также стоит обратить внимание на следующие настройки импорта:
Если отметить галку "Только обновить записи", то будут обновлены только те записи, которые уже присутствуют на сайте. Прочие записи, содержащиеся в файле, будут проигнорированы.
Если отметить галку "Добавить только новые записи", то будут обновлены только те записи, которые на сайте отсутствуют. Имеющиеся записи будут проигнорированы.
Если же отметить обе галки или оставить обе галки не отмеченными, то будут добавлены/обновлены все записи, присутствующие в файле импорта.
Частичное обновление каталога
Пару примеров как эти настройки можно использовать.
Пример 1: допустим, есть поставщик, предоставляющий выгрузку пяти различных производителей. Вы работаете только с одним из пяти. Отдельно выгружать данные возможности нет.
Вы выгружаете каталог поставщика полностью один раз, удаляете ненужных вам производителей и их товары из каталога, затем загружаете тот же файл импорта от поставщика, но с отметкой "Только обновить записи". При этом обновляются только те записи, которые уже есть на сайте, т.е. один производитель из пяти, который был оставлен ранее.
Пример 2:
Вы выгружаете полный каталог поставщика и настраиваете его под себя - меняете часть описаний, добавляете варианты товаров и комплектов от сторонних поставщиков. Эти данные дальше менять не нужно.
У поставщика со временем появляются в выгрузке новые позиции/производители. И отмечая галку "Добавить только новые записи" можно брать из файла поставщика только то, чего у вас на сайте ещё не представлено.
Далее можно также дорабатывать информацию и изолировать её от дальнейших изменений при синхронизации с файлом поставщика.
Обновление цен через импорт-экспорт посредством API
Выше я рассмотрел процесс обновления цен вручную с использованием выгрузки, правки и загрузки файла. Однако, это не всегда приемлемо и удобно. DIAFAN.CMS позволяет проводить данные манипуляции и удалённо с использованием API.
В настройках есть возможность указать для этого параметры:
Логин и пароль - данные аутентификации учётной записи на сайте, от имени которой будет запускаться импорт.
Ключ - любое слово/словосочетание на латинице. Позволяет отсечь возможные автоматические обращения без ключа по типовому URL и т.п..
Адрес файла импорта - загружаемый файл с данными, которые требуется обновить удалённо или по расписанию.
URL-адрес файла импорта - загружаемый со стороннего ресурса файл с данными, которые требуется обновить удалённо или по расписанию.
URL в итоге имеет вид, если используется локальный файл:
http://site.ru/service/express/client/?key=PRICE_UPDATE&cat=4
и такой, если используется удалённый файл:
http://site.ru/service/express/client/?key=PRICE_UPDATE&cat=4&url=URL_файла_с_другого_сайта
cat=4 - это идентификатор (ID) описания файла импорта. При верных введённых учётных данных получим ответ success
В противном случае - "ошибка авторизации". То же будет при отсутствии ключа или неверном ключе.
Вышеуказанную ссылку можно поставить на Cron и обновлять по расписанию. Источником файла может быть любой удалённый ресурс, выгрузку которого вы используете для обновления каталога.
А подготовив заранее разные описания импорта/экспорта для разных случаев, можно в широких пределах настроить синхронизацию, меняя в URL идентификатор описания.
Источник данных (загружаемый файл) можно указать один локально (лежит у Вас на сайте) и любое количество файлов с сайтом поставщиков, дропшипов и т.п.. Главное, чтобы поставщик отдавал сам файл при запросе по ссылке.
Изменение параметров товара, влияющих на цену
Как было описано выше, для добавления новой характеристики с изображением нужно указать путь к изображению в параметрах поля "Цена" и в поле "Изображения", если версия 6.0.13.3.
Допустим, есть выгрузка с одним товаром и туда требуется добавить вариант цвета и фото.
ID;Цена;Фото
90;32.00&12&37&Euro&1.jpg&Цвет=красный;http://test:81/1.jpg
После редактирования файл будет выглядеть следующим образом:
ID;Цена;Фото
90;32.00&12&37&Euro&1.jpg&Цвет=красный|3000.00&10&3500&0&http://test:81/2.jpg&Цвет=синий;1.jpg|http://test:81/2.jpg
При обработке этого файла у характеристики "Цвет" создастся новый вариант "синий" с прикреплённым фото 2.jpg, который будет иметь своё количество и свои цены.
Для разных характеристик допускается использовать одно и то же фото. Если же в одной записи товара встретятся одинаковые названия характеристик, то данные перезапишутся для этого названия столько раз, сколько будет совпадений в строке. Поэтому при наличии большого количества вариантов характеристик следите за их уникальностью.
Если нужно наоборот удалить какой-то из вариантов цвета, то достаточно просто исключить его из строки товара. При импорте данные обновятся и останутся только варианты, указанные в файле.
ID;Цена;Фото
90;32.00&12&37&Euro&1.jpg&Цвет=красный;1.jpg
Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.