Release 2026.09-R6
Released September 22, 2026.
Redesigned Returns pages
The Returns list and the return request page have a new design, matching the Orders and Shipments pages.
Returns list:
- Queue tabs above the list: All, Pending Review, On Hold, Approved, Returned, Received and Completed, each with a count. Pending Review and On Hold also appear under Returns in the side menu. A queue is a saved filter, so it keeps your date range, search and other filters.
- New columns: Customer Return, Status, Items, Return To, Received and Created.
- The status shows where a return really stands. A return whose items have all arrived reads Received, one with only some items back reads Partially Received, and a return closed automatically reads Closed.
- Searching by order reference now finds returns. Before, it matched nothing.
Return request page:
- A header with the status, the return's progress, key figures such as items and refund total, and the customer.
- A banner tells you what the return needs next, with the matching action. For example Review & Approve on a return awaiting review, or Receive Items once the return shipment has arrived.
- Tabs: Items, Pickup, Refunds, Comments and Activity. Comments replaces Notes. Activity brings together what the System Logs and History tabs showed.
The actions offered now match what each status allows. You can complete a return that is Received, and cancel one that is Rejected. Cancel is no longer offered on returns On Hold, where it always failed.
Scheduled inventory exports
Inventory feeds, introduced for imports in 2026.09-R1, now also export. Carriyo exports your inventory on a schedule and delivers the file to your Amazon S3 bucket or Azure Blob Storage container. As with imports, there's no Dashboard page for feeds yet: Carriyo sets up the export for you on request, including how often it runs. Each run exports either every inventory position or only those that changed since the last export.
Each file is a CSV named Inventory_<UTC timestamp>.csv, with one row per inventory position and these columns: inventory_key, location_code, event_timestamp, available, on_hand, unavailable and reserved.
In the Dashboard:
- The export from the Inventory Positions page now has a single Location Code column in place of the Location and Location Name columns.
- Import Inventory Snapshot accepts more formats in the Timestamp column. Dates can be day-first (
15/09/2026 15:53) or year-first (2026/09/15 15:53), with or without seconds, in 24-hour or 12-hour time with AM or PM. ISO 8601 timestamps work too.
Orders and fulfillment orders
- Line items by product. Fulfillment order actions that take line items accept
product_id,product_reforskuinstead of the line itemid. These are fulfill, ship, split, merge and cancel items. Carriyo matches them against the order's line items on that fulfillment order. The request returns400if nothing matches, or if more than one line item matches, in which case send theid. - Quantities. Each line item in those requests needs a
quantityof 1 or more.POST /orders/{orderReference}/fulfillment-orders/{fulfillment_order_id}/unfulfillreturns400whenfulfillment_idsis missing or empty. - Fulfill with picks or packs open. Fulfilling a fulfillment order, or a whole order, returns
400while it has a pick or pack in progress. Complete or cancel it first. - Completing a pack. A pack can only be completed once every shipment in it is booked with the carrier.
- Picker and packer checks. Creating a pick with a
picker, or a pack with apackerorpacking_station, now checks the value against the location. An invalid value returns400. Before, an invalid picker was silently replaced by the location's assignment rule. - Allocate. The body of
POST /orders/{orderReference}/fulfillment-orders/{fulfillment_order_id}/allocateis optional. Without one, your order management settings apply. - Holds. Putting a fulfillment order on hold, or releasing it, returns
404when the order or fulfillment order doesn't exist. It returns403when the order belongs to another tenant. Before, both returned400. - Cancellation reasons. When allocation cancels items automatically, the items now carry a cancellation reason:
inventory_out_of_stockwhen they were out of stock, orauto_allocation_failedotherwise. An order cancelled this way at creation gets the same reason. - Collection orders. When the customer collects from the location that fulfills the order, allocation only picks locations set up for customer collection.
SPL temperature handling
SPL carrier accounts using API version V2 have a new optional Reference 3 (Temperature Handling) setting under Settings > Carrier Accounts. Enter cold01 for room-temperature shipments or cold02 for cold shipments, and Carriyo sends it to SPL on every booking with that account. Leave it blank to send nothing.
Four SPL events no longer mark the shipment as a failed delivery attempt: address change request, pending address details, reschedule request and address correction. The shipment keeps its status and the event keeps its reason code.
Fixes
- Alerts: Service Level Breach alerts are now raised. Before, they never fired. Service Level Breach, Promised Date Breached and Carrier Delivery Delay alerts are no longer raised for shipments already delivered. Cancelling a shipment now clears all of its open alerts. A processing deadline breach now clears when the shipment ships, not when it is booked.
- Whole-order fulfill and unfulfill:
POST /orders/{orderReference}/fulfilland/unfulfillnow send the Fulfillment Order Fulfill and Fulfillment Order Unfulfill webhooks, so existing subscriptions receive them. On a partly fulfilled order, fulfill now splits only the payment share of the items it fulfills across the new shipments. This applies to the payment total and the cash on delivery amount. Before, it split the whole order amount again, including the share of items already shipped or cancelled. - Disabled locations: storefront delivery options and order allocation no longer use locations that are disabled. A delivery option whose locations are all disabled is no longer returned, and a request whose
fulfillment_locationsare all disabled returns no options. - Pickup failure reasons: when a carrier rejects a pickup request, its reason now stays on the shipment until the shipment ships. Before, the next tracking update removed it. Marking a shipment ready to ship also clears an earlier ready-to-ship failure. Asking again for a shipment that is already ready to ship now says so, and points you to schedule a collection instead.
- Shopify orders: Carriyo still ignores changes Shopify sends for an order that is already out of sync. Each one is now recorded in the order's system logs with the reason. Orders cancelled in Shopify get the right cancellation reason for customer, inventory and staff cancellations. Before, they were all recorded as other. When you cancel a Shopify order in Carriyo, the system log of the cancellation sent to Shopify is now kept on the order.
- Delivery options list: the merchant filter now filters the Delivery Options list. The order counts in the side menu also follow the merchant filter.
- Tracking page: the LinkedIn link shows the LinkedIn icon instead of the Instagram one, and the latest event's icon lines up with its text.
- Checkboxes: the checkboxes in the location selector, the Traffic monitoring chart and the mobile column picker are smaller and better spaced.