POST /wp-json/content-api/v1/product/
Updates an existing WooCommerce product.
Content API Version: 1.0.4
Authentication
This endpoint requires a Bearer token in the Authorization
header. To authenticate:
- Go to Content API > Settings in your WordPress admin panel.
- Set a secure token in the “Token” field and save it.
- Include the token in your request header as follows:
Authorization: Bearer <your-token-here>
Replace <your-token-here>
with the token you configured.
Parameters
Name | Type | Description | Required |
---|---|---|---|
product_id | integer | The ID of the product | Yes if no sku provided |
sku | string | The SKU of the product | Yes if no product_id provided |
name | string | Product name | No |
status | string | Status of product (publish, draft, ect). Default “draft”. | No |
slug | string | Product slug | No |
description | string | Product description | No |
short_description | string | Short description | No |
price | float | Regular price | No |
sale_price | float | Sale price | No |
map_price | float | MAP price of the product (Requires 1.0.4) | No |
cost | float | Cost of the product (Requires 1.0.4) | No |
stock_status | string | Stock status (e.g., “instock”) | No |
stock_quantity | integer | Stock quantity | No |
tags | array | Product tags | No |
categories | array | Product categories by ID or slug. | No |
featured_image | string | URL of featured image | No |
images | array | Gallery image URLs | No |
yoast | object | Yoast SEO metadata | No |
Example Request Using Product ID
{
"name": "Sunglasses",
"slug": "sunglasses",
"sku": "SUNGLASS-1",
"description": "Updated description",
"short_description": "Updated short description",
"price": 129.99,
"sale_price": 89.99,
"map_price": 79.99,
"cost": 74.99,
"stock_quantity": 22,
"tags": ["test1", "test2"],
"categories": ["test-1", "test-2"],
"featured_image": "https://www.example.com/featured.jpg",
"images": [
"https://www.example.com/example1.jpg",
"https://www.example.com/example2.jpg"
],
"yoast": {
"title": "SEO Title",
"description": "SEO Description",
"premium": {
"social_appearance": {
"title": "Facebook Title",
"description": "Facebook Description",
"image": "https://www.example.com/facebook.jpg"
},
"x": {
"title": "Twitter Title",
"description": "Twitter Description",
"image": "https://www.example.com/twitter.jpg"
}
}
}
Example Response
{
"success": true,
"product_id": 123,
"message": "Product created successfully"
}
Possible Errors
Code | Message | Description | HTTP Status |
---|---|---|---|
not_authorized | Not Authorized | The provided Bearer token is invalid or does not match the configured token. | 401 |
product_sku_exists | Product with provided SKU already exists | The provided product SKU exists. | 400 |
slug_exists | Slug already in use by another product | Another product already has this slug. | 400 |
creation_failed | Failed to create product | An error occurred while saving the updated product data to the database. | 500 |
media_upload_failed | [Error message from WordPress] | Failed to upload the featured image or gallery images to the media library (e.g., invalid URL, server error). | 500 |