Woocommerce импорт товаров php

Импорт товаров в WooCommerce из 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.

Читайте также:  Python yield and return

Для автоматической связи свойств из прайс-листа достаточно указать название столбца и сверить его с тегом из колонки Сопоставление. При загрузке такой таблицы 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
Читайте также:  Php fatal error output buffer

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Источник

    Использование REST API WC WooCommerce для импорта товара

    Вопрос: Подскажите какие sql запросы использует WooCommerce для полного добавления одного товара(с картинкой). Или есть ли способ отследить какие запросы прилетают к mysql от wordpress? Ответ: Там не один запрос, а несколько, в разные таблицы. На прямую базу данных WooCommerce лучше не трогать, для это есть REST API WC.

    REST API WC WooCommerce документация

    Настройка WooCommerce REST API PHP Library

    Устанавливаем библиотеку WooCommerce REST API PHP Library в корень сайта нашего проекта, при помощи Composer

    # composer require automattic/woocommerce

    Генерируем ключи согласно WooCommerce REST API. Включаем в настройках плагина WooCommerce поддержку REST API . Жмем генерировать ключи, будут созданы 2 ключа: Пользовательский ключ (Consumer Key) и Секретный код пользователя (Consumer Secret). Их обязательно нужно записать!

    Тестируем подключение REST, для этого при переходе по (подставьте свой домен) https://local.wordpress.dev/wp-json/wc/v2/orders, должен вернуться JSON в браузере. В текущей версии WooCommerce API v2 возвращается ошибка 401. Если и у вас так, то проверку можно осуществить зайдя в корень и получив в ответ огромный массив Json https://local.wordpress.dev/wp-json/wc/v2 или с ключами (получим пустой Json) https://local.wordpress.dev/wp-json/wc/v2/orders?consumer_key=XXXX&consumer_secret=XXXX

    Настраиваем подключение REST для PHP библиотеки (настройка для нового API REST WooCommerce 2.6 или новее). После подключения выведем все товары нашего магазина.

    Формат запроса/ответа REST API WC WooCommerce

    Формат ответа по умолчанию — JSON. Запросы с помощью тела сообщений используют простой JSON для установки или обновления атрибутов ресурсов. Успешные запросы возвратят статус 200 OK HTTP.

    Общая информация об ответах:

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

    Поддержка JSONP. WP REST API поддерживает JSONP по умолчанию. Ответы JSONP используют тип содержимого application/javascript. Вы можете указать обратный вызов, используя параметр ?_jsonp для запросов методом GET, чтобы получить ответ, завернутый в функцию JSON:

    FAQ: Как при помощи REST API WC WooCommerce вывести все товары?

    Как вывести все товары в WooCommerce — казалось бы тривиальный вопрос, но это не так просто. Для каждой версии API вывод всех товаров реализуется по разному.

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

    Много разных советов на просторах интернета, но у меня реально заработал код ниже, спасибо spartanz51. В коде задается массив, в котором указано вывести страницы от 1 до 100, если у вас больше 1000 товаров — увеличивайте ещё.

    FAQ: как вывести все товары в определенной категории

    WooCommerce вывести все товары принадлежащей категории с id 75.

    print_r($wooeto->get('products', array('category' => '75', 'per_page' => '100')));

    В этом случае выведется только часть товаров, так как не задан per_page

    print_r($wooeto->get('products', array('category' => '75', 'orderby' => 'date')));

    Источник

  • Оцените статью