PHPShop
Search
K
Comment on page

CSV

Загрузка базы через .CSV позволяет пакетно менять или загружать с нуля товарную базу.
Cделайте резервную копию базы, чтобы вернуть все обратно, если результат не устроит: База - Резервное копирование +. Затем очистите тестовую базу База → SQL запрос к базе → ➕ Команда - Очистить базу. Магазин готов к работе.

⤵️Импорт данных

Импорт/обновление берет в обработку все колонки из СSV файла и загружает в магазин. Если колонки в файле имеют "родные" названия, Cопоставление полей делать не нужно - загрузятся все колонки файла.
Если в файле много колонок, а нужно обновить только 1 колонку, например, характеристики, - удалите лишние колонки либо сделайте Сопоставление полей - укажите колонку с артикулом/id (ключ), и колонку с характеристикой. Тогда импорт возьмет только эти 2 колонки.
В меню База - Импорт данных и выбираем нужные параметры импорта в Настройках:
Настройки импорта

Вкладка Настройки

Тип данных - если вы грузите файл, в котором есть колонка каталогов, категории создадутся автоматически. Однако, можно загрузить их отдельно. Например, в выгрузке из Qparser есть 2 файла (каталоги и товары), которые нужно загружать по очереди.
Файл - выбираем файл на компьютере, или указываем URL поставщика; В Примерах 👉 мы подробно описали варианты получения файла: на основе родного файла или от поставщика.
Действие - создание или обновление;
CSV-разделитель - обычно, это точка с запятой;
Разделитель для характеристик - колонка, #, @, $.
Сначала укажите настройку в меню Настройки - Основные - Настройка фильтра, как грузить характеристики: Раздельно – создавать для каждой Группы свои характеристики, или грузить все в одну Общую группуобщие характеристики для всех товаров. Решите, как нужно вам.
Пример с разным разделителем Характеристик - Колонка и #
Забегая вперед, если характеристики в разных колонках, во вкладке Сопоставление полей выберем @Характеристика.
Если в файле все характеристики в одной ячейке с разделителем #, во вкладке Сопоставление полей выберем Характеристики.
Разделитель значений характеристик - ; / \ - &
Пример с разным разделителем Значений характеристик - ; или /
☑️ Обработка изображений - при включенной опции, размер, указанный в меню Настройки - Изображения - Основные, будет применяться к загружаемым фото. Это удобно для нарезки превью фото, не нужно создавать разные размеры, достаточно указать размер Тумбнейла и включить эту опцию, превью для товара будет создано автоматически. Также можно включить переформатирование в современный формат webp для экономии места на сервере. Для обработки уже загруженных фото используйте модуль Пакетная обработка фото.
☑️ Загрузка изображений - включить загрузку фото на сервер по url в файле.
Для большого количества товаров и обычного хостинга лучше скачать фото на ПК и вручную скопировать на сервер по FTP. Это возможно сделать на Q-parser, выбрав опцию скачать фото в архиве:
...или с помощью нашей утилиты Price Loader для Windows, указав выгрузку в локальный каталог:
Тогда ставить галку Загрузка изображений не нужно.
Разделитель для изображений – если в Прайс-листе несколько фото к 1 товару, выберите, чем они разделены в файле CSV и поставьте соответствующую настройку.
Перед загрузкой, зайдите в меню Настройки - Изображения и проверьте настройки, по которым будут загружены фото:
Включите опцию Сохранение в webp. Фото загрузятся в меньшем по весу формате webp.Не включайте запрет на фотогалерею.
Нарезку и отображение в webp не поддерживает наш сервис аренды Shopbuilder.ru.
Кодировка текста - если кодировка выбрана неверно, ваши данные загрузятся в нечитаемых символах. Для файла в облаке выбирайте UTF-8. В остальных случаях, обычно, используется ANSI (Windows 1251).
Ключ обновления - нужен только для обновления товаров. По умолчанию, для обновления данных используются колонки Id или Артикул, но можно использовать любое другое поле, например Наименование, или любой другой уникальный код из учетной системы или со старого сайта.
Проверка уникальности – если включена опция проверка уникальности и выбрано действие Создание, то перед созданием новых данных проверяется наличие данных в базе во избежании дублирования информации (проверяется артикул).
Выявить дубли уже загруженных артикулов можно в меню База - Обслуживание базы - проверка товаров.
После всех настроек, если столбцы в вашем прайс-листе имеют штатные названия, можно просто нажать Выполнить. Если столбцы отличаются, идем в закладку Соответствия полей. Нужно указать только те поля, которые мы хотим загрузить, остальные не заполняем:

Вкладка Сопоставление полей

Штатные названия колонок выгрузятся через меню Экспорт базы или через Qparser в формате PHPShop, соответствия полей в них делать не нужно.
Проставляем только нужные нам колонки.
Характеристики
Каталоги
Если в прайс-листе характеристики в колонках, нужно выбрать поле с собачкой: @Характеристика. Если в колонках в одной ячейке несколько значений характеристики, тоже выберите @Характеристика, а в Настройках укажите, какой стоит Разделитель значений характеристик: , ; /.
Если все характеристики в одной колонке - так выгружает Q-parser или встроенный экспорт данных, выберите поле Характеристики.
Для автоматического создания структуры каталогов, используйте поле Путь каталога и укажите в нем полный путь формата "Каталог/Подкаталог1/Подкаталог2". При указании пути каталога, все отсутствующие каталоги будут созданы автоматически.

Вкладка Сохраненные настройки

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

Вкладка Автоматизация

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

Кнопка Выполнить

Нажимаем кнопку Выполнить - в правом верхнем углу. Ждем сообщения о загрузке.
Окно браузера закрывать не нужно, чтобы не прервать загрузку файла по временному интервалу. Лимиты строк на каждом хостинге и тарифе свои, но более 3000 строк ставить не рекомендуется, если только у вас не выделенный сервера или VPS.

Пример Загрузки прайс-листа поставщика

Например, поставщик дал вам файл в екселе - price-list-Romashka.xlsx. Расширение .xlsx нужно перевести в .csv - для этого откройте файл в Exсel, Файл - Экспортировать - .csv и сохраните файл. Получится такой файл - price-list-Romashka.csv. Прайс-лист можно выложить в облако и обновлять цены по расписанию. Для этого создайте документ в Google Sheets, скопируйте содержимое и сохраните. Не забудьте опубликовать файл:
Допустим, мы сделали резервную копию, почистили базу, и загружаем товары с нуля.
Заходим в меню База - Импорт данных и выбираем нужные параметры импорта в Настройках:
Шаг 1
Шаг 2
Шаг 3
Шаг 4
Шаг 5
Вкладка Настройки
Файл - выбираем файл на компьютере, или указываем URL поставщика;
Действие - создание;
CSV-разделитель - точка с запятой;
Разделитель для характеристик - Колонка;
Разделитель значений хар-к - в нашем примере это точка с запятой;
Обработка изображений - при включенной опции, все, что выставлено в меню Настройки - Изображения - Основные, будет применено к загружаемым фото. Это удобно для нарезки превью фото, не нужно создавать разные размеры, достаточно указать размер Тумбнейла и включить эту опцию, превью для товара будет создано автоматически. Также можно включить переформатирование в современный формат webp для экономии места на сервере. Для обработки уже загруженных фото используйте модуль Пакетная обработка фото.
Разделитель для изображений – в нашем примере это Точка с запятой.
Кодировка текста - поскольку наш файл загружен в облако, выбираем UTF-8.
Ключ обновления - т.к. мы загружаем с нуля, ключ нам не нужен.
Проверка уникальности – опция нам не нужна.

Вкладка Сопоставление полей

Далее идем в закладку Соответствия полей. Смотрим, что нам нужно для импорта в магазин. Решаем, что нам нужен Артикул, Заголовок, Цена, Цена поставщика, Описание, Изображение, Размер, Цвет. Проставляем остальные, только нужные нам колонки.
Сопоставляем поля
В нашем прайс-листе характеристики идут как колонки, значит выбираем @Характеристика, а в закладке Настроек укажем, что значения разделяются ;
Примеры разделения характеристик в файлах

Вкладка Сохраненные настройки + настройка автообновления цен

Мы хотим по расписанию обновлять цены из данного файла. Заходим во вкладку Сохраненные настройки и вводим название. Настраиваем расписание: включаем модуль Задачи, создаем новую Задачу и в меню Выбрать - видим сохраненный импорт, указываем его и количество запусков в день.

Автоматизация

В нашем примере мы загружаем фото, поэтому оставляем опцию включенной.

Кнопка ⬇Выполнить

Нажимаем кнопку Выполнить - в правом верхнем углу. Ждем сообщения о загрузке.
Теперь можно проверить импорт - меню Товары - Товары - Каталог1, в него сразу попали товары из нашего Прайс-листа, с привязанными характеристиками. 🎉

⎘ Пример загрузки csv-файлов из Q-parser

Пример загрузки на основе "родного" экспортного файла

Принцип работы: сначала выгружаем .csv файл со структурой базы через Экспорт данных, добавляем свои товары и загружаем файл обратно через Импорт данных.
Вы можете создать свой файл:
  1. 1.
    Отметьте товары галкой, нажмите на ⚙️ - Экспортировать выбранные.
  2. 2.
    Выберите поля, которые нужно выгрузить.
  3. 3.
    Укажите, как выгрузить характеристики - колонками или в 1 ячейке.
  4. 4.
    Нажмите Выполнить и скачайте полученный файл.

1. Создаем вручную в админпанели структуру каталогов и по одному товару в каждом каталоге

Создаем вручную каталоги, подкаталоги, и хотя бы 1 товар в каждом подкаталоге. Если будем заполнять в файле характеристики, то заводим их тоже вручную. Все значения характеристик (например, белый, красный, ..., или размер - 110, 122, ...) заранее создавать не нужно, они автоматически создадутся при загрузке.

2. В экспорте данных выбираем, что нужно выгрузить

После создания структуры, идем в раздел База - Экспорт данных, и указываем параметры выгрузки. См. раздел Экспорт данных ниже 👇.
Выбор колонок для экспорта

3. Заполняем .csv файл своими данными

Скачиваем файл из Экспорта данных. Открываем скачанный файл: мы видим колонки, которые воспринимает PHPShop на основе их заголовков - заголовки редактировать нельзя. Заполните строки по столбцам.
Управляющим полем при загрузке базы является - Код ID или Артикул, по нему при загрузке идет поиск товара и обновление данных. Если в импорте выбрана опция Действие - Создание, то создается новый товар с ID, равным ID последнего добавленного товара, увеличенный на единицу.

⤴️Экспорт данных

Экспортируемые поля не забудьте выделить - они будут отмечены фоном, иначе они не выгрузятся в файл.
Выберите поля, которые будут выгружаться при:
Создании товаров
Обновлении товаров
Наименование, Цена 1, Описание, Характеристики, и добавьте поля, которые нужны именно вам.
Обязательно нужно либо поле id (товара), либо Артикул, + те поля, которые нужны именно вам.
CSV-разделитель: обычно это точка с запятой.
Разделитель для характеристик:
Колонки
Через общее поле #
Колонка автоматически считается названием характеристики, если первым символом в ее имени стоит @, например @Бренд.
Выбираем в поле "Экспортируемые поля" поля Id,Каталог,Наименование и @Характеристика.
Поле Каталог должно быть обязательно, если указан раздельный способ импорта характеристик, иначе при обратной загрузке, характеристики не найдут свой "Набор характеристик".
Выбираем в качестве разделителя для характеристик значение Колонка.
В выгруженном файле, в колонках с префиксом @Характеристика будут записаны все названия характеристик, а в соответствующих строках будут значения характеристики. Сколько у товара характеристик, столько и будет создано дополнительных колонок под каждую характеристику.
Соблюдая это правило заполнения поля, внесите свои правки и загрузите файл обратно через раздел Импорт данных. Выбор разделителя значения не имеет. При этом новые значения характеристик будут созданы автоматически и привязаны к указанному каталогу в колонке Каталог.
Выбираем в качестве разделителя для характеристик символ #.
В файле Характеристики будут записаны в одну ячейку по каждому товару с разделителем / между названием и значением характеристики и разделителем # между самим характеристиками, если их несколько:Размер/44#Цвет/Бежевый.
Когда будете загружать файл обратно через Импорт данных, в качестве разделителя для характеристик не забудьте указать значение #. При этом, новые значения характеристик будут созданы автоматически.
Полный путь изображений – опция нужна, если Экспорт данных используется для создания прайс-листа для клиентов, и в нем нужно указать полный путь к фото товаров (https://myphpshop.ru/UserFiles/Image/trial/primer-fotos.jpg). По умолчанию выгрузится путь от /UserFiles/.
Разделитель для изображений – нужен, если у вас несколько фотографий к 1 товару.
GZIP сжатие – сжимает размер исходного экспорта, нужен для больших баз товаров.
Лимит строк – ограничение строк в 1 csv файле.
Закладка Сохраненные настройки нужна для того, чтобы не проделывать заново эту процедуру:
Теперь можно нажать кнопку Выполнить и получить готовый файл для последующего внесения новых товаров. ✨

Пакетная загрузка фото на сервер (csv)

Проверьте настройки, которые выставлены в меню Настройки - Изображения - они будут применяться при загрузке фото.
💡 Включите опцию Сохранение в webp - фото загрузятся в меньшем по весу формате webp.

Автоматически по URL

При импорте прайс-листа с полным URL изображений, фотографии будут автоматически загружены на сервер в одну папку /UserFiles/Image/.
Опция в меню Настройки - Изображения Сохранять изображения в папках по именам каталогов работать не будет, она работает только при ручном добавлении фото к товару в бек-офисе.

Вручную по FTP

Можно вручную загрузить фото товаров через любой ftp-клиент. В таком случае, в поле Большое изображение укажите путь к фото от корня сайта: /UserFiles/... , если фото несколько, через запятую без пробела:
  1. 1.
    Большие картинки для карточки товара, предварительно подготовьте одного размера, желательно в одной пропорции. Загрузите фото на сервер в папку /UserFiles/Image, с помощью любого ftp-клиента (можно найти в Яндексе по слову "ftp-клиент").
2. В настройках импорта в меню База - Импорт данных включите опцию Обработка изображений. Ваши фото будут обработаны, уменьшены согласно настройкам в меню Настройки - Изображения.
Если нужно перенарезать превью товаров, используйте модуль Генерация превью картинок.
Через Импорт нельзя удалить в товарах старые фото, скрипт только добавит к товарам новые картинки, которые вы укажете в csv файле. Если нужно удалить фото у всех товаров, для последующей перезагрузки через csv, в меню База -SQL запрос к базе введите команду:
TRUNCATE phpshop_foto;
update phpshop_products set pic_small="", pic_big="";

Добавление превью к товарам

Превью товаров создаются автоматически при загрузке, если опция включена в Настройки - Изображения и сами фото размещены на сервере до импорта. Если импорт запущен до размещения фото на сервере, превью не нарежется автоматически, тогда можно выполнить команду вручную.
Зайдите в меню База - SQL запрос к базе и вставьте строку, нажмите Выполнить.
update phpshop_products set pic_small=pic_big

Загрузка фото из 1С (csv)

Для загрузки товаров через CSV из 1С, в настройках 1С-обработчика следует выбрать формат выгрузки для версии PHPShop. Если в .CSV файле из 1С не будет заполнено поле Каталог, то загруженные товары попадут в папку Неопределенные товары - Загруженные
Вы можете вручную добавить нужные колонки в csv файл. Описание главных полей товаров:
Поле
Формат
Описание
Длина символов
Id
Integer
ID товара
11
Подробное описание
Text
Подробное описание товара
-
Каталог
Integer
ID каталога товара
11
Наименование
Varchar
Наименование товара
255
Краткое описание
Text
Краткое описание товара
-
Яндекс.Маркет
Enum
Флаг включения товаров для вывода в YML файл. (0 - нет, 1 - да)
0 или 1
Вывод
Enum
Флаг включения товаров для вывода на сайте. (0 - нет, 1 - да)
0 или 1
Артикул
Varchar
Артикул товара
64
Спецпредложение
Enum
Флаг включения товаров в спецпредложение. (0 - нет, 1 - да)
0 или 1
Сопутствующие товары
Varchar
Перечисление ID товаров через запятую для совместной продажи
64
Приоритет
Integer
Приоритет вывода товара, сортировка.
11
Новинка
Enum
Флаг включения товаров в новинки. (0 - нет, 1 - да)
0 или 1
Заголовок
Varchar
Персональный титл (Titile) товара
255
Маленькое изображение
Varchar
Изображение привью для товара (адрес файла изображения)
255
Большое изображение
Varchar
Подробное изображение для товара (адрес файла изображения)
255
Вес
float
Вес товара в граммах
-
Дополнительные каталоги
Varchar
Перечисление ID каталогов через запятую для дополнительного вывода
255
Цена 1
float
Основная цена товара
-
Цена 2
float
Дополнительная цена товара
-
Валюта
Int
ID валюты
11
Единица измерения
Varchar
Наименование единицы измерения
255
SEO ссылка
Varchar
SEO ссылка товара (/id/*******.html)
255

Удаление битых картинок из базы

В меню База - Обслуживание - Проверка изображений можно увидеть фото, которые присутствуют в товарах, но физически на сервере не существуют.
Такое часто бывает, когда для наполнения магазина используют парсеры. Чтобы удалить битые картинки, просто выделите их галкой и нажмите Удалить.

Пакетное редактирование базы

Пакетно можно выбрать товары галкой, нажать ⚙️ - Редактировать выбранные и назначить одинаковые значения к выбранным товарам.
Если значения разные, нужно выгрузить эти товары, нажав ⚙️- Экспортировать выбранные, указать нужные поля, нажать Выполнить. В полученном файле отредактировать нужные колонки и загрузить обратно через Импорт данных.

Дозагрузка фото к существующим товарам по артикулу

Задача: на сайте есть загруженные товары, нужно загрузить к ним фото.
Артикулы уникальные
❗️Артикулы с дублями
  1. 1.
    Для дозагрузки фото к товарам, в вашем csv файле нужны 2 колонки. В данном примере фото к одному товару несколько, url картинок идут через запятую.
Артикул*
Фото
639509676
https://photo.mebelion.ru/images/860792b07bc88b46b1399b4cc3994b3c.jpg,https://photo.mebelion.ru/images/06833ee73a0005e24977a4e7b0ef7813.jpg
  1. 2.
    Перейдем в меню База - Импорт данных - Товары.
Выберем наш файл, действие Обновление. Включим:
☑️ Обработка изображений - при включенной опции, все настройки в меню Настройки - Изображения - Основные, будут применяться к загружаемым фото.
☑️ Загрузка изображений - включить загрузку фото на сервер по полному url в файле.
Для большого количества товаров и обычного хостинга лучше скачать фото на ПК и вручную скопировать на сервер по FTP. Архив с фото делает сторонний парсер или наш парсер Price Loader, если выбрать выгрузку в локальный каталог. Тогда ставить галку Загрузка изображений не нужно, и в колонке Фото будет неполный путь к фото, который проставится к товарам.
Разделитель для изображений - в нашем примере запятая, можно оставить Автоматически.
Ключ обновления - Артикул.
  1. 2.
    На вкладке Сопоставление полей - укажем колонки Артикул и Фото:
  1. 3.
    Нажмем Выполнить. Проверим результат.
Для корректировки/обработки уже загруженных фото используйте модуль Пакетная обработка фото.
  1. 1.
    Найдем товары с дублирующимися артикулами. В меню База - Обслуживание базы - Проверка товаров проверим товары с повторяющими артикулами и устраним повторы.
  1. 2.
    Выполним те же действия, описанные в закладке Артикулы уникальные.

Обновление цен, остатков товаров

Задача: на сайте есть загруженные товары, нужно изменить их цены и наличие.
Порядок действий:
Артикулы уникальные
❗️Артикулы с дублями
Если вы обновляете данные через свой файл, переходите сразу к п.3.
  1. 1.
    Выгрузим товары: зайдем в каталог, отметим товары галкой ⚙️- Экспортировать выбранные. Выберем поля:
Артикул*
Цена1*
Склад*
Наименование
  1. 2.
    Откроем csv и отредактируем его. Экспортируем измененный файл в csv.
  1. 3.
    Перейдем в меню База - Импорт базы. Выберем полученный файл, действие Обновление, выключим загрузку и обработку фото, кодировка та же, что выбрали при сохранении. Нажмем Выполнить.
  1. 4.
    Проверим, что данные изменились. В меню Товары - Товары внесем в поиск артикул - посмотрим на количество. Изменения обновились 🎉
  1. 1.
    Найдем товары с дублирующимися артикулами. В меню База - Обслуживание базы - Проверка товаров проверим товары с повторяющими артикулами и устраним повторы.
  1. 2.
    Выполним те же действия, описанные в закладке Артикулы уникальные.

Обновление характеристик

Задача: нужно обновить характеристики у товаров.
Сначала проверим настройку в меню Настройки - Основные - настройка фильтра, как будут загружены характеристики: Раздельно – создавать для каждой Группы свои характеристики, или как Общую группу – общие характеристики для всех товаров.
Характеристики общие
Характеристики раздельные
  1. 1.
    Выгрузим товары через меню База - Экспорт данных, выберем Разделитель для характеристик - Колонка. Выберем поля:
Наименование*
Артикул*
Характеристики*
  1. 2.
    В выгруженном файле делаем изменения, экспортируем в CSV, кодировка utf-8.
  2. 3.
    Загружаем полученный файл обратно через меню База - Импорт даных. Выбираем действие - Обновление, разделитель для характеристик Колонка, кодировка utf-8, нажимаем Выполнить.
Для раздельных характеристик обязательным является поле Каталог. Т.к. при импорте характеристики обратно, будет проверяться ее принадлежность к каталогу.
Выгружать нужно, кроме полей Артикул, Характеристики, еще Каталог. В остальном,

Обновление товаров по артикулу из сайта с другой структурой

Задача: на старом сайта есть товары с характеристиками, которые нужно перенести на новый сайт. На новом сайте есть товары с теми же артикулами, но находятся они в других каталогах – структура сайта не совпадает.
Парсер выдаст характеристики только с привязкой к старой структуре сайта. Это значит, что к товару будет прописана характеристика и товар будет помещен в каталог, который указан на старом сайте. Нужно загрузить характеристики, но сохранить новую структуру каталогов.
Порядок действий:
  1. 1.
    На новом сайте выгрузим структуру каталогов. Меню База - Экспорт данных, выберем поля:
Артикул*
Наименование
Каталог*
Путь каталога
  1. 2.
    На старом сайте парсим товары, получаем готовые файлы. Удаляем ненужные колонки, оставляем колонки Артикул, Каталог, Характеристики:
Артикул*
Наименование
Каталог*
Характеристики*
Помним, что Каталоги здесь другие - при импорте на новый сайт, товары переместятся, но мы их вернем:)
  1. 3.
    На новом сайте удаляем характеристики у товаров. Заходим в меню База - SQL запрос к базе - Очистить все характеристики. Нажимаем Выполнить.
  1. 4.
    На новом сайте загружаем характеристики.
Сначала выставляем настройку, как грузить характеристики: Раздельно – создавать для каждой Группы свои характеристики, или как Общую группу – общие характеристики для всех товаров. Решите, как нужно вам, в меню Настройки - Основные - Настройка фильтра.
Затем в меню База - Импорт данных выберите ваш файл из п.2, Обновление, UTF-8, Выполнить.
  1. 5.
    После импорта, товары переместятся в ненужные каталоги. Чтобы вернуть прежнюю структуру сайта, перезапишем номера каталогов у товаров.
В меню База - Импорт данных выберем файл из п.1 и сделаем сопоставление - Артикул - Каталог:
🎉 Готово, в итоге мы перенесли характеристики со старого сайта, и сохранили новую структуру.

Удаление пустых характеристик

  • Если после импорта вы видите много пустых характеристик, можно их удалить через меню в Товары - Характеристики ⚙️ - Удалить неиспользуемые.
Мы подробно описали в Блоге, как удалить лишние значения характеристик.
Last modified 1mo ago