- Often business needs to sell, maintain, manage and track different individual stock keeping units (sku’s) packed together. Such sku’s are termed as bundle sku’s on the catalog.
- This is done considering set of products on similar physical characteristics, selling patterns, consumer buying preferences, fulfillment constraints, etc.
- The objective of this article is to bring out considerations on managing bundle sku’s as part of order management system and the Sterling OMS capabilities around the same.
Concept of a Bundle SKU
- A bundle sku is a group of products sold, procured or assembled together
- All these sellable inventory sku’s will be associated as child sku’s of a logical bundle parent sku. For example, Dining Furniture is Bundle parent sku (logical sku) and child sku’s (inventory sku) are Dining Chairs, Dining Table and Dining Cloth
- Every child sku is managed with a ratio (kit ratio) associated to parent which depicts the number of child units needed for qualifying a complete bundle parent sku.
- A child sku can be part of multiple bundle parent
- It is important for a seller to offer end-customers the sellable bundle parent sku’s from the points of view of inventory availability, serviceability to a customer zip code, fulfillment constraints, etc. by rolling up data from individual child sku’s.
For example, Bundle Parent SKU – Dining Furniture
* Child sku 1- 4 dining chairs (1:4),
* Child sku 2 – 1 dining table (1:1)
* Child sku 3 – 2 dining cloth (1:2)
A child sku, which can be either a product or a service or another bundle sku, is often referred as component sku.
For example, Dining Set, which has 4 Plates, 4 spoons and 4 forks, could be bundle sku under Dining Furniture bundle sku.
Similarly, Dining Furniture Bundle can have Carpentry installation services as a child sku
For bundle fulfillment, there are 3 modes, called as bundle fulfillment mode (BFM), set up in the catalog:
- Ship Independent (00) – Individual component sku’s can be shipped and delivered at different dates from different fulfillment locations
- Ship Together (01) – Component sku’s must be shipped together, hence delivered together, on same date from same fulfillment location
- Deliver Together (02) – Component sku’s must be delivered together on same date but may get shipped from different fulfillment locations
Inventory sync for both full and delta sync will have updates for component sku’s only. System determines inventory in the context of bundle parent. That is, when added to cart, the kit ratios are resolved to determine order promising capabilities of bundle parent based on BFM. Similarly, when publishing inventory cache for front end channels, kit ratios are resolved to determine bundle parent availability based on BFM.
Because a component sku can be part of multiple selling bundle sku’s, real-time availability monitor (RTAM) processes them as below:
- Inventory activity on every component
- All bundles which have the component sku for which inventory position has changed
- Trigger relevant updates to selling channels for bundle and component sku availability
- Since that component of bundle can be sold as a standalone sku outside the bundle, it’s important to publish component inventory
- For Ship Independent, publish only component sku availability
- For Ship Together and Deliver Together, publish both bundle parent and component sku availability
Pricing bundles vary from regular sku pricing to carry information such as unit price, shipping Charges, applicable taxes. Below are bundle pricing strategies:
- Pricing related information is maintained at bundle parent line only.
- This strategy is preferred when bundle fulfillment mode is Ship Together or Deliver Together
- Attribute LinePriceForInformationOnly will be set as Y on all component lines
- Component lines can have unit price as either ‘0’ or a weighted average value
- Pricing related information is maintained at each component line only
- No pricing data is managed on bundle parent line
- This strategy is typically preferred when BFM is Ship Independent
- Attribute LinePriceForInformationOnly will be set as Y on only parent line
- Pricing related information is maintained at both bundle parent and individual component line.
- Order total will be summation of bundle parent and all component line’s unit price, charges and taxes
- This strategy is preferred when BFM is Ship Independent
- Attribute LinePriceForInformationOnly will not be set as Y on either parent or component lines
ATP and Reservation for Bundle SKU
Availability and Reservation determined based on BFM and kit ratio.
Partial availability of any unit of any of child sku will result in whole bundle sku not available. The findInventory and reserveAvailableInventory API’s expect only bundle parent orderline to be passed as a promise line which internally explodes the parent orderline into multiple orderlines by adding child orderlines. In the suggested options –
- BFM as Ship Independent – ShipNode, ExpectedShipmentDate and ExpectedDeliveryDate values could potentially be different on for child lines
- BFM as Ship Together – ShipNode, ExpectedShipmentDate and ExpectedDeliveryDate values will be same for child sku lines
- BFM as Deliver Together -ExpectedDeliveryDate value will be same for all child sku lines, but, ShipNode and ExpectedShipmentDate values can potentially be different
The out of the box (OOB) behavior is to first attempt ShipTogether, then DeliverTogether and then ShipIndependent, considering fulfillment constraints.
|Bundle sku explode||
|Child sku attributes||
|Order Notification to fulfillment locations||
|Partial-Pick, No-Pick and Cancellation||
* Complete no-pick/cancellation of the entire bundle if BFM is Ship Together
|Cancel- full and partial||
Returns & Exchanges
This article was co-authored by Raghuveer P Nagar.