Импорт большого количества товаров в Woocomerce через XML. Какой самый лучший метод? - PullRequest
0 голосов
/ 31 октября 2019

Я хочу импортировать в Woocommerce большой XML-файл с несколькими изображениями, связанными с ним.

У меня есть 3 варианта:

  1. Скачать его через плагин WP all import,Я попытался, и это терпит крах и берет навсегда, несмотря на наличие главного сервера. Я не доволен этим решением, если не найду способ вставить изображения в галерею продуктов через атрибут и связать изображение с CDN. Я могу только представить, что обслуживание - это кошмар.

  2. Используйте wp wc cli: через скрипт ruby ​​/ python, который вызовет XML и введет все соответствующие значения. Никогда не пробовал.

  3. Прямой импорт в мою базу данных: я слышал, что это было сложно с Woocommerce, так как много ассоциаций.

    У любого есть комментарий, который будет приветствоваться доотправляясь в это путешествие.

1 Ответ

2 голосов
/ 31 октября 2019

По моему опыту, самым простым способом для меня было использование сценария командной строки для использования REST API Woocommerce для управления созданием продуктов. Для изображений вам нужно использовать стандартный Wordpress REST API, который не является лучшим документированным.

Используя этот маршрут, вам обязательно нужно написать скрипт для анализа вашего XML, а затем передатьотправьте данные в API REST для создания продуктов в магазине.

Я бы порекомендовал следующий метод создания ваших продуктов:

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

  2. Создайте свою продукцию. Вы будете использовать данные, заданные на шаге 1, чтобы назначить свои варианты и категории. Если вы имеете дело с переменными продуктами и вариантами продуктов, сначала создайте родительский объект и назначьте метаданные варианта.

  3. Выполните этап загрузки изображения. Вы сможете создавать записи библиотеки мультимедиа с помощью API-интерфейса WP REST, а затем обновлять сообщения о продуктах с помощью API-интерфейса WC REST.

В зависимости от количества имеющихся продуктов вы можетехочу взглянуть на добавление некоторых функций в скрипте импорта, чтобы установить начальную, конечную и смещенную точки. Например, запустите только 200 узлов продукта, начиная с 101-го узла продукта. Это прекрасно работает, так как вы можете открыть несколько приглашений для выполнения многопоточности для бедняков.

Некоторые вещи, на которые стоит обратить внимание:

  • Ваш сценарий можетна сервер, особенно если компьютер переходит в режим сна. Это то место, где хорошо иметь начальную точку в вашем скрипте, если вам нужно перезапустить с определенной точки.

  • Процесс может быть немного медленным. Существует множество узких мест, с которыми вы можете столкнуться (издержки HTTP-вызовов, медленное соединение и т. Д.).

  • API-интерфейс Wordpress REST плохо документирован. Для загрузки изображений вам просто нужно сделать аналогичный звонок. :

// PHP - Use Wordpress REST API Library to upload an image.
$imagedata     = file_get_contents("myimagefile.jpg");
$upload_result = $wordpress->post('media', [
    'body'    => $imagedata,
    'headers' => [
        'Content-Type'        => 'image/jpg',
        'content-disposition' => 'attachment; filename=myimagefile.jpg'
    ]
]);

...