Item Group API
Create and manage item groups for bundling multiple items together for quick entry on transactions.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /record/v1/itemGroup | List item groups |
GET | /record/v1/itemGroup/{id} | Get specific item group |
POST | /record/v1/itemGroup | Create item group |
PATCH | /record/v1/itemGroup/{id} | Update item group |
DELETE | /record/v1/itemGroup/{id} | Delete item group |
Key Fields
| Field | Type | Description | Required |
|---|---|---|---|
itemId | string | Item group name/number | Yes (if not auto) |
displayName | string | Display name | No |
description | string | Item description | No |
subsidiary | object | Subsidiary assignment | Yes (OneWorld) |
includeChildren | boolean | Include child subsidiaries | No |
isInactive | boolean | Inactive flag | No |
member | object | Member items configuration | Yes |
member.items | array | Array of member items | Yes |
printItems | boolean | Print individual items | No |
availableToPartners | boolean | Available to partners | No |
Member Item Fields
| Field | Type | Description | Required |
|---|---|---|---|
item | object | Item reference | Yes |
quantity | number | Quantity of item | Yes |
unit | object | Unit of measure | No |
description | string | Item description override | No |
Example: Create Item Group
POST /record/v1/itemGroup
Content-Type: application/json
{
"itemId": "STARTER-PKG",
"displayName": "Starter Package",
"description": "Complete starter package with essential items",
"subsidiary": {
"id": "1"
},
"printItems": true,
"member": {
"items": [
{
"item": {"id": "789"},
"quantity": 1,
"description": "Base unit"
},
{
"item": {"id": "790"},
"quantity": 2,
"description": "Power cables"
},
{
"item": {"id": "791"},
"quantity": 1,
"description": "User manual"
}
]
}
}
Response:
{
"id": "967",
"itemId": "STARTER-PKG",
"displayName": "Starter Package",
"description": "Complete starter package with essential items",
"subsidiary": {
"id": "1",
"refName": "Parent Company"
},
"printItems": true,
"member": {
"items": [
{
"item": {
"id": "789",
"refName": "Base Unit Model X"
},
"quantity": 1,
"description": "Base unit"
},
{
"item": {
"id": "790",
"refName": "Power Cable - Standard"
},
"quantity": 2,
"description": "Power cables"
},
{
"item": {
"id": "791",
"refName": "User Manual"
},
"quantity": 1,
"description": "User manual"
}
]
},
"isInactive": false,
"lastModifiedDate": "2025-12-25T10:30:00Z"
}
Example: Update Item Group
PATCH /record/v1/itemGroup/967
Content-Type: application/json
{
"displayName": "Starter Package - Enhanced",
"member": {
"items": [
{
"item": {"id": "789"},
"quantity": 1,
"description": "Base unit"
},
{
"item": {"id": "790"},
"quantity": 3,
"description": "Power cables (updated quantity)"
},
{
"item": {"id": "791"},
"quantity": 1,
"description": "User manual"
},
{
"item": {"id": "792"},
"quantity": 1,
"description": "Warranty card (new)"
}
]
}
}
Response:
{
"id": "967",
"itemId": "STARTER-PKG",
"displayName": "Starter Package - Enhanced",
"member": {
"items": [
{
"item": {"id": "789"},
"quantity": 1,
"description": "Base unit"
},
{
"item": {"id": "790"},
"quantity": 3,
"description": "Power cables (updated quantity)"
},
{
"item": {"id": "791"},
"quantity": 1,
"description": "User manual"
},
{
"item": {"id": "792"},
"quantity": 1,
"description": "Warranty card (new)"
}
]
},
"lastModifiedDate": "2025-12-25T11:00:00Z"
}
Query Filters
Find Active Item Groups
GET /record/v1/itemGroup?q=isInactive=false
Find by Item ID Pattern
GET /record/v1/itemGroup?q=itemId LIKE 'STARTER%'
Find by Display Name
GET /record/v1/itemGroup?q=displayName LIKE '%Package%'
Find by Subsidiary
GET /record/v1/itemGroup?q=subsidiary.id=1
Important Notes
- Item groups allow you to bundle multiple items together for quick entry on transactions
- When you add an item group to a transaction, all member items are automatically added with their specified quantities
- Item groups are different from Kit Items and Assembly Items:
- Item groups do not have their own inventory or pricing
- Item groups are for data entry convenience only
- Member items are individually priced and invoiced
- No assembly or manufacturing is involved
- The printItems flag controls whether individual member items appear on printed forms:
true: Shows all individual items on the transactionfalse: Shows only the group name
- Item groups can contain:
- Inventory items
- Non-inventory items
- Service items
- Other charge items
- Description items
- Other item groups (nested groups)
- Common use cases:
- Starter kits or bundles
- Frequently ordered item combinations
- Standard service packages
- Project templates
- Common bill of materials groupings
- In OneWorld accounts, subsidiary assignment is mandatory
- When updating member items, you must provide the complete list of items (partial updates replace the entire member list)
- Item groups simplify order entry but maintain separate inventory tracking for each member item
- Each member item's price, tax, and account settings are used independently
Common Item Group Configurations
Hardware Bundle
{
"itemId": "HARDWARE-BUNDLE",
"displayName": "Hardware Installation Bundle",
"member": {
"items": [
{"item": {"id": "100"}, "quantity": 1, "description": "Main unit"},
{"item": {"id": "101"}, "quantity": 5, "description": "Mounting brackets"},
{"item": {"id": "102"}, "quantity": 1, "description": "Installation kit"}
]
},
"printItems": true
}
Service Package
{
"itemId": "SERVICE-PKG-BASIC",
"displayName": "Basic Service Package",
"member": {
"items": [
{"item": {"id": "500"}, "quantity": 10, "description": "Support hours"},
{"item": {"id": "501"}, "quantity": 1, "description": "Setup fee"},
{"item": {"id": "502"}, "quantity": 1, "description": "Training session"}
]
},
"printItems": false
}
See Also
- Kit Item - Items sold as kits with inventory tracking
- Assembly Item - Items built from components
- Description Item - Non-billable text lines