Shipping Options in the Order Automations

The platform supports three advanced shipping options that control how orders are split, routed, and shipped. These options are designed to prevent incorrect partial shipments, handle oversized items correctly, and ensure inventory is sourced from the right warehouse.

All three options are:

  • Configured per line item on the order

  • Applied by setting flags in the order object using the automation engine

  • Evaluated during order routing

There are no UI settings for these options. Implementation requires automation logic that updates the order JSON before routing.

The three supported shipping options are:

  • Ship in Its Own Container (SIOC)

  • All or Nothing shipping

  • Single Location shipping


Ship in Its Own Container (SIOC)

What SIOC Does

Ship in Its Own Container (SIOC) ensures that a line item is shipped by itself and is not combined with any other items in the same shipment.

This option is commonly used for large or oversized products that already have their own packaging and cannot be boxed with other items.

How SIOC Works

When a line item is marked as SIOC:

  • The order routing engine creates a separate shipping request (SR) for that line item based on quantity: if the quantity on that line is two, there would be two shipping requests

  • No other line items are included in the same SR

Behavior details:

  • Each SIOC line item generates its own SR

  • Multiple SIOC items result in multiple SRs

  • Non-SIOC items are grouped into one or more separate SRs, depending on routing logic

Example:

  • Order contains five line items

  • Two line items are marked as SIOC

  • Result:

    • One SR for SIOC item #1

    • One SR for SIOC item #2

    • One SR for the remaining three non-SIOC items

How to Configure SIOC

SIOC is controlled by a flag in the line item’s shippingOptions array within the order object.

The flag must be set using the automation engine before the order is routed.

Common implementation approaches:

  • Maintain a hard-coded list of SIOC SKUs in the automation rule (recommended only for small SKU sets)

  • Look up the product record in the platform’s product catalog and evaluate metadata, such as:

    • Custom fields

    • Tags

    • UPC

If the product meets the SIOC condition, the automation rule sets the SIOC shipping option on that line item.

SIOC behavior is entirely flag-driven and is not hardcoded.


All or Nothing Shipping

What All or Nothing Does

All or Nothing shipping prevents a defined set of line items from being partially shipped.

The system will only ship the items if every line item marked with All or Nothing is available.

This option is used when certain products must ship together to avoid customer confusion, returns, or incomplete deliveries.

Common Use Case

A customer orders:

  • One table

  • Six chairs

  • Additional unrelated items such as a table runner or plates

Desired behavior:

  • The table and all six chairs should only ship if all are available

  • The chairs should not ship without the table

  • The system should not ship only two chairs if the other four are out of stock

  • Unrelated items can ship independently when available

How All or Nothing Works

When All or Nothing is set on multiple line items:

  • The routing engine checks availability for all marked items

  • If even one item is unavailable, none of the marked items are shipped

  • Partial fulfillment of those items is blocked

This logic applies only to the line items with the All or Nothing flag.

How to Configure All or Nothing

All or Nothing is configured by setting a flag in the shippingOptions array for each applicable line item.

The automation rule must:

  • Identify the related SKUs

  • Apply the All or Nothing flag consistently across all required line items

There is no UI toggle for this option.


Single Location Shipping

What Single Location Does

The Single Location shipping enforces that all marked line items must be fulfilled from one warehouse location.

This option is typically used together with All or Nothing but can be evaluated independently.

Why Single Location Matters

All or Nothing ensures availability, but without Single Location, items could still be sourced from multiple warehouses.

This can result in:

  • Multiple shipments

  • Increased shipping costs

  • Operational complexity

How Single Location Works

When Single Location is set:

  • The routing engine verifies that all marked line items are available

  • It also checks that one warehouse can fulfill all of them

If inventory is split across locations:

  • The items are treated as unavailable

  • No shipment is created

Example:

  • Six chairs are available, but split across three warehouses

  • Single Location is enabled

  • Result: the items are not shipped

How to Configure Single Location

Single Location is configured using a flag in the same shippingOptions array as All or Nothing.

Automation rules typically:

  • Apply Single Location to the same line items that use All or Nothing

  • Ensure both availability and location constraints are enforced together


Adding Shipping Options Using Automations

Shipping options are applied to line items using the automation engine. Because there are no UI-based toggles for these options, you must configure an automation that updates the order object before routing begins.

Steps

  1. Navigate to Automations → Orders → New Orders.

  2. Create a new automation by entering a Name and Description to document the purpose of the rule.

  3. (Optional) Add Filter conditions if the automation should only apply to specific orders. For example, filter by sales channel, order type, or customer segment.

  4. Configure the action by selecting Update Order by Code (JavaScript) as an Action.

  5. Review action settings, leave Abort on error set according to your operational requirements.

  6. Under Evaluation Dependencies, select shipments to ensure the code evaluates correctly against shipment-related data before routing.

  7. Add the code logic by entering JavaScript that evaluates each line item and sets the appropriate shipping option. Example: setting SIOC based on a line item custom field.

order.lineItems?.forEach(lineItem => {
  lineItem.customFields?.forEach(customField => {
    if (customField.name === 'productoption' && customField.value === 'sioc') {
      lineItem.shippingOption = 'sioc';
    }
  });
});
return order;

How this example works:

  • The code loops through all line items on the order

  • It checks each line item’s custom fields

  • If the custom field name is productoption and the value is sioc, the line item’s shippingOption is set to sioc

  • The updated order object is returned for downstream routing

Use the Test code button to validate that the logic runs successfully before saving the automation.

  1. Add a terminal action, such as Set order to draft. This ensures the automation completes cleanly and predictably.

  2. Click Save to activate the rule.


Important Implementation Notes

  • All options are applied at the order level, not at the routing rule level

  • Flags must be set using the automation engine before routing begins

  • There are no dropdowns or UI-based configuration options

  • A working code example is required to implement these flags correctly

Future functionality for shipment grouping, which will allow line items to be treated as a single inseparable group, is under development and not covered in this article.


Troubleshooting

SIOC items are shipping with other products

  • Verify the SIOC flag is set on the correct line item

  • Confirm the automation rule runs before order routing

All or Nothing items are partially shipping

  • Ensure the flag is applied to every required line item

  • Confirm inventory availability for all flagged items

Items are not shipping despite being in stock

  • Check whether the Single Location constraint is enabled

  • Verify that one warehouse can fulfill all marked items


Need Help?

If you need additional assistance:

We're here to help you succeed with your operations.

Was this article helpful?
0 out of 0 found this helpful

Comments

0 comments

Article is closed for comments.

Have more questions?
Submit a request
Share it, if you like it.