I use Magento 2.3.2
I have two categories (ids:760, 761) assigned to "Default Category" (id:2)
{
"id": 2,
"parent_id": 1,
"name": "Default Category",
"is_active": true,
"position": 1,
"level": 1,
"children": "760,761",
"path": "1/2",
...
}
{
"id": 760,
"parent_id": 2,
"name": "Main Category",
"is_active": true,
"position": 0,
"level": 2,
"path": "1/2/760",
...
}
{
"id": 761,
"parent_id": 2,
"name": "Should be a Sub Category",
"is_active": true,
"position": 0,
"level": 2,
"path": "1/2/761",
...
}Now I need to reassign 761 as a subcategory of 760.
I use postman PUT command to endpoint
PUT https://myURL/index.php/rest/V1/categories/761
with following body
{
"category": {
"id":761,
"parent_id": 760,
"level": 3,
"name": "Should be a Sub Category, so do it",
"is_active": false,
"position": 1
},
"saveOptions": true
}Even if I have changed name, is_active or position, I am not able change parent_id any way. I receive back again (with no errors, status:200)
{
"id": 761,
"parent_id": 2,
"name": "Should be a Sub Category, so do it",
"is_active": false,
"position": 1,
"level": 2,
"path": "1/2/761",
...
}I have tried also to use POST command on
POST https://myURL/index.php/rest/V1/categories
I have tried set/notset path, levels etc but without any progress.
When I omit ID
{
"category": {
"parent_id": 760,
"level": 3,
"name": "Should be a Sub Category, so do it",
"is_active": false,
"position": 1
},
"saveOptions": true
}it works OK, and I receive a new category (id:1118) assigned to 760.
{
"id": 1118,
"parent_id": 760,
"name": "Should be a Sub Category, so do it",
"is_active": false,
"position": 1,
"level": 3,
"children": "",
....
}I have used SOAP API to rearrange categories in Magento 1.9 without any problems.
So am I missing some importent detail, or is it simply forbidden?
Solved! Go to Solution.
Hello @sorrex
Please use following PUT command endpoint to set parent_id of any category.
https://devdocs.magento.com/swagger/#/catalogCategoryManagementV1/catalogCategoryManagementV1MovePut
Hope it helps.
Hello @sorrex
Please use following PUT command endpoint to set parent_id of any category.
https://devdocs.magento.com/swagger/#/catalogCategoryManagementV1/catalogCategoryManagementV1MovePut
Hope it helps.