Release 2026.07-R3

Updated September 28, 20265 min read

Released July 15, 2026.

Order and fulfillment order errors

Problems found on an order are now shown on the order page and recorded where they belong.

  • In the Dashboard: the banner at the top of an order now shows errors and warnings from the order and each of its fulfillment orders. Errors come first. Before, the banner only covered cancellation, allocation failures and failed delivery attempts.
  • Via the API: problems with a single fulfillment order are recorded in that fulfillment order's error_details, not the order's. Carriyo checks them again each time the fulfillment order changes, so they clear once you fix the cause. Error details recorded on existing orders before this release were cleared.

The fulfillment order error codes have new names:

BeforeNow
location_id_missing_in_fulfillment_orderfulfillment_location_missing
open_line_item_id_invalidline_item_invalid
delivery_address_missing_in_fulfillment_orderdelivery_address_missing
customer_collection_address_missing_in_fulfillment_ordercustomer_collection_address_missing
order_line_item_weight_unit_missingline_item_weight_unit_missing
invalid_fulfillment_id_in_fulfillment_order_update_requestfulfillment_invalid
partner_location_is_not_an_collection_locationpartner_location_not_collection

Other changes:

  • When fulfilling a fulfillment order cannot create its shipment, the fulfillment order is still fulfilled and records shipment_creation_failed with the reason. Retry with the ship endpoint once the cause is fixed. Before, the request failed.
  • A contact phone number that is not valid for its country is flagged with the phone_number_unknown warning. It goes on the order for the billing address and customer, and on the fulfillment order for a delivery or collection address.
  • The missing weight unit warning now names the item's SKU.

Orders API error responses

Errors from the Carriyo Orders API now come back as JSON: the messages in an errors list and the status name in status. For example, {"errors": ["<message>"], "status": "BAD_REQUEST"}. Before, the body was plain text.

Several errors also return a more precise status code. An unknown order or fulfillment order returns 404. An order that belongs to another tenant or merchant returns 403. Invalid requests, such as a bulk import over the limit, return 400. Before, these returned 500.

Delivery option on shipments and in shipping rules

The delivery option chosen on a fulfillment order now carries over to the shipment Carriyo creates from it.

  • Via the API: shipments have a new delivery_option object with id, code and name. You can also send it when you create or update a shipment, using the id or code of an existing delivery option. Carriyo fills in the rest. An unknown delivery option is reported as delivery_option_invalid.
  • In the Dashboard: the shipment page shows the Delivery Option. When you clone a shipment, the delivery option is not copied.
  • Shipping rules: a new Delivery option condition matches shipments by the delivery options you pick. The rules list has a Delivery options column.

Product recommendations on the new tracking page

The new tracking page, introduced in 2026.07-R1, can now show product recommendations from your Algolia index.

A new Algolia connector under Settings > Connectors holds your Algolia App ID, Search API Key and Recommendation Index. You map your index's attributes to the product fields Carriyo shows: product reference, SKU, title, image, product URL, price, currency and tags. Carriyo checks the credentials when you save the connector.

Carriyo recommends products related to the items in the shipment, and fills the rest with your trending items. The recommendations section stays hidden when there is nothing to show. As with the rest of the new page, Carriyo's team sets up the section for you.

The new tracking page also has its own headline for more statuses: out for collection, failed collection attempt, delayed, booking failed, error, missing and suspended.

Default sales channel for Shopify and Mirakl Connect

The Shopify and Mirakl Connect connectors have a new Default Sales Channel setting under Settings > Connectors. Carriyo sets it on incoming orders that don't provide a sales channel.

Order activity

Changes to the Activity tab on an order, introduced in 2026.07-R1:

  • User entries show the user's name and where the change was made, for example "via Dashboard by" followed by the name. Changes made in the Fulfillment App are labeled as such.
  • Lookups of available locations for a fulfillment order no longer appear as entries.
  • On a fulfillment order card, hover over the delivery option to see its delivery method and delivery type.

Location mappings on carrier accounts

Carrier accounts now store location mappings in a top-level location_mappings object: your Carriyo location IDs mapped to the carrier's location codes. Before, they were a JSON string inside property, under LOCATION_MAPPING, or OUTLET_LOCATION_MAPPINGS for Noon. Carriyo has moved existing mappings and removed the old property keys.

This affects carrier accounts for Barq, Beebolt, DAL, Flick, Logistiq, Mylerz, Noon, Redbox, RLM, SPL and SWFTBox. In the Dashboard, the location mapping fields in the carrier account settings work as before.

Fulfillment App: customer orders

In the Fulfillment App, a customer's page now lists every order linked to that customer, including orders placed with a different mix of name, phone and email.

Carrier updates

  • DHL Express: Carriyo now accepts DHL's JSON status updates alongside the older format, and reads DHL's estimated delivery date from them.
  • FedEx: when consolidated shipping is enabled on the carrier account, cancelling a consolidated parent or child shipment now uses FedEx's consolidation cancellation.
  • Noon: cash on delivery and prepaid amounts are now sent in the currency's minor unit, such as fils, as Noon expects.
  • UPS: shipments from Great Britain to Northern Ireland now pass the duties and taxes payor to UPS.

Fixes

  • Order reference on shipments: when a shipment's order reference is changed, lookups by order reference now find it under the new reference.
  • Manual carrier confirmation: the action on the shipment page now asks you to confirm, then refreshes the shipment. Errors show as a message.
  • Consolidated shipments: the list of shipments to add as children loads without the earlier delay.
  • Webhooks: the Duplicate option on a webhook's page shows again when you have permission and are under your webhook limit.