/** * Creates WooCommerce products in bulk with REST API. * * @see https://wpcodebook.com/snippets/create-woocommerce-products-in-bulk-with-rest-api/ * @see https://woocommerce.github.io/woocommerce-rest-api-docs/ * @see https://developer.wordpress.org/reference/functions/wp_remote_post/ * * @return bool|string true on success, error message otherwise */ function wpcodebook_create_products_rest_api( $site_url, $ck, $cs, $products_data ) { // Create product $response = wp_remote_post( untrailingslashit( $site_url ) . '/wp-json/wc/v3/products/batch', array( 'headers' => array( 'Authorization' => 'Basic ' . base64_encode( "{$ck}:{$cs}" ), ), 'body' => array( 'create' => $products_data, ), ), ); // Check for WordPress errors if ( is_wp_error( $response ) ) { return $response->get_error_message(); } // Check for remote response errors if ( ! in_array( wp_remote_retrieve_response_code( $response ), array( 200, 201 ) ) ) { return wp_remote_retrieve_response_message( $response ); } // Success return true; }
Example:
$site_url = 'https://example.com'; $ck = 'ck_62febaa7cd4b48fcecfacb71e366e352faef31f3'; $cs = 'cs_888c102733dcad0d7045ad444655c246eb55272d'; $products_data = array( array( 'name' => esc_html__( 'Hoodie' ), 'regular_price' => 189.99, ), array( 'name' => esc_html__( 'Hoodie with logo' ), 'regular_price' => 199.99, ), ); wpcodebook_create_products_rest_api( $site_url, $ck, $cs, $products_data );