Hoàng Web

Thiết Kế Website WordPress

  • Kho giao diện
  • Dịch Vụ
    • Thiết kế web giá rẻ
    • Thiết kế website WordPress
    • Hosting Miễn Phí 100GB
    • Tích hợp thanh toán MoMo, ViettelPay, Vietcombank, MB..
    • Tối ưu Google PageSpeed
    • Sửa lỗi nâng cấp website
    • Viết plugin WordPress
    • Code Tool theo yêu cầu
  • Bảng giá
  • Quy trình làm việc
  • Giới thiệu
  • Liên Lạc
Trang chủ » Tài nguyên » Thêm sản phẩm WooCommerce sử dụng REST API

Thêm sản phẩm WooCommerce sử dụng REST API

Thứ Tư, 27/03/2019 by Hoàng Quách

  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

WooCommerce có tích hợp REST API, cho phép chúng ta thêm các sản phẩm mới vào cửa hàng thông qua giao diện API. Trong bài viết này, mình sẽ chỉ cho bạn cách làm điều này.

Cài đặt thư viện PHP cho WooCommerce REST API

Tải thư viện chính thức cho WooCommerce REST API, cho phép sử dụng API – thông qua cURL – với Node.js, PHP, Python và Ruby. Cài đặt với composer.

composer require automattic/woocommerce

Thêm mã khởi tạo để kết nối vào WooCommerce.

// Load Composer autoloader.
// @link https://github.com/brightnucleus/jasper-client/blob/master/tests/bootstrap.php#L55-L59
$autoloader = dirname( __FILE__ ) . '/vendor/autoload.php';
if ( is_readable( $autoloader ) ) {
	require_once $autoloader;
}

use Automattic\WooCommerce\Client;

$woocommerce = new Client(
	'https://shop.local',
	'the_consumer_key',
	'the_consumer_secret',
	[
		'wp_api'  => true,
		'version' => 'wc/v2',
	]
);

Lưu ý: để giao tiếp với WooCommerce API, chúng ta cần các tham số truyền vào Client gồm: địa chỉ URL woocommerce, consumer key, consumer secret, các tùy chọn khác như phiên bản API..

Thông số này bạn cần tạo trong trang quản trị WooCommerce, tại giao diện quản trị WP truy cập WooCommerce › Settings › API › Keys/Apps.

Tạo sản phẩm sử dụng REST API

Bây giờ, mình sẽ thêm sản phẩm mới trong WooCommerce, bằng đoạn mã sau:

$prod_data = [
	'name'          => 'A great product',
	'type'          => 'simple',
	'regular_price' => '15.00',
	'description'   => 'A very meaningful product description',
	'images'        => [
		[
			'src'      => 'https://shop.local/path/to/image.jpg',
			'position' => 0,
		],
	],
	'categories'    => [
		[
			'id' => 1,
		],
	],
];

$woocommerce->post( 'products', $prod_data );

Để biết thêm chi tiết các tham số, truy cập tại đây.

Thêm nhiều sản phẩm cùng lúc

Với API trên, chỉ cho phép bạn thêm từng sản phẩm. Để thêm nhiều sản phẩm cùng một request chúng ta cần sử dụng thư viện Requests (Thật tuyệt vì các request được chạy song song). Cùng với đó, thời gian chạy có thể giảm.

Với hàm requests_multiple() nó có thể chạy nhiều request cùng một lúc & đây là những gì chúng ta muốn.

Ví dụ, nếu chạy 2 GET requests , tham khảo ví dụ dưới đây:

$requests_array = [
	[
		'url'  => 'https://example.com/api-endpoint-1',
		'type' => 'GET',
	],
	[
		'url'  => 'https://example.com/api-endpoint-2',
		'type' => 'GET',
	],
];

$responses = Requests::request_multiple( $requests_array );

Kết quả biến $responses sẽ chứa thông tin của 2 request trên.

Sử dụng thư viện Requests với WooCommerce, ví dụ một sản phẩm có nhiều thông tin như danh mục , thẻ, các thuộc tính. Ví dụ dưới đây sẽ trả về danh mục & thuộc tính của sản phẩm:

/**
 * Returns URL for accessing the provided WooCommerce REST API endpoint.
 *
 * @param string $endpoint   API endpoint.
 * @param array  $parameters Optional parameters.
 *
 * @return string
 */
function build_api_url( $endpoint, $parameters = [] ) {
	// Add trailing slash to URL.
	$url     = trailingslashit( 'https://example.com/wp-json/wc/v2/' ) . $endpoint;
	$api_url = add_query_arg( \array_merge( $parameters, [
		'consumer_key'    => 'ck_000',
		'consumer_secret' => 'cs_000',
	] ), $url );

	return $api_url;
}
// Make requests to get existing categories and attributes.
$requests = [
	[
		'url'  => build_api_url( 'products/categories' ),
		'type' => 'GET',
	],
	[
		'url'  => build_api_url( 'products/attributes' ),
		'type' => 'GET',
	]
];

$responses = Requests::request_multiple( $requests );

Để thêm nhiều sản phẩm, bạn thực hiện phương thức POST và thêm dữ liệu sản phẩm vào mảng trông như thế này:

$tmp_requests_array[] = [
	'url'     => build_api_url( "products" ),
	'type'    => 'POST',
	'data'    => $prod_data,
];

Lưu ý: chúng ta không nên gửi quá nhiều yêu cầu vào cùng một thời gian, có thể làm nghẽn server.

Để nhận được bài viết mới vui lòng đăng ký kênh kiến thức WordPress từ A-Z ở Form bên dưới. Bạn cũng có thể nhận được sự trợ giúp trên Twitter và Facebook

  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

Chuyên mục: Tài nguyên Tìm kiếm: api, Woocommerce

Comments

  1. Đức Thắng says

    Thứ Ba, 17/09/2019 at 8:48 chiều

    AD ơi. Những code này tạo vào 1 file mới hay code thêm vào file nào vậy ạ?

    • Hoàng Quách says

      Thứ Ba, 17/09/2019 at 10:04 chiều

      cách hỏi của bạn thì m thấy cái này nâng cao với bạn rồi 🙂 inbox nếu muốn thuê mình làm nhé!

  2. Luân says

    Thứ Hai, 18/11/2019 at 5:50 chiều

    Mình muốn thuê bạn kết nối API , cho xin sdt trao đổi nhé

    • Hoàng Quách says

      Thứ Hai, 18/11/2019 at 9:43 chiều

      bạn add zalo 0987342124

Tôi giúp gì cho bạn?

HOÀNG WEB

Địa chỉ: Tây Sơn, Phường Quang Trung, Quận Đống Đa, Hà Nội

Hotline: 0987 342 124 – 0868 292 303 (8h:00 – 21h:00)

Email: [email protected]

Website: www.hoangweb.com

KẾT NỐI VỚI TÔI

  • Facebook
  • GitHub
  • YouTube

SẢN PHẨM

  • Plugin Thanh Toán Quét Mã QR Code Tự Động
  • WP2Speed – Tối ưu Google Speed
  • 23WebHost – Hosting Miễn Phí 100GB

LIÊN KẾT

  • Có nên thuê thiết kế website giá rẻ?
  • Hướng dẫn thanh toán
  • Chính sách hoàn tiền
  • Trung tâm hỗ trợ

Copyright © 2023 | All rights reserved | HOANG WEB
Mọi hình thức sao chép nội dung trên website này mà chưa được sự đồng ý đều là trái phép.