Bundles

Overview

A bundle is offering several products for sale as one combined product.

The OMS bundles is an implementation to identify which order lines pertain to a bundle that will prevent the sourcing engine to split defined lines as part of the bundle. This solution allows guaranteeing that a bundle results into a single shipment.

Bundles process

Order lines which are imported as part of a bundle are highlighted in the OMS. Each order line, part of the bundle, also have a separate price.

Alt Text

The bundle lines will always be sourced together when inventory is available. If there is no stock for any of the lines or stock is not available in the same source, then the entire bundle is kept in soft allocated (held back in sourcing queue and retried in the next allocation waves).

There’s a configuration that allows the OMS to split a bundle after a defined number of attempts. Note that the bundle will be split only in case all lines of the bundle have stock in any of the sources.

From the Sourcing Logic page will be possible to see the reason for the bundle not being sourced is “FilterSourceBundleFromOneSource”

Alt Text

Note: In case an order has a bundle and regular lines, the regular lines will be sourced and the bundle will remain in the sourcing queue.

Two processes allow to force a bundle split:

  • Manual intervention: a user manually sources the order or partially cancel from the exception queue page:

Alt Text

  • Rule to define the number of unsuccessful attempts after which the bundle can be broken and the lines will be sourced individually only in case stock available for all bundle lines (i.e. if only one of the lines of the bundle are not available in any of the sources then the bundle is still held back for sourcing. At this point, the manual sourcing can decide to send only a partial bundle to fulfillment).

Bundles Diagram

Alt Text

Implementation

Implementation by creating a line for the bundle in the order item. See below a simplified example where this bundle called “The Collection” contains a t-shirt and a tour ticket:

{
    "order": {
        "id": "123456",
         "lines": [
                {
                    "line_number": "1",
                    "id": "23",
                    "type": "BUNDLE",
                    "name": "The Collection"
                    ...
                },
                {
                    "line_number": "2",
                    "id": "24",
                    "type": "SIMPLE",
                    "name": "Tee-Shirt",
                    "parent_line_id": "23"
                    ...
                },
                {
                    "line_number": "3",
                    "id": "25",
                    "type": "VIRTUAL",
                    "name": "Magical History Tour Ticket",
                    "parent_line_id": "23"
                    ...
                }
                ...
            ]
        }
}