Rule MacroRIS-RM-2298 – Split Every Macro

Split Every Macro

Automatically split qualifying Linnworks order items into child orders based on each SKU's Split every extended property, while handling composite items, service lines, split notes, and processed-order tracking.

Large quantity orders can require item quantities to be split into smaller child orders for easier fulfilment, packaging, or operational handling. Manually splitting these orders can take time and may lead to inconsistent split quantities or missed items.

The Order Splitter by Split Every macro helps automate this process by checking selected Linnworks orders and splitting eligible order items based on each SKU's inventory extended property named Split every.

The macro also handles composite items separately, ignores service lines, records split details in order notes, and marks processed orders with an order extended property to prevent the same order from being processed again.

Split order quantities automatically using each SKU's Split every extended property while keeping parent and child order notes traceable.

Configure the Macro

Once the app is installed, you need to create a macro configuration so the system knows which macro to run and allows it to be selected in the Rule Engine.

This setup can be adjusted anytime based on your operational requirements.

Steps to Configure

Go to Apps > Macro Configuration and click + Add new configuration.

Order splitting can be useful when high quantities need to be broken into smaller fulfilment groups. This macro helps apply a consistent split rule per SKU using the Split every inventory extended property.

How It Works

The macro checks each selected order, handles composite items first, then applies split rules to normal non-service items using the Split every extended property.

Step 1

The macro receives the selected OrderIds from the Rule Engine.

Step 2

It loops through each order ID and processes each order individually.

Step 3

The macro retrieves the order details using the Linnworks Orders API.

Step 4

If the order cannot be found, the macro logs that the order was not found and skips it.

Step 5

The macro checks whether the order already has the processed marker extended property OrderSplitMacro = Yes.

Step 6

If the order was already processed, the macro skips the order to avoid duplicate splitting.

Step 7

The macro separates non-service items from service lines.

Step 8

It separates non-service items into composite items and normal items.

Step 9

If the order contains only one composite item, no split is required and the order is marked as processed.

Step 10

If the order contains composite and normal items, the macro splits all composite items into child orders first.

Step 11

If the order contains multiple composite items only, the macro keeps the first composite item on the parent order and splits the remaining composite items into child orders.

Step 12

The macro then checks normal items for the inventory extended property named Split every.

Step 13

Items without the Split every extended property are not split.

Step 14

Items with invalid or non-positive Split every values are skipped and an internal note is added to the order.

Step 15

Items where the order quantity is lower than the Split every value are skipped and an internal note is added to the order.

Step 16

Eligible item quantities are split into groups using the configured Split every value.

Step 17

The macro creates child order definitions for each split group after the first group.

Step 18

The macro submits the split request to Linnworks using the SplitOrder API.

Step 19

Child orders are marked as processed with the OrderSplitMacro = Yes extended property.

Step 20

The macro adds an internal split summary note to the parent order and parent-reference notes to child orders.

Step 21

The parent order is marked as processed when processing is complete.

Usage of App

This macro is designed to run against selected orders through the Rule Engine. It is useful when order quantities need to be split into smaller child orders based on SKU-level configuration.

OrderIds

Defines the Linnworks order IDs that should be processed.

Split every

Inventory item extended property used to determine the maximum quantity per split group for each SKU.

OrderSplitMacro Process Marker

The macro adds an order extended property named OrderSplitMacro with value Yes and type Order to prevent reprocessing.

Composite Item Handling

Composite items are handled before the normal Split every logic. Depending on the order structure, composites may be split into separate child orders.

Service Line Behaviour

Service lines are ignored and are not used when building split rules.

Parent Order Notes

The parent order receives an internal note showing the child orders created and the item quantities moved.

Child Order Notes

Each child order receives an internal note showing the parent order reference and the items moved into that child order.

Execution Logging

The macro records skipped orders, composite handling, split rules, child order creation, notes, errors, and processing status using the macro logger.

Split Group Example

If an item has quantity 10 and the inventory extended property Split every is set to 3, the macro calculates the split groups as:

[3, 3, 3, 1]

The first group remains on the parent order, and the remaining groups are used to create child orders.

Key Points to Remember

  • The macro processes the order IDs provided in OrderIds

  • The macro is intended to run from the Rule Engine

  • Orders already marked with OrderSplitMacro = Yes are skipped

  • Service lines are ignored

  • The macro checks only non-service items for splitting

  • Composite items are processed before normal items

  • A single composite-only order is not split

  • In composite and normal item orders, all composite items are split out first

  • In multiple-composite-only orders, the first composite remains on the parent order

  • Normal items use the inventory extended property Split every

  • Missing Split every values cause the item to be skipped

  • Invalid or non-positive Split every values cause the item to be skipped and noted

  • If item quantity is lower than the Split every value, the item is skipped and noted

  • The macro creates internal notes using OrderSplitMacro as the note creator

  • Child orders are marked as processed after creation

  • Parent orders are marked as processed after completion

  • Processed tracking is done through an order extended property, not an identifier

What You Can Expect

  • Eligible item quantities are split into child orders
    Items with valid Split every values are grouped and split into child orders where needed.

  • Composite items are separated first
    Composite item behaviour is handled before the normal SKU split logic.

  • Orders without eligible items are marked processed
    If no items qualify for splitting, the macro marks the order as processed to avoid repeated runs.

  • Parent order receives a split summary note
    The parent note lists created child orders and the item quantities moved.

  • Child orders receive parent reference notes
    Each child order receives a note showing which parent order it came from and which items were moved.

  • Duplicate processing is avoided
    The macro marks parent and child orders with OrderSplitMacro = Yes.

Overall Impact

This macro improves order splitting consistency by using SKU-level split rules, reducing manual splitting work, and keeping parent-child order relationships visible through internal notes.

What To Do After the Macro Runs

After the macro has completed, review the parent and child orders to confirm the split results.

Steps to Follow

Step 1

Open Linnworks and locate the order processed by the rule.

Step 2

Check whether the order was split into child orders.

Step 3

Review the parent order internal note for the child order numbers and item quantity summaries.

Step 4

Open each child order and review the internal note showing the parent order reference.

Step 5

Confirm that processed orders contain the OrderSplitMacro = Yes order extended property.

Step 6

Continue with normal picking, packing, fulfilment, or dispatch processing.

Why This Matters

Automated order splitting helps:

  • Reduce manual order splitting

  • Apply SKU-level quantity rules consistently

  • Keep child order creation traceable

  • Avoid duplicate macro processing

  • Separate composite items where required

  • Improve fulfilment handling for large quantity orders

Best Practices

To get the most value from this macro, maintain the Split every extended property carefully and test the split behaviour before using it widely.

  • Set Split every on relevant SKUs
    Add the inventory extended property Split every to SKUs that should be split.

  • Use numeric values only
    The Split every value must be a positive whole number.

  • Avoid running repeatedly on the same order
    The macro adds OrderSplitMacro = Yes, but rule conditions should still be configured carefully.

  • Review composite behaviour
    Confirm that composite splitting rules match your operational process.

  • Check parent and child notes
    Use the internal notes to confirm how items were split.

  • Test with sample orders
    Test orders with normal items, composite items, service lines, and mixed quantities before live use.

Troubleshooting

Order was skipped as already processed

Check whether the order has the extended property OrderSplitMacro with value Yes and type Order.

Item was not split

Confirm that the SKU has an inventory extended property named Split every.

Invalid Split every value

The Split every value must be a positive whole number. Invalid values are skipped and noted.

Quantity was too small to split

If the order quantity is lower than the Split every value, the item is not split.

Service line was ignored

This is expected. Service lines are excluded from split logic.

Composite item did not split as expected

Review whether the order contains only one composite item, multiple composite items, or a mix of composite and normal items.

No child order was created

The macro creates child orders only when eligible split groups exist after the first group.

Macro is not visible in the Rule Engine

Confirm that the macro configuration has been created and enabled in Apps > Macro Configuration.

Summary

The Order Splitter by Split Every macro processes selected Linnworks orders and splits eligible item quantities into child orders based on each SKU's Split every inventory extended property.

It handles composite items first, ignores service lines, validates split values, adds traceable internal notes, and marks processed orders with OrderSplitMacro = Yes to prevent duplicate processing.