Links

CSV

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

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

Заходим в меню База - Импорт данных и выбираем нужные параметры импорта в Настройках:
Настройки импорта

Можно выбрать отдельные товары галкой, и по иконке ⚙️ - Экспортировать выбранные:

Настройки

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

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

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

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

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

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

Нужна для загрузки больших CSV файлов, без необходимости делить файл на части.
Для запуска загрузки, укажите параметры лимита строк и временной интервал, включите опцию Умная загрузка. Окно браузера закрывать не нужно, чтобы не прервать загрузку файла по временному интервалу. Лимиты строк на каждом хостинге и тарифе свои, но более 3000 строк ставить не рекомендуется, если только у вас не выделенный сервер или VPS.

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

Нажимаем кнопку Выполнить - в правом верхнем углу. Ждем сообщения о загрузке.

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

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

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

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

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

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

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

Нужна для загрузки больших CSV файлов, без необходимости делить файл на части.
Для запуска загрузки, укажите параметры лимита строк и временной интервал, включите опцию Умная загрузка. Окно браузера закрывать не нужно, чтобы не прервать загрузку файла по временному интервалу. Лимиты строк на каждом хостинге и тарифе свои, но более 3000 строк ставить не рекомендуется, если только у вас не выделенный сервера или VPS.

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

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

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

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

Принцип работы: сначала выгружаем .csv файл со структурой базы через Экспорт данных, добавляем свои товары и загружаем файл обратно через Импорт данных.
Скачайте 💾Образец файла выгрузки товара с характеристиками. Вы можете создать свой файл, выбрав нужные колонки 👇

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

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

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

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

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

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

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

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

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

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

Автоматически по 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="";

Загрузка через 1С

Для загрузки товаров через 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

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

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

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

Мы подробно описали в Блоге, как удалить лишние значения характеристик: