Skip to main content

What’s new at Endless

Changelog

The latest features, improvements, and fixes across Endless Commerce.

improvement

Purchase Orders: Notes Move To The Shared Internal Notes System

Purchase-order notes now live in the same Internal Notes system every other object uses, so the notes card on the PO Details tab behaves the same way it does everywhere else in the app. Milestone progress updates stay on the milestone card and are separate from notes — the two are no longer tangled together.

Existing PO notes were migrated over with their original ids, timestamps, archived state, and author preserved.

feature

Order Fulfillments: Share A Public View By Link

You can share a read-only view of an order fulfillment with anyone, no account needed. On the fulfillment card there’s now a Share dialog that creates a public link, optionally protected by a password and an expiration date, with copy and revoke controls. Whoever has the link opens a curated view of the fulfillment at /share/<token>; the link resolves as “not available” if it’s been revoked, expired, or has the wrong password.

feature

Supply Shipments: Pick A Destination Location Inside A Warehouse

Supply shipments can now be routed to a specific location inside the destination warehouse, on both create and edit, from the shipment dialog and the Route & Destination card. The location picker filters to the selected warehouse, and receiving drops the inventory into that location on arrival. Leave it blank and the shipment keeps behaving the way it always has, routing to the warehouse’s default location. Custom destinations that aren’t a warehouse still work the same.

improvement

Inbox: Import Notifications Show Their Full Detail

Import notifications in the inbox no longer truncate their body text, so the reason and any per-row detail is visible without having to open the source. The title stays intact, and a collapsed raw metadata panel sits underneath the download attachment for anyone who wants to look at exactly what was posted.

fix

Sales Orders: Next Number Picks The Highest Sequence, Not The Newest

Sales order numbers could duplicate when an older order held a higher sequence than the most recently created one. The next-number lookup used the newest order by created-at; it now uses the maximum sequence across all matching orders, archived ones included — the same approach purchase orders already use.

fix

Invitations: Clearer Message When A Link Has Already Been Used

Clicking an invitation link a second time — after it’s already been accepted — now returns a message that says what to do: log in with your email and password, or use “Forgot password?” on the log-in page to reset it. Before, the response was a generic “token is not longer valid” error that gave no next step, and it was recorded as a system error even though re-clicking a used link is ordinary user behavior. The message and the response type are now correct for what actually happened.

improvement

Purchase Orders: Status Drives Lifecycle, Milestones Track Progress

Purchase-order status is now the single source of truth for where a PO sits in its lifecycle — draft, issued, in production, in transit, delivered, closed, canceled. The active milestone is derived from that status rather than something you move separately: boundary statuses (Draft, Closed, Canceled) simply have no active milestone.

Milestone progress is now its own layer. You can update a milestone’s progress percentage, timeline status, dates, and notes without also moving the PO to a different lifecycle status — the two used to fight each other, and now they don’t. Auto-populating milestone dates now happens in a single update from the PO detail page.

On the PO detail page: the duplicate status-change path that lived in the status dropdown has been removed, and the milestone controls line up cleanly.

feature

Veracore: Ship Orders And Pull Shipments Back

Veracore is now connected on the shipment path in both directions. Orders sent to Veracore for fulfillment can be shipped from Veracore and Endless picks up the shipment, and the Ship Order flow records the Veracore shipping-order id as the external reference so later polls line up. Extra carrier mappings were added alongside so more of Veracore’s carrier codes resolve to the built-in list without a manual mapping.

feature

Sales Orders: Duplicate An Order

You can now duplicate any sales order — from the order’s Actions menu, pick Duplicate Order and a new draft is created from the source, however the source order was created. The duplicate copies items, quantities, prices, discounts, tags, notes, gift message, ship-to and bill-to addresses, carrier and routing selection, B2B data, and shipping and tax. It does not copy identifiers, status, or fulfillments — the source order stays exactly as it was, and the duplicate has no history of its own.

You can pick a new order number or leave it blank. If you leave it blank the number is derived from the source — ORD-1 becomes ORD-1-01, ORD-1-02, and so on — which keeps duplicates identifiable and unique within a sales channel. The dialog also gives the option to open the new draft in quick view right away. Bulk duplication is available over the API today; a bulk action in the UI will follow.

improvement

Order And Fulfillment Instructions

Customer instructions are now called instructions everywhere. The order detail reads and writes through the new field, and fulfillment instructions behave the same way gift messages now do — a fulfillment’s instructions override the order’s if set, otherwise the order’s instructions apply. Packing notes sent to ShipHero and Packiyo use whichever value resolves.

The older note name is kept as a compatibility alias for anyone reading or writing through it, so nothing breaks — but new integrations should reach for instructions.