About Bundles and Kits
Overview
An inventory bundle (or kit) comprises multiple products called child items; however, a customer can only purchase the entire bundle. The bundle itself is a virtual product; that is, a container or parent for the products that make it up. If you offer basic bundles/ kits on your webstore, ROM manages the relationships of these bundles through the order life cycle process from order creation to sourcing to post-purchase management of the bundled items.
Types of Bundles
There are three types of bundles:
Physical Bundle: Products are physically bundled and packaged together in advance. Store Associates and Warehouse personnel pick one SKU as opposed to multiple individual SKUs. In these bundles, the SKUs do not change. The shopper does not make any individual selections such as flavor/ color/ size for any item. ROM already supports this type of bundle.
"Kits on the Fly": In this case, the shopper can select the bundle contents from a list of possible choices. For example, as a special promotion, you might offer a bundle of three lipsticks. The shopper can select any three from a list of choices.
Virtual bundle with static contents: Individual products are not pre-packaged together. The Virtual Bundle is picked and packed at the fulfillment location(s) after the kit is purchased. From the webstore perspective, a bundle is considered out of stock if one or more of the component items is out of stock.
Although components are typically shipped together, they can be stored in disparate locations and shipped to the customer in separate packages. When offering a gift set, this may require custom product packaging.
The components for this type of bundle appear as lines on the order, which may include special packaging to be used.
Behavior
When a customer orders a virtual bundle, the OrderCreate API includes the virtual parent product. ROM then determines the bundle components and separates the bundle into individual child products using the bundle contents provided in the Item Master or specified through the ROM user interface. ROM creates separate line items for the parent and each child product, and establishes parent/child relationships. The bundle price is included in the request for the parent product on the order.
Bundles can be sourced from one node only or from multiple nodes. To ensure that bundles are shipped from one node only, you activate the Ship Together toggle in the ROM UI. If the bundle includes a SKU for a specific package, you must select Ship Together to ensure that the bundle items are packaged correctly.
When you configure the bundle, you can also specify the price percentage of each item in the bundle. For example, if a bundle comprising four items is priced at $100, you could specify that each item accounts for 25% of the $100 price. If the customer returns one item in the bundle, the amount of the refund would be $25, or 25% of the bundle price.
Configuration
Considerations
Before configuring your bundles, answer these questions:
Is the bundle already grouped and packaged under a single SKU? If this is the case, the bundle is considered a single item, so you need only ensure that the item exists in ROM.
Do all of the child products exist in ROM? If not, you must add them, either through the Item Master or the ROM UI.
Does the bundle require special packaging?
Can the child products be sourced from disparate locations?
What percentage of the bundle price does each child product cover?
How will you handle returns? Can a shopper return part of the bundle, or must they return the entire bundle?
Procedure: ROM UI
To configure a bundle with static contents from the ROM UI:
From the Main Menu, navigate to Catalog & Inventory>Item Search. The Item Search screen appears.
Click or tap the Add button. The Add Item screen appears. This item is the virtual parent product of the bundle. The items that make up the bundle are the child products.
Note: For details on adding an item, see Add an Item. This section describes the specific fields for defining bundles.
In the General Information section, select Bundle Merchandise from the Item Type
A category that describes the item; for example, regular merchandise, gift card, or gift wrap. field.
Select Bundle Contents from the right navigation menu.
If the items in the bundle must be shipped together, activate the Ship Together toggle.
Note: If one of the child products is special packaging for the bundle, you must specify that the items ship together.
If you activate this toggle, all the child products in the bundle are sourced from a single location. If ROM cannot source the child products from the same location, the order is canceled. If one or more items in the bundle is out of stock or pick declined, the order is canceled, unless all of the items are able to be backordered. In that case, all of the items in the bundle are backordered.
If you don't activate this toggle, ROM can source the child products from different locations and shipped separately. In this case, if any items in the bundle are out of stock, only that item is canceled or backordered.
Add the child products (items) that make up the bundle.
In the Item ID field, click or tap the Lookup button to search for the child product.
In the Quantity field, enter the quantity of this child product to include in the bundle.
In the Price Percentage field, enter the percentage of the bundle price allocated to this child product. For example, if the bundle has four child products, you might specify that each is 25% of the bundle price. This percentage is used to calculate the refund amount if part of the bundle is returned.
To add the next child product, click or tap the Add Bundle Item button. A new set of fields appears.
To delete a child product, click or tap the
icon next to that product.
When you're finished adding the child products, click or tap the Save button.
In addition to configuring the bundle, you must also specify how to handle returns of child products.
From the Main Menu, navigate to Omni Administration>Seller
A seller is part of an organization. It can represent a sales channel, geographic region, or line of business. Organizations can have more than one seller, but a seller can have only one organization. Configurations>Seller Service Group Configurations.
From the Edit Seller Service Group Configurations screen, click or tap the Return Service tile. The Return Service screen appears.
In the Partial Returns section, specify the Line Item Relationship Type and whether to enable a partial return for that type.
In the Line Item Relationship Type field, select Ship Together.
In the Enable field, select Yes to enable returns of line items in the bundle.
In the Auto Add Child Line Items, if a return is entered for the virtual bundle parent item, the bundle components are automatically included in the return order.
In the Line Item Relationship Type field, select Ship Together.
In the Enable field, select Yes to enable returns of line items in the bundle.
Click or tap the Save button.
If one of the child products in your bundle is a warranty, you may
Procedure: Exclude Warranty Child Product from OTF Feed
The Orders to Fulfill (OTF) feed send orders to the Warehouse Management System (WMS) for fulfillment. The order record contains the necessary data to pick, pack, and ship an order and to print a packing slip. If you provide a warranty for your bundle and that warranty is activated after the bundle is fulfilled, however, you may want to exclude the warranty from the OTF feed.
To do this, you specify the warranty as a customization. Normally, customizations are sent in the OTF feed to the warehouse and handled there. In this case, however, you must exclude the customization; that is, the warranty item, from the OTF feed.
If you exclude warranty line items from the OTF feed, only the main item is included in the OTF feed. However, all items are included in the POS and Order Status feeds.
To exclude a warranty item line from the OTF feed:
From the Main Menu, navigate to Omni Administration>Seller Configurations>Service Group Configurations. The Edit Service Group Configurations screen appears.
From the left menu, select Shipment Service Group. The Shipment Service Group configurations screen appears.
From the right menu, select Exclude Custom Line from OTF/RFIL. The Exclude customized lines in OTF generation toggle appears.
Enable the toggle.
Click or tap the Save button.
Procedure: Item Master
You can define bundles and their component SKUs in the Item Master. You can also include the price percentages for each component SKU. To define a packaging component for the bundle, set the PackagingSKU attribute to true in the Custom Attributes.
The following example includes a bundle with five items. The items must be shipped together with the packaging SKU.
<ItemMaster>
<MessageHeader>
<Standard>GSI</Standard>
<HeaderVersion>5.21</HeaderVersion>
<VersionReleaseNumber>5.21</VersionReleaseNumber>
<SourceData>
<SourceId>TMSNA</SourceId>
<SourceType>CLIENT</SourceType>
</SourceData>
<DestinationData>
<DestinationId>Phub</DestinationId>
<DestinationType>Phub</DestinationType>
</DestinationData>
<EventType>ItemMaster</EventType>
<MessageData>
<MessageId>100</MessageId>
<CorrelationId>100</CorrelationId>
</MessageData>
<CreateDateAndTime>2015-06-03T09:39:47-04:00</CreateDateAndTime>
</MessageHeader>
<Item operation_type="Add" gsi_client_id="TMSNA" catalog_id="21">
<ItemId>
<ClientItemId>Bundle11</ClientItemId>
</ItemId>
<BaseAttributes>
<CatalogClass>regular</CatalogClass>
<IsDropShipped>false</IsDropShipped>
<ItemDescription>Bundle Products with 5 Bundled Items</ItemDescription>
<ItemType>BUNDLE</ItemType>
<ItemStatus>Active</ItemStatus>
<TaxCode>76800</TaxCode>
<Hierarchy>
<DeptNumber>903</DeptNumber>
<SubDeptNumber>1</SubDeptNumber>
<ClassNumber>1</ClassNumber>
<SubClass>1</SubClass>
</Hierarchy>
</BaseAttributes>
<BundleContents ship_together="true">
<BundleItems operation_type="Add" catalog_id="21">
<ItemID>B11C1</ItemID>
<Quantity>4</Quantity>
<PricePercentage>40</PricePercentage>
</BundleItems>
<BundleItems operation_type="Add" catalog_id="21">
<ItemID>B11C2</ItemID>
<Quantity>1</Quantity>
<PricePercentage>10</PricePercentage>
</BundleItems>
<BundleItems operation_type="Add" catalog_id="21">
<ItemID>B11C3</ItemID>
<Quantity>2</Quantity>
<PricePercentage>20</PricePercentage>
</BundleItems>
<BundleItems operation_type="Add" catalog_id="21">
<ItemID>B11C4</ItemID>
<Quantity>2</Quantity>
<PricePercentage>20</PricePercentage>
</BundleItems>
<BundleItems operation_type="Add" catalog_id="21">
<ItemID>B11C5</ItemID>
<Quantity>1</Quantity>
<PricePercentage>10</PricePercentage>
</BundleItems>
</BundleContents>
<ExtendedAttributes>
<AllowGiftMessage>true</AllowGiftMessage>
<Buyer>
<BuyerId>999</BuyerId>
</Buyer>
<CountryOfOrigin>US</CountryOfOrigin>
<HazardousMaterialCode>0</HazardousMaterialCode>
<ItemDimension>
<CartonType>BCA</CartonType>
</ItemDimension>
<Manufacturer>
<Name>Bundle Makers</Name>
<ManufacturerId>Bundle_Man_Id</ManufacturerId>
</Manufacturer>
<MSRP>100.00</MSRP>
<Price>100.00</Price>
<SalesClass>stock</SalesClass>
<ShipGroup>SHPA</ShipGroup>
<ShipWindowMinHour>24</ShipWindowMinHour>
<ShipWindowMaxHour>48</ShipWindowMaxHour>
</ExtendedAttributes>
<CustomAttributes>
<Attribute name="PackagingSKU">
<Value>true</Value>
</Attribute>
</CustomAttributes>
</Item>
</ItemMaster>
Notification Events
Bundle parent data is always sent in both of the event messages (1.0 and 2.0), with isBundleParent set to true; for example:
<OrderItem id="1" isBundleParent="true">
The events also provide item relationship information for bundle parent and bundle child products. In the following examples, the item relationship specifies that the items must be shipped together.
Example: Bundle Parent Line
<ItemRelationships>
<ItemRelationship type="SHIPTOGETHER">
<Children>
<Child lineItemNumber="2" sublineItemNumber="1"/>
<Child lineItemNumber="3" sublineItemNumber="1"/>
</Children>
</ItemRelationship>
</ItemRelationships>
Example: Child Product Line
<ItemRelationships>
<ItemRelationship type="SHIPTOGETHER">
<Parent orderedQuantity="1" lineItemNumber="1" sublineItemNumber="1"/>
</ItemRelationship>
</ItemRelationships>
For Shipment Confirmation, Order Cancellation or Credit Issued events, the bundle parent has the status indicating whether it is partially complete or fully complete.
For Shipment Confirmation events:
<ns2:OrderItemStatus>PARTIALLY_SHIPPED</ns2:OrderItemStatus>
<ns2:OrderItemStatus>COMPLETELY_SHIPPED</ns2:OrderItemStatus>
For Credit Issued events:
<ns2:OrderItemStatus>RETURN_PARTIAL</ns2:OrderItemStatus>
<ns2:OrderItemStatus>RETURN_FULL</ns2:OrderItemStatus>
For Cancellation events:
<ns2:OrderItemStatus>PARTIALLY_CANCEL</ns2:OrderItemStatus>
<ns2:OrderItemStatus>COMPLETELY_CANCEL</ns2:OrderItemStatus>
POS Feed
The following elements in the POS feed have been added/amended for bundle orders:
Item Type is set as BUNDLE for the parent line.
<ItemType>BUNDLE</ItemType>
ExtendedAttributes Status indicates whether the line is complete or not.
<ExtendedAttributes>
<Name>STATUS</Name>
<Value>COMPLETED/NOT_COMPLETED</Value>
</ExtendedAttributes>
OrderLineRelationships specifies the information about the bundle and its components.
<OrderLineRelationships>
<OrderLineRelationship>
<RelationshipType>SHIPTOGETHER</RelationshipType>
<ParentLine>2</ParentLine>
<ChildLine>1</ChildLine>
</OrderLineRelationship>
</OrderLineRelationships>