Accessories
Link related products together so accessories are suggested and tracked alongside a parent product.
Overview
Accessories let you associate one product with others that typically go out together — for example, a moving-head fixture with its clamp, safety bond, and power cable. Each accessory is a link between a parent product and an accessory product (both are ordinary products in your catalogue), carrying a quantity and a couple of pricing flags. Accessories are managed per-product from the product detail page and exposed over the REST API as a nested resource.
Accessories Tab
Route: /products/{id}/accessories
The Accessories tab on the product detail page lists every product currently linked as an accessory of the product you are viewing.
| Column | Description |
|---|---|
| Accessory | The linked accessory product (links through to that product) |
| Type | The accessory product's type badge (Rental, Sale, Service, Loss & Damage) |
| Quantity | How many of the accessory go with one of the parent product |
The tab header shows the total accessory count. Each row has a Remove action that unlinks the accessory (with a confirmation prompt).
Adding an Accessory
Click Add Accessory to open the picker modal:
- Search Product — type at least two characters to search the catalogue by name. The product you are editing and any products already linked are excluded from the results.
- Quantity — how many of the accessory accompany one parent product (defaults to 1, minimum 1).
Select a product from the search results and click Add to create the link.
Note: A product cannot be an accessory of itself, and the same accessory product cannot be linked to the same parent twice — both are enforced when you add an accessory.
Accessory Fields
Each accessory link stores the following:
| Field | Description |
|---|---|
product_id |
The parent product |
accessory_product_id |
The linked accessory product |
quantity |
How many accessories per parent product |
included |
Whether the accessory is included by default when the parent is added to an order |
zero_priced |
Whether the accessory is charged at zero when included |
sort_order |
Display order among a product's accessories |
Note: The
includedandzero_pricedflags are stored on every accessory link and surfaced through the API for forward compatibility. They feed the order/quote pricing behaviour that is built in a later phase — the platform UI currently manages the link and quantity only.
Deletion Behaviour
Accessory links are scoped to their parent product. Deleting either the parent product or the accessory product removes the link automatically (the database cascades on delete), so there are never orphaned accessory rows.
API Access
Accessories are fully manageable over the REST API as a resource nested under products. See the Accessories API reference for endpoints, request bodies, and response shapes.