Documentation
Item Sets / Kits / Bundles
Item Sets lets an Organization define a governed commercial or inventory grouping around an existing Item and a controlled list of component Items. The setup determines whether a transaction keeps one Set line, explodes to components, or retains a parent plus components, and how value is carried or allocated.
What Item Sets / Kits / Bundles controls
Item Sets groups an existing Set Item with one or more component Items. The setup can represent a kit, commercial bundle, assortment, pack or other reusable grouping without replacing the underlying Item masters.
The Item Set master controls composition and transaction behavior. Set Type classifies the grouping, while Explosion Mode controls which lines appear in a supported transaction and Pricing Mode controls where commercial value comes from.
Quick Reference
| Task | What to do | Control to remember |
|---|---|---|
| Create | Inventory → Item Sets / Kits / Bundles → Create. | The active Organization owns the Item Set. |
| Choose the parent | Select the Set Item. | The Set Item must be owned by the active Organization and cannot be changed after creation. |
| Add components | Add one or more active Component Items. | Components can be owned Items or Items shared to the Organization with Active USE access. |
| Choose line behavior | Select SINGLE_LINE, EXPLODE or PARENT_CHILD. | Explosion Mode determines which transaction lines are produced. |
| Choose pricing | Select SET_PRICE, COMPONENT_PRICE or ALLOCATE_SET_PRICE. | Some Explosion/Pricing combinations are intentionally blocked. |
| Control options | Maintain Mandatory and Default Include on component lines. | Mandatory components are always included when the Set is expanded. |
| Retire | Change Status to Inactive. | Use Inactive for a Set that has been used historically. |
| Delete | Select an unused Set and choose Delete. | If any selected Set has transaction history, the selected delete operation is rejected rather than partially completing. |
Before you create an Item Set
- Confirm the correct Organization is active in AkshaERP.
- Create the Set Item in that Organization before creating the Item Set.
- Create or confirm every component Item and its Item UOM setup.
- Decide whether the business wants a single commercial line, only component lines, or a parent plus component structure.
- Decide whether price belongs to the Set, comes from the components, or should be allocated from one Set price.
- Confirm the required Currency exists when a Set Unit Price will be used.
- Search existing Set Codes and Set Items before creating a duplicate setup.
Organization ownership and Item eligibility
Every Item Set belongs to the Organization active when it is created. The Set Item itself must be owned by that Organization.
Component Items can be owned by the Organization or shared to it with Active USE access. VIEW-only sharing is not sufficient for a component that will be used in transactions.
| Item situation | Can be Set Item? | Can be Component? |
|---|---|---|
| Owned by active Organization | Yes, when otherwise valid. | Yes, when otherwise valid. |
| Shared with Active USE access | No. | Yes. |
| Shared with VIEW access only | No. | No for transaction use. |
| Inactive Item | Not for an Active Set. | Not for an Active Set. |
Item Sets list – what you can see and do
The Item Sets list is the operating entry point for finding, opening, creating and retiring Item Set definitions. It supports search, sorting, paging, row selection, Create, Open and controlled Delete.
| Column | Meaning | How to use it |
|---|---|---|
| Set Code | Stable controlled identifier for the Item Set. | Use for searching, integrations and distinguishing similar Set names. |
| Set Name | Business-readable Set name. | Primary user-facing description of the grouping. |
| Set Item | Parent Item represented by the Set definition. | Confirms which Item invokes this Item Set. |
| Type | SET, KIT, BUNDLE, ASSORTMENT or PACK. | Classifies the business grouping. |
| Explosion Mode | SINGLE_LINE, EXPLODE or PARENT_CHILD. | Shows how supported transactions will represent the Set. |
| Pricing Mode | SET_PRICE, COMPONENT_PRICE or ALLOCATE_SET_PRICE. | Shows how value is carried or distributed. |
| Set Price | Set-level unit price when applicable. | Required for Set Price and Allocate Set Price modes. |
| Currency | Currency of the maintained Set Unit Price. | Comes from the Currency master. |
| Partial | Whether optional components may be included or excluded. | No means all active components are included. |
| Qty Override | Whether component final quantities may be changed in the transaction Set drawer. | Automatically disabled for Allocate Set Price. |
| Status | Active or Inactive lifecycle. | Inactive Sets remain for history but are not returned for active transaction use. |
| Effective From / To | Optional effective-date window. | Controls when an Active Set is available for transaction use. |
Create / Edit page – Save, Apply and immutable identity
Create defines the Set identity and component structure. Save stores the Set and returns to the list. Apply stores the Set while keeping the user in the Set workflow.
Set Code and Set Item are part of the Set identity. After the Item Set is created, both are locked and cannot be changed. Other configuration can be maintained subject to normal validation and lifecycle rules.
Header field reference
| Field | Requirement | Source / type | What to enter or select | Why it matters |
|---|---|---|---|---|
| Set Code | Hard-save mandatory | Manual controlled code | Stable code up to 100 characters; saved in uppercase. | Unique inside the active Organization and immutable after creation. |
| Set Name | Hard-save mandatory | Manual text | Clear business name up to 240 characters. | Displayed to users when reviewing and expanding the Set. |
| Set Item | Hard-save mandatory | Dynamic Item lookup | Select an Item owned by the active Organization. | The parent Item that invokes the Item Set; immutable after creation. |
| Set Type | Operational classification | Value Set INV_ITEM_SET_TYPE | SET, KIT, BUNDLE, ASSORTMENT or PACK according to business meaning. | Classifies the grouping without itself deciding explosion or pricing. |
| Default Explosion Mode | Hard business rule | Value Set INV_ITEM_SET_EXPLOSION_MODE | Choose SINGLE_LINE, EXPLODE or PARENT_CHILD. | Determines which transaction lines are produced from the Set. |
| Pricing Mode | Hard business rule | Value Set INV_ITEM_SET_PRICING_MODE | Choose SET_PRICE, COMPONENT_PRICE or ALLOCATE_SET_PRICE. | Determines where commercial value comes from. |
| Set Unit Price | Conditional | Number | Enter a non-negative price. | Required for SET_PRICE and ALLOCATE_SET_PRICE. |
| Currency | Conditional | Dynamic Currency lookup | Select the maintained currency for the Set Unit Price. | Required when a Set Unit Price is maintained. |
| Status | Lifecycle control | Value Set ACTIVE_INACTIVE_STATUS | Active or Inactive. | Only an active, currently effective Set is returned for active transaction use. |
| Allow Partial Selection | Selection control | Yes / No Value Set | Yes lets optional components be included or excluded during expansion. | No forces every active component to be included. |
| Allow Quantity Override | Transaction control | Yes / No Value Set | Yes lets the user adjust final component quantities in the Set drawer. | Automatically No for allocated Set pricing. |
| Effective Start Date | Optional | Date | First date the Set should be usable. | Part of the current-use window. |
| Effective End Date | Optional | Date | Last date the Set should be usable. | Must not be earlier than Effective Start Date. |
| Set Item Code | Display only | From selected Set Item | No entry required. | Helps confirm the selected parent Item identity. |
| Description | Optional | Manual text | Explain the commercial or inventory purpose of the Set. | Improves master-data understanding. |
| Remarks | Optional | Manual text | Internal operating note. | Useful for maintenance context and handover. |
Set Type – SET, KIT, BUNDLE, ASSORTMENT and PACK
Set Type is a business classification. It lets users distinguish the intention of the grouping without forcing all organizations into one naming convention.
| Set Type | Typical business use | Important note |
|---|---|---|
| SET | General reusable grouping of Items. | Use when no more specific business label is required. |
| KIT | Items normally supplied or handled together as a kit. | Explosion and pricing still come from their dedicated controls. |
| BUNDLE | Commercial combination sold or quoted together. | Can use one Set price, component pricing or allocated Set pricing. |
| ASSORTMENT | A defined selection of different Items. | Partial-selection policy determines whether optional lines can be changed. |
| PACK | A defined pack-style grouping of Items. | Do not use Set Type as a substitute for UOM conversion when the business need is only unit conversion. |
Explosion Mode – what appears in a transaction
| Explosion Mode | Transaction result | When it is useful |
|---|---|---|
| SINGLE_LINE | The transaction keeps only the Set Item as one line. Component lines are available for Set definition/reference but are not added as transaction lines. | Use when the business transacts the bundle as one commercial Item. |
| EXPLODE | The Set Item line is replaced by the selected component lines. | Use when downstream quantity, pricing or fulfillment must operate directly on components. |
| PARENT_CHILD | The transaction keeps a Set parent line and also adds the selected component lines. | Use when users need both the commercial/group identity and component detail. |
Pricing Mode – where value comes from
| Pricing Mode | Commercial behavior | Configuration to review |
|---|---|---|
| SET_PRICE | Uses the maintained Set Unit Price where the Set parent/single line carries value. | Maintain Set Unit Price and Currency. In PARENT_CHILD mode, review component Price Mode if component lines should carry no additional value. |
| COMPONENT_PRICE | Components use their configured component-line price behavior and, where applicable, normal transaction pricing. | Review each component Price Mode and Discount %. |
| ALLOCATE_SET_PRICE | Distributes the maintained Set Unit Price across active components using Allocation %. | Active component Allocation % must total 100%. Partial selection and quantity override are disabled. |
Explosion and Pricing compatibility
AkshaERP blocks combinations that would not produce a coherent result. SINGLE_LINE requires SET_PRICE because there are no component transaction lines to carry component pricing. EXPLODE cannot use SET_PRICE because the Set parent does not remain as a transaction line.
| Explosion Mode | SET_PRICE | COMPONENT_PRICE | ALLOCATE_SET_PRICE |
|---|---|---|---|
| SINGLE_LINE | Supported | Not supported | Not supported |
| EXPLODE | Not supported | Supported | Supported |
| PARENT_CHILD | Supported | Supported | Supported |
Component Lines – field reference
| Field | Requirement | Source / type | Meaning |
|---|---|---|---|
| Line No | Automatic / display | Sequence | Order of the component line in the Set. |
| Component Item | Hard-save mandatory | Dynamic Item lookup | Item included in the Set. The Set Item cannot be its own component. |
| Item Code | Display | From Component Item | Reference code of the selected Item. |
| SKU | Display | From Component Item | SKU of the selected Item when maintained. |
| Qty / Set | Hard-save mandatory | Positive number | Quantity of the component required for one Set. |
| UOM | Operationally mandatory | Dynamic UOM lookup | Component transaction UOM. It must be the Item default UOM or an active UOM configured for that Item. |
| Mandatory | Selection control | Yes / No | Yes means the component must always participate when components are produced. |
| Default Include | Selection control | Yes / No | Initial inclusion state for an optional component when partial selection is allowed. |
| Price Mode | Pricing control | FROM_COMPONENT / MANUAL / ZERO / ALLOCATED | Determines how that component line obtains value. ALLOCATED is controlled automatically in Allocate Set Price mode. |
| Manual Price | Conditional | Non-negative number | Required when Price Mode is MANUAL. |
| Discount % | Optional | 0 to 100 | Component discount used where the transaction supports it. Disabled in Allocate Set Price mode. |
| Allocation % | Conditional | 0 to 100 | Share of Set Unit Price assigned to this active component in Allocate Set Price mode. |
| Sort | Sequence | Number | Controls component ordering. |
| Active | Line lifecycle | Yes / No | Inactive component lines remain in the Set history but are not used for active expansion. |
| Remarks | Optional | Manual text | Component-specific operating note. |
Mandatory, Default Include and Partial Selection
Mandatory controls whether a component can ever be excluded. Default Include controls the starting choice only for optional lines when partial selection is allowed.
| Configuration | Result in the transaction Set drawer |
|---|---|
| Mandatory = Yes | The component is included and cannot be unselected. |
| Mandatory = No + Partial Selection = Yes + Default Include = Yes | The component starts selected but can be unselected. |
| Mandatory = No + Partial Selection = Yes + Default Include = No | The component starts unselected and can be selected. |
| Partial Selection = No | Every active component is included, regardless of optional status. |
| Allocate Set Price | Partial Selection is forced to No so the maintained allocation remains complete. |
Quantity behavior
Qty / Set defines the normal quantity of a component for one Set. When a transaction uses a larger Set quantity, AkshaERP calculates the component final quantity from the Set quantity and Qty / Set.
If Allow Quantity Override is Yes, the user can adjust final component quantities in the Set drawer before applying the Set. Allocate Set Price disables quantity override so the maintained price allocation remains controlled.
| Example | Calculation | Final component quantity |
|---|---|---|
| Set Qty 3; Component Qty / Set 2 | 3 × 2 | 6 |
| Set Qty 5; Component Qty / Set 0.5 | 5 × 0.5 | 2.5 |
Allocate Set Price – worked example
Allocate Set Price is useful when the business maintains one commercial Set price but exploded component lines must carry the distributed value.
| Component | Qty / Set | Allocation % | Allocated value for a ₹1,000 Set | Allocated unit price |
|---|---|---|---|---|
| Component A | 2 | 60% | ₹600 | ₹300 each |
| Component B | 1 | 25% | ₹250 | ₹250 each |
| Component C | 3 | 15% | ₹150 | ₹50 each |
| Total | 100% | ₹1,000 |
UOM rules for components
A component UOM is not unrestricted free text. The selected UOM must be valid for that component Item.
Use the Item default UOM or an active Item UOM configured for that Item. If the required operating UOM is missing, maintain the Item/UOM setup first and then return to the Item Set.
Status and effective dates – when a Set can be used
Status is the user-facing lifecycle control. Active Sets are candidates for transaction use; Inactive Sets are retained for history but are not returned as current usable Set definitions.
Effective Start Date and Effective End Date provide an optional date window. An Active Set must also be effective on the transaction-use date to be returned as the current Set for its Set Item.
| Status / dates | Usable for current transactions? |
|---|---|
| Active, no date restriction | Yes, when Items/components/UOMs are still valid. |
| Active, today inside effective range | Yes. |
| Active, before Effective Start Date | No. |
| Active, after Effective End Date | No. |
| Inactive | No. |
Nested Item Sets are not supported
A Set Item cannot be used as its own component, and the current reviewed Item Sets function does not support nesting one Item Set inside another Item Set.
If the business needs multiple levels, create the appropriate underlying Item structure or separate transaction logic rather than creating circular or nested Set definitions.
Supported transaction touchpoints
The reviewed Item Set action is connected to major commercial and Inventory line workflows. When a selected Item has a currently usable Item Set, the user can review the configured component result before applying it to the transaction.
| Transaction area | How Item Sets participate |
|---|---|
| Sales Quote | Use the Set configuration to create the configured single, exploded or parent/component quote lines. |
| Sales Order | Use the Set configuration from the order line, subject to the transaction tracking safeguard described below. |
| Purchase Order | Use the Set configuration to create purchase lines according to the configured explosion/pricing behavior. |
| Goods Receipt | Use the Set configuration when receiving the corresponding component structure. |
| Stock Issue | Use the Set configuration to create issue lines for the selected Set structure. |
| Stock Transfer | Use the Set configuration to create transfer lines for the selected Set structure. |
| Stock Requisition | Use the Set configuration to create requisition lines for the selected Set structure. |
Delete versus Inactive
Delete is intended for a genuinely unused setup mistake. Once a Set has been referenced by business transactions, retain the definition and change Status to Inactive so historical documents remain understandable.
Multi-select Delete is all-or-nothing. If one selected Set cannot be safely deleted, the selected operation is rejected instead of deleting only the easy records and leaving a partial result.
| Situation | Recommended action | Reason |
|---|---|---|
| New duplicate or setup mistake with no business use | Delete | No historical Set usage needs to be preserved. |
| Set already used in transactions | Inactive | Preserves traceability and historical meaning. |
| Seasonal Set temporarily not offered | Inactive or use effective dates | Keeps the master while preventing current use. |
| Set composition no longer valid for future business | Inactive and create the correct new setup when required | Avoids rewriting the meaning of historical transactions. |
Common operating tasks
| Task | Recommended steps |
|---|---|
| Create a fixed-price single-line bundle | Create the Set → choose the owned Set Item → add components → choose SINGLE_LINE + SET_PRICE → enter Set Unit Price and Currency → Save. |
| Create an exploded kit priced by components | Choose EXPLODE + COMPONENT_PRICE → add component quantities/UOMs → maintain component Price Modes as needed → Save. |
| Create a bundle whose price is allocated to components | Choose EXPLODE or PARENT_CHILD + ALLOCATE_SET_PRICE → enter Set Unit Price/Currency → enter Allocation % totaling 100% → Save. |
| Make one component optional | Allow Partial Selection = Yes → Mandatory = No on that line → choose Default Include according to the desired starting selection. |
| Force every component to be included | Set Allow Partial Selection = No. |
| Retire a used bundle | Open the Set → Status = Inactive → Save. |
Practical examples
| Business scenario | Possible setup | Why |
|---|---|---|
| Laptop starter bundle sold under one price | BUNDLE + SINGLE_LINE + SET_PRICE | Customer sees one bundle line while the master preserves the defined composition. |
| School book set where each title must appear on the document | SET + EXPLODE + COMPONENT_PRICE | The Set becomes individual title lines for quantity and commercial processing. |
| Promotional bundle with one commercial price allocated across products | BUNDLE + EXPLODE + ALLOCATE_SET_PRICE | Component lines carry a controlled share of one Set price. |
| Maintenance kit where parent identity and component detail are both needed | KIT + PARENT_CHILD + COMPONENT_PRICE | Document retains the kit grouping and the operational component lines. |
| Assortment with optional accessories | ASSORTMENT + EXPLODE + COMPONENT_PRICE + Partial Selection Yes | Mandatory lines stay fixed while optional accessories can be selected. |
Troubleshooting
| Problem | Likely reason | What to check |
|---|---|---|
| Set Item is not accepted | The Item is not owned by the active Organization or is not valid for an Active Set. | Confirm Organization ownership and Item lifecycle. |
| Component Item is rejected | The Item is unavailable, inactive, VIEW-only shared, or already participates in a prohibited nested Set relationship. | Check Item ownership/access, lifecycle and existing Item Set usage. |
| UOM is rejected | The UOM is not the Item default UOM or an active Item UOM for that component. | Maintain the Item UOM setup and retry. |
| Currency is rejected | The code does not exist in the Currency master. | Select the Currency from the maintained lookup. |
| Cannot save SINGLE_LINE + COMPONENT_PRICE | That combination has no component transaction lines to carry component pricing. | Use SINGLE_LINE + SET_PRICE or choose an explosion mode that produces components. |
| Cannot save EXPLODE + SET_PRICE | EXPLODE removes the Set parent line. | Use COMPONENT_PRICE or ALLOCATE_SET_PRICE. |
| Allocation mode will not save | Active Allocation % does not total 100%. | Review each active component Allocation %. |
| Optional component cannot be unselected | It is Mandatory, Partial Selection is No, or Allocate Set Price is active. | Review the Set selection controls. |
| Quantity cannot be changed in the Set drawer | Quantity override is disabled, or Allocate Set Price is active. | Review Allow Quantity Override and Pricing Mode. |
| Item Set does not appear in a transaction | The Set is Inactive, outside its effective dates, or a required Item/UOM is no longer valid. | Review Status, dates, Set Item, components and UOMs. |
| Delete is rejected | The Set has transaction history or another selected Set is not safe to delete. | Use Inactive for used Sets; multi-delete is intentionally all-or-nothing. |
| Sales Order Set action is blocked for a tracked Item | A parent/component is batch or serial tracked. | Use the normal tracked-item line workflow for that Sales Order. |
- Set Code is unique inside the Organization and is saved in uppercase.
- Set Code and Set Item are immutable after creation.
- At least one active component is required.
- The Set Item cannot be its own component.
- The same component Item cannot be repeated on multiple lines in one Set.
- Nested Item Sets are not currently supported.
- Component Qty must be greater than zero.
- Manual Price cannot be negative.
- Discount % and Allocation % must remain between 0 and 100.
- Active Allocate Set Price components must total 100% allocation.
- Effective End Date cannot be earlier than Effective Start Date.
- Used Sets should normally be retired with Inactive rather than deleted.
Related pages
Frequently asked questions
What is the difference between an Item and an Item Set?
An Item is the reusable product, material, service or title used by transactions. An Item Set is a governed composition around an existing Set Item and component Items.
Is a KIT different from a BUNDLE in transaction behavior?
Set Type classifies the business grouping. Transaction line behavior comes from Explosion Mode and Pricing Mode, so two different Set Types can use the same explosion/pricing model.
Can the Set Item come from another Organization?
No. The Set Item must be owned by the active Organization. Components can also be owned locally or can be shared to the Organization with Active USE access.
Can I change the Set Item later?
No. Set Item and Set Code are immutable after creation because they define the Set identity. Delete an unused incorrect setup and create the correct one instead.
What does SINGLE_LINE do?
It keeps only the Set Item as the transaction line. SINGLE_LINE requires SET_PRICE.
What does EXPLODE do?
It replaces the Set Item with the selected component lines. EXPLODE supports component pricing or allocated Set pricing, not SET_PRICE.
What does PARENT_CHILD do?
It retains the Set parent line and adds the selected component lines, allowing users to see both the grouping and its component detail.
How does Allocate Set Price work?
The maintained Set Unit Price is distributed to active components according to Allocation %. Active allocations must total 100%, and partial selection and quantity override are disabled.
Can optional components be selected at transaction time?
Yes when Allow Partial Selection is Yes and the component is not Mandatory. Default Include determines whether that optional component starts selected.
Can one Item Set contain another Item Set?
Not in the current reviewed function. Nested Item Sets are intentionally rejected to keep expansion predictable.
Should I delete an old Set after it has been used?
Normally no. Change Status to Inactive so historical documents continue to reference the original Set meaning. Delete is intended for genuinely unused setup mistakes.