首页 > 解决方案 > WooCommerce - 通过 API / HTTP 请求更新产品

问题描述

我正在尝试通过第三方应用程序发送的通知来更新 WooCommerce 产品。我已经阅读了有关执行此操作的文档,看起来很简单,但使用 API 更新产品的唯一方法似乎是通过产品 ID。不幸的是,这些是在将相当大的产品目录上传到 WooCommerce 时增量创建的。

在制作 .csv 文件并上传到 WooCommerce 时,我们将 SKU 设置为与产品在第三方软件(图书 ISBN)中的 ID 相同。因此,我可以通过 HTTP 请求发送该编号(与 WC 中的 SKU 对应的编号),但这不允许我执行产品更新。

在我看来,完成这种集成的最佳方式是将我在 WooCommerce 中的所有产品的产品 ID 更改为与当前 SKU 的唯一编号相同。在仪表板或用户界面中似乎无法做到这一点,所以我想我必须在数据库级别上做到这一点。

有谁知道需要修改哪些表,或者是否有办法在仪表板中执行此操作?甚至可以调整我对 API 的 HTTP 请求,以允许我按 SKU 进行更新?

标签: woocommerce

解决方案


直接修改数据库中的产品ID不是一个好的选择。每次创建新产品时都需要执行此操作。

最简单、最安全的方法是创建一个新的 API,用于按 SKU 搜索产品 ID。

这是示例代码的一部分。

function get_product_by_sku( $sku ) {
  global $wpdb;

  $product_id = $wpdb->get_var( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key='_sku' AND meta_value='%s' LIMIT 1", $sku ) );

  if ( $product_id ) return new WC_Product( $product_id );

  return null;
}

推荐阅读