Order Management

Orders are the core of Vectis. This guide covers the order lifecycle, status management, and fulfillment workflows.

Order Lifecycle

Orders in Vectis follow a 16-state lifecycle:

Happy Path

pending → confirmed → allocated → sent_to_wms → picking → picked → packing → packed → shipped → in_transit → out_for_delivery → delivered

Exception States

  • on_hold — Order paused, requires manual review
  • partially_shipped — Some packages shipped, others pending
  • delivery_exception — Carrier couldn’t deliver
  • cancelled — Order cancelled before shipment

Order Sources

Orders enter Vectis from:

Sales Channels

Native integrations:

  • Shopify — OAuth, real-time webhooks
  • WooCommerce — REST API, webhooks or polling
  • TikTok Shop (Growth+ tier) — Order import

Also via API2Cart (add the store under Integrations → Add Store, then paste the webhook URL Vectis shows into API2Cart): other carts and marketplaces connect through your own API2Cart account. Orders come in from the API2Cart webhooks you set up; tracking goes back to the store. Which platforms and operations work depends on API2Cart.

Roadmap: Deeper first-party connectors for specific marketplaces where operators ask for them.

Manual Entry

  • Create orders directly in Vectis UI
  • Useful for phone orders, wholesale, or testing
  • Import many orders at once from a CSV file (Orders → Import)

API

  • POST /api/orders — Create order programmatically (API-client tokens are read-only on orders, products, and inventory today; contact support@stoalogistics.com to create orders through the API)
  • Used for custom integrations, B2B portals, EDI

Order Detail View

Click any order to see:

  • Overview: customer name and email, item count, total, order date, channel and channel order ID.
  • Items: SKU, product, quantity, unit price, and line total.
  • Fulfillment: the order’s packages, with status, items, carrier, and tracking number.
  • Activity & Timeline: order status changes and package creation, with who made each change when it’s recorded.
  • Addresses: shipping and billing.

Reservation

There is no separate Allocate step: Vectis allocates stock to an order’s packages when they’re generated. Vectis generates an order’s packages when the order is created in the app or confirmed. If an order has no packages, use Generate Packages on the order page. That step picks the warehouse and, through StoaPack, the boxes.

Holding an order

To review an order before it moves on, put it on hold with a reason, then resume it or cancel it.

Note: There is no automatic backorder status. Place the order on hold or cancel it until stock arrives.

Routing

Routing determines which warehouse fulfills an order.

How Vectis picks a warehouse

Vectis picks the warehouse automatically from where the stock is, and, with two or more warehouses (Growth and above; Starter includes one warehouse), can split an order across them.

There are no routing rules to configure. Fulfillment Rules (under Configuration) change order lines, such as replacing or adding items, adding channel packaging, or blocking a recalled SKU. They don’t choose a warehouse.

Split Orders

When no single warehouse has all items:

  1. Vectis creates multiple packages
  2. Each package routes to a warehouse with its items
  3. Order status reflects aggregate package status

Automatic splitting runs on any plan with two or more warehouses (Growth and above; Starter includes one warehouse). Reviewing the warehouse options for an order and choosing one by hand requires the Pro plan or above.

Split orders cost more (multiple shipments) but ensure faster fulfillment than waiting for transfers.

Fulfillment Workflow

1. Release and pick

There is no separate Allocate step: Vectis allocates stock to an order’s packages when they’re generated.

  1. Open Release Queue
  2. Select packages and click Create Batch
  3. Pickers work the batch from Floor and confirm each item

2. Pack

  1. Open the package on the packing screen
  2. Confirm the box (StoaPack chose it when the package was generated) or pick another
  3. Mark as packed

3. Ship

Generate shipping label:

  1. Select carrier and service
  2. Click Generate Label
  3. Label created via EasyPost integration
  4. Print label
  5. Mark as shipped

For Shopify, WooCommerce, and API2Cart stores, the tracking number syncs back to the store automatically.

Bulk Operations

Select orders on the Orders list to Confirm, Start Processing, or Cancel them together, or to export them to CSV.

Cancelled orders release inventory reservations automatically.

Order Edits

While pending

  • Add, remove, or change line items

After confirmation

  • Cancel specific items (at least one must remain)
  • Or cancel the whole order

After Shipment

  • Cannot edit shipped orders
  • Create a return or exchange instead (Growth plan and above)

Exceptions Handling

Packages that need attention appear in Fulfillment → Exceptions:

ExceptionWhat it means
On holdThe package is on hold
Aged pickingPicking has been open too long
Aged ready to shipPacked but not shipped for too long

Orders that need review show under the Needs Attention filter on the Orders list (pending and on-hold orders).

Exports

Export orders to CSV:

  1. Filter the Orders list (quick filter, status, or search)
  2. Select the orders you want
  3. Choose Export to download a CSV with order ID, customer, email, item count, status, total, and date.

Package Lifecycle

Packages follow a 14-state lifecycle:

Happy Path

pending → allocated → sent_to_wms → picking → picked → packing → packed → shipped → in_transit → out_for_delivery → delivered

Exception States

  • failed_delivery — Carrier delivery attempt failed
  • returned — Package returned to sender
  • cancelled — Package cancelled before shipment

API Operations

Common API operations:

# List orders
GET /api/orders?status=pending&channelType=shopify

# Get order detail
GET /api/orders/{orderId}

# Create order
POST /api/orders

# Cancel order
POST /api/orders/{orderId}/cancel

# Put an order on hold
POST /api/orders/{orderId}/hold

API-client tokens are read-only on orders, products, and inventory today. To create or change orders through the API, contact support@stoalogistics.com.

See API Reference for authentication and the documented endpoints.