WooCommerce-通过API / HTTP请求更新产品

时间:2019-03-07 19:03:35

标签: woocommerce

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

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

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

是否有人知道需要修改哪些表,或者是否有办法在仪表板中进行修改?甚至可以调整对API的HTTP请求,使我可以通过SKU更新?

1 个答案:

答案 0 :(得分:0)

直接修改数据库中的产品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;
}