Complete Guide to Acumatica Kit Assembly Management
Introduction
Kit assembly management in Acumatica allows businesses to create finished products from component parts. Whether you're selling bundled products, packaged sets, or manufactured items, Acumatica provides comprehensive tools to manage your kit products and assembly operations.
Understanding Kits
Kits (also known as bill of materials or BOM) are products made up of multiple components. In Acumatica, you can create:
- Static Kits - Fixed combinations of items sold together
- Dynamic Kits - Configurable kits with optional components
- Phantom Kits - Sub-assemblies that are automatically included
Creating Kit Products
Set up a kit product in Acumatica using the Stock Items screen:
// Create kit item via API
POST /api/data/IN202500
{
"InventoryID": { "value": "KIT-DESKTOP-001" },
"Description": { "value": "Desktop Computer Kit" },
"ItemType": { "value": "Kit" },
"KitItem": { "value": true },
"DefaultPrice": { "value": 999.00 },
"TaxCategory": { "value": "DEFAULT" }
}
Adding Kit Components
// Add components to kit
POST /api/data/IN202500
{
"InventoryID": { "value": "KIT-DESKTOP-001" },
"KitDetails": [
{
"ComponentID": { "value": "CASE-ATX" },
"Qty": { "value": 1 },
"IsOptional": { "value": false }
},
{
"ComponentID": { "value": "MOTHERBOARD-INTEL" },
"Qty": { "value": 1 },
"IsOptional": { "value": false }
},
{
"ComponentID": { "value": "RAM-16GB" },
"Qty": { "value": 2 },
"IsOptional": { "value": false }
}
]
}
Assembly Orders
Create assembly orders to build kit products from components:
// Create assembly order
POST /api/data/AM201000
{
"OrderType": { "value": "WO" },
"InventoryID": { "value": "KIT-DESKTOP-001" },
"WarehouseID": { "value": "MAIN" },
"Quantity": { "value": 10 },
"TranDate": { "value": "2024-01-25" }
}
Release Assembly Order
// Release assembly to generate transactions
POST /api/data/AM201000/Release
{
"OrderNbr": { "value": "WO-000123" }
}
Bill of Materials Management
Manage multiple BOM versions for your kit products:
// Create BOM revision
POST /api/data/AM208000
{
"InventoryID": { "value": "KIT-DESKTOP-001" },
"RevisionID": { "value": "B" },
"EffectiveDate": { "value": "2024-02-01" },
"Status": { "value": "Active" },
"BOMLines": [
{
"ComponentID": { "value": "CASE-ATX-V2" },
"Qty": { "value": 1 }
}
]
}
API Integration
Automate kit assembly operations with the API:
class KitAssemblyManager {
constructor(api) {
this.api = api;
}
async createKitOrder(kitId, quantity, warehouse) {
const order = {
OrderType: { value: 'WO' },
InventoryID: { value: kitId },
Quantity: { value: quantity },
WarehouseID: { value: warehouse },
TranDate: { value: new Date().toISOString().split('T')[0] }
};
return await this.api.post('AM201000', order);
}
async getKitComponents(kitId) {
const kit = await this.api.get(`IN202500/${kitId}`);
return kit.KitDetails || [];
}
async checkInventory(kitId, warehouse) {
const components = await this.getKitComponents(kitId);
const available = [];
for (const component of components) {
const inventory = await this.api.get('IN202000', {
'$filter': `InventoryID eq '${component.ComponentID.value}'`
});
available.push({
component: component.ComponentID.value,
required: component.Qty.value,
available: inventory.QtyOnHand.value
});
}
return available;
}
}
Summary
Kit assembly management in Acumatica provides powerful tools for managing product bundles and manufactured items. By leveraging the API, you can automate assembly operations and integrate with your supply chain systems.
For more information, check out our other tutorials on Back Flush Manufacturing and Serial Number Tracking.