Changelog
CHANGELOG
We ship every week. This page lists the changes you'd actually notice in the product. Newest first.
If you want this in your inbox, follow @CanShipApp on X. Roadmap items appear in the changelog when they ship, not when they're planned.
Week of 2026-06-01 (in progress)
New
Manual shipments capture local pickup details. When you mark an order as shipped outside the standard pick-and-pack flow, you can now record local pickup as the shipment option and capture the details that go with it, so the order history reflects what actually happened. Pairs with the manual mark-shipped action introduced earlier in May.
Improved
Mark a single order shipped from the bulk menu. If you have exactly one order selected on the Orders page, the bulk menu now lets you mark it shipped with a tracking number directly, without switching to a separate single-order action. Saves a click when you're closing out one-off orders.
Source and cart order ID shown in the order modal. Opening an order now shows the original source-platform reference (the Shopify, Amazon, or Extensiv order number) inside the modal alongside the per-company Order ID. Easier to cross-reference with a customer email or a screenshot from the source store.
Clearer error messages on shipment problems. When a shipment hits an error, the surfaced message now points more directly at what went wrong instead of returning a generic failure.
Missing-line-item handling tightened further. A follow-up round of fixes to how CanShip handles orders that arrive with line items it can't resolve cleanly. Reduces the number of orders that need manual intervention.
Fixed
Mark-as-shipped bug. A bug introduced alongside the new manual mark-shipped flow is resolved.
Blank client name on some screens. A display fix where the client name was rendering empty on shipment and order screens.
Carrier label UI polish. A round of small visual corrections on the carrier label screen.
Week of 2026-05-25 to 2026-05-31
New
Country of origin on products. Set the country of origin per product so cross-border shipments declare it correctly to the carrier. Used on US-bound Canada Post and on customs paperwork generally.
Improved
Shopify routing now respects your fulfillment location. CanShip only ingests orders that Shopify has assigned to your CanShip fulfillment location. If you run multiple fulfillment locations in Shopify (a separate warehouse, your own pick-and-pack, a drop-shipper), orders going to those other locations stay where Shopify routed them. Set your routing in Shopify and CanShip follows.
Extensiv connections now pull orders on a regular cadence. Some Extensiv connections were not receiving webhook deliveries, so orders arrived late or not at all. CanShip now pulls from Extensiv's Integration Manager directly on a schedule, so new orders land reliably without depending on webhook delivery.
Set the polling interval per Extensiv channel. If you want a faster cadence on a high-volume Extensiv channel or a slower one on a quiet channel, the timing is now configurable per channel.
Product sync for Extensiv and CartRover channels. When you connect an Extensiv or CartRover channel, CanShip can pull the product catalog along with the orders, so SKUs match what is on the shelf without a separate manual mapping step.
Fixed
US-bound Canada Post shipments via Zonos process cleanly. Several customs fields that were sometimes missing on the Canada Post XML are now always included. US-bound orders that previously bounced at the rate-shop or label step are processing through without the workaround.
Zonos credential save sticks. Saving a Zonos API key from the carrier settings now stores correctly. A backend permissions issue was causing the save to look successful but the credential not to persist.
Missing-product and missing-line-item handling. Order ingestion is more resilient when an incoming line item references a SKU CanShip doesn't recognize, with clearer signals so you can spot which products need mapping.
Week of 2026-05-18 to 2026-05-24
Improved
Global client filter in the header. A new client picker in the top bar scopes every list page (Orders, Inventory, Products, Shipments, Receipts, SKU Mappings, Channels, and all reports) to a single client at once. Switch back to "All clients" to widen out. The filter clears automatically when you switch company or log out.
Per-company Order IDs. Orders now show a per-company sequential Order ID instead of the previous global database row number. Existing orders were backfilled, so every order in the history has a clean per-company number. New orders pick up the next number in your company's sequence as they come in.
New "Ordered" column on the Orders grid. See the original order-creation timestamp from the source platform (Shopify, Amazon, or Extensiv) directly on the grid. Sort or filter by when the customer actually placed the order, not just when CanShip ingested it.
Set a custom Order ID on manual orders. When you create an order by hand, you can now type your own reference number. Manual orders get tagged with a wrench icon plus a "Source #1234" tooltip so they stand out in the grid.
Rename a connected channel. Connected Shopify, Amazon, and Extensiv channels can now be renamed from the Channels page. If you delete a channel, its name becomes available again for a new connection.
Sidebar collapses to an accordion. The left-side navigation now keeps only the group you're working in open, so the menu stays compact as more pages get added. Manually expand any group to keep it open while you navigate within it.
Clients listed alphabetically everywhere. Every client list across the app now sorts A to Z by default.
Fixed
HS code validation now accepts the standard 10-digit format. Customs HS codes (the harmonized commodity codes used on cross-border shipments) were rejecting some valid entries. Now the validator accepts the standard format used by CBSA and CBP, so cross-border products import and sync without the validation error.
CSV inventory imports and mobile receive scans no longer break on the first unknown SKU. A products-lookup endpoint was returning a 404 on no-match, which the browser then treated as a hard error and stopped the whole import. Unknown SKUs are now reported per row, so you can spot them in the results and fix the source file without losing the rest of the upload.
Sidebar groups stay expanded between page renders. A follow-up fix to the new sidebar accordion. Manually expanded groups no longer collapse on every render. They stay open until you navigate to a page in a different group.
Delete-product 500. A bug that returned an internal server error when deleting certain products is fixed.
Image upload glitch on product photos. A bug that intermittently failed product-photo uploads is fixed.
Week of 2026-05-11 to 2026-05-17
Improved
Every list page is now a sortable, filterable data grid. Orders, shipments, inventory, products, clients, and locations all use the same upgraded table style. Click any column header to sort, drag column edges to resize, and use the filter row to narrow a long list without leaving the page.
Mark an order shipped manually from the Orders page. A new manual mark-shipped action on the Orders page, for the cases where a shipment happened outside CanShip (a hand-carried order, a client pickup, a backdated shipment) and you just need the order to reflect that without re-running it through pick and pack. Comes alongside a round of smaller Orders-page usability refinements.
Packing station polish. A round of quality-of-life refinements to the packing workflow.
Order allocation page upgrades. Country fields now show inline on each shipment so you can spot cross-border orders without clicking in. Locations holding overstock get a chip so you know at a glance which stock pool a line came from. Row tints surface the allocation state per line. Together, these make a long allocation review pass noticeably faster.
Delete draft shipments. A new delete button on draft shipments lets you clean up the list when a draft was created in error, without going through the full cancel-and-void path.
Client name on the channels list. Each connected channel now displays which client it belongs to right on the Channels page, no click-in needed. Makes managing the channel list easier as you add more clients.
Integrations
Canada Post label and end-of-day manifest fixes. Several edge cases around label generation and end-of-day shipping summaries now process cleanly, including a fix for shipments that previously left the manifest page in an inconsistent state.
Fixed
Allocation accuracy in edge cases. Two underlying allocation issues were addressed. Orders now allocate predictably when inventory updates overlap with active orders.
Warehouse name now displays correctly on confirmation screens. A display fix on a few screens where the warehouse name was missing from the confirmation step.
Week of 2026-05-04 to 2026-05-10
New
Three new Canadian domestic carriers: UniUni, CanPar, and Purolator. Connect any of these alongside your existing carrier mix and print labels from inside CanShip the same way you do for Canada Post or FedEx. Currently rolling out to early-access accounts to confirm real-world volume behaviour, ask if you want to be on the list.
ShipWizmo as a carrier option. If you already ship through ShipWizmo, you can now connect your account directly to CanShip and book labels through their carrier mix without leaving the app.
Bulk-import products, locations, and starting inventory from a CSV. Open the import dialog on any of these three pages, pick a CSV file, preview the first 50 rows to make sure the columns look right, then commit. Inventory imports add to your existing on-hand counts rather than replacing them, so running a starting-stock import on top of live data is safe. After the run, the success and error counts show inline, so you can spot any rows that didn't take and fix the source file before re-running.
Integrations
Extensiv connections moved to Integration Manager. If you use Extensiv as an order source, the connection now runs through Extensiv's Integration Manager (the cart-routing product) instead of 3PL Warehouse Manager. Each connection uses your own Integration Manager credentials, generated in your IM dashboard, so every connected merchant brings their own key. Tracking updates and cancellations push back through Integration Manager automatically. Existing Extensiv channels need to reconnect once with the new credentials. The old admin "browse Extensiv orders" pages are gone, Integration Manager is webhook-driven by design.
Map your Amazon listings to the right warehouse SKUs. If your Amazon listing SKU doesn't match what's actually on the shelf, or if one Amazon listing represents a bundle of several products, you can now tell CanShip how to translate. No renaming on the Amazon side.
Week of 2026-04-27 to 2026-05-03
New
Public status page. Check status.canship.co any time to see if everything's running, plus 90 days of uptime history. Linked from the footer of every page.
Integrations
Address fixes from Shopify update orders automatically. When a customer corrects their shipping address in Shopify before you've started picking, CanShip applies the change right away. If picking has already started or a label is printed, the system flags it as a warning instead of changing things mid-flow, so your team isn't shipping to a stale address.
Week of 2026-04-20 to 2026-04-26
A heavy week for big customer features.
New
Pull in your past Shopify and Amazon orders. A guided import that handles orders placed before you connected your store to CanShip. You can preview what will be imported before anything writes to your data. The import won't accidentally pull inventory away from your live orders unless you explicitly turn that on. Live progress shown in a per-job dashboard.
Your Shopify store's inventory updates automatically. When stock changes in CanShip (a shipment goes out, a return comes in, you adjust a count), your Shopify storefront shows the new number within about 15 seconds. Turn it on per channel, exclude specific products if you don't want them updated, and we'll alert ops if anything looks off. Built specifically to stop the "last 3 units on Black Friday" oversell scenario.
CanShip shows up as a fulfillment location inside Shopify. When you connect your store, Shopify recognizes CanShip as a place to send orders. Orders routed to us appear with an "Assigned to CanShip" tag right inside Shopify's Orders list. Use Shopify's own routing rules to decide which orders come our way.
"Sync recent orders" button per Shopify channel. Click it to pull in any new orders right away instead of waiting for the next automatic update.
Improved
Connected Shopify channels page redesigned end to end. Clearer confirmation dialogs and helpful messages when there's nothing to show yet. Better error messages when a shipping label can't be printed. Pick jobs can now be assigned to a specific picker.
Week of 2026-04-13 to 2026-04-19
New
Returns workflow. Process customer returns through a dedicated screen, with a built-in returns report you can pull at any time.
Receiving on a phone. Workers scan items in on a phone, snap photos of any damage right at the line, and toggle "Receive to hold" for items that need quarantine. Even if the phone sleeps mid-shift, no scans get lost.
End-of-day Canada Post drop-off. Generate the day's shipping summary that Canada Post needs when they pick up your packages. Past days stay accessible, you can download them as PDFs, and you can redo a day if something needs to change.
Integrations Health dashboard. See at a glance how your connected stores and carriers are doing. Pending and failed updates, retry buttons for orders that didn't go through, Amazon sync status per channel, and a list of the most recent errors so you can spot patterns.
Theme picker in My Settings. Including a MacOS7 retro theme, several accessibility-first themes, and updates to the existing ones.
Pick-without-bin option for warehouses that don't use bin labels. The setting is captured when each pick job is created, so flipping the toggle mid-shift won't disrupt jobs already in progress.
Improved
Clearer error messages when a carrier rejects a shipping label, so you know exactly what's wrong. FleetOptics now falls back to the shipment's overall dimensions and weight when individual items don't have them set. Unit labels (cm, in, kg, lb) now show on dimension and weight fields. Cancelling the New Order screen no longer leaves a half-built draft hanging around. Two of your clients can stock products with the same barcode (GTIN). Delete a product directly from the products page.
Week of 2026-04-06 to 2026-04-12
A big integrations week. Amazon and Extensiv become first-class order sources, UPS and FedEx join the carrier mix, US shipping via Zonos goes live, and running multiple companies from one login.
New
Inventory automatically reserved against new orders. As orders come in from Shopify, Amazon, and Extensiv, CanShip pulls inventory from your pickable, sellable locations first (oldest stock by location order), and falls back to overstock if needed. Toggle this per channel, or run a bulk allocate from the orders list any time.
Carrier accounts. Add and manage your carrier credentials in CanShip. Override credentials per client when you need to, and choose which carriers each client is allowed to use.
UPS and FedEx are now supported as carriers. Connect your accounts in a few clicks.
Zonos for US-bound Canada Post shipments. Pre-pay duties, declare customs with HS codes per item, and the system flags any shipment missing required customs info before you try to ship it.
SKU aliases and bundles. Tell CanShip when an incoming SKU is just a different name for one of your products (alias), or when it represents multiple products with specific quantities (bundle). Applies to orders from Shopify, Amazon, and Extensiv.
Run multiple companies from one login. Switch between companies in the header, and CanShip applies each company's logo and header colors as you move between them.
Invite clients to view their own data. Read-only accounts scoped to specific clients, so they can check on their inventory and orders without changing anything.
Reports and audit trail. Shipping costs broken down by client and carrier, pick-and-pack throughput, inventory snapshots, order volume over time, and a full inventory history searchable by SKU.
Mark locations as sellable or pickable. Keep returns and QC stock out of your sellable counts, and keep overstock out of pickers' way until you're ready to use it.
Sales channels can now be archived when you stop using them, without losing the order history.
Integrations
Tracking numbers go back to Shopify automatically. When you print a label, Shopify gets the tracking. When you void a label, Shopify cancels the fulfillment too.
Tracking numbers go back to Amazon automatically.
Tracking numbers go back to Extensiv automatically.
Amazon and Extensiv IM are full order sources alongside Shopify. Each integration has its own real-time pickup of new orders, processing into CanShip, and tracking-back to the source.
Week of 2026-03-30 to 2026-04-05
New
Receipts now have a real lifecycle: open, confirmed, voided, or cancelled. Confirming can put items directly on hold. Voiding cleanly releases its own holds before re-checking what's available, so a "received-to-hold" line can't accidentally block its own void.
Integrations
Orders pull from Shopify in real time. Verified, deduplicated, and reprocessed automatically if any orders came in before products had fully synced.
Week of 2026-03-23 to 2026-03-29
The pick-and-pack sprint. Warehouse operators got a fully functional, mobile-friendly workflow.
New
Order statuses (open, ready, cancelled, shipped). Each status moves to the next in a controlled order, with checks to prevent accidental cancellations.
Pick jobs. Group orders together for one picker to handle. Adding orders to an existing job only works if the job hasn't started yet.
Mobile-friendly pick screen. Confirm the location, scan items as you go, scan the bin to confirm each order, and a "Can't find" button that logs the issue for follow-up.
Packing station. Pack into multiple boxes per order, split quantities across boxes, ship each box independently, and print all the labels at the end of a packing session.
Dashboard with the numbers that matter. Orders by status, allocation health, pick jobs in progress, bins ready to pack, units shipped today, oldest open order, and when the last label printed.
Improved
Label creation moved off the order page and into the packing station, where it belongs.
Week of 2026-03-16 to 2026-03-22
New
Inventory as a first-class part of the system. Receive, adjust, list, and move stock. Inventory reserved automatically against orders. On-hold and release. When you void a shipping label, both the carrier label and the inventory get cleaned up at the same time.
Earlier (October 2025 to February 2026): the foundation
The first four months of CanShip built the foundation. Warehouse locations, products and clients setup, comparing carrier rates side by side, label reprints, a shipments page, and the first orders flowing in from a real store. Week-by-week customer-visible changes start with the inventory and pick-and-pack work in March 2026.
Want product updates as they ship?
Follow @CanShipApp on X for weekly highlights, or subscribe to the system-status feed at status.canship.co for incident notifications.