Skip to content
Last updated

Availability Calculation for Bundled Products in Norce Commerce

This page explains how Norce Commerce calculates product availability for bundles, specifically for the product types ManagedStructure and ManagedERPPackageWithCalc (and their unmanaged legacy versions). These bundles have their availability values calculated based on their child products.

For availability calculations on ordinary (non-bundle) products, see Availability structures.

Overview: How Bundle Availability is Calculated

Bundles in Norce Commerce are products composed of multiple child products. The system calculates the bundle's availability fields by aggregating and processing the availability data from its children.

Calculated Fields for Bundles

The following fields are calculated for each bundle, per warehouse/location pair:

  • OnHandValue: The lowest available quantity among the children, after dividing each child's on-hand value by the required quantity for the bundle.
  • IncomingValue: The lowest incoming quantity among the children, after dividing by the required quantity (ignoring null values).
  • NextDeliveryDate: The latest next delivery date among the children. If any child lacks a delivery date, the bundle's value is null.
  • LeadTime: The largest lead time value among the children.

Note: Calculations are performed per warehouse/location pair. Bundles do not receive a total calculation across all warehouses.

Calculation Logic

  • Only child products enabled for the same warehouse/location are included.
  • If any required child is not enabled for a warehouse/location, the bundle is not available there.
  • Calculations account for the required quantity of each child in the bundle.
  • Reservation values are considered in on-hand calculations, but reservation is not stored on the bundle itself.

Example Scenarios

Below are examples illustrating how bundle availability is calculated in different scenarios. Each table is self-contained and includes all relevant context.

Example 1: Both Children Available

A bundle consists of 1 piece of Product A and 2 pieces of Product B.

ProductOnHandValueIncomingValueNextDeliveryDateLeadTime
Child A10NullNull1
Child B10NullNull1
Bundle (1 pc A, 2 pcs B)5NullNull1

Explanation:
Child B has 10 units on hand, but the bundle requires 2. The bundle's on-hand value is the lowest available among the children after dividing by required quantity:

  • Child A: 10 / 1 = 10
  • Child B: 10 / 2 = 5
    The bundle's on-hand value is 5.

Example 2: One Child Not Available

Child B is not active (not enabled) on the warehouse/location.

ProductOnHandValueIncomingValueNextDeliveryDateLeadTime
Child A20NullNull1
Child B----
Bundle (1 pc A, 2 pcs B)----

Explanation:
If any required child is not enabled on the warehouse/location, the bundle is not available there.

Example 3: Incoming Value Used

ProductOnHandValueIncomingValueNextDeliveryDateLeadTime
Child A0102022-01-011
Child B20NullNull1
Bundle (1 pc A, 2 pcs B)0102022-01-011

Explanation:
Child A has no on-hand value, so the bundle's incoming value and next delivery date are taken from Child A.

Example 4: Different Incoming Values and Dates

ProductOnHandValueIncomingValueNextDeliveryDateLeadTime
Child A0102022-01-011
Child B0222022-02-011
Bundle (1 pc A, 2 pcs B)0102022-02-011

Explanation:
The bundle's incoming value is the lowest (after dividing by required quantity), which is 10 from Child A. The next delivery date is the latest among the children, which is 2022-02-01 from Child B.

Example 5: Lead Time Calculation

ProductOnHandValueIncomingValueNextDeliveryDateLeadTime
Child A10NullNull5
Child B10NullNull1
Bundle (1 pc A, 2 pcs B)5NullNull5

Explanation:
The bundle's on-hand value is 5 (see Example 1). The lead time is the largest among the children, which is 5 from Child A.

Example 6: Reservations and OnHand Calculation

ProductOnHandValueReservation
Child A10(*)5
Child B250
Bundle (1 pc A, 2 pcs B)50(**)

Explanation:
On-hand values are calculated after subtracting reservations. Reservation values are not stored on the bundle itself.

Note:
(*) OnHandValue is shown with reservation subtracted in the Admin UI and Norce Commerce Services (but not in Norce Commerce Query).
(**) Reservation field is not used on ManagedStructure or ManagedERPPackageWithCalc products; it is only considered in the on-hand calculation.