June 21, 2023
How to use the WooCommerce API

WordPress is the most popular CMS currently in use. Why? Because it easily integrates with thousands of tools to improve your website’s performance and functionality.

These tools cover a wide range of industries, but users are consistently impressed by the amount of tools available for ecommerce. One of the most powerful ecommerce tools is the WooCommerce API.

Understanding the WooCommerce API

WooCommerce’s API has three main components. To understand how powerful this API can be, let’s take a look at each component individually.

REST API

WooCommerce’s REST API allows users to access their WooCommerce storefront from outside their website. This design will enable you to access your store from other internet applications like Shopify, for example.

Ultimately, the REST API makes managing your store easier. You can access your WooCommerce store from other apps’ dashboards and still have access to full WooCommerce admin functionality.

Legacy API

Enabling the Legacy API used to be how you would activate your API for WooCommerce. However, this part of the process is becoming obsolete in more recent versions.

The newest version is the WooCommerce REST API. It integrates directly with WordPress’s API. The Legacy API is WooCommerce’s older version. Users should double-check their settings, as WooCommerce tends to launch the Legacy API by default.

Webhooks

Webhooks allow WooCommerce to “call out” to other apps. For example, if you want actions within WooCommerce to be triggered by actions taken in other apps, you can use a webhook.

The API accomplishes this using URLs. You can send a notification alert via the API to a specific URL. These URLs can cause events on a particular site, triggering another action on a separate site or page.

Sell your products online, worry-free

Officially recommended by WooCommerce, our hosting is made for online businesses like yours

Key WooCommerce API terminology

As you walk through WooCommerce’s API documentation, you’ll come across some terminology unique to WooCommerce. Let’s review these terms and definitions to help you through your API process.

Request/response format

This indicates the format WooCommerce will use to transmit particular types of data. It’s important to be aware of the different data types because certain URLs and triggers won’t work if they don’t receive data in the proper format.

The standard format for most data within the WooCommerce API is JSON. Calendar dates return as integers, and any number (like money, pricing, or totals) will be in a text string and default to two decimal places. Anything left blank will return as an empty string or “null.”

Authentication

The authentication process allows for WooCommerce API integration. Users can connect the API to other platforms using API keys.

To generate a WooCommerce API key, you need to access your settings. Two keys are available for WooCommerce users, a Secret Key and a Consumer Key.

Consumer Keys are also known as General or API Keys. These keys are issued to a user from different platforms. WooCommerce API keys allow you to connect to other platforms like WordPress, Shopify, etc.

The Secret Key behaves similarly for certain apps and platforms. When you connect third-party tools or apps to WooCommerce, the General or Consumer Key will act as the “username” of your login credentials, whereas the Secret Key will act as your password.

Endpoints

In terms of API technology, an endpoint is the point at which the API interacts with another app or platform. An example of an endpoint would be the URL for a specific platform, like Shopify or Facebook.

Setting up WooCommerce API

The process of setting up your WooCommerce API is relatively straightforward. Follow the steps below to link all your tools to the platform and transform your customer’s ecommerce shopping experience.

You’ll need to navigate through the following menus in your WordPress dashboard:

WooCommerce>Settings>Advanced>Legacy API

There is a checkbox to indicate whether or not the API is enabled. Ensure the box is checked, click save changes, and API Access is now available.

How to create API keys in WooCommerce

API Keys are the backbone of the WooCommerce API functions. It’s time to create some to connect your favorite tools and platforms. Follow the steps below to do so.

1. Add key

You’ll need to create a new key for every app or platform you connect to WooCommerce. The API will generate a Consumer Key and a Secret Key for every new connection you create.

You’ll need to head to the REST API menu to add a key. Here’s how you can find it:

WooCommerce>Settings>Advanced>REST API

Once you’re there, click Add Key.

2. Configure key settings

Once you click “Add Key,” there are some decisions you’ll need to make. For each key you create, you’ll need to configure the following settings:

  • Description – This is where you can “name” each key for the corresponding platform to help organize them
  • Owner – Assign a key to the specific user responsible for it within your team
  • Permissions – These dictate what functions you’re granting this particular key. For example, if you need a specific key to delete or adjust data, you’ll need to give “Read/Write Permissions.”

3. API generation

Once your settings configuration is complete, you’ll hit the “Generate Key” button at the bottom of the screen. The next page you’re taken to will contain a Consumer Key and Secret Key, and a QR code for this connection.

Once you exit the API Generation page, you won’t be able to go back. So, copy these keys into another Word or Notes document and hold onto them. You’ll need them to connect to your WooCommerce setup.

4. Using keys to connect to third-party apps

Now, with your API keys generated, we can begin connecting to third-party apps and platforms, known as “API clients.” You’ll need to follow steps on both sides of the connection in the WooCommerce menu in WordPress and your chosen app.

Every platform is different, so you’ll need to access that particular platform’s help resources. Look for tips on how to access the app’s authorization credentials.

Most platforms offer multiple authorization types. You’ll want to select Basic Authorization.

Copy and paste your General or Consumer API Key into the “Username” bar and use your Secret Key as the password. By doing this, you’ve successfully connected WooCommerce to one of your other powerful ecommerce tools. The next step is to start making API requests.

How to make WooCommerce API requests

API requests are where the magic happens. These requests make all the “cool” functions that will make your life easier possible. These requests come in two formats – GET or PUT. Follow the steps below to configure them between tools.

1. Test a GET Request

GET requests are helpful in getting data from other sources, as the name suggests. A practical ecommerce example would be getting a list of your WooCommerce products. Doing this requires some tech-savvy, but if you follow instructions, you should be ok.

To perform this GET function, you’ll need to type in the following URL:

https://yoursite.com/wp-json/wc/v3/products

Naturally, you’ll want to input your URL where it says “yoursite.” When executed, this GET will pull all the data for your products listed in WooCommerce.

The WooCommerce API integration will return this data to you in a JSON format. If done correctly, the platform you connect to WooCommerce will parse this data so it winds up in an easy, usable format for your end users.

If you execute this GET function and receive a 401, or other numbered code, it means there is some error. You may have to go back or consult more of the platform’s help resources to troubleshoot. If the GET request is done correctly, you should see the JSON string in the “Body” section of your dashboard.

2. Test a PUT request

Using the data from our GET request in step 1, you’ll want to check a PUT request as well. For our example, let’s say the product we’re using for this request has a product ID of 101. To execute the GET request, our URL will look a little different:

https://yoursite.com/wp-json/wc/v3/products/101

The process to make this a PUT function instead of a GET is simple:

  • Next to the URL field, there is a dropdown menu
  • Select it and change the function from GET to PUT
  • In the Body pane of the dashboard, choose the “Raw” option.
  • Open the “text” dropdown menu and select JSON

With those steps complete, you can now make your request. An example of using this might be if you wanted to change pricing on product #101. To do so, you’d enter the following text:

{
"regular_price": "50"
}


After that, you can make the results live on your site by hitting Send.

Useful ecommerce API requests

Several API requests will be useful in your ecommerce store. It may require research to find an API request to do exactly what you’re looking for, but we’re listing a few basic ones below to get you started.

GET requests

Here are the URLs for some GET requests you can put into action in your ecommerce store:

  • GET all products: https://yoursite.com/wp-json/wc/v3/products/
  • GET all customers: https://yoursite.com/wp-json/wc/v3/customers/
  • GET a single customer: https://yoursite.com/wp-json/wc/v3/customers/{customer ID}
  • GET all product categories: https://yoursite.com//wp-json/wc/v3/products/categories
  • GET a product variation: https://yoursite.com/wp-json/wc/v3/products/{product ID}/variations/{variation ID}
  • GET a single product: https://yoursite.com/wp-json/wc/v3/products/{product ID}

PUT requests

Here are a few basic PUT requests you may find helpful for your store.

Update product attributes (color, size, etc.)

{
"id": 1,
"name": "Color”,
"slug": "pa_color",
"type": "select",
"order_by": "name",
"has_archives": true,
"_links": {
"self": [
{
"href": "https://example.com/wp-json/wc/v3/products/attributes/6"
}
],
"collection": [
{
"href": "https://example.com/wp-json/wc/v3/products/attributes"
}
]
}
}

Update customer’s full name

{
"first_name": "John",
"last_name": "Doe"
}

Update product pricing for a variant

{
"regular_price": "81"
}

Use one request to update price and inventory quantity

{
"regular_price": "50",
"stock_quantity": 30
}

Update shipping address

{
"shipping": {
"first_name": "Jane",
"last_name": "Doe",
"company": "Jane Doe Co",
"address_1": "361 Outside Rd",
"address_2": "Suite 101",
"city": "Las Vegas",
"state": "NV",
"postcode": "89102",
"country": "US"
}
}

Update a product review

{
"id": 20,
"date_created": "2018-09-08T21:47:19",
"date_created_gmt": "2018-09-09T00:47:19",
"product_id": 31,
"status": "approved",
"reviewer": "Claudio Sanches",
"reviewer_email": "john.doe@example.com",
"review": "Now works just fine.",
"rating": 5,
"verified": true,
"reviewer_avatar_urls": {
"24": "https://secure.gravatar.com/avatar/908480753c07509e76322dc17d305c8b?s=24&d=mm&r=g",
"48": "https://secure.gravatar.com/avatar/908480753c07509e76322dc17d305c8b?s=48&d=mm&r=g",
"96": "https://secure.gravatar.com/avatar/908480753c07509e76322dc17d305c8b?s=96&d=mm&r=g"
},
"_links": {
"self": [
{
"href": "https://example.com/wp-json/wc/v3/products/reviews/20"
}
],
"collection": [
{
"href": "https://example.com/wp-json/wc/v3/products/reviews"
}
],
"up": [
{
"href": "https://example.com/wp-json/wc/v3/products/31"
}
],
"reviewer": [
{
"embeddable": true,
"href": "https://example.com/wp-json/wp/v2/users/1"
}
]
}
}

Advanced usage of WooCommerce API

In addition to the basics, users can also leverage the WooCommerce API to handle some advanced functions for their ecommerce store. Some of the advanced features of WooCommerce are:

  • Custom pagination – WooCommerce API allows users to create a custom item number per page to suit the style and layout of their website
  • Webhooks – Users can program WooCommerce webhooks to trigger events on other websites. Ecommerce storefronts can use this to help with WooCommerce shipping options, packaging, the return process, and more
  • Asynchronous tasks – Stores can trigger asynchronous tasks to fire separately after an order has been paid, or a customer has created an account with your brand
  • Filtering and sorting data – You can add custom fields to WooCommerce products and implement custom sorting features to improve your customer experience

WooCommerce best practices and tips

The WooCommerce API gives you a lot of freedom to customize your ecommerce store. It’s important not to “over-customize” and add too many “bells and whistles” to your ecommerce store. Here are some best practices to keep in mind as you customize your ecommerce store.

Use a plugin

If you only plan to make minor changes to your store, you may want to consider using a plugin. Everything is handled within the dashboard and doesn’t require additional code or text strings.

JetPack for WordPress is a useful plugin for basic WooCommerce customization. If the updates you’re making only involve changes to the stylesheet or CSS feed, this option is for you.

Additionally, there are many CSS plugin options available if you want to have global CSS that is not lost when you change the active theme or child theme.

Use a child theme

After updating the stylesheet or CSS, they may reset with each update of your website. To keep your customizations as WordPress continues to update your site, consider using a child theme.

The child theme allows you to make changes without adding code. In addition, the changes you make apply to the parent theme – allowing you to safely make updates to improve the overall customer experience.

Get fully managed WooCommerce hosting

The WooCommerce API offers many additional features that can transform how you run your ecommerce business. Using it properly can improve customer experience, improve storefront performance, and ultimately boost profitably.

But a powerful tool like this API is only as good as the hosting it runs on. Nexcess offers powerful, fully managed WordPress and WooCommerce hosting. Contact the team today and see how we can take your business – and your customer’s shopping experience – to the next level.

Nexcess
Nexcess

Nexcess, the premium hosting provider for WordPress, WooCommerce, and Magento, is optimized for your hosting needs. Nexcess provides a managed hosting infrastructure, curated tools, and a team of experts that make it easy to build, manage, and grow your business online. Serving SMBs and the designers, developers, and agencies who create for them, Nexcess has provided fully managed, high-performance cloud solutions for more than 22 years.


We use cookies to understand how you interact with our site, to personalize and streamline your experience, and to tailor advertising. By continuing to use our site, you accept our use of cookies and accept our Privacy Policy.