> 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.

# Mark Order Process Shipping Label Printed

Automatically process Linnworks open orders after the shipping label has been printed successfully and the configured waiting time has passed.

Processing orders manually after shipping labels are printed can create extra work and increase the chance of orders being left in Open status. The *Automated Order Processing for Shipping Label Printed Orders* macro helps keep fulfilment moving by identifying orders where the shipping label has already been printed successfully and then processing them automatically after the configured time threshold.

This solution checks Open Orders in Linnworks, filters orders with a printed shipping label and no label error, reviews the shipping label audit trail, and processes eligible orders once the configured number of minutes has passed.

With this automated approach, your team can reduce manual order processing steps, avoid delays after label creation, and keep the order workflow more consistent.

> Automatically process labelled orders once they are ready, without needing manual follow-up.

## **Configure the Macro**

Once the app is installed, you need to set up the configuration, so the system knows when to process orders after shipping labels are printed. This is a one-time setup and can be adjusted anytime based on your operational needs.

### **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/1779179755524-fyc8795cf1w-pasted-image-1779179752174.png?fm=auto&auto=compress%2Cformat" width="1368" height="568" alt="" style="width: 1368px; height: auto; cursor: pointer; margin: 0 auto;" priority={true} fetchPriority="high" />
  </Tab>

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

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

  <Tab title="Step 3">
    **In the Macro Configuration screen, go to the Schedules tab and click on New Schedules.**

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

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

     

    - In the **Schedule Config** window, enter the **Name**

    -

    - Select **Schedule type** from the dropdown:

      - **One time** (runs only once)

      - **Recurring** (runs repeatedly based on schedule)

    - If **Recurring** is selected:

      - In **Frequency**, choose **Occurs** from dropdown:

        - **Daily**

        - **Weekly**

    - Set **Recurs every** value (e.g., 1 day or 1 week)

    - Set the **Starting on** date and time

    - Under **Daily frequency**, choose one option:

      - **Occurs once at** → specify exact time

      - **Occurs every** → enter interval in hours and define:

        - **Starting time**

        - **Ending time**

    - Review the **Summary** section

    - Click **Save**
  </Tab>

  <Tab title="Step 5">
    <Image src="https://blob-cdn.documentation.ai/org-87fb0951-1e07-4f5d-a887-8a7327c7777d/doc-98941d2e-0032-424f-8414-3034ac5fa6ee/1779180100791-lffcu91gp7k-pasted-image-1779180098566.png?fm=auto&auto=compress%2Cformat" width="677" height="630" alt="" />

    - Navigate to the **Parameters** tab

    - In the parameters list, review the field **minutes**

    - Enter or update the value in the **Value** column as required

    - Ensure the **minutes** parameter is filled

    - Verify any **ReadOnly** fields (cannot be edited)

    - Click **Save** to apply the configuration
  </Tab>

  <Tab title="Step 6">
    **Make sure to enable the macro to continue with the schedule Engine configuration.**

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

## **Key Benefits**

Processing orders manually after labels are printed can be difficult when order volumes are high. This macro is designed to simplify that process by automatically identifying labelled orders that are ready to be processed.

<Columns cols="2">
  <Card title="Reduce Manual Processing" icon="alarm-check" horizontal="false" target="_self">
    Automatically processes eligible orders after the shipping label has been printed successfully.
  </Card>

  <Card title="Keep Orders Moving" icon="bell" horizontal="false" target="_self">
    Helps prevent labelled orders from remaining in Open status longer than required.
  </Card>

  <Card title="Avoid Processing Label Errors" icon="boxes" horizontal="false" target="_self">
    Only includes orders where the shipping label is printed and there is no label error recorded.
  </Card>

  <Card title="Use a Controlled Delay" icon="bar-chart-big-icon" horizontal="false" target="_self">
    The minutes parameter controls how long the macro waits after label printing before processing the order.
  </Card>

  <Card title="Batch Order Processing" icon="lucide-fast-forward" horizontal="false" target="_self">
    Processes eligible orders together using the Linnworks batch processing API.
  </Card>

  <Card title="Log Failed Processing" icon="lucide-message-circle-x" horizontal="false" target="_self">
    If an order cannot be processed, the macro logs the failure message for review.
  </Card>
</Columns>

### How It Works

This macro works in the background based on the configured schedule. Once it runs, it checks Open Orders and processes only the orders that match the required shipping label conditions.

<Steps>
  <Step title="Step 1" icon="airplay-icon" title-type="p">
    The macro starts and writes **Macro started** in the log.
  </Step>

  <Step title="Step 2" icon="airplay-icon" title-type="p">
    It retrieves Open Orders from Linnworks using the configured order filters.
  </Step>

  <Step title="Step 3" icon="airplay-icon" title-type="p">
    It filters orders where **LabelPrinted** is true and **LabelError** is null.
  </Step>

  <Step title="Step 4" icon="airplay-icon" title-type="p">
    It checks the order audit trail for the latest **SHIPPING\_LABEL\_** entry.
  </Step>

  <Step title="Step 5" icon="airplay-icon" title-type="p">
    If the shipping label was printed more than the configured **minutes** value ago, the order is added to the processing list.
  </Step>

  <Step title="Step 6" icon="airplay-icon" title-type="p">
    Eligible orders are processed using **ProcessOrdersInBatch**.
  </Step>
</Steps>

### **Usage of App**

This macro is designed to work automatically once configured. It does not require manual action during each run, as long as the schedule and minutes parameter are set correctly.

<Card title="Minutes" horizontal="false" target="_self">
  Defines how long the macro waits after the shipping label is printed before processing the order. For example, if the value is 30, the macro processes eligible orders where the label was printed more than 30 minutes ago.
</Card>

<Card title="Open Orders" horizontal="false" target="_self">
  The macro checks orders that are still in Open status in Linnworks.
</Card>

<Card title="Shipping Label Printed" horizontal="false" target="_self">
  Only orders where **GeneralInfo.LabelPrinted** is true are included.
</Card>

<Card title="No Label Error" horizontal="false" target="_self">
  Orders are included only when **GeneralInfo.LabelError** is null.
</Card>

<Card title="Shipping Label Audit Trail" horizontal="false" target="_self">
  The macro checks the order audit trail for the latest **SHIPPING\_LABEL\_** record to calculate how long ago the label was printed.
</Card>

<Card title="Batch Processing" horizontal="false" target="_self">
  Orders that meet the required conditions are processed together using the Linnworks order processing API.
</Card>

### **Key Points to Remember**

- The macro only targets orders that are currently in Open Orders

- Orders must have a successfully printed shipping label

- Orders with label errors are not included

- The **minutes** parameter controls the waiting time after label printing

- Audit trails are checked in batches of 50 orders

- If processing fails for any order, the failure message is written to the macro log

Once the macro is running, it helps ensure that labelled orders are processed automatically after the configured waiting time.

### **What You Can Expect**

- **Eligible orders are identified automatically**\
  Orders with successfully printed shipping labels are checked without manual review

- **Orders are processed after the configured delay**\
  The macro waits until the shipping label print time is older than the configured minutes value

- **Failed processing responses are logged**\
  Any order that cannot be processed will have the error message written in the macro log

- **Open order workflow becomes more efficient**\
  Your team spends less time manually processing orders after label printing

- **Macro completion is logged**\
  The macro writes **Macro Finished** after the run ends

### **Overall Impact**

This helps reduce manual workload, keeps labelled orders moving through the fulfilment workflow, and supports a more consistent order processing operation.

### What To Do When an Order Is Not Processed

If an expected order is not processed by the macro, review the order and macro conditions before taking manual action.

### **Steps to Follow**

<Steps>
  <Step title="Step 1" title-type="p">
    Open Linnworks and locate the order that was expected to be processed.
  </Step>

  <Step title="Step 2" title-type="p">
    Confirm that the order is still in Open Orders.
  </Step>

  <Step title="Step 3" title-type="p">
    Check that the shipping label has been printed successfully and there is no label error.
  </Step>

  <Step title="Step 4" title-type="p">
    Confirm that the label print time is older than the configured **minutes** value.
  </Step>

  <Step title="Step 5" title-type="p">
    Review the macro logs for any processing failure message.
  </Step>
</Steps>

### **Why This Matters**

Reviewing these conditions helps you understand whether the order was skipped because it was not eligible yet, had a label issue, or failed during order processing.

### Best Practices

To get the most value from this macro, configure it in a way that matches your dispatch workflow and gives enough time for labels to print, documents to generate, and warehouse checks to complete.

### **Recommended Guidelines**

- **Set a realistic minutes threshold**\
  Choose a delay that gives your team enough time to confirm the label and shipment details before the order is processed

- **Run the macro on a recurring schedule**\
  Use a recurring schedule so eligible labelled orders are processed regularly

- **Review macro logs regularly**\
  Check logs for failed processing messages and resolve issues quickly

- **Monitor shipping label errors**\
  Keep shipping integrations and printer setup stable so orders do not get excluded due to label errors

- **Test before production use**\
  Validate the minutes value and processing behaviour on a small order set before using it at scale

> Regular scheduling and log review are key to keeping labelled orders moving smoothly.

### **Example Scenario**

To better understand how this works, here’s a simple example:

If your **minutes** value is set to **30**:

- **Order A (label printed 45 minutes ago, no label error)** → Order processed

- **Order B (label printed 10 minutes ago, no label error)** → No action yet

- **Order C (label printed 60 minutes ago, label error exists)** → Not processed

The macro processes only orders where the label has been printed successfully, no label error exists, and the configured waiting time has passed.

### **What This Means**

- Only orders ready for processing are selected

- Orders with label errors are skipped

- Recently printed labels are given time before processing

- Failed processing results are logged for follow-up

## **Final Summary**

The *Automated Order Processing for Shipping Label Printed Orders* macro helps you automate order processing after shipping labels are printed successfully.

By checking Open Orders, validating label status, reviewing the label audit trail, and processing eligible orders after the configured time threshold, this macro reduces manual effort and keeps your fulfilment workflow moving efficiently.
