Bundle Component
Introduction
Selling a product wrapped under a single common name is one of the features in IBM Sterling OMS. A bundle is a collection of several products/services or other bundles that are marketed under one common name. These products are sold by the seller as a single product.
What is a Bundle Item?
A Bundle is a combination of multiple components. The components may be a physical item, a service item, or even another bundle.
Example: Dining Table
- Parent Item: Dining Table
- Components: Table (1 qty), Chair (4 qty)
The combination of one table and four chairs is sold as a single bundle item called a Dining Table.
Inventory Management for Bundle Item
For bundle items, inventory is maintained at the component level. No inventory should be maintained for the parent (bundle) item.
Pricing Methods for Bundle Item:
There are two ways to determine the price of a bundle Item :
1.Parent Item Pricing: Configure the price of a parent item.
2.Component-Based Pricing: Configure individual prices for each component, and the total of all component prices will determine the bundle item price.
Bundle Fulfilment Modes
The Bundle Fulfillment Mode should be configured at the order line level. There are two types of bundle fulfillment modes
1. Ship Independent
2. Ship Together
3. Deliver Together
Ship Independent
In this mode, the products can be shipped as soon as any of the component items are available. The bundle fulfillment mode value for Ship Independent is 00.
Ship Together
In this mode, all component items must be available before the bundle can be shipped. The bundle fulfillment mode value for Ship Together is 01 .
Deliver Together
In this mode, the order is delivered to the customer only when all component items have been received by the carrier partner. The bundle fulfillment mode value for Deliver Together is 02.
Note : If the Bundle fulfillment mode is not provided , then Ship Together(01) is defaulted for Bundle Item.
Tables Involved In Bundle Component:
- YFS_ITEM
- YFS_KIT_ITEM
- YFS_INVENORY_ITEM
Query
SELECT * FROM YFS_ITEM WHERE ITEM_ID = ‘Bundle_Item ‘;
Create a bundle item Camera Kit with Lens and Tripod as its component items. For that create a Lens and Tripod Component:
Manage Item for the component Items
| <ItemList><Item ItemGroupCode=”PROD” ItemID=”CameraLens” OrganizationCode=”MaeghamDigital” UnitOfMeasure=”EACH”><PrimaryInformation AssumeInfiniteInventory=”N” ShortDescription=”Lens XF 50MM” Description=”Lens XF 50MM” ExtendedDescription=”Lens XF 50MM” DefaultProductClass=”GOOD” IsPickupAllowed=”Y” IsDeliveryAllowed=”Y” IsForwardingAllowed=”Y” IsProcurementAllowed=”Y” IsReturnable=”Y” IsItemBasedAllocationAllowed=”Y” IsShippingAllowed=”Y” ReturnWindow=”30″ Status=”3000″/><InventoryParameters ATPRule=”MaeghamATP” InventoryMonitorRule=”MaeghamATPMonitorRule” LeadTime=”0″ IsItemBasedAllocationAllowed=”Y” NodeLevelInventoryMonitorRule=”MaeghamATPNMonitorRule”/></Item><Item ItemGroupCode=”PROD” ItemID=”TriPod” OrganizationCode=”MaeghamDigital” UnitOfMeasure=”EACH”><PrimaryInformation AssumeInfiniteInventory=”N” ShortDescription=”TriPod 64 Inch/163Cm” Description=”TriPod 64 Inch/163Cm” ExtendedDescription=”TriPod 64 Inch/163Cm” DefaultProductClass=”GOOD” IsPickupAllowed=”Y” IsDeliveryAllowed=”Y” IsForwardingAllowed=”Y” IsProcurementAllowed=”Y” IsReturnable=”Y” IsItemBasedAllocationAllowed=”Y” IsShippingAllowed=”Y” ReturnWindow=”30″ Status=”3000″/><InventoryParameters ATPRule=”MaeghamATP” InventoryMonitorRule=”MaeghamATPMonitorRule” LeadTime=”0″ IsItemBasedAllocationAllowed=”Y” NodeLevelInventoryMonitorRule=”MaeghamATPNMonitorRule”/></Item></ItemList> |

Manage Item for parent Component
| <ItemList><Item Action=”Manage” ItemGroupCode=”PROD” ItemID=”SonyCamera” OrganizationCode=”MaeghamDigital” UnitOfMeasure=”EACH”><PrimaryInformation AssumeInfiniteInventory=”N” BundleFulfillmentMode=”01″ BundlePricingStrategy=”PARENT” ShortDescription=”X-H2 40MP” Description=”X-H2 40MP” ExtendedDescription=”X-H2 40MP” DefaultProductClass=”GOOD” IsPickupAllowed=”Y” IsReturnable=”Y” IsShippingAllowed=”Y” KitCode=”BUNDLE“ ReturnWindow=”30″ Status=”3000″/><InventoryParameters ATPRule=”MaeghamATP” InventoryMonitorRule=”MaeghamATPMonitorRule” LeadTime=”0″ NodeLevelInventoryMonitorRule=”MaeghamATPNMonitorRule”/><Components><Component ComponentItemID=”CameraLens” ComponentItemKey=”” ComponentOrganizationCode=”MaeghamDigital” ComponentUnitOfMeasure=”EACH” KitQuantity=”2″ Operation=””/><Component ComponentItemID=”TriPod” ComponentItemKey=”” ComponentOrganizationCode=”MaeghamDigital” ComponentUnitOfMeasure=”EACH” KitQuantity=”1″ Operation=””/></Components></Item></ItemList> |

Adjust Inventory for component Items
| <Items><Item AdjustmentType=”ADJUSTMENT” ItemID=”CameraLens” OrganizationCode=”MaeghamDigital” Quantity=”30″ ShipNode=”MITDigitalDC01″ SupplyType=”ONHAND” UnitOfMeasure=”EACH” ProductClass=”GOOD”/><Item AdjustmentType=”ADJUSTMENT” ItemID=”TriPod” OrganizationCode=”MaeghamDigital” Quantity=”30″ ShipNode=”MITDigitalDC01″ SupplyType=”ONHAND” UnitOfMeasure=”EACH” ProductClass=”GOOD”/></Items> |
select * from yfs_inventory_supply where inventory_item_key in ( SELECT inventory_item_key FROM yfs_inventory_item WHERE item_id IN (‘TriPod’ , ‘CameraLens’)and organization_code = ‘MaeghamDigital’);

Invoke getItemList to see the detail description about the bundle item

Sales Order flow
Create an order for the bundle item ( Item ID = “SonyCamera”)
| <Order AllocationRuleID=”MaeghamSch” BuyerOrganizationCode=”MaeghamDigital” DocumentType=”0001″ EnterpriseCode=”MaeghamDigital” SellerOrganizationCode=”MaeghamDigital”><OrderLines><OrderLine DeliveryMethod=”SHP” FulfillmentType=”HomeDelivery” ItemGroupCode=”PROD” OrderedQty=”1″ ><Item ItemDesc=”X-H2 40MP” ItemID=”SonyCamera” ItemShortDesc=”X-H2 40MP” ProductClass=”GOOD” UnitOfMeasure=”EACH”/><LinePriceInfo IsPriceLocked=”Y” UnitPrice=”1000″/></OrderLine></OrderLines><PaymentMethods><PaymentMethod CreditCardExpDate=”2027-11-11″ CreditCardName=”VISA Card” CreditCardNo=”10000456782342275″ CreditCardType=”VISA” FirstName=”Kevin” LastName=”” PaymentType=”CreditCard” MaxChargeLimit=”1000″ UnlimitedCharges=”N”><PaymentDetails AuthCode=”100″ AuthorizationExpirationDate=”2026-11-11T23:00:00″ AuthorizationID=”” ChargeType=”AUTHORIZATION” ProcessedAmount=”1000″ RequestAmount=”1000″/></PaymentMethod></PaymentMethods><PersonInfoShipTo AddressLine1=”” AddressLine2=”” AddressLine3=”” AddressLine4=”” AddressLine5=”” AddressLine6=”” City=”Theni” Company=”MaeghamInfoTech” Country=”IN” FirstName=”” JobTitle=”” LastName=”” MiddleName=”” MobilePhone=”” State=”TN” Title=”” ZipCode=”520001″/><PersonInfoBillTo AddressLine1=”” AddressLine2=”” AddressLine3=”” AddressLine4=”” AddressLine5=”” AddressLine6=”” City=”Theni” Company=”MaeghamInfoTech” Country=”IN” FirstName=”” JobTitle=”” LastName=”” MiddleName=”” MobilePhone=”” State=”TN” Title=”” ZipCode=”520001″/></Order> |
The order has been created and is currently in the Created status.


We are able to find the relation between the orderLines in the order.

Determining the Shipnode based on the sourcing and scheduling rules:
Only the component items will progress to the next status , the parent item will remain in the created status until all its components have moved to shipped status.
Send the Order information to the allocated Shipnode.

Create a Shipment for the Item

Confirm Shipment

Conclusion
This document highlighted the key concepts of bundle components in IBM Sterling OMS, including their structure and order flow.