WooCommerce - обновление продукта через запросы API / HTTP - PullRequest
0 голосов
/ 07 марта 2019

Я пытаюсь обновить продукты WooCommerce с помощью уведомлений, отправленных сторонним приложением. Я прочитал документацию о том, как это сделать, и это кажется достаточно простым, но похоже, что единственный способ использовать API для обновления продукта - это ID продукта. К сожалению, они создавались постепенно при загрузке довольно большого каталога продуктов в WooCommerce.

При создании .csv и загрузке в WooCommerce мы установили для SKU тот же идентификатор, что и у продуктов в стороннем программном обеспечении (книга ISBN). Таким образом, я могу отправить этот номер (номер, который соответствует SKU в WC) с запросом HTTP, но это не позволяет мне выполнять обновление продукта.

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

Кто-нибудь знает, какие таблицы нужно будет изменить или есть ли способ сделать это на панели инструментов? Может быть, даже настроить мой HTTP-запрос к API, который позволит мне обновлять по SKU?

1 Ответ

0 голосов
/ 07 марта 2019

Изменение идентификаторов продуктов в базе данных напрямую не является хорошим выбором. Это действие необходимо выполнять каждый раз при создании новых продуктов.

Самым простым и безопасным подходом является создание нового API, какая цель для поиска идентификатора продукта по SKU.

Вот часть примера кода.

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...