Release 2026.08-R7
Released August 26, 2026.
Ready to ship without a carrier pickup
Marking a shipment ready to ship and booking a carrier pickup are now separate choices. This applies to carriers that collect shipments through a pickup request, such as Aramex, DHL, FedEx and UPS.
- In the Dashboard: the Ready to Ship dialog has a Schedule Pickup Date switch, on by default. Turn it off to set the status only. The switch and the pickup window appear only when a selected shipment's carrier supports pickups.
- Carrier accounts: a new Auto Schedule Pickup toggle sits under Auto Mark as Ready-to-Ship. It books a pickup when a shipment is marked ready to ship automatically. Accounts that already had Auto Mark as Ready-to-Ship on were switched on, so they keep booking pickups.
- Shipment list: a new Carrier Pickup Status filter shows shipments by pickup outcome: Error, Requested, Scheduled or Not Requested.
Via the API: POST /shipments/{id}/ready-to-ship takes a new schedule_pickup flag. For carriers that collect, the call now books a pickup only when you send schedule_pickup: true or a collection window. Otherwise it sets the status without contacting the carrier. Follow the result in post_shipping_info.async_statuses.schedule_pickup: pending, complete or error. Carrier accounts take auto_schedule_pickup.
Product reference as the product identifier
The product reference is now how you identify a product. Carriyo generates the product ID.
Via the API:
product_refis required when you create or update a product, and must be unique per merchant.PATCHcan no longer clear it.product_idis not accepted on create, and cannot be changed afterwards.variant_parent_idis renamedvariant_parent_ref.pack_componentsentries are nowproduct_refandquantity, replacingproduct_id,skuandunits.- In the bulk product endpoint, a row with a
product_idonly updates that product. Other rows match onproduct_ref, and create a product when none matches. - Cart delivery options, shipment stock reduction and return restocking now find products by product reference, not by SKU.
In the Dashboard: the product list under Settings > Administration > Products shows the product reference under each name, with a separate SKU column. The product page adds a Ref chip. Variant Parent ID is now Variant Parent Reference and links to the parent product. Pack components are picked and shown by product reference.
Product import and export use Variant Parent Reference, Pack Component N - Product Reference and Pack Component N - Quantity. SKUs no longer have to be unique in an import.
MCP: in the Products tools, create_product requires product_ref and ignores product_id. The tools use the new variant_parent_ref and pack component fields.
Bulk import results
Bulk import endpoints now say whether each row created or updated a record. The result value is created, updated or rejected, replacing accepted and rejected. This covers shipments, orders, locations, products and bin locations.
In the Dashboard, the Summary column in Import Shipments and Order Import shows Created, Updated or Rejected for each row.
Redesigned Inventory Positions
The Inventory Positions page has a new layout:
- Search by product code, SKU or name, with an Exact toggle and a row density setting.
- Quick filters with counts: All, Available, Not Available and Out of Stock.
- Columns for Available, On Hand, Reserved, Unavailable, Locations and Last Update. Sort by clicking a column header.
- Select a row to open a panel with the network total and one card per location. Adjust Inventory and Delete Inventory are in each location card's menu.
Tables, menus and status badges
Lists and menus across the Dashboard have a new design.
- Sorting: click a column header to sort Shipments, Orders, Inventory Positions and several reports. Table options replaces Columns and adds Sort by, column search and drag-to-reorder. The sort dropdown above the lists is removed.
- Action menus: delete and cancel actions are red and sit last. Deleting an SMS or email template, or a Fulfillment App user's access, now asks you to confirm.
- Status badges: orders, fulfillment orders, shipments and returns show statuses as colored badges. Cancelled is now grey and delayed or suspended shipments are amber. The return status Pending Review is now Pending.
- Shipment list: the Source column is replaced by Creation Source and Update Source. The shipment export drops its Source column and keeps Creation Source.
- Pagination reads the same on every list, and the tenant switcher can search by name or ID.
Phone numbers
Phone fields in the Dashboard and Store App now save numbers in international format. A leading trunk zero is dropped, so a UAE 050… number is saved as +97150…. Typing or pasting a number with a country code switches the country selector. The field also starts on the form's default country.
Password changes and invitations
Changing your password now signs you out of Carriyo on every device. The Dashboard shows a warning first.
Invitation, sign-up and password reset links now stop working once they expire, and each works only once. Inviting a user again cancels their earlier invitation.
Shipment export and location details
- The shipment export has a new Date - Ready to Ship column, after Date - Booked.
- When a shipment, order or return uses a saved location, its pickup or drop-off address now carries
partner_location_codeandpartner_location_name.
Carrier updates
- SPL: carrier accounts have an API Version setting. V2 uses SPL's Partners Platform and supports cancellation and label printing. V2 accounts set a Branch Code, Product Type, Supplier Code, Delivery Model and label settings. Existing accounts were set to V1 and work as before.
- Salasa: the Salasa integration is restored.
Shopify connector
- Carriyo splits, merges and moves Shopify fulfillment orders, and reallocates orders. It now ignores the webhooks Shopify sends back about those changes, which stops duplicate or looping order updates.
- A
403error on an order webhook is no longer retried.
Document links
Expired or invalid document and label links now return 401 instead of 403. Links also answer HEAD requests, so email security scanners that check links first no longer get an error.
Fixes
- Bulk location import: a location code that matches several locations rejects that row only. The rest of the import continues.
- Packages: you can no longer create a second shipment for a package that already has one.
- Order edit: a unit price or unit cost of 0 is kept.
- Store App: creating an order for a customer no longer fails on empty fields.
- Connectors: with All merchants selected, the Connectors page lists every merchant's connectors.
- Tracking page editor: section order is saved correctly, and the preview's language and domain pickers are no longer hidden behind the settings.
- Carrier accounts: the Live Connector switch stays in sync after a refresh. The UPS State field is optional.
- FedEx: bookings no longer fail for shipments with repeated SKUs or no payment details.
- Fulfillment App: the pack screen refreshes after an update.