5 on one account may be “Shipped” on another and “Cancelled” on a third.
Reading statuses
Retrieve the statuses configured on an account with these two methods:getOrderStatusList: returns the full list of statuses with their IDs, names, and colors.getOrderStatusGroups: returns status groups, a purely visual grouping used in the Base panel UI.
Writing statuses
Three methods let you change or create statuses programmatically:setOrderStatus: update the status of a single order.setOrderStatuses: bulk-update the status of multiple orders in one call.addOrderStatus: create a new status programmatically. This is typically only needed during initial integration setup, not in ongoing sync flows.
Recommended pattern for two-way sync
A common mistake is writing a status back to Base on every change in your own system without checking what Base currently holds. This can race with a user editing the same order in the panel at the same time. The recommended approach is:- Fetch the order’s current state via
getOrders(or from a recent cached copy). - Compare the current
order_status_idin Base with the status you intend to write. - Only call
setOrderStatusif the values differ.
Cancelled orders
When a customer submits a cancellation request on a marketplace, that event reaches Base and needs to be reflected with the correct status. The mechanism for catching the cancellation event (an Automatic Action,getJournalList, or a webhook) is described in Automation & Webhooks. This section focuses on which status to set once you have detected the cancellation.
For most channels, set the order to your Cancelled status. Some marketplace integrations distinguish between a Cancelled and a Rejected outcome depending on whether a shipping label has already been transmitted to the carrier or marketplace. Check the specific integration’s settings in the Base panel to see whether this applies to your channel.