# SalesChannelProductCategories

## Get product category

> Retrieve a specific product category by ID.

```json
{"openapi":"3.0.3","info":{"title":"Omnitron API","version":"1.0.0"},"security":[{"Token":[]}],"components":{"securitySchemes":{"Token":{"type":"apiKey","in":"header","name":"Authorization"}},"parameters":{"channel_id":{"name":"channel_id","in":"path","required":true,"description":"Channel ID to operate on","schema":{"type":"integer","format":"int64"}},"id_path":{"name":"id","in":"path","description":"Unique identifier of the resource","required":true,"schema":{"type":"integer"}}},"schemas":{"ProductCategory":{"type":"object","properties":{"pk":{"type":"integer","format":"int64","description":"Product Category ID","readOnly":true},"product":{"type":"integer","format":"int64","description":"Foreign key to Product object"},"category":{"type":"integer","format":"int64","description":"Foreign key to CategoryNode object"},"modified_date":{"type":"string","format":"date-time","description":"Last modification date of the product category relationship","readOnly":true},"created_date":{"type":"string","format":"date-time","description":"Creation date of the product category relationship","readOnly":true}}}},"responses":{"403":{"description":"Forbidden"},"404":{"description":"The given resource or object was not found or does not exist.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"description":"Contains a detailed description of the error.","type":"string"}}}}}},"500":{"description":"Server Error"}}},"paths":{"/api/v1/channel/{channel_id}/product_categories/{id}/":{"get":{"summary":"Get product category","description":"Retrieve a specific product category by ID.","tags":["SalesChannelProductCategories"],"parameters":[{"$ref":"#/components/parameters/channel_id"},{"$ref":"#/components/parameters/id_path"}],"responses":{"200":{"description":"Product category","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductCategory"}}}},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}}}}}}
```

## Update product category (full update)

> Update a product category with full replacement of fields.

```json
{"openapi":"3.0.3","info":{"title":"Omnitron API","version":"1.0.0"},"security":[{"Token":[]}],"components":{"securitySchemes":{"Token":{"type":"apiKey","in":"header","name":"Authorization"}},"parameters":{"channel_id":{"name":"channel_id","in":"path","required":true,"description":"Channel ID to operate on","schema":{"type":"integer","format":"int64"}},"id_path":{"name":"id","in":"path","description":"Unique identifier of the resource","required":true,"schema":{"type":"integer"}}},"schemas":{"ProductCategory":{"type":"object","properties":{"pk":{"type":"integer","format":"int64","description":"Product Category ID","readOnly":true},"product":{"type":"integer","format":"int64","description":"Foreign key to Product object"},"category":{"type":"integer","format":"int64","description":"Foreign key to CategoryNode object"},"modified_date":{"type":"string","format":"date-time","description":"Last modification date of the product category relationship","readOnly":true},"created_date":{"type":"string","format":"date-time","description":"Creation date of the product category relationship","readOnly":true}}}},"responses":{"400":{"description":"Required field(s) are missing, data is invalid, or the action is not allowed.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"field":{"oneOf":[{"type":"array","description":"Indicates that no value was provided for the {field} field in the request.","items":{"type":"string"}},{"type":"array","description":"Indicates usage of a non-existent object for {field} in the request.","items":{"type":"string"}}]},"code":{"type":"string","description":"Represents the server-side error code."}}},{"type":"object","properties":{"non_field_errors":{"description":"Indicates invalid data or action usage in the request.","type":"array","items":{"type":"string"}},"code":{"type":"string","description":"Represents the server-side error code."}}},{"type":"object","properties":{"detail":{"description":"Provides a detailed message for the given error.","type":"string"},"code":{"type":"string","description":"Represents the server-side error code."}}}]}}}},"403":{"description":"Forbidden"},"404":{"description":"The given resource or object was not found or does not exist.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"description":"Contains a detailed description of the error.","type":"string"}}}}}},"500":{"description":"Server Error"},"ProductNotInCategoryException":{"content":{}},"ProductInMultipleCategoriesException":{"content":{}},"CategoryIsNotLeafException":{"content":{}},"ProductAlreadyExistsOnTreeException":{"content":{}}}},"paths":{"/api/v1/channel/{channel_id}/product_categories/{id}/":{"put":{"summary":"Update product category (full update)","description":"Update a product category with full replacement of fields.","tags":["SalesChannelProductCategories"],"parameters":[{"$ref":"#/components/parameters/channel_id"},{"$ref":"#/components/parameters/id_path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["product","category"],"properties":{"product":{"type":"integer","format":"int64","description":"ID of the product to categorize"},"category":{"type":"integer","format":"int64","description":"ID of the category node"}}}}}},"responses":{"200":{"description":"Product category updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductCategory"}}}},"400":{"$ref":"#/components/responses/400"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"422":{"description":"Invalid product or category","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/responses/ProductNotInCategoryException/content/application~1json/schema"},{"$ref":"#/components/responses/ProductInMultipleCategoriesException/content/application~1json/schema"},{"$ref":"#/components/responses/CategoryIsNotLeafException/content/application~1json/schema"},{"$ref":"#/components/responses/ProductAlreadyExistsOnTreeException/content/application~1json/schema"}]}}}},"500":{"$ref":"#/components/responses/500"}}}}}}
```

## Delete product category

> Delete a specific product category by ID. This will remove the association between the product and category.

```json
{"openapi":"3.0.3","info":{"title":"Omnitron API","version":"1.0.0"},"security":[{"Token":[]}],"components":{"securitySchemes":{"Token":{"type":"apiKey","in":"header","name":"Authorization"}},"parameters":{"channel_id":{"name":"channel_id","in":"path","required":true,"description":"Channel ID to operate on","schema":{"type":"integer","format":"int64"}},"id_path":{"name":"id","in":"path","description":"Unique identifier of the resource","required":true,"schema":{"type":"integer"}}},"responses":{"403":{"description":"Forbidden"},"404":{"description":"The given resource or object was not found or does not exist.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"description":"Contains a detailed description of the error.","type":"string"}}}}}},"500":{"description":"Server Error"}}},"paths":{"/api/v1/channel/{channel_id}/product_categories/{id}/":{"delete":{"summary":"Delete product category","description":"Delete a specific product category by ID. This will remove the association between the product and category.","tags":["SalesChannelProductCategories"],"parameters":[{"$ref":"#/components/parameters/channel_id"},{"$ref":"#/components/parameters/id_path"}],"responses":{"204":{"description":"Product category deleted successfully"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}}}}}}
```

## Update product category (partial update)

> Partially update a product category.

```json
{"openapi":"3.0.3","info":{"title":"Omnitron API","version":"1.0.0"},"security":[{"Token":[]}],"components":{"securitySchemes":{"Token":{"type":"apiKey","in":"header","name":"Authorization"}},"parameters":{"channel_id":{"name":"channel_id","in":"path","required":true,"description":"Channel ID to operate on","schema":{"type":"integer","format":"int64"}},"id_path":{"name":"id","in":"path","description":"Unique identifier of the resource","required":true,"schema":{"type":"integer"}}},"schemas":{"ProductCategory":{"type":"object","properties":{"pk":{"type":"integer","format":"int64","description":"Product Category ID","readOnly":true},"product":{"type":"integer","format":"int64","description":"Foreign key to Product object"},"category":{"type":"integer","format":"int64","description":"Foreign key to CategoryNode object"},"modified_date":{"type":"string","format":"date-time","description":"Last modification date of the product category relationship","readOnly":true},"created_date":{"type":"string","format":"date-time","description":"Creation date of the product category relationship","readOnly":true}}}},"responses":{"400":{"description":"Required field(s) are missing, data is invalid, or the action is not allowed.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"field":{"oneOf":[{"type":"array","description":"Indicates that no value was provided for the {field} field in the request.","items":{"type":"string"}},{"type":"array","description":"Indicates usage of a non-existent object for {field} in the request.","items":{"type":"string"}}]},"code":{"type":"string","description":"Represents the server-side error code."}}},{"type":"object","properties":{"non_field_errors":{"description":"Indicates invalid data or action usage in the request.","type":"array","items":{"type":"string"}},"code":{"type":"string","description":"Represents the server-side error code."}}},{"type":"object","properties":{"detail":{"description":"Provides a detailed message for the given error.","type":"string"},"code":{"type":"string","description":"Represents the server-side error code."}}}]}}}},"403":{"description":"Forbidden"},"404":{"description":"The given resource or object was not found or does not exist.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"description":"Contains a detailed description of the error.","type":"string"}}}}}},"500":{"description":"Server Error"},"ProductNotInCategoryException":{"content":{}},"ProductInMultipleCategoriesException":{"content":{}},"CategoryIsNotLeafException":{"content":{}},"ProductAlreadyExistsOnTreeException":{"content":{}}}},"paths":{"/api/v1/channel/{channel_id}/product_categories/{id}/":{"patch":{"summary":"Update product category (partial update)","description":"Partially update a product category.","tags":["SalesChannelProductCategories"],"parameters":[{"$ref":"#/components/parameters/channel_id"},{"$ref":"#/components/parameters/id_path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"product":{"type":"integer","format":"int64","description":"ID of the product to categorize"},"category":{"type":"integer","format":"int64","description":"ID of the category node"}}}}}},"responses":{"200":{"description":"Product category updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductCategory"}}}},"400":{"$ref":"#/components/responses/400"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"422":{"description":"Invalid product or category","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/responses/ProductNotInCategoryException/content/application~1json/schema"},{"$ref":"#/components/responses/ProductInMultipleCategoriesException/content/application~1json/schema"},{"$ref":"#/components/responses/CategoryIsNotLeafException/content/application~1json/schema"},{"$ref":"#/components/responses/ProductAlreadyExistsOnTreeException/content/application~1json/schema"}]}}}},"500":{"$ref":"#/components/responses/500"}}}}}}
```

## Get detailed product category

> Retrieve detailed information for a specific product category, including full product and category details.

```json
{"openapi":"3.0.3","info":{"title":"Omnitron API","version":"1.0.0"},"security":[{"Token":[]}],"components":{"securitySchemes":{"Token":{"type":"apiKey","in":"header","name":"Authorization"}},"parameters":{"channel_id":{"name":"channel_id","in":"path","required":true,"description":"Channel ID to operate on","schema":{"type":"integer","format":"int64"}},"id_path":{"name":"id","in":"path","description":"Unique identifier of the resource","required":true,"schema":{"type":"integer"}}},"schemas":{"ProductCategoryDetailed":{"type":"object","properties":{"pk":{"type":"integer","format":"int64","description":"Product Category ID","readOnly":true},"product":{"$ref":"#/components/schemas/Product"},"category":{"$ref":"#/components/schemas/CategoryNode"}}},"Product":{"type":"object","properties":{"id":{"type":"integer","format":"int64","readOnly":true,"description":"Unique identifier for the product"},"name":{"type":"string","description":"Name of the product","maxLength":255},"base_code":{"type":"string","description":"Base code for product variants","nullable":true},"sku":{"type":"string","description":"Stock keeping unit - unique identifier for the product","maxLength":255},"uuid":{"type":"string","format":"uuid","description":"Unique identifier for the product price."},"description":{"type":"string","description":"Detailed description of the product","maxLength":512,"nullable":true},"brand":{"type":"integer","description":"Foreign key to Brand model","nullable":true},"erp_categories":{"type":"array","items":{"type":"integer"},"description":"List of ERP category IDs"},"tax_rate":{"type":"number","format":"decimal","description":"Tax rate percentage","maximum":999.99,"minimum":0,"nullable":true},"weight":{"type":"number","format":"decimal","description":"Product weight","maximum":99999999.99,"minimum":0,"nullable":true},"product_type":{"type":"string","enum":["pre_product","simple","product_meta","bundle","grouped","pre_miscellaneous","miscellaneous","offer"],"description":"Type of the product"},"productization_date":{"type":"string","format":"date-time","nullable":true,"description":"Date when product was productized from pre status"},"data_source":{"type":"integer","description":"Foreign key to DataSource model","nullable":true},"created_date":{"type":"string","format":"date-time","readOnly":true,"description":"Timestamp when the product was created"},"modified_date":{"type":"string","format":"date-time","readOnly":true,"description":"Timestamp when the product was last updated"},"is_active":{"type":"boolean","description":"Whether the product is currently active","default":true},"attribute_set":{"type":"integer","description":"Foreign key to AttributeSet model","nullable":true},"parent":{"type":"integer","description":"Foreign key to parent Product","nullable":true},"group_products":{"type":"array","items":{"type":"integer"},"description":"List of product IDs in the group","nullable":true},"attributes":{"type":"object","description":"Dynamic attributes stored as JSON","additionalProperties":true,"nullable":true},"listing_code":{"type":"string","description":"Listing code for the product","nullable":true},"is_seller_product":{"type":"boolean","description":"Whether the product is a seller product","default":false},"custom_attribute_set":{"type":"integer","description":"Foreign key to AttributeSet model","nullable":true}},"required":["name","sku","barcode","product_type"]},"CategoryNode":{"type":"object","allOf":[{"$ref":"#/components/schemas/UUIDStarterModel"},{"$ref":"#/components/schemas/Entity"},{"$ref":"#/components/schemas/MP_Node"}],"properties":{"pk":{"type":"integer","format":"int64","readOnly":true,"description":"Category Node ID"},"order":{"type":"integer","description":"Order of the category node"},"name":{"type":"string","maxLength":64,"description":"Name of the category node."},"remote_attributes":{"type":"object","description":"Remote attributes of the category node","nullable":true},"sort_option":{"type":"integer","description":"Related sort option object ID"},"marketplace_attribute_set":{"type":"integer","description":"Related marketplace attribute set object ID"}},"required":["pk","order","name","created_date","modified_date"]},"UUIDStarterModel":{"type":"object","properties":{"created_date":{"type":"string","format":"date-time","readOnly":true,"description":"The date and time when the object was created."},"modified_date":{"type":"string","format":"date-time","description":"The date and time when the object was last modified."},"uuid":{"type":"string","format":"uuid","description":"Unique UUID identifier","readOnly":true}}},"Entity":{"type":"object","properties":{"attributes":{"type":"object","description":"A JSON object to store various attributes of the entity."},"attributes_kwargs":{"type":"object","description":"A JSON object to store additional attribute keyword arguments."},"localized_attributes":{"type":"object","description":"A JSON object to store localized attributes."},"localized_attributes_kwargs":{"type":"object","description":"A JSON object to store localized attributes keyword arguments."}}},"MP_Node":{"type":"object","properties":{"path":{"type":"string","description":"The path of the node in the tree."},"depth":{"type":"integer","description":"The depth of the node in the tree."},"numchild":{"type":"integer","description":"The number of children the node has."}}}},"responses":{"403":{"description":"Forbidden"},"404":{"description":"The given resource or object was not found or does not exist.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"description":"Contains a detailed description of the error.","type":"string"}}}}}},"500":{"description":"Server Error"}}},"paths":{"/api/v1/channel/{channel_id}/product_categories/{id}/detailed/":{"get":{"summary":"Get detailed product category","description":"Retrieve detailed information for a specific product category, including full product and category details.","tags":["SalesChannelProductCategories"],"parameters":[{"$ref":"#/components/parameters/channel_id"},{"$ref":"#/components/parameters/id_path"}],"responses":{"200":{"description":"Detailed product category information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductCategoryDetailed"}}}},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}}}}}}
```

## Get bulk create status

> Get the current status of a bulk create operation. Returns progress information, errors, and overall status of the operation.

```json
{"openapi":"3.0.3","info":{"title":"Omnitron API","version":"1.0.0"},"security":[{"Token":[]}],"components":{"securitySchemes":{"Token":{"type":"apiKey","in":"header","name":"Authorization"}},"parameters":{"channel_id":{"name":"channel_id","in":"path","required":true,"description":"Channel ID to operate on","schema":{"type":"integer","format":"int64"}},"bulk_cache_key":{"name":"pk","in":"path","required":true,"description":"Bulk operation cache key","schema":{"type":"string","format":"uuid"}}},"schemas":{"BulkProcessStatus":{"type":"object","properties":{"progress":{"type":"array","items":{"type":"array","items":{"type":"integer"}},"description":"Progress information for each chunk, where the first value is the current progress and the second is the total size"},"errors":{"type":"array","items":{"type":"string"},"description":"List of errors encountered during the operation"},"chunk_count":{"type":"integer","description":"Total number of chunks the operation was divided into"},"status":{"type":"string","enum":["waiting","in_progress","completed","failed"],"description":"Current status of the bulk operation"}}}},"responses":{"500":{"description":"Server Error"},"BulkProcessInvalidCacheKey":{"content":{}}}},"paths":{"/api/v1/channel/{channel_id}/product_categories/{pk}/bulk_create_status/":{"get":{"summary":"Get bulk create status","description":"Get the current status of a bulk create operation. Returns progress information, errors, and overall status of the operation.","tags":["SalesChannelProductCategories"],"parameters":[{"$ref":"#/components/parameters/channel_id"},{"$ref":"#/components/parameters/bulk_cache_key"}],"responses":{"200":{"description":"Bulk operation status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkProcessStatus"}}}},"404":{"description":"Invalid cache key","content":{"application/json":{"schema":{"$ref":"#/components/responses/BulkProcessInvalidCacheKey/content/application~1json/schema"}}}},"500":{"$ref":"#/components/responses/500"}}}}}}
```

## Get bulk delete status

> Get the current status of a bulk delete operation. Returns progress information, errors, and overall status of the operation.

```json
{"openapi":"3.0.3","info":{"title":"Omnitron API","version":"1.0.0"},"security":[{"Token":[]}],"components":{"securitySchemes":{"Token":{"type":"apiKey","in":"header","name":"Authorization"}},"parameters":{"channel_id":{"name":"channel_id","in":"path","required":true,"description":"Channel ID to operate on","schema":{"type":"integer","format":"int64"}},"bulk_cache_key":{"name":"pk","in":"path","required":true,"description":"Bulk operation cache key","schema":{"type":"string","format":"uuid"}}},"schemas":{"BulkProcessStatus":{"type":"object","properties":{"progress":{"type":"array","items":{"type":"array","items":{"type":"integer"}},"description":"Progress information for each chunk, where the first value is the current progress and the second is the total size"},"errors":{"type":"array","items":{"type":"string"},"description":"List of errors encountered during the operation"},"chunk_count":{"type":"integer","description":"Total number of chunks the operation was divided into"},"status":{"type":"string","enum":["waiting","in_progress","completed","failed"],"description":"Current status of the bulk operation"}}}},"responses":{"500":{"description":"Server Error"},"BulkProcessInvalidCacheKey":{"description":"Invalid bulk operation cache key","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}}}},"paths":{"/api/v1/channel/{channel_id}/product_categories/{pk}/bulk_delete_status/":{"get":{"summary":"Get bulk delete status","description":"Get the current status of a bulk delete operation. Returns progress information, errors, and overall status of the operation.","tags":["SalesChannelProductCategories"],"parameters":[{"$ref":"#/components/parameters/channel_id"},{"$ref":"#/components/parameters/bulk_cache_key"}],"responses":{"200":{"description":"Bulk operation status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkProcessStatus"}}}},"404":{"$ref":"#/components/responses/BulkProcessInvalidCacheKey"},"500":{"$ref":"#/components/responses/500"}}}}}}
```

## List product categories

> Retrieve a list of all product categories for the specified channel. Results can be filtered by product or category.

```json
{"openapi":"3.0.3","info":{"title":"Omnitron API","version":"1.0.0"},"security":[{"Token":[]}],"components":{"securitySchemes":{"Token":{"type":"apiKey","in":"header","name":"Authorization"}},"parameters":{"channel_id":{"name":"channel_id","in":"path","required":true,"description":"Channel ID to operate on","schema":{"type":"integer","format":"int64"}},"product_id":{"name":"product","in":"query","description":"Filter by product ID","schema":{"type":"integer","format":"int64"}},"category_id":{"name":"category","in":"query","description":"Filter by category ID","schema":{"type":"integer","format":"int64"}}},"schemas":{"ProductCategory":{"type":"object","properties":{"pk":{"type":"integer","format":"int64","description":"Product Category ID","readOnly":true},"product":{"type":"integer","format":"int64","description":"Foreign key to Product object"},"category":{"type":"integer","format":"int64","description":"Foreign key to CategoryNode object"},"modified_date":{"type":"string","format":"date-time","description":"Last modification date of the product category relationship","readOnly":true},"created_date":{"type":"string","format":"date-time","description":"Creation date of the product category relationship","readOnly":true}}}},"responses":{"403":{"description":"Forbidden"},"404":{"description":"The given resource or object was not found or does not exist.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"description":"Contains a detailed description of the error.","type":"string"}}}}}},"500":{"description":"Server Error"}}},"paths":{"/api/v1/channel/{channel_id}/product_categories/":{"get":{"summary":"List product categories","description":"Retrieve a list of all product categories for the specified channel. Results can be filtered by product or category.","tags":["SalesChannelProductCategories"],"parameters":[{"$ref":"#/components/parameters/channel_id"},{"$ref":"#/components/parameters/product_id"},{"$ref":"#/components/parameters/category_id"}],"responses":{"200":{"description":"List of product categories","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProductCategory"}}}}},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}}}}}}
```

## Create product category

> Create a new product category. Associates a product with a category in the channel's category tree.

```json
{"openapi":"3.0.3","info":{"title":"Omnitron API","version":"1.0.0"},"security":[{"Token":[]}],"components":{"securitySchemes":{"Token":{"type":"apiKey","in":"header","name":"Authorization"}},"parameters":{"channel_id":{"name":"channel_id","in":"path","required":true,"description":"Channel ID to operate on","schema":{"type":"integer","format":"int64"}}},"schemas":{"ProductCategory":{"type":"object","properties":{"pk":{"type":"integer","format":"int64","description":"Product Category ID","readOnly":true},"product":{"type":"integer","format":"int64","description":"Foreign key to Product object"},"category":{"type":"integer","format":"int64","description":"Foreign key to CategoryNode object"},"modified_date":{"type":"string","format":"date-time","description":"Last modification date of the product category relationship","readOnly":true},"created_date":{"type":"string","format":"date-time","description":"Creation date of the product category relationship","readOnly":true}}}},"responses":{"400":{"description":"Required field(s) are missing, data is invalid, or the action is not allowed.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"field":{"oneOf":[{"type":"array","description":"Indicates that no value was provided for the {field} field in the request.","items":{"type":"string"}},{"type":"array","description":"Indicates usage of a non-existent object for {field} in the request.","items":{"type":"string"}}]},"code":{"type":"string","description":"Represents the server-side error code."}}},{"type":"object","properties":{"non_field_errors":{"description":"Indicates invalid data or action usage in the request.","type":"array","items":{"type":"string"}},"code":{"type":"string","description":"Represents the server-side error code."}}},{"type":"object","properties":{"detail":{"description":"Provides a detailed message for the given error.","type":"string"},"code":{"type":"string","description":"Represents the server-side error code."}}}]}}}},"403":{"description":"Forbidden"},"404":{"description":"The given resource or object was not found or does not exist.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"description":"Contains a detailed description of the error.","type":"string"}}}}}},"500":{"description":"Server Error"},"ProductNotInCategoryException":{"content":{}},"ProductInMultipleCategoriesException":{"content":{}},"CategoryIsNotLeafException":{"content":{}},"ProductAlreadyExistsOnTreeException":{"content":{}}}},"paths":{"/api/v1/channel/{channel_id}/product_categories/":{"post":{"summary":"Create product category","description":"Create a new product category. Associates a product with a category in the channel's category tree.","tags":["SalesChannelProductCategories"],"parameters":[{"$ref":"#/components/parameters/channel_id"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["product","category"],"properties":{"product":{"type":"integer","format":"int64","description":"ID of the product to categorize"},"category":{"type":"integer","format":"int64","description":"ID of the category node"}}}}}},"responses":{"201":{"description":"Product category created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductCategory"}}}},"400":{"$ref":"#/components/responses/400"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"422":{"description":"Invalid product or category","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/responses/ProductNotInCategoryException/content/application~1json/schema"},{"$ref":"#/components/responses/ProductInMultipleCategoriesException/content/application~1json/schema"},{"$ref":"#/components/responses/CategoryIsNotLeafException/content/application~1json/schema"},{"$ref":"#/components/responses/ProductAlreadyExistsOnTreeException/content/application~1json/schema"}]}}}},"500":{"$ref":"#/components/responses/500"}}}}}}
```

## List detailed product categories

> Retrieve a detailed list of all product categories for the specified channel, including full product and category information.

```json
{"openapi":"3.0.3","info":{"title":"Omnitron API","version":"1.0.0"},"security":[{"Token":[]}],"components":{"securitySchemes":{"Token":{"type":"apiKey","in":"header","name":"Authorization"}},"parameters":{"channel_id":{"name":"channel_id","in":"path","required":true,"description":"Channel ID to operate on","schema":{"type":"integer","format":"int64"}},"product_id":{"name":"product","in":"query","description":"Filter by product ID","schema":{"type":"integer","format":"int64"}},"category_id":{"name":"category","in":"query","description":"Filter by category ID","schema":{"type":"integer","format":"int64"}}},"schemas":{"ProductCategoryDetailed":{"type":"object","properties":{"pk":{"type":"integer","format":"int64","description":"Product Category ID","readOnly":true},"product":{"$ref":"#/components/schemas/Product"},"category":{"$ref":"#/components/schemas/CategoryNode"}}},"Product":{"type":"object","properties":{"id":{"type":"integer","format":"int64","readOnly":true,"description":"Unique identifier for the product"},"name":{"type":"string","description":"Name of the product","maxLength":255},"base_code":{"type":"string","description":"Base code for product variants","nullable":true},"sku":{"type":"string","description":"Stock keeping unit - unique identifier for the product","maxLength":255},"uuid":{"type":"string","format":"uuid","description":"Unique identifier for the product price."},"description":{"type":"string","description":"Detailed description of the product","maxLength":512,"nullable":true},"brand":{"type":"integer","description":"Foreign key to Brand model","nullable":true},"erp_categories":{"type":"array","items":{"type":"integer"},"description":"List of ERP category IDs"},"tax_rate":{"type":"number","format":"decimal","description":"Tax rate percentage","maximum":999.99,"minimum":0,"nullable":true},"weight":{"type":"number","format":"decimal","description":"Product weight","maximum":99999999.99,"minimum":0,"nullable":true},"product_type":{"type":"string","enum":["pre_product","simple","product_meta","bundle","grouped","pre_miscellaneous","miscellaneous","offer"],"description":"Type of the product"},"productization_date":{"type":"string","format":"date-time","nullable":true,"description":"Date when product was productized from pre status"},"data_source":{"type":"integer","description":"Foreign key to DataSource model","nullable":true},"created_date":{"type":"string","format":"date-time","readOnly":true,"description":"Timestamp when the product was created"},"modified_date":{"type":"string","format":"date-time","readOnly":true,"description":"Timestamp when the product was last updated"},"is_active":{"type":"boolean","description":"Whether the product is currently active","default":true},"attribute_set":{"type":"integer","description":"Foreign key to AttributeSet model","nullable":true},"parent":{"type":"integer","description":"Foreign key to parent Product","nullable":true},"group_products":{"type":"array","items":{"type":"integer"},"description":"List of product IDs in the group","nullable":true},"attributes":{"type":"object","description":"Dynamic attributes stored as JSON","additionalProperties":true,"nullable":true},"listing_code":{"type":"string","description":"Listing code for the product","nullable":true},"is_seller_product":{"type":"boolean","description":"Whether the product is a seller product","default":false},"custom_attribute_set":{"type":"integer","description":"Foreign key to AttributeSet model","nullable":true}},"required":["name","sku","barcode","product_type"]},"CategoryNode":{"type":"object","allOf":[{"$ref":"#/components/schemas/UUIDStarterModel"},{"$ref":"#/components/schemas/Entity"},{"$ref":"#/components/schemas/MP_Node"}],"properties":{"pk":{"type":"integer","format":"int64","readOnly":true,"description":"Category Node ID"},"order":{"type":"integer","description":"Order of the category node"},"name":{"type":"string","maxLength":64,"description":"Name of the category node."},"remote_attributes":{"type":"object","description":"Remote attributes of the category node","nullable":true},"sort_option":{"type":"integer","description":"Related sort option object ID"},"marketplace_attribute_set":{"type":"integer","description":"Related marketplace attribute set object ID"}},"required":["pk","order","name","created_date","modified_date"]},"UUIDStarterModel":{"type":"object","properties":{"created_date":{"type":"string","format":"date-time","readOnly":true,"description":"The date and time when the object was created."},"modified_date":{"type":"string","format":"date-time","description":"The date and time when the object was last modified."},"uuid":{"type":"string","format":"uuid","description":"Unique UUID identifier","readOnly":true}}},"Entity":{"type":"object","properties":{"attributes":{"type":"object","description":"A JSON object to store various attributes of the entity."},"attributes_kwargs":{"type":"object","description":"A JSON object to store additional attribute keyword arguments."},"localized_attributes":{"type":"object","description":"A JSON object to store localized attributes."},"localized_attributes_kwargs":{"type":"object","description":"A JSON object to store localized attributes keyword arguments."}}},"MP_Node":{"type":"object","properties":{"path":{"type":"string","description":"The path of the node in the tree."},"depth":{"type":"integer","description":"The depth of the node in the tree."},"numchild":{"type":"integer","description":"The number of children the node has."}}}},"responses":{"403":{"description":"Forbidden"},"404":{"description":"The given resource or object was not found or does not exist.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"description":"Contains a detailed description of the error.","type":"string"}}}}}},"500":{"description":"Server Error"}}},"paths":{"/api/v1/channel/{channel_id}/product_categories/detailed/":{"get":{"summary":"List detailed product categories","description":"Retrieve a detailed list of all product categories for the specified channel, including full product and category information.","tags":["SalesChannelProductCategories"],"parameters":[{"$ref":"#/components/parameters/channel_id"},{"$ref":"#/components/parameters/product_id"},{"$ref":"#/components/parameters/category_id"}],"responses":{"200":{"description":"Detailed list of product categories","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProductCategoryDetailed"}}}}},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://apidocs.akinon.com/omnitron-openapis/saleschannelproductcategories.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
