Order splitting

Recommending multiple packages for single order

Last updated 09 Aug 2024

Order splitting is a feature that allows you to split a single order into multiple packages. This can be useful for large orders that would otherwise not fit into a single package, or for orders that need to be split for other reasons.

Info

Order splitting is a feature that requires special permission. If you are interested in using this feature, please contact us at dev@skrym.se.

How it works

Splitting process diagram
Order Splitting Process
flowchart TD A[Start] --> B{Attempt to place all products in one package} B -->|Fits| C[Place all products in the package] C --> I[End] B -->|Does not fit| D{Maximum allowed splits reached?} D -->|No| E[Create a new package] E --> F{Preserve order lines?} F -->|No| G[Place remaining products in new package] F -->|Yes| H{Hard or soft preservation?} H -->|Hard| I1[Do not split order lines] H -->|Soft| J1[Try to avoid splitting, but allow if necessary] G --> J{Products remaining?} I1 --> J J1 --> J J -->|Yes| B J -->|No| I[End] D -->|Yes| K[Error: Unable to fit products]
Split-when-full basis

At the time of writting, our order splitting functionality operates on a split-when-full basis. In simple terms, Skrym will try to place all the products in the order into the smallest possible package, but upon failing to fit into the largest package, it will attempt to place the remaining products into the next smallest possible package. This process will be repeated until all products are placed inside a package or until the maximum allowed splits is reached.

For splitting, the NumberOfSplits and PreserveOrderLines hyperparameters are especially important (see preferences). They determine the maximal number of splits and how strict the splitting is, respectively.

The splitting is baked into all of our optimization endpoints so with the appropriate permission, it can be triggered by calling, e.g. pre- or post-payment optimization.