Back to Woocommerce

Product attribute terms

docs/apis/rest-api/v3/product-attribute-terms.mdx

10.9.0-dev17.4 KB
Original Source

import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';

Product attribute terms

The product attribute terms API allows you to create, view, update, and delete individual, or a batch, of attribute terms.

Product attribute term properties

AttributeTypeDescription
idintegerUnique identifier for the resource. READ-ONLY
namestringTerm name. MANDATORY
slugstringAn alphanumeric identifier for the resource unique to its type.
descriptionstringHTML description of the resource.
menu_orderintegerMenu order, used to custom sort the resource.
countintegerNumber of published products for the resource. READ-ONLY

Create an attribute term

This API helps you to create a new product attribute term.

http
POST /wp-json/wc/v3/products/attributes/<attribute_id>/terms
<Tabs> <TabItem value="curl" label="cURL">
shell
curl -X POST https://example.com/wp-json/wc/v3/products/attributes/2/terms \
    -u consumer_key:consumer_secret \
    -H "Content-Type: application/json" \
    -d '{
  "name": "XXS"
}'
</TabItem> <TabItem value="js" label="JavaScript">
javascript
const data = {
	name: 'XXS',
};

WooCommerce.post( 'products/attributes/2/terms', data )
	.then( ( response ) => {
		console.log( response.data );
	} )
	.catch( ( error ) => {
		console.log( error.response.data );
	} );
</TabItem> <TabItem value="php" label="PHP">
php
<?php
$data = [
    'name' => 'XXS'
];

print_r($woocommerce->post('products/attributes/2/terms', $data));
?>
</TabItem> <TabItem value="python" label="Python">
python
data = {
    "name": "XXS"
}

print(wcapi.post("products/attributes/2/terms", data).json())
</TabItem> <TabItem value="ruby" label="Ruby">
ruby
data = {
  name: "XXS"
}

woocommerce.post("products/attributes/2/terms", data).parsed_response
</TabItem> <TabItem value="response" label="JSON Response">
json
{
	"id": 23,
	"name": "XXS",
	"slug": "xxs",
	"description": "",
	"menu_order": 1,
	"count": 1,
	"_links": {
		"self": [
			{
				"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms/23"
			}
		],
		"collection": [
			{
				"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms"
			}
		]
	}
}
</TabItem> </Tabs>

Retrieve an attribute term

This API lets you retrieve a product attribute term by ID.

http
GET /wp-json/wc/v3/products/attributes/<attribute_id>/terms/<id>
<Tabs> <TabItem value="curl" label="cURL">
shell
curl https://example.com/wp-json/wc/v3/products/attributes/2/terms/23 \
	-u consumer_key:consumer_secret
</TabItem> <TabItem value="js" label="JavaScript">
javascript
WooCommerce.get( 'products/attributes/2/terms/23' )
	.then( ( response ) => {
		console.log( response.data );
	} )
	.catch( ( error ) => {
		console.log( error.response.data );
	} );
</TabItem> <TabItem value="php" label="PHP">
php
<?php print_r($woocommerce->get('products/attributes/2/terms/23')); ?>
</TabItem> <TabItem value="python" label="Python">
python
print(wcapi.get("products/attributes/2/terms/23").json())
</TabItem> <TabItem value="ruby" label="Ruby">
ruby
woocommerce.get("products/attributes/2/terms/23").parsed_response
</TabItem> <TabItem value="response" label="JSON Response">
json
{
	"id": 23,
	"name": "XXS",
	"slug": "xxs",
	"description": "",
	"menu_order": 1,
	"count": 1,
	"_links": {
		"self": [
			{
				"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms/23"
			}
		],
		"collection": [
			{
				"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms"
			}
		]
	}
}
</TabItem> </Tabs>

List all attribute terms

This API lets you retrieve all terms from a product attribute.

http
GET /wp-json/wc/v3/products/attributes/<attribute_id>/terms
<Tabs> <TabItem value="curl" label="cURL">
shell
curl https://example.com/wp-json/wc/v3/products/attributes/2/terms \
	-u consumer_key:consumer_secret
</TabItem> <TabItem value="js" label="JavaScript">
javascript
WooCommerce.get( 'products/attributes/2/terms' )
	.then( ( response ) => {
		console.log( response.data );
	} )
	.catch( ( error ) => {
		console.log( error.response.data );
	} );
</TabItem> <TabItem value="php" label="PHP">
php
<?php print_r($woocommerce->get('products/attributes/2/terms')); ?>
</TabItem> <TabItem value="python" label="Python">
python
print(wcapi.get("products/attributes/2/terms").json())
</TabItem> <TabItem value="ruby" label="Ruby">
ruby
woocommerce.get("products/attributes/2/terms").parsed_response
</TabItem> <TabItem value="response" label="JSON Response">
json
[
	{
		"id": 23,
		"name": "XXS",
		"slug": "xxs",
		"description": "",
		"menu_order": 1,
		"count": 1,
		"_links": {
			"self": [
				{
					"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms/23"
				}
			],
			"collection": [
				{
					"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms"
				}
			]
		}
	},
	{
		"id": 22,
		"name": "XS",
		"slug": "xs",
		"description": "",
		"menu_order": 2,
		"count": 1,
		"_links": {
			"self": [
				{
					"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms/22"
				}
			],
			"collection": [
				{
					"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms"
				}
			]
		}
	},
	{
		"id": 17,
		"name": "S",
		"slug": "s",
		"description": "",
		"menu_order": 3,
		"count": 1,
		"_links": {
			"self": [
				{
					"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms/17"
				}
			],
			"collection": [
				{
					"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms"
				}
			]
		}
	},
	{
		"id": 18,
		"name": "M",
		"slug": "m",
		"description": "",
		"menu_order": 4,
		"count": 1,
		"_links": {
			"self": [
				{
					"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms/18"
				}
			],
			"collection": [
				{
					"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms"
				}
			]
		}
	},
	{
		"id": 19,
		"name": "L",
		"slug": "l",
		"description": "",
		"menu_order": 5,
		"count": 1,
		"_links": {
			"self": [
				{
					"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms/19"
				}
			],
			"collection": [
				{
					"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms"
				}
			]
		}
	},
	{
		"id": 20,
		"name": "XL",
		"slug": "xl",
		"description": "",
		"menu_order": 6,
		"count": 1,
		"_links": {
			"self": [
				{
					"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms/20"
				}
			],
			"collection": [
				{
					"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms"
				}
			]
		}
	},
	{
		"id": 21,
		"name": "XXL",
		"slug": "xxl",
		"description": "",
		"menu_order": 7,
		"count": 1,
		"_links": {
			"self": [
				{
					"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms/21"
				}
			],
			"collection": [
				{
					"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms"
				}
			]
		}
	}
]
</TabItem> </Tabs>

Available parameters

ParameterTypeDescription
contextstringScope under which the request is made; determines fields present in response. Options: view and edit. Default is view.
pageintegerCurrent page of the collection. Default is 1.
per_pageintegerMaximum number of items to be returned in result set. Default is 10.
searchstringLimit results to those matching a string.
excludearrayEnsure result set excludes specific ids.
includearrayLimit result set to specific ids.
orderstringOrder sort attribute ascending or descending. Options: asc and desc. Default is asc.
orderbystringSort collection by resource attribute. Options: id, include, name, slug, term_group, description and count. Default is name.
hide_emptybooleanWhether to hide resources not assigned to any products. Default is false.
parentintegerLimit result set to resources assigned to a specific parent.
productintegerLimit result set to resources assigned to a specific product.
slugstringLimit result set to resources with a specific slug.

Update an attribute term

This API lets you make changes to a product attribute term.

http
PUT /wp-json/wc/v3/products/attributes/<attribute_id>/terms/<id>
<Tabs> <TabItem value="curl" label="cURL">
shell
curl -X PUT https://example.com/wp-json/wc/v3/products/attributes/2/terms/23 \
	-u consumer_key:consumer_secret \
	-H "Content-Type: application/json" \
	-d '{
  "name": "XXS"
}'
</TabItem> <TabItem value="js" label="JavaScript">
javascript
const data = {
	name: 'XXS',
};

WooCommerce.put( 'products/attributes/2/terms/23', data )
	.then( ( response ) => {
		console.log( response.data );
	} )
	.catch( ( error ) => {
		console.log( error.response.data );
	} );
</TabItem> <TabItem value="php" label="PHP">
php
<?php
$data = [
    'name' => 'XXS'
];

print_r($woocommerce->put('products/attributes/2/terms/23', $data));
?>
</TabItem> <TabItem value="python" label="Python">
python
data = {
    "name": "XXS"
}

print(wcapi.put("products/attributes/2/terms/23", data).json())
</TabItem> <TabItem value="ruby" label="Ruby">
ruby
data = {
  name: "XXS"
}

woocommerce.put("products/attributes/2/terms/23", data).parsed_response
</TabItem> <TabItem value="response" label="JSON Response">
json
{
	"id": 23,
	"name": "XXS",
	"slug": "xxs",
	"description": "",
	"menu_order": 1,
	"count": 1,
	"_links": {
		"self": [
			{
				"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms/23"
			}
		],
		"collection": [
			{
				"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms"
			}
		]
	}
}
</TabItem> </Tabs>

Delete an attribute term

This API helps you delete a product attribute term.

http
DELETE /wp-json/wc/v3/products/attributes/<attribute_id>/terms/<id>
<Tabs> <TabItem value="curl" label="cURL">
shell
curl -X DELETE https://example.com/wp-json/wc/v3/products/attributes/2/terms/23?force=true \
	-u consumer_key:consumer_secret
</TabItem> <TabItem value="js" label="JavaScript">
javascript
WooCommerce.delete( 'products/attributes/2/terms/23', {
	force: true,
} )
	.then( ( response ) => {
		console.log( response.data );
	} )
	.catch( ( error ) => {
		console.log( error.response.data );
	} );
</TabItem> <TabItem value="php" label="PHP">
php
<?php print_r($woocommerce->delete('products/attributes/2/terms/23', ['force' => true])); ?>
</TabItem> <TabItem value="python" label="Python">
python
print(wcapi.delete("products/attributes/2/terms/23", params={"force": True}).json())
</TabItem> <TabItem value="ruby" label="Ruby">
ruby
woocommerce.delete("products/attributes/2/terms/23", force: true).parsed_response
</TabItem> <TabItem value="response" label="JSON Response">
json
{
	"id": 23,
	"name": "XXS",
	"slug": "xxs",
	"description": "",
	"menu_order": 1,
	"count": 1,
	"_links": {
		"self": [
			{
				"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms/23"
			}
		],
		"collection": [
			{
				"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms"
			}
		]
	}
}
</TabItem> </Tabs>

Available parameters

ParameterTypeDescription
forcestringRequired to be true, as resource does not support trashing.

Batch update attribute terms

This API helps you to batch create, update and delete multiple product attribute terms.

:::note Note: By default it's limited to up to 100 objects to be created, updated or deleted. :::

http
POST /wp-json/wc/v3/products/attributes/<attribute_id>/terms/batch
<Tabs> <TabItem value="curl" label="cURL">
shell
curl -X POST https://example.com/wp-json/wc/v3/products/attributes/<attribute_id>/terms/batch \
	-u consumer_key:consumer_secret \
	-H "Content-Type: application/json" \
	-d '{
  "create": [
    {
      "name": "XXS"
    },
    {
      "name": "S"
    }
  ],
  "update": [
    {
      "id": 19,
      "menu_order": 6
    }
  ],
  "delete": [
    21,
    20
  ]
}'
</TabItem> <TabItem value="js" label="JavaScript">
javascript
const data = {
	create: [
		{
			name: 'XXS',
		},
		{
			name: 'S',
		},
	],
	update: [
		{
			id: 19,
			menu_order: 6,
		},
	],
	delete: [ 21, 20 ],
};

WooCommerce.post( 'products/attributes/2/terms/batch', data )
	.then( ( response ) => {
		console.log( response.data );
	} )
	.catch( ( error ) => {
		console.log( error.response.data );
	} );
</TabItem> <TabItem value="php" label="PHP">
php
<?php
$data = [
    'create' => [
        [
            'name' => 'XXS'
        ],
        [
            'name' => 'S'
        ]
    ],
    'update' => [
        [
            'id' => 19,
            'menu_order' => 6
        ]
    ],
    'delete' => [
        21,
        20
    ]
];

print_r($woocommerce->post('products/attributes/2/terms/batch', $data));
?>
</TabItem> <TabItem value="python" label="Python">
python
data = {
    "create": [
        {
            "name": "XXS"
        },
        {
            "name": "S"
        }
    ],
    "update": [
        {
            "id": 19,
            "menu_order": 6
        }
    ],
    "delete": [
        21,
        20
    ]
}

print(wcapi.post("products/attributes/2/terms/batch", data).json())
</TabItem> <TabItem value="ruby" label="Ruby">
ruby
data = {
  create: [
    {
      name: "XXS"
    },
    {
      name: "S"
    }
  ],
  update: [
    {
      id: 19,
      menu_order: 6
    }
  ],
  delete: [
    21,
    20
  ]
}

woocommerce.post("products/attributes/2/terms/batch", data).parsed_response
</TabItem> <TabItem value="response" label="JSON Response">
json
{
	"create": [
		{
			"id": 23,
			"name": "XXS",
			"slug": "xxs",
			"description": "",
			"menu_order": 1,
			"count": 0,
			"_links": {
				"self": [
					{
						"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms/23"
					}
				],
				"collection": [
					{
						"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms"
					}
				]
			}
		},
		{
			"id": 17,
			"name": "S",
			"slug": "s",
			"description": "",
			"menu_order": 3,
			"count": 0,
			"_links": {
				"self": [
					{
						"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms/17"
					}
				],
				"collection": [
					{
						"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms"
					}
				]
			}
		}
	],
	"update": [
		{
			"id": 19,
			"name": "L",
			"slug": "l",
			"description": "",
			"menu_order": 5,
			"count": 1,
			"_links": {
				"self": [
					{
						"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms/19"
					}
				],
				"collection": [
					{
						"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms"
					}
				]
			}
		}
	],
	"delete": [
		{
			"id": 21,
			"name": "XXL",
			"slug": "xxl",
			"description": "",
			"menu_order": 7,
			"count": 1,
			"_links": {
				"self": [
					{
						"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms/21"
					}
				],
				"collection": [
					{
						"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms"
					}
				]
			}
		},
		{
			"id": 20,
			"name": "XL",
			"slug": "xl",
			"description": "",
			"menu_order": 6,
			"count": 1,
			"_links": {
				"self": [
					{
						"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms/20"
					}
				],
				"collection": [
					{
						"href": "https://example.com/wp-json/wc/v3/products/attributes/2/terms"
					}
				]
			}
		}
	]
}
</TabItem> </Tabs>