=== W3S API Extension for Woocommerce ===
Contributors: w3specialists
Tags: woocommerce, api, extension, categories
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GPLv3
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Stable tag: 1.0.1
Enhances your store’s REST API by adding powerful, flexible endpoints. Stay tuned more Endpoints are coming!
== Description ==
Enhances your store’s REST API by adding powerful, flexible endpoints.
Stay tuned more are coming!
**Add or Remove a Single Category**
Easily append or remove one category at a time—by numeric ID or human-friendly slug—using simple POST/PUT/PATCH or DELETE requests to
/wp-json/wc/v3/products/{product_id}/categories/{identifier}
**Batch Manage Multiple Categories**
In a single call, add or remove multiple categories at once via JSON payloads to
/wp-json/wc/v3/products/{product_id}/categories
Supply an array of IDs or slugs under the “categories” key to update your product’s category list in bulk.
**Automatic Slug Resolution**
Pass slugs like “summer-collection” and the plugin will resolve them to the correct WooCommerce term IDs on the fly—no extra lookups required.
**Non-Destructive Updates**
Neither endpoint touches other product data. Categories are merged or pruned transparently without overwriting prices, stock, attributes, or any other fields.
Built-In Validation & Security
Sanitization of all inputs (IDs and slugs) to guard against bad data.
Permission checks ensure only users with the edit_products capability (Shop Manager, Admin) can modify categories.
Clear, standardized error codes (w3s_api_extension_invalid_product and w3s_api_extension_invalid_product_category) for consistent API responses.
W3S API Extension for WooCommerce installs alongside the core WooCommerce REST API, requires no additional configuration, and works out of the box.
== Endpoints Documentation ==
**Product Categories**
/wp-json/wc/v3/products/{product_id}/categories/{identifier}curl -X PUT https://example.com/wp-json/wc/v3/products/125/categories/18 \
-u consumer_key:consumer_secret
curl -X PUT https://example.com/wp-json/wc/v3/products/125/categories/my-category \
-u consumer_key:consumer_secret
/wp-json/wc/v3/products/{product_id}/categories/{identifier}curl -X DELETE https://example.com/wp-json/wc/v3/products/125/categories/18 \
-u consumer_key:consumer_secret
curl -X DELETE https://example.com/wp-json/wc/v3/products/125/categories/my-category \
-u consumer_key:consumer_secret
/wp-json/wc/v3/products/{product_id}/categoriescurl -X PUT https://example.com/wp-json/wc/v3/products/125/categories \
-u consumer_key:consumer_secret \
-H "Content-Type: application/json" \
-d '{"categories": [1,"my-category",3,"my-category-1"]}'
/wp-json/wc/v3/products/{product_id}/categoriescurl -X DELETE https://example.com/wp-json/wc/v3/products/125/categories \
-u consumer_key:consumer_secret \
-H "Content-Type: application/json" \
-d '{"categories": [1,"my-category",3,"my-category-1"]}'