Skip to main content

What’s new at Endless

Changelog

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

feature

ShipHero: Push Product Data From Endless

Product details can now be pushed from Endless into ShipHero. Run the new Push Products action and Endless looks each SKU up in ShipHero, then creates or updates the product with name, SKU, barcode, dimensions, country of manufacture, tariff code, customs description, value, and customs value. Bundles reconcile their kit components in the same pass. Inventory is never touched by the push — only the product record.

The ShipHero settings tile also got a small tidy: the kit-type choice (Virtual or Pre-Built) is now explicit, the wholesale and 3PL copy reads more clearly, and a few settings that were never wired to anything have been hidden.

improvement

ShipStation: Pick Stores By Name Instead Of Typing Store IDs

The ShipStation sales-channel mapper no longer asks operators to paste in a raw store ID. On a ShipStation integration’s Data tab, Add Mapping is now Manage Mappings, which opens a modal that fetches your stores live from ShipStation and shows each as Store ID, Store Name, and the sales channel it’s mapped to. Existing mappings appear at the top, read-only; unmapped stores appear below with a sales-channel picker. Re-fetching the list never duplicates a store you’ve already mapped.

The store name is saved alongside the mapping, so reports and detail pages can show the human-readable name. The free-text edit pencil has been retired for ShipStation rows — to change a mapping, delete it and re-map through the modal, so the store ID and name can’t drift apart.

This is what last week’s channel-listing work was for. Any other integration that exposes a list-channels capability gets the same shape automatically.

improvement

Inventory Import: Items Made On Demand, Unrecognized SKUs Don’t Sink The File

The inventory CSV import no longer needs an inventory item to already exist for every SKU. If a row references a product that doesn’t have an inventory item yet and has stock to record, the item is created on demand and the stock is adjusted. Zero-stock rows for SKUs with no item are skipped — there’s no point creating an empty record.

Rows whose SKU has no matching product at all used to fail the entire import. Now they’re skipped and every skipped SKU is listed in the import summary, so the rest of the file goes through and you can fix the unrecognized SKUs afterwards. Rows with real data errors (bad warehouse, bad location, bad stock value) still fail the import — genuine CSV problems are not silently swallowed.

This unblocks operators whose products were created in bulk without ever provisioning inventory items.

feature

Packiyo Available As A Fulfillment Integration

Packiyo is now a connected fulfillment integration. Set up the connection from the integrations settings — the new Packiyo tile takes a per-brand bearer token and a tenant URL — and once it’s saved, Endless pushes allocated fulfillments to Packiyo as orders and records shipment and tracking back automatically: by webhook in normal operation, with a scheduled backstop that picks up anything the webhook missed.

This is the first phase of the Packiyo integration; it covers authentication, ship-order push, and shipment sync.

improvement

Purchase Orders: Expected Complete Date In Details, Filterable By Range

The purchase order details card now shows and edits Expected Complete Date — the date you expect the PO to be fully complete — wired to the existing field that the CSV importer already populates. The purchase orders list and the export also gain the matching date-range filter for Expected Complete Date, so reports can be sliced by it the same way as the other PO date fields.

This consolidates around the existing Expected Complete Date instead of the briefly-shipped Ready Date field; per product direction, Ready Date is no longer surfaced in the UI.

feature

Suppliers: Import Them From A CSV

Suppliers can now be imported into Endless from a CSV, using the same import flow as products and orders. The entry point lives on the Suppliers page — including its empty state — so the first set of suppliers can be brought in without entering each one by hand.

improvement

Inventory Refresh: Faster, And Now Targeted

The Inventory page’s refresh got faster on bigger catalogs and picked up two targeted actions to replace the single Refresh button. The general refresh used to do per-row work that ballooned into hundreds of thousands of small operations on larger accounts; it now runs the same recalculation in a small handful of bulk passes, so big accounts pick up correct counts much faster. Alongside that, the refresh dropdown now offers two targeted actions in addition to the full refresh: Recalculate Inventory Levels and Pull Inventory From Integrations. The two halves can be run independently — useful when only one side needs to re-run, or when troubleshooting which step is responsible for a stale number.

feature

Purolator Available As A System Carrier

Purolator is now selectable as a system carrier alongside the other system carriers, so brands shipping with Purolator can pick it on shipping methods and fulfillments without a custom carrier setup.

improvement

Attributes List: Tag View By Default

The attributes list opens to the tag view now instead of the table view. The tag view is denser and more visual, and the table view is still one click away in the display options.

feature

Automations: A Real When / If / Then Builder

Creating and editing an automation now happens in a real builder instead of a name-and-trigger dialog. New automations open in a quickview that walks you through When (the trigger), If (conditions), and Then (actions); a toggle takes the same editor full page when you want more room. Editing an existing automation happens inline inside the Workflow card on the automation detail page — the header and tabs stay put, only the card content swaps between read and edit.

The trigger picker is searchable. Conditions group into Any/All blocks that can be nested, and each field gets a value editor appropriate to its type — chips for tag-like values, selects for fixed lists, numeric inputs for numbers, a date picker for dates, and live pickers for things like products and warehouses. Actions stack as cards with their parameters inline.