---
description: https://www.hoangweb.com/tai-nguyen/them-san-pham-woocommerce-su-dung-rest-api
---

# \[API] Thêm sản phẩm WooCommerce sử dụng REST API



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](https://woocommerce.github.io/woocommerce-rest-api-docs/#libraries-and-tools) 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](https://www.hoangweb.com/develop/php/composer-trinh-quan-ly-thu-vien-cho-ung-dung-web-php).

| 1 | `composer require automattic/woocommerce` |
| - | ----------------------------------------- |

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

| 123456789101112131415161718 | `// Load Composer autoloader.// @link` [`https://github.com/brightnucleus/jasper-client/blob/master/tests/bootstrap.php#L55-L59`](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`](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:

| 12345678910111213141516171819 | `$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`](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](https://woocommerce.github.io/woocommerce-rest-api-docs/?php#products).

### 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:

| 123456789101112 | `$requests_array` `= [    [        'url'`  `=>` `'`[`https://example.com/api-endpoint-1`](https://example.com/api-endpoint-1)`',        'type'` `=>` `'GET',    ],    [        'url'`  `=>` `'`[`https://example.com/api-endpoint-2`](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:

| 12345678910111213141516171819202122232425262728293031 | `/** * 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/`](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:

| 12345 | `$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.

Hãy cho mình biết suy nghĩ của bạn trong phần bình luận bên dưới bài viết này. Hãy theo dõi kênh chia sẻ kiến thức WordPress của Hoangweb trên [Twitter](https://twitter.com/hoangwebdotcom) và [Facebook](https://www.facebook.com/hoangweb24)

* 0SHARES
* [Facebook](https://www.facebook.com/sharer/sharer.php?u=https://www.hoangweb.com/tai-nguyen/them-san-pham-woocommerce-su-dung-rest-api\&t=Th%C3%AAm+s%E1%BA%A3n+ph%E1%BA%A9m+WooCommerce+s%E1%BB%AD+d%E1%BB%A5ng+REST+API)
* [Facebook Messenger](https://fb-messenger/share/?link=https://www.hoangweb.com/tai-nguyen/them-san-pham-woocommerce-su-dung-rest-api)
* [Gmail](https://mail.google.com/mail/u/0/?view=cm\&fs=1\&su=Th%C3%AAm+s%E1%BA%A3n+ph%E1%BA%A9m+WooCommerce+s%E1%BB%AD+d%E1%BB%A5ng+REST+API\&body=https://www.hoangweb.com/tai-nguyen/them-san-pham-woocommerce-su-dung-rest-api\&ui=2\&tf=1)
* [Viber](viber://forward?text=Th%C3%AAm%20s%E1%BA%A3n%20ph%E1%BA%A9m%20WooCommerce%20s%E1%BB%AD%20d%E1%BB%A5ng%20REST%20API%20https%3A%2F%2Fwww.hoangweb.com%2Ftai-nguyen%2Fthem-san-pham-woocommerce-su-dung-rest-api)
* [Skype](https://web.skype.com/share?url=https://www.hoangweb.com/tai-nguyen/them-san-pham-woocommerce-su-dung-rest-api)

#### Bài Viết Liên Quan:

1. [Hiển thị hình ảnh đại diện cho danh mục sản phẩm – woocommerce](https://www.hoangweb.com/wordpress/hien-thi-hinh-anh-dai-dien-cho-danh-muc-san-pham-woocommerce)
2. [Tùy biến phương thức vận chuyển dựa tổng đơn hàng](https://www.hoangweb.com/wordpress/tuy-bien-phuong-thuc-van-chuyen-dua-tong-don-hang)
3. [Danh sách Hooks tùy chỉnh WooCommerce](https://www.hoangweb.com/wordpress/hooks-tuy-chinh-woocommerce)
4. [\[WooCommerce\] Thêm nút tiếp tục mua hàng ở trang giỏ hàng](https://www.hoangweb.com/wordpress/woocommerce-them-nut-tiep-tuc-mua-hang-o-trang-gio-hang)
5. [\[WooCommerce\] Chỉ hiển thị sản phẩm có giá bán](https://www.hoangweb.com/wordpress/woocommerce-chi-hien-thi-san-pham-co-gia-ban)
6. [Tùy chọn thanh toán trong WooCommerce](https://www.hoangweb.com/wordpress/tuy-chon-thanh-toan-trong-woocommerce)
7. [Tùy biến search form với WooCommerce](https://www.hoangweb.com/wordpress/tuy-bien-search-form-voi-woocommerce)
8. [Part 2 – Thêm custom fields cho product sử dụng advanced custom fields \[woocommerce\]](https://www.hoangweb.com/wordpress/them-custom-fields-cho-product-voi-acf-woocommerce)
9. [Redirect URL sau khi nhấn add to cart \[WooCommerce\]](https://www.hoangweb.com/wordpress/redirect-url-sau-khi-nhan-add-cart-woocommerce)
10. [Thêm tùy chọn quận huyện cho WooCommerce](https://www.hoangweb.com/wordpress/them-tuy-chon-quan-huyen-cho-woocommerce)
