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.

Select the SplitEveryMacro macro and click Create Configuration.

This creates a new configuration where the macro can be enabled and used by the Rule Engine.
In the Macro Configuration screen, add the configuration name.

This macro uses the selected order IDs provided by the Rule Engine. No additional custom parameter values are required.
Make sure to enable the macro to continue with the Rule Engine configuration.

Note: If the macro is not enabled, it will not appear in the Action value list when setting up the rule.
Go to Orders > Rules engine and click + Add new rule.

Enter the rule name and click Create.

Click Add new, select Condition, set the condition as required, and save it.


Use conditions that target orders requiring quantity-based splitting.
Add the macro action and click Save.

In the Add action window, enter the Action name, for example:
SplitEveryMacro
-
Set Action type to:
Execute a macro -
In Action value, select:
SplitEveryMacro
-
Click Save
Note: If the macro is not enabled, it will not appear in the Action value list when setting up the rule.
Review the saved rule setup.

-
Verify the condition and action are connected correctly
-
Click Save in the bottom-right corner to save the rule
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.
Automate Order Splitting
Splits eligible order items automatically based on the configured Split every value for each SKU.
Handle Composite Items
Processes composite items separately before applying the normal extended-property split logic.
Ignore Service Lines
Skips service lines so shipping, surcharge, or other service items are not included in split calculations.
Create Traceable Notes
Adds internal notes to parent and child orders showing how the order was split.
Prevent Reprocessing
Marks processed orders with an order extended property so the same order is not split again.
Validate Split Rules
Skips items with missing, invalid, or unusable Split every values and records the reason where applicable.
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.
Recommended Guidelines
-
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.
Last updated 4 days ago
Built with Documentation.AI