Home > WooCommerce > WooCommerce REST API – Create, Read, Update, Delete Products

WooCommerce REST API – Create, Read, Update, Delete Products

In this tutorial, we will learn about woocommerce REST API for products like how to create, read, update, and delete the products with REST API.

WooCommerce is the most popular eCommerce platform to build any type of online store. WooCommerce has an integrated WordPress REST API. It allows us to create, read, update and delete the products using the requests in JSON format.

The current WP REST API integration version is v3 which takes the first-order position in endpoints. To use the WP REST API you must have the WordPress 4.4+ and WooCommerce 3.5+ latest version.

WooCommerce Product REST API

The woocommerce products API allows you to create, view, update and delete individual, or multiples, of products.

You have to pass the property’s name and their values in the request and send that to your woocommerce website wp-json REST URL along with API keys.

Generate WC REST API Keys

To get the WooCommerce REST API keys, go to woocommerce’s settings page (WooCommerce > Settings) and then click on the “Advanced” tab. Here you will see the further REST API tab link click on it and you will see the following page.

WooCOmmerce Rest API Tab

Now click on the “Add key” or “Create an API key” button to generate the new keys for your woocommerce store. Then add the details about keys and give permission as per need.

When you have generated WooCommerce REST API successfully, now you are ready to use the keys in REST API to authenticate the request in order to create, read, update or delete the products.

wc-rest-api-keys

Note: Don’t forget to save the keys somewhere else because when you refresh the page the keys will be hidden. And you will not able to see it again though you can change the user, description, and permission later but not API keys.

Create a Product with REST API

Creating a product using the woocommerce REST API is very simple and you can easily do that as you make normal other requests in PHP, Ruby, or NodeJS languages or you can also use the CURL to make requests.

If you are making the request from another wordpress website then you can use the wp_remote_post() or wp_remote_get() functions.

To create the product in woocommerce using the REST API, we will use the wp_remote_post() method to send the post request with endpoints and parameters.

HTTP Request

POST /wp-json/wc/v3/products

In the above code, first, we have taken the $endpoint and then product data fields like name, type, category, image, price, etc.

Then we made a request using the wp_remote_post() method passing the header to authorize the website (Change the KEY:SECRET with yours) and body data.

Using the wp_remote_retrieve_body() method, return the response and response will be in JSON format. You can print that and make further conditions accordingly.

Note: If you are making request from another website that is built in like PHP, JavaScript, Ruby, or Python then you have to install the woocommerce library and tools to send request. You can also make requests without using other request libraries or CURL.

Read a Product with REST API

Now we will see how to retrieve the product details with woocommerce REST API. We will use wp_remote_get() method to read the product.

You just have to pass the product ID in the request API URL that you want to read the product and send the request with header authorization. See the following code to get the woocommerce product details using API.

HTTP Request

GET /wp-json/wc/v3/products/<id>

You can see in the above code, we pass the ‘567’ as a product ID in the request URL endpoint and then made the request by passing the API keys.

List all Products with Rest API

To get the list of all the products with woocommerce REST API, you have to make the GET request with /products endpoint. You can also pass the additional parameters in the request for filtering the products.

HTTP Request

GET /wp-json/wc/v3/products

Some common avaible parameters are page, per_page, orderBy, slug, status, sku. There are more you can check here.

Update a Product with REST API

To update the product using the woocommerce REST API, you have to make the HTTP PUT request by passing the specific product ID.

Let’s say we want to update the price of a product, so we will pass the array data having the new price of the product and send a request.

HTTP Request

PUT /wp-json/wc/v3/products/<id>

We sent the POST/PUT request to woocommerce REST API with an authorization header to update the price of a specific product.

Remove a Product with REST API

Now let’s see how to remove the product from woocommerce using the REST API and how to make an HTTP request to delete it.

To delete the wooocommerce product using the REST API, you need to pass the product ID in the request. The request will remove the product from publish the list and move it to the trash list.

HTTP Request

DELETE /wp-json/wc/v3/products/<id>

Did you notice that we have used the ‘force’ parameters in the delete request? It is used to delete the product permanently without moving it to the trash list.

The default value of the ‘force’ parameter is false, which means that the product will not delete permanently and it will move to the trash list.

Conclusion

So in this tutorial, you learned about woocommerce REST API and how you can create, read, update and delete the products.

As we see how to make HTTP request using the wp_remote_get() and wp_remote_post() methods. You can also use the other third-party libraries to make requests.

Hope this tutorial is helpful for you.

Photo of author

About Aman Mehra

Hey there! I'm Aman Mehra, a full-stack developer with over six years of hands-on experience in the industry. I've dedicated myself to mastering the ins and outs of PHP, WordPress, ReactJS, NodeJS, and AWS, so you can trust me to handle your web development needs with expertise and finesse. In 2021, I decided to share my knowledge and insights with the world by starting this blog. It's been an incredible journey so far, and I've had the opportunity to learn and grow alongside my readers. Whether you're a seasoned developer or just dipping your toes into the world of web development, I'm here to provide valuable content and solutions to help you succeed. So, stick around, explore the blog, and feel free to reach out if you have any questions or suggestions. Together, let's navigate the exciting world of web development!

Leave a Comment