通过 XML 将大量产品导入 Woocommerce。最好的方法是什么?

Importing large amount of Products to Woocomerce via XML. What's the best method?

我想在 Woocommerce 中导入一个包含多个关联图像的大型 XML 文件。

我有3个选择:

  1. 通过WP全导入插件下载。我试过了,尽管有一台顶级服务器,它还是崩溃了,而且要花很长时间。我对这个解决方案不满意,除非我找到一种方法通过属性将图像插入产品库并将图像 link 插入 CDN。我只能想象维护是一场噩梦。

  2. 使用 wp wc cli:通过 ruby/python 脚本调用 XML 并引入所有相应的值。没试过。

  3. 直接导入我的数据库:我听说 Woocommerce 很棘手,因为有很多关联。

    在开始此旅程之前欢迎任何人发表评论。

根据我的经验,对我来说最简单的方法是使用命令行脚本来利用 Woocommerce REST API 来处理产品的创建。对于图像,您需要使用标准的 Wordpress REST API,这不是最好的记录。

使用此路线,您肯定需要编写一个脚本来解析您的 XML,然后将数据交给 REST API 以执行商店中产品的创建.

我建议您使用以下方法创建产品:

  1. 对您的数据进行初始的第一次传递以创建您的全局属性、分类法、类别等。您需要首先执行此操作,因为您需要大量的产品数据发送您的 CRUD 调用使用 post、分类法等的 ID

  2. 创建您的产品。您将使用在第 1 步中设置的数据来分配变体和类别。如果您要处理可变产品和产品变体,请确保先创建父级并分配变体元数据。

  3. 执行图像上传部分。您将能够使用 WP REST API 创建媒体库条目,然后使用 WC REST API.

    [=41= 更新产品 posts ]

根据您拥有的产品数量,您可能希望在导入脚本中添加一些功能来设置开始、停止和偏移点。例如,只有运行 200个产品节点从第101个产品节点开始。这很好用,因为你可以打开多个提示来做一些穷人的多线程。

需要注意的事项:

  • 您的脚本可能会超时到服务器,尤其是在计算机进入睡眠状态时。这是在你的脚本中有一个起点的地方很好,以防你需要在某个点重新启动。

  • 这个过程可能有点慢。您可以 运行 遇到很多瓶颈(HTTP 调用开销、慢速连接等)。

  • Wordpress REST API 的文档很少。要上传图片,您只需要执行类似的调用即可。 :

// 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'
    ]
]);