POS + General Ledger + Inventory + Payroll — All Included on Every Plan | Free Updates Forever

Working with Sub-Items and Component Recipes

Working with Sub-Items and Component Recipes

The Sub-Items tab on the item form is where you define the component recipe for kits and assemblies. Every component can be configured with quantities, price adjustments, group assignments, optional/mandatory flags, and more. This guide covers the full sub-item management workflow.

Accessing the Sub-Items Tab

The Sub-Items tab is visible on the item form only when the Is Package checkbox is checked on the General tab. If you do not see the Sub-Items tab, go to the General tab and enable Is Package first.

Adding Components

There are two ways to add components to a kit or assembly:

  • Browse button — Opens the Inventory Browser in Select mode so you can choose an existing item as a component. Double-click an item in the browser to add it to the sub-items grid.
  • New Item button — Creates a new inventory item inline without leaving the current form. After saving the new item, it is automatically added as a component.

Each component appears as a row in the sub-items grid with the following columns visible:

ColumnDescription
QuantityHow many units of this component are included per one parent item (editable directly in the grid)
NameThe component item's name
Price AdjustmentAny surcharge or discount applied when this component is included
Group NameThe choice group this component belongs to (e.g., "Size", "Topping")
Is MandatoryWhether this component must be included in every sale
Is OptionalWhether the customer can choose to include or exclude this component

Configuring a Sub-Item (frmManageSubitems)

Double-clicking a row in the sub-items grid opens the detailed sub-item configuration form (frmManageSubitems). This form provides complete control over how the component behaves within the parent kit or assembly.

Category / Group Name

The Group Name field assigns the component to a choice group. Groups let you organize components into logical sets that the POS presents to the customer. For example:

  • A "Build Your Own Pizza" kit might have groups: "Crust", "Sauce", "Cheese", "Topping"
  • A "Computer Bundle" kit might have groups: "Processor", "Memory", "Storage"

Components in the same group are presented together at the POS, making it easy for operators or customers to make selections within each category.

Sort Order

The Sort Order field controls the display position of this component within the sub-items list and at the POS. Lower numbers appear first. Use sort order to arrange components in a logical sequence (e.g., main items before side items, required components before optional ones).

Is Forced (Mandatory)

The Is Forced checkbox marks a component as mandatory:

  • Checked — This component is always included when the parent item is sold. The customer cannot remove it. Enabling Is Forced automatically sets the component as default-selected.
  • Unchecked — The component is available for selection but not required.

Use Is Forced for essential components that define the product (e.g., the burger patty in a burger combo).

Is Optional

The Is Optional checkbox marks a component as customer-skippable:

  • Checked — The customer can choose to include or exclude this component. It will appear as an optional add-on at the POS.
  • Unchecked — The component follows the standard inclusion rules (either forced or default-selected based on other settings).

Use Is Optional for genuine add-ons like extra toppings, gift wrapping, or extended warranties.

Min / Max Selection

The Min Selection and Max Selection fields define how many items from this component's group the customer must or can select:

  • Min Selection — The minimum number of selections required from this group (e.g., "must choose at least 1 topping")
  • Max Selection — The maximum number of selections allowed from this group (e.g., "choose up to 3 toppings")

These constraints are enforced at the POS when the Requires Sub-Item Selection checkbox is enabled on the parent item.

Price Modifier

The Price Modifier field sets a surcharge or discount that applies when this component is included:

  • Positive value — Adds a surcharge to the parent item's price (e.g., +$2.00 for premium cheese)
  • Negative value — Applies a discount (e.g., -$1.00 for a promotional component)
  • Zero — No price adjustment; the component is included at no extra charge

Price modifiers are reflected in the POS line item total.

Quantity Per Package

The Quantity Per Package field specifies how many units of this component are consumed per one unit of the parent item. For example:

  • A furniture assembly might require 4 screws per unit: Quantity Per Package = 4
  • A meal kit might include 1 sandwich per combo: Quantity Per Package = 1

This quantity is used during stock deduction (for kits at POS) and during the build process (for assemblies).

Can Sell Standalone

The Can Sell Standalone checkbox controls whether this component can also be sold as an independent item:

  • Checked — The component item remains available for individual sale in the POS, in addition to being part of this kit/assembly
  • Unchecked — The component is only available as part of this parent item

Standalone Price Override

The Standalone Price Override field sets a different price for the component when it is sold on its own (outside of the kit/assembly). This is useful when the component has a discounted price as part of a bundle but a higher price when purchased individually.

Display Name Override

The Display Name Override field lets you show a different name for this component at the POS than its actual item name. For example, an item named "12oz Soda Can - Cola" might display as simply "Cola" when shown as a kit component.

Image Override

The Image Override allows you to assign a different image to the component when displayed within the context of the parent kit/assembly, rather than using the component item's default image.

Kit Cost Auto-Calculation

For Virtual Kits, AccuArk automatically calculates the kit's cost from its components:

Kit Cost = Sum of (Component Cost x Component Quantity) for all components

This calculation runs automatically whenever:

  • A component is added, removed, or its quantity is changed
  • A component item's cost is updated (e.g., after receiving on a purchase order)

The auto-calculated cost keeps the kit's margins accurate without manual updates. The calculation is performed by RecalculateKitCostAsync() on the Sub-Items tab.

Assembly Build Stock

For Physical Assemblies, the Sub-Items tab includes a Build Stock button. This button is only visible for assembly items and opens the Assembly Build form, where you can:

  • See the component recipe with required quantities and current stock levels
  • Calculate the maximum number of assemblies you can build from available components
  • Enter the quantity to build
  • Execute the build, which deducts components and adds finished assembly units to stock

See the "Building and Disassembling Assemblies" article for a complete walkthrough of the build process.

Tips

  • Plan your recipe before adding components — Know which items will be components and their quantities before you start, since the package type locks after saving with sub-items
  • Use groups for POS clarity — Organizing components into named groups (Protein, Side, Drink) makes the POS selection interface intuitive for operators
  • Set Min/Max on groups — This prevents operators from accidentally including too many or too few selections from a group
  • Use price modifiers for premium options — Rather than creating separate kit items for each premium variant, use price modifiers on optional components to handle surcharges
  • Check standalone settings — If a component should never be sold on its own, uncheck Can Sell Standalone to prevent accidental individual sales
Was this article helpful?
Back to Inventory & Stock Management Contact Support
Please note: This article is intended as a general guide. AccuArk© is continuously improved through regular software updates, so some screens, labels, or features described here may appear slightly different in your version. If something doesn't match or you need further assistance, please don't hesitate to contact our support team.
Still need help?

Our support team is ready to assist you.

Submit a Ticket