> For the complete documentation index, see [llms.txt](https://docs.rishvi.co.uk/linnworks/llms.txt).
> Use it to discover all available pages before exploring further.

# Multi-Location Auto Split & Auto Move

Automatically evaluates stock across multiple fulfilment locations and intelligently decides whether to keep, move, or split orders to maximise fulfilment efficiency while preventing duplicate processing.

Managing orders across multiple warehouses can become complex when stock is distributed between fulfilment locations. Determining whether an order should remain at its current location, be moved to another warehouse, or be split across multiple locations often requires manual review.

The *Multi-Location Auto Split & Auto Move* macro automates this decision-making process by analysing stock availability across all configured locations and determining the most efficient fulfilment strategy.

The macro supports standard inventory items, composite products, location priority rules, parent order rebasing, automatic warehouse moves, order splitting, duplicate processing protection, and optional label reprinting.

> Automatically optimise fulfilment decisions across multiple warehouses using real-time stock availability.

## **Configure the Macro**

Once the app is installed, you need to create a macro configuration so the system knows which warehouse priorities should be used and whether shipping labels should be regenerated when orders are split.

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

### **Steps to Configure**

<Tabs>
  <Tab title="Step 1">
    **Go to Apps > Macro Configuration and click + Add new configuration.**

    <Image src="https://blob-cdn.documentation.ai/org-87fb0951-1e07-4f5d-a887-8a7327c7777d/doc-98941d2e-0032-424f-8414-3034ac5fa6ee/1779285456384-4fsc202syr3-pasted-image-1779285450937.png?fm=auto&auto=compress%2Cformat" width="1368" height="568" alt="" priority={true} fetchPriority="high" />
  </Tab>

  <Tab title="Step 2">
    **Select the MultiLocationAutoSplit macro and click Create Configuration.**

    <Image src="https://blob-cdn.documentation.ai/org-87fb0951-1e07-4f5d-a887-8a7327c7777d/doc-98941d2e-0032-424f-8414-3034ac5fa6ee/1781338384677-3dpx4r2j35c-configurationfvf.png?fm=auto&auto=compress%2Cformat" width="1195" height="552" alt="" priority={true} fetchPriority="high" />

    This creates a new configuration where you can define the required parameter values.
  </Tab>

  <Tab title="Step 3">
    **In the Macro Configuration screen, add the configuration name and parameter values.**\

    <Image src="https://blob-cdn.documentation.ai/org-87fb0951-1e07-4f5d-a887-8a7327c7777d/doc-98941d2e-0032-424f-8414-3034ac5fa6ee/1781338408840-wjkt771ixc-configuration2.pngdc?fm=auto&auto=compress%2Cformat" width="668" height="626" alt="" />

    Configure the following parameters:

    - **PriorityLocations**

    - **ReprintLabels**

    Example:

    ```text
    PriorityLocations = Warehouse A,Warehouse B,Warehouse C

    ReprintLabels = True
    ```

    Parameter descriptions:

    | Parameter         | Description                                                                    |
    | ----------------- | ------------------------------------------------------------------------------ |
    | PriorityLocations | Comma-separated warehouse priority order                                       |
    | ReprintLabels     | Controls whether shipping labels should be regenerated during split processing |

    <Callout kind="warning" collapsed="false">
      **Note:** Warehouse names must exactly match the Linnworks fulfilment location names.
    </Callout>
  </Tab>

  <Tab title="Step 4">
    **Make sure to enable the macro before continuing.**

    <Image src="https://blob-cdn.documentation.ai/org-87fb0951-1e07-4f5d-a887-8a7327c7777d/doc-98941d2e-0032-424f-8414-3034ac5fa6ee/1781338429442-3fbpc5e2c2j-configuragbgtion3.png?fm=auto&auto=compress%2Cformat" width="1506" height="27" alt="" />

    <Callout kind="warning" collapsed="false">
      **Note:** If the macro is not enabled, it will not appear in the Action Value dropdown when creating a rule.
    </Callout>
  </Tab>

  <Tab title="Step 5">
    **Go to Orders > Rules Engine and click + Add new rule.**

    <Image src="https://blob-cdn.documentation.ai/org-87fb0951-1e07-4f5d-a887-8a7327c7777d/doc-98941d2e-0032-424f-8414-3034ac5fa6ee/1779285543693-nb7ps4lbpej-pasted-image-1779285537548.png?fm=auto&auto=compress%2Cformat" width="1536" height="680" alt="" />
  </Tab>

  <Tab title="Step 6">
    **Enter the rule name and click Create.**\

    <Image src="https://blob-cdn.documentation.ai/org-87fb0951-1e07-4f5d-a887-8a7327c7777d/doc-98941d2e-0032-424f-8414-3034ac5fa6ee/1781338452998-08bdeahbs86c-AddRulfve.png?fm=auto&auto=compress%2Cformat" width="321" height="191" alt="" style="width: 321px; height: auto; cursor: pointer; margin: 0 auto;" />
  </Tab>

  <Tab title="Step 7">
    **Click Add New and configure the rule conditions.**

    <Image src="https://blob-cdn.documentation.ai/org-87fb0951-1e07-4f5d-a887-8a7327c7777d/doc-98941d2e-0032-424f-8414-3034ac5fa6ee/1779285593103-7g3wujkoz0k-pasted-image-1779285588410.png?fm=auto&auto=compress%2Cformat" width="1536" height="358" alt="" />

    <Image src="https://blob-cdn.documentation.ai/org-87fb0951-1e07-4f5d-a887-8a7327c7777d/doc-98941d2e-0032-424f-8414-3034ac5fa6ee/1781338489748-m4qay28ifb-pasted-image-1781338486343.png?fm=auto&auto=compress%2Cformat" width="638" height="360" alt="" style="width: 638px; height: auto; cursor: pointer; margin: 0 auto;" />

    Example conditions:

    - Order Status = Open

    - Fulfilment Location is assigned

    - Order has not already been processed

    The exact conditions depend on your fulfilment workflow.
  </Tab>

  <Tab title="Step 8">
    **Add the Macro Action and click Save.**

    <Image src="https://blob-cdn.documentation.ai/org-87fb0951-1e07-4f5d-a887-8a7327c7777d/doc-98941d2e-0032-424f-8414-3034ac5fa6ee/1781338587596-utb5awdpzvk-pasted-image-1781338584623.png?fm=auto&auto=compress%2Cformat" width="663" height="150" alt="" style="width: 663px; height: auto; cursor: pointer; margin: 0 auto;" />

    <Image src="https://blob-cdn.documentation.ai/org-87fb0951-1e07-4f5d-a887-8a7327c7777d/doc-98941d2e-0032-424f-8414-3034ac5fa6ee/1781338687497-7gwsa1t1be-pasted-image-1781338684350.png?fm=auto&auto=compress%2Cformat" width="663" height="262" alt="" style="width: 663px; height: auto; cursor: pointer; margin: 0 auto;" />

    Configure:

    ```text
    Action Name:
    Multi Location Auto Split & Auto Move

    Action Type:
    Execute a Macro

    Action Value:
    MultiLocationAutoSplit
    ```

    Click Save.
  </Tab>

  <Tab title="Step 9">
    **Review the rule configuration and save the rule.**

<Image src="https://blob-cdn.documentation.ai/org-87fb0951-1e07-4f5d-a887-8a7327c7777d/doc-98941d2e-0032-424f-8414-3034ac5fa6ee/1781338733675-j4a1z0d9w5f-SaveTheRuldcde.png?fm=auto&auto=compress%2Cformat" width="1534" height="704" alt="" />

    Verify:

    - Conditions are configured correctly

    - Execute a Macro action is attached

    - The rule is enabled

    Click Save.
  </Tab>
</Tabs>

<Columns cols="2">
  <Card title="Automatic Warehouse Selection" icon="alarm-check" horizontal="false">
    Determines the most suitable fulfilment location automatically.
  </Card>

  <Card title="Order Splitting" icon="boxes" horizontal="false">
    Splits orders when stock is distributed across multiple warehouses.
  </Card>

  <Card title="Warehouse Moves" icon="bell" horizontal="false">
    Moves complete orders when another warehouse can fulfil all items.
  </Card>

  <Card title="Composite Item Support" icon="bar-chart-big-icon" horizontal="false">
    Evaluates component stock availability before fulfilment decisions are made.
  </Card>

  <Card title="Location Priority Rules" icon="lucide-fast-forward" horizontal="false">
    Supports configurable warehouse priority sequences.
  </Card>

  <Card title="Duplicate Processing Protection" icon="lucide-message-circle-x" horizontal="false">
    Marks processed orders automatically to prevent duplicate execution.
  </Card>
</Columns>

### How It Works

<Steps>
  <Step title="Step 1" icon="airplay-icon" title-type="p">
    The macro receives order IDs from the Rule Engine.
  </Step>

  <Step title="Step 2" icon="airplay-icon" title-type="p">
    All Linnworks stock locations are retrieved.
  </Step>

  <Step title="Step 3" icon="airplay-icon" title-type="p">
    Warehouse priority rules are applied using the configured PriorityLocations value.
  </Step>

  <Step title="Step 4" icon="airplay-icon" title-type="p">
    Orders that are parked are skipped automatically.
  </Step>

  <Step title="Step 5" icon="airplay-icon" title-type="p">
    Orders already marked as processed are skipped.
  </Step>

  <Step title="Step 6" icon="airplay-icon" title-type="p">
    The macro validates whether every item can be fulfilled from at least one warehouse.
  </Step>

  <Step title="Step 7" icon="airplay-icon" title-type="p">
    Orders containing unfulfillable items are logged and excluded from move or split processing.
  </Step>

  <Step title="Step 8" icon="airplay-icon" title-type="p">
    If the current warehouse can fulfil all items, the order remains in its current location.
  </Step>

  <Step title="Step 9" icon="airplay-icon" title-type="p">
    If another warehouse can fulfil the complete order, the order is queued for movement.
  </Step>

  <Step title="Step 10" icon="airplay-icon" title-type="p">
    If no single warehouse can fulfil the entire order, a split plan is generated.
  </Step>

  <Step title="Step 11" icon="airplay-icon" title-type="p">
    Each order item is assigned to the most appropriate warehouse.
  </Step>

  <Step title="Step 12" icon="airplay-icon" title-type="p">
    Parent orders may be rebased when no items remain in the original fulfilment location.
  </Step>

  <Step title="Step 13" icon="airplay-icon" title-type="p">
    Child orders are created automatically using Linnworks order splitting.
  </Step>

  <Step title="Step 14" icon="airplay-icon" title-type="p">
    Child orders are moved to their assigned fulfilment locations.
  </Step>

  <Step title="Step 15" icon="airplay-icon" title-type="p">
    Internal notes are written explaining every move, split, and fulfilment decision.
  </Step>

  <Step title="Step 16" icon="airplay-icon" title-type="p">
    Orders are marked as processed using an Extended Property to prevent duplicate execution.
  </Step>

  <Step title="Step 17" icon="airplay-icon" title-type="p">
    Processing statistics are written to the execution log.
  </Step>
</Steps>

### **Usage of App**

<Card title="PriorityLocations" horizontal="false">
  Defines the warehouse fulfilment priority order.
</Card>

<Card title="ReprintLabels" horizontal="false">
  Controls whether shipping labels should be regenerated during split processing.
</Card>

<Card title="OrderIds" horizontal="false">
  The list of Linnworks orders supplied by the Rule Engine.
</Card>

<Card title="Extended Property Tracking" horizontal="false">
  Uses an internal processed flag to prevent duplicate execution.
</Card>

<Card title="Order Notes" horizontal="false">
  Adds internal notes documenting warehouse decisions.
</Card>

<Card title="Composite Product Support" horizontal="false">
  Supports stock allocation for composite inventory items.
</Card>

### **Example Parameter Values**

```text
PriorityLocations = Warehouse A,Warehouse B,Warehouse C

ReprintLabels = True
```

### **Key Points to Remember**

- Parked orders are skipped

- Previously processed orders are skipped

- Composite products are fully supported

- Warehouse priority rules are configurable

- Orders may remain in their current warehouse

- Orders may be moved to another warehouse

- Orders may be split across multiple warehouses

- Parent orders may be rebased

- Internal notes are created automatically

- Processed orders are marked automatically

- Orders containing unfulfillable items are not moved or split

- Processing activity is fully logged

### **What You Can Expect**

- Automatic warehouse selection

- Intelligent stock allocation

- Reduced manual fulfilment decisions

- Improved warehouse utilisation

- Automated order movement

- Automated order splitting

- Improved stock visibility

- Better fulfilment efficiency

- Clear audit history through order notes

### **Overall Impact**

This macro helps organisations operating multiple fulfilment locations automatically determine the most efficient fulfilment strategy for every order. By evaluating stock availability across warehouses, the macro reduces manual intervention, improves stock utilisation, minimises fulfilment delays, and ensures orders are routed to the most appropriate fulfilment location.

### **What To Do After the Macro Runs**

After the macro completes, review the processing results.

<Steps>
  <Step title="Step 1" title-type="p">
    Review the macro execution log.
  </Step>

  <Step title="Step 2" title-type="p">
    Verify any warehouse moves that were performed.
  </Step>

  <Step title="Step 3" title-type="p">
    Review newly created split orders.
  </Step>

  <Step title="Step 4" title-type="p">
    Check internal order notes for fulfilment decisions.
  </Step>

  <Step title="Step 5" title-type="p">
    Confirm that fulfilment locations match operational expectations.
  </Step>
</Steps>

### **Why This Matters**

Managing fulfilment across multiple warehouses manually can lead to delays, stock allocation mistakes, and unnecessary operational effort.

This macro helps:

- Reduce manual warehouse decisions

- Improve fulfilment accuracy

- Optimise stock allocation

- Reduce fulfilment delays

- Improve warehouse utilisation

- Maintain consistent fulfilment rules

- Prevent duplicate processing

- Improve operational visibility

### **Best Practices**

- Configure warehouse priorities carefully

- Ensure stock levels remain accurate

- Review warehouse naming consistency

- Test using a small set of orders before deployment

- Monitor split activity during the initial rollout

- Review internal order notes regularly

- Enable label regeneration only when operationally required

### **Troubleshooting**

<Card title="Order Was Not Split" horizontal="false">
  Verify that stock exists in at least one warehouse for every order item.
</Card>

<Card title="Order Was Not Moved" horizontal="false">
  Confirm that another warehouse can fulfil the complete order.
</Card>

<Card title="Order Was Skipped" horizontal="false">
  Check whether the order was parked or already processed.
</Card>

<Card title="Unexpected Warehouse Selection" horizontal="false">
  Review the PriorityLocations configuration and warehouse naming.
</Card>

<Card title="Composite Product Not Fulfilled" horizontal="false">
  Verify that sufficient component stock exists at the target warehouse.
</Card>

<Card title="Order Marked as Already Processed" horizontal="false">
  Review the processed Extended Property applied by previous executions.
</Card>

### **Summary**

The *Multi-Location Auto Split & Auto Move* macro analyses stock availability across all fulfilment locations and automatically determines whether an order should remain in its current warehouse, move to a different warehouse, or be split across multiple warehouses.

The macro supports warehouse priorities, composite products, parent order rebasing, duplicate processing protection, internal audit notes, and automated warehouse movement to ensure orders are fulfilled from the most appropriate location.
