Как импортировать товары в woocommerce из csv
Перейти к содержимому

Как импортировать товары в woocommerce из csv

  • автор:

Собираем CSV-файл для импорта custom-постов в товары WooCoommerc’а

Переделываем тут один старый WordPress-сайт в новый Интернет-магазин на WooCommerce. На старом сайте много товаров в виде custom’ных постов с заказом через простую форму Contact Form 7. А надо сделать всё красиво с WooCommerce. Писать граббер прямо с сайта нет желания, импортировать прямо из БД тоже возня лишняя, решили собрать все товары со старого сайта в формате CSV, чтобы потом его загрузить в родной импорт товаров WooCommerce.

 -1, 'post_type' => 'tovary', )); if (is_array($_products) and count($_products)) < foreach ($_products as $_product) < $line['ID'] = $_product->ID; $line['Имя'] = $_product->post_title; $line['Изображение'] = get_the_post_thumbnail_url($_product->ID, 'full'); $line['Описание'] = $_product->post_content; $_meta = get_metadata('post', $_product->ID); if (is_array($_meta['mwpf_technical']) and count($_meta['mwpf_technical']) and count($_meta['mwpf_technical'][0])) < //$line['meta'] = var_export( $_meta, true ); // раскоментить если нужно будет посмотреть что там =) $_price = (int) str_replace(' ', '', $_meta['mwpf_action_one'][0]); $line['Базовая цена'] = $_price ? $_price : ''; // чтобы цена не была 0 в WooCommerce для товаров без цены на старом сайте // там мы собираем нужные нам мета-поля ( произвольные поля WordPress для записей ) $line['Мета: mwpf_file'] = $_meta['mwpf_file'][0]; $line['Мета: mwpf_file_name'] = $_meta['mwpf_file_name'][0]; // а так пришлось собирать атрибуты из HTML-таблицы записанной в мета-поле товара preg_match_all('|(.*?)(.*?)|is', $_meta['mwpf_technical'][0], $buff); //$line['dfsd'] = '
'. strip_tags(var_export( $buff, true)) . '

'; // проверка // этот код вам не понадобится, но вдруг у вас будет похожая ситуация if ( is_array($buff[1]) and count($buff[1]) ) < foreach ($buff[1] as $key =>$_value) < $_name = trim(strip_tags($_value)); if ($_name == '') continue; if (is_numeric($_name)) continue; $__value = trim(strip_tags($buff[2][$key])); if ( $__value == '+') $__value = 'да'; $atts[$line['ID']][$_name] = $__value; $atts_names[$_name] = $_name; >> if ( is_array($atts_names) and count($atts_names) ) < foreach($atts_names as $_name) < if (isset($atts[$line['ID']][$_name])) < $line[$_name] = $atts[$line['ID']][$_name]; >else < $line[$_name] = ''; >> > //$line['Атрибуты'] = var_export($buff, true); // проверка > $headers = array_merge( (array) $headers, array_combine(array_keys($line), array_keys($line)) ); $lines[] = $line; > > if (is_array($lines) and count($lines)) < // собираем таблицу для просмотра на странице, чтобы понимать правильно ли мы всё сделали: echo '

'; echo '

'; foreach ( $headers as $_name ) < echo '

'; > echo '

'; foreach ($lines as $_line) < echo '

'; foreach ($headers as $_name) < echo '

'; > echo '

'; > echo '

' . $_name . '
' . $_line[$_name] . '

'; // а теперь начинаем собирать данные для CSV-файла: $line = array(); foreach ( $headers as $_name ) < if (isset($atts_names[$_name])) < $i++; $line[] = "Имя атрибута $i"; $line[] = "Значение(-я) аттрибута(-ов) $i"; $line[] = "Видимость атрибута $i"; $line[] = "Глобальный атрибут $i"; >else < $line[] = $_name; >> $data[] = $line; foreach ($lines as $_line) < $line = array(); foreach ($headers as $_name) < if (isset($atts_names[$_name])) < $line[] = $_name; $line[] = $_line[$_name]; $line[] = 1; $line[] = 1; >else < $line[] = $_line[$_name]; >> $data[] = $line; > // записываем все наши данные в CSV-файл @unlink(__DIR__.'/export.csv'); $fp = fopen(__DIR__.'/export.csv', 'w'); foreach ($data as $_fields) < fputcsv($fp, $_fields); >fclose($fp); // выводим ссылку на CSV-файл echo '


Скачать CSV'; > exit(); >); >

Не торопитесь охать и ахать от безумного кода. Задача была быстро и просто перенести товары со старого сайт на новый в WooCommerce.

Там много лишнего кода, который может вам не пригодится. С другой стороны возможно у вас такая ситуация и Вам нужно быстрое решение.

Код был написан прямо в functions.php активной темы и вызван через ваш_сайт/product_export?=1. В итоге перед вами будет таблица данных и ссылка на корректный CSV-файл, готовый для импорта в WooCommerce.

Кстати WooCommerce фотографии прямо грузит по ссылкам со старого сайта, что удобно, а если здесь:

$line['Изображение'] = get_the_post_thumbnail_url($_product->ID, 'full');

можно указать несколько ссылок ко всем изображениям товара, тогда WooCommerce в процессе импорта загрузит их все: по первой ссылке будет главное фото товара, остальные пойдут в галерею.

К примеру если вы собрали URL-адреса к изображениям товара в массив $images

if (is_array($images) and count($images))

Импорт товаров в WooCommerce из CSV таблицы

Иконка для документа в формате CSV на желтом фоне

WooCommerce имеет встроенный импортер продуктов из файла CSV. Этот инструмент поддерживает большинство типов продуктов, включая вариативные товары.

Создание прайс-листа для импорта

Стандартный импортер в WooCommerce поддерживает загрузку товаров из электронных таблиц в формате CSV. Разработчики плагина не рекомендуют выполнять импорт из Excel. Такое решение обусловлено некорректной поддержкой UTF-8.

Вместо Microsoft Excel можно использовать:

  • Онлайн-редактор электронных таблиц Google Sheets,
  • Бесплатное приложение для работы с электронными таблицами OpenOffice,
  • Бесплатное приложение Calc в LibreOffice,
  • Numbers для macOS.

В репозитории WooCommerce представлен общий список рекомендаций для успешного импорта файла CSV. Выделим наиболее важные из них:

  • Файл CSV должен быть в формате UTF-8;
  • При импорте логического значения используются числа 1 или 0;
  • Несколько значений в поле разделяются запятыми;
  • Иерархия терминов таксономии обозначается знаком > , термины разделяются запятыми;
  • Изображения должны быть предварительно загружены в медиатеку или доступны в Интернете, чтобы их можно было импортировать в ваш магазин.

Столбцы и форматирование

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

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

Для автоматической связи свойств из прайс-листа достаточно указать название столбца и сверить его с тегом из колонки Сопоставление. При загрузке такой таблицы WooCommerce свяжет информацию из файла CSV с базой данных самостоятельно.

Имя столбца Сопоставление Пример Описание
ID id 100 Если указать это значение, данные товара с этим идентификатором будут перезаписаны при импорте.
Type type simple, variation, virtual Тип продукта. Допустимые значения: простой, переменный, сгруппированный, внешний, вариантный, виртуальный, загружаемый.
SKU sku iphone-12-pro-max-256, 113244905 Обязательное поле. Наименование вариации. Создается автоматически, если отсутствует.
Name name iPhone 12 Pro Max 256GB Обязательное поле. Название товара или цифрового продукта.
Published status 1 Статус публикации товара. 1 опубликован, 0 личная публикация, -1 черновик.
Is featured? featured 1 1 или 0.
Visibility in catalog catalog_visibility visible Допустимые значения: visible, catalog, search, hidden.
Short description short_description Прочный корпус и самое долгое время работы без подзарядки среди iPhone. Краткое описание товара.
Description description Это iPhone 12 Pro Max. A14 Bionic, самый быстрый процессор iPhone. Система камер Pro, которая обеспечивает потрясающее качество снимков при слабом освещении. Подробное описание товара.
Date sale price starts date_on_sale_from 2022-06-07 18:59:00 Дата начала действия скидки на товар.
Date sale price ends date_on_sale_to 2022-06-08 09:59:00 Дата конца действия скидки на товар.
Tax status tax_status taxable Допустимые значения: taxable, shipping, none.
Tax class tax_class standard Можно использовать любой существующий налоговый класс.
In stock? stock_status 1 Наличие товара на складе. 1 или 0.
Stock manage_stock или stock_quantity 20 Количество товаров на складе. Значение parent используется для вариаций. Если оставить пустым, управление запасами будет недоступно.
Low stock amount low_stock_amount 100 Нижний порог запаса товаров. Оставьте пустым или укажите количество.
Backorders allowed? backorders 1 Поддержка продажи товаров «под заказ». 1, 0, или notify.
Sold individually? sold_individually 0 Поддержка продажи товаров «в одни руки». 1 или 0.
Weight (unit) weight 226 Вес товара. Поддерживает только числа.
Length (unit) length 160 Длина товара. Поддерживает только числа.
Width (unit) width 78 Ширина товара. Поддерживает только числа.
Height (unit) height 8 Вес товара. Поддерживает только числа.
Allow customer reviews? reviews_allowed 1 1 или 0.
Purchase Note purchase_note Спасибо за покупку! Текст, который будет показан пользователю после оформления заказа.
Sale price sale_price 20.99 Цена распродажи.
Regular price regular_price 24.99 Базовая цена.
Categories category_ids Category 1, Category 1 > Category 2 CSV список категорий. Символ > используется для иерархии (вложенности).
Tags tag_ids Метка 1, Метка 2 CSV список тегов.
Shipping class shipping_class_id Доставка почтой Название или класс доставки.
Images image_id или gallery_image_ids https://example.com/image.jpg, https://example.com/image2.jpg Первое изображение является главной миниатюрой.
Download limit download_limit 1 Количество допустимых загрузок или n/a.
Download expiry days download_expiry 1 Количество дней до истечения срока допустимых загрузок или n/a.
Parent parent_id id:100, SKU-1 Родительский идентификатор для вариаций.
Grouped products children id:100, id:101, SKU-1, SKU-2 Список идентификаторов.
Upsells upsell_ids id:100, id:101, SKU-1, SKU-2 Список идентификаторов.
Cross-sells cross_sell_ids id:100, id:101, SKU-1, SKU-2 Список идентификаторов.
External URL product_url https://example.com/product/iphone-12-pro-max/ URL товара.
Button text button_text В корзину Пользовательский текст для кнопки «Купить» в карточке товара.
Position menu_order 1 Порядок меню, используемый для сортировки.
Attribute 1 name attributes Цвет Ищет глобальный атрибут или использует текст, если он не найден. Чекбокс «Используется для вариаций» устанавливается автоматически.
Attribute 1 value(s) attributes Красный, Золотой, Розовый Список значений атрибута. Для вариаций требуется только 1 значение.
Attribute 1 default default_attributes Золотой Значение атрибута по умолчанию для вариативных товаров.
Attribute 1 visible attributes 1 Определяет, будет ли отображаться атрибут на вкладке «Дополнительная информация». 1 или 0.
Attribute 1 global attributes 1 Определяет, является ли атрибут глобальным. 1 или 0.
Download 1 name downloads Файл для загрузки
Download 1 URL downloads document.zip

Импорт товаров в WooCommerce

Выполним импорт товаров из файла CSV на примере товара «Футболка с логотипом». У товара есть следующие характеристики:

  • Название,
  • Цена,
  • Цвет,
  • Размер,
  • Категория.

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

Экран для создания глобальных атрибутов в панели администратора WordPress

После создания атрибутов приступаем к составлению таблицы с товарами.

Простые товары

Составляем файл CSV с тремя похожими простыми товарами. В результате наш прайс-лист будет выглядеть, как показано на рисунке ниже:

Электронная таблица с информацией о простых товарах для импорта

Как прикрепить изображения?

Для импорта картинок добавьте столбец с именем Images и укажите их прямые URL для каждого товара в таблице. Для быстрого импорта товаров, выполните предварительную загрузку картинок в медиатеку WordPress.

Электронная таблица с информацией о простых товарах с дополнительным столбцом Images

Вариативные товары

Так как, это один и тот же товар, только с разными характеристиками, его можно укомплектовать в вариативный товар.

Составим прайс-лист заново:

Электронная таблица с информацией о вариативных товарах для импорта

Импорт товаров из CSV файла

Выполните импорт файла в панели администратора:

Экран импорта товаров в панели администратора WordPress

    Выберите CSV файл:

Экран сопоставления свойств при импорте товаров в WooCommerce

  • Нажмите Продолжить
  • На экране сопоставления проверьте назначение полей:

    Результат успешного импорта товаров в WooCommerce

    Импорт успешно завершен:

    Проверка результатов импорта

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

    Список товаров в панели администратора WordPress

    После выполнения импорта вариативных товаров будет опубликована одна футболка с тремя вариациями:

    Импорт товаров в WooCommerce: пошаговая инструкция

    В WooCommerce импорт товаров делается при помощи встроенного инструмента в разделе «Товары», дополнительно можно ничего не устанавливать. Рассказываем, как правильно пользоваться этим инструментом.

    Подготовка файла с товарами к импорту в WooCommerce

    Чтобы импорт прошёл успешно и его не пришлось делать повторно, стоит заранее позаботиться о двух нюансах: правильном оформлении таблицы с товарами и её формате.

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

    Более прагматичным подходом будет заранее назвать колонки как надо. Для этого создайте один или несколько товаров вручную и экспортируйте их — так вы получите пример CSV файла для WooCommerce, который сможете сравнить со своим прайс-листом. Заодно проверите, все ли колонки есть в исходном файле с товарами.

    Если вы работаете с WooCommerce впервые и не знаете, как в нём создаются товары, вот инструкция, которая поможет с этим разобраться:

    Отдельный момент — изображения товаров. В файле на них нужно указывать ссылки. Для этого загрузите изображения заранее в разделе «Медиафайлы» и каждому из них WordPress присвоит ссылку.

    Формат файла. Встроенный инструмент импорта WooCommerce поддерживает только один формат — CSV. Если у вашего интернет-магазина прайc-лист в другом формате, пересохраните его в CSV. Такой функционал есть во всех популярных программах по работе с таблицами: Excel, Google Таблицах и Numbers.

    Ищите опцию по сохранению таблицы с товарами в формате CSV в меню «Файл». Как правило она называется «Скачать», «Сохранить как» или «Экспортировать».

    Сохранение файла с товарами в формате CSV при помощи Google Таблиц — Import Excel WooCommerce (XLS/XLSX)

    Другой вариант — использовать онлайн-конвертер из XLS в CSV. С его помощью кстати можно также конвертировать файлы и в обратном направлении. Это может пригодиться, например, после экспорта.

    В крайнем случае попробуйте найти в библиотеке WordPress плагин для импорта товаров в WooCommerce из XML или Excel, но по опыту большинство из них платные.

    Загрузка файла для импорта товаров в WooCommerce

    Перейдите в консоли WordPress в раздел «Товары» и нажмите кнопку «Импорт» вверху раздела возле заголовка.

    Кнопки «Добавить», «Импорт» и «Экспорт» в разделе для работы с товарами в WooCommerce — Import XML WooCommerce

    Откроется мастер по импорту товаров в WooCommerce. В нём сначала нажмите «Обзор», чтобы выбрать CSV-файл с товарами у себя компьютере, затем нажмите «Продолжить».

    На следующем этапе слева будет название колонки в вашей таблице, а справа — поле в карточке товара, которому WooCommerce собирается присвоить значения из этой колонки.

    Результат распознавания таблицы с товарами

    Если справа стоит значение «Не импортировать», значит WooCommerce не понимает, какому полю соответствует колонка. Всё, что вам нужно сделать — вручную выбрать поле. Чтобы вам было проще понять, какое поле выбирать, под названием колонки слева будет пример данных из её первой строки.

    Если вы видите ситуацию, как на скриншоте ниже, значит WooCommerce не смог распознать колонки. По умолчанию инструмент импорта ориентируется на то, что в качестве разделителя колонок выступает запятая. В нашем примере разделителем выступает точка с запятой.

    WooCommerce неправильно распознал CSV файл для интернет магазина

    Решение — указать в дополнительных параметрах импорта этот разделитель. Для этого вернитесь на шаг назад и нажмите «Показать расширенные настройки» слева от кнопки «Продолжить».

    В открывшихся параметрах найдите опцию «Разделитель CSV», укажите там точку с запятой и нажмите «Продолжить». После этого WooCommerce должен корректно распознать колонки.

    Внимательно просмотрите каждую строку и убедитесь, что WooCommerce корректно присвоил поле каждой строке. Когда всё проверите, нажмите внизу кнопку «Запустить инструмент импорта».

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

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

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

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

    Загрузка(импорт) товаров в WooCommerce

    плагин Woocommerce CSV Importer

    Прежде чем начинать импорт, необходимо установить плагин для импорта csv “Woocommerce CSV Importer”.

    После установки плагина необходимо его активировать и перейти к настройкам.

    Настройка модуля Woocommerce CSV Importer

    Переходим Plugins → Settings:

    Вкладка настройки плагина

    В открывшемся окне настраиваем:

    1. Field separator — устанавливаем разделить csv в строке
    2. Skip the first row — устанавливаем yes, если нужно пропустить первую строку с заголовками во время импорта
    3. При загрузке файла на русском языке, кодировка файла должна быть — utf-8, а в настройках плагина — не кодировать.

    Настройка модуля

    Остальные поля можно оставить по умолчанию.

    Импорт csv в WooCommerce

    Прежде чем начинать импорт, необходимо создать Хедеры.

    Создание Хедеров

    Переходим в меню плагина CSV Import во вкладку CSV Import(1) → Headers(2). Выбираем импортируемый файл(3) и нажимаем Load(4):

    Загрузка csv файла перед созданием хедеров

    Для каждого столбца нужно выставить названия столбцов:

    Создание хедеров

    После настроек сохраняем Хедер:

    Сохранение хедеров

    Импорт файла

    Переходим в меню плагина CSV Import во вкладку CSV Import(1) → Import(2). Select a file(3) — выбираем csv файл. Select a header(4) — выбираем файл с Хедерами и нажимаем Load(5).

    Вкладка импорт

    Открывается превью импорта, где нужно нажать Start и начнется импорт товаров в WooCommerce:

    Превью импорта

    По окончании импорта, появится соответствующее сообщение:

    Окончание импорта

    Результаты импорта

    Переходим во вкладку Products

    Переходим во вкладку Products:

    На странице просмотра товара можно увидеть, что загружены название товара(1), цена(2), характеристики(3), количество(4), артикул(5), категория(6), все изображения(7).

    Просмотр загруженного товара

    Пример CSV файла для импорта в WooCommerce

    Скачать пример csv файла можно здесь.

    Импорт в WooCommerce товаров с вариантами

    Описание примера csv файла товаров с вариантами

    На официальном сайте плагина “Woocommerce CSV Importer” есть пример csv файла товаров с вариантами:

    официальный пример файла товаров с вариантами

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

    Настройка и импорт товаров с вариантами

    Перед импортом товаров с вариантами должны быть созданы или загружены все атрибуты товара, к примеру — цвет, размер. Атрибуты можно создать вручную или загрузить csv файл через модуль “Woocommerce CSV Importer”.

    Переходим Products → Attributes. В столбце variations указываем ярлык (slug) атрибута, который задается здесь:

    настройка атрибутов

    Значения атрибутов также создаются заранее.

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

    Результат загрузки товаров с вариантами

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

    Пример товара с вариантами на сайте

    Пример csv файла для импорта товаров с вариантами

    Обычно при импорте товаров с вариантами в Woocommerce сначала грузятся простые товары(без вариантов), а потом их варианты. Прайсматрикс подготовил пример файла, в котором можно загрузить товары с вариантами за один раз. Скачать пример csv файла для импорта товаров с вариантами можно по ссылке.

    Описание основных полей, которые касаются контента карточки товара:

    • sku — артикул товара или его варианта;
    • post_parent — артикул родительского продукта, указывается только для вариантов;
    • product_type — признак, указывающий продукт или его вариант описан в данной строке;
    • variations — какие атрибуты будут вариантами;
    • pa_color — значения атрибута color;
    • pa_size — значения атрибута size;
    • regular_price — цена;
    • sale_price — цена со скидкой, если есть;
    • post_title — название;
    • post_content — полное описание;
    • post_excerpt — краткое описание;
    • category — категория;
    • featured_image — главное фото;
    • product_gallery — дополнительные фото.

    Попробуйте Прайсматрикс прямо сейчас! Полноценное тестирование 14 дней бесплатно

    Есть вопросы или нужна консультация? — наша поддержка всегда готова помочь в телеграме или личном кабинете.

    Рубрики

    Все инструкции

    Инструкции по пользованию сервисом, инструкции по установке на разных CMS (интеграции) и другие руководства

  • Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *