Skip to main content

What’s new at Endless

Changelog

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

improvement

Enter weight and dimensions in any unit

In Create Shipment, weight and dimensions each have a unit menu, so you can enter kilograms or centimeters without converting first. Endless stores the values in pounds and inches, as before.

Products work the same way. On the Dimensions card and in the product sheet view, enter weight and dimensions in kilograms or centimeters, and Endless converts the shipping, inner pack, master carton, and pallet measurements too.

The Package details on a shipment and the product Dimensions card can switch between inches and pounds and centimeters and kilograms. The choice affects only what you see and is not saved. On a product, switch units in read mode, then start editing. The toggle does not change while you edit.

feature

Supplier contacts, locations, and costs

The supplier page now has an overview with a primary contact, a ship-from address, a remit-to address, and company details. A Contacts and locations tab keeps saved locations. A Products tab lists the supplier’s costs by SKU, where you can add, edit, bulk edit, and remove costs and edit the supplier SKU. Dropship cost tiers always have a minimum order quantity of 1.

Default addresses now point to the saved location they came from. Editing a location updates every default that uses it, and editing a default edits its location. Archiving a location keeps the address on the default and removes the link. Locations tables show a Default for column, and addresses are edited through locations. Editing a contact no longer removes the primary contact unless you change it.

improvement

Assign packaging GTINs that no other product uses

Assign GTINs no longer reuses a code that another product already carries. The dialog suggests an unused indicator digit and tells you which product holds the code you configured. When all eight digits are in use, it says a new UPC is needed and skips that packaging level. The carton packout fixer uses the same dialog.

Cloning a product now leaves its packaging GTINs blank and keeps the quantities and dimensions. Suggestions are not reserved, so two people assigning at the same moment can still pick the same code.

The products list can also filter by packaging GTIN.

improvement

Manage Suppliers, POs, And Cost Estimates From A Product

The Supply Chain tab on a product now handles supplier associations end to end. Link an existing supplier or create a new one from the tab; already-linked suppliers cannot be selected again, and each attempt reports success or failure inline. Saving a purchase order also links its products to its supplier automatically, so a supplier that appears on a PO is a supplier on the product without a second step.

Each supplier card shows Part Number, Default MOQ, Purchase Orders, and Cost Estimates in a responsive grid. The Purchase Orders count includes every matching PO for that supplier and product, independent of what the table shows, and refreshes when a PO changes. Cost Estimates opens the existing estimate workflow filtered to that supplier, with adding, editing, duplicating, and deleting; a new estimate opened from here keeps the supplier automatically. Part Number and Default MOQ have their own cards on larger screens; clicking either opens a dialog that edits or clears just that value and leaves the rest of the relationship intact.

Edit supplier, Contact supplier, and Create PO are grouped under an Actions menu on each card. Default Lead Time stays on the supplier profile and appears in the summary alongside incoterms and quality rating.

improvement

Choose Whether Component Stock Counts Toward Available To Sell

Products with components have a new setting that decides whether the components in stock count toward the product’s Available to Sell. It is on by default, matching current behavior. Turn it off on a product whose components you would rather keep for other uses.

Set the choice from the Components tab on the product, or with the bulk editor and product import when changing many products at once. The Components view in the product sheet shows the current setting next to Auto Decompose and lets you edit either one in place.

When components are excluded, Available to Sell drops Available to Make, so the waterfall shows Unallocated Stock minus Ordered. Available to Make itself is unchanged, and allocation and decomposition continue to work the same way.

feature

Labels: One Create Labels Tool With Uploaded Lists, Barcodes, And Saved Recipes

The separate product-label and carton-label trays are now one Create Labels tool. Rows can come from selected products on the products list, an uploaded CSV or Excel file, pasted rows, or order lines, and every column on the source can print on the label. A row is matched to a product by SKU or UPC, and an uploaded file is read in the browser rather than stored — the list is a lookup, not data to keep.

The tool adds Code 128 barcodes from any field, multi-across roll stocks with sheet gutters, printing order and rotation options, and retailer identifiers as printable fields, so a label can carry a retailer-specific SKU or UPC alongside the Endless one. Company-wide saved recipes let a label configuration be reused across the team, and can be created, updated, and archived.

improvement

External Identifiers: Link A Partner From The Product Page

A product’s External Identifiers card shows a Not Linked badge when an identifier has no integration behind it. That badge is a button now: click it, pick the integration, and the identifier is linked — without leaving the product to find the action on the integration’s detail page.

Linking is catalog-wide. A partner name maps to one integration for the whole catalog, so linking from one product links every unlinked identifier under that partner name. The dialog says so before you confirm, and the row flips to Linked once the job finishes.

improvement

QuickBooks Integration: Native Shipping, Payment Terms, And Better Matching

Sales receipts and invoices put freight on QuickBooks’ own shipping field rather than on a line item, so document totals separate merchandise from shipping the way QuickBooks expects. A setting on the integration controls whether Endless uses that field, and saving it checks what your QuickBooks account reports — turning it on for an account that has the field off is refused at save time rather than failing on the next push. Item descriptions are no longer sent on receipts and invoices; the product name is what appears on the document.

Two new settings set defaults for what Endless sends: default payment terms on invoices, and a default deposit account on sales receipts. Leave either empty and QuickBooks applies the customer’s default or Undeposited Funds. Both can be overridden per document from the accounting card on an order, and a document that inherits shows the default by name — “Net 30 (default)”. Pushed documents carry line descriptions from the accounting item’s sales description, falling back to the SKU. The Send button is now Push To QuickBooks, the Sent To QuickBooks badge opens the document directly in QuickBooks, and an Items Linked badge in the card header, with Linked and Unlinked badges per line, says whether every line resolves to an accounting item.

Importing matches better in two places. A product whose first mapping field is ambiguous is resolved by a later mapped field when the two agree; a genuine conflict stays unlinked and is written to the integration log rather than silently skipped. Customers and vendors match on display name, which is what QuickBooks uses to keep records unique, so a record sharing an email address with another one imports instead of being dropped. Run Import Terms once per QuickBooks integration after this deploys to fill in terms imported earlier.

feature

Bundles: Set Decomposition Behavior On The Product

Decomposition — whether a bundle ships pre-made, decomposes into its components, or refuses to decompose at all — used to be a single setting on the fulfillment plan. That forced every bundle on a plan to behave the same way, so a traditional kit and a virtual bundle could not sit on the same order without a plan swap.

Every composable product now carries its own decomposition setting on the Relationships tab, next to its component list. Four options:

  • Use fulfillment plan default — the current behavior. Defer to whatever the plan says.
  • Never decompose (require pre-built inventory) — a finished unit or nothing.
  • Use pre-made if available, otherwise decompose into components — pre-made stock first, then decompose when short.
  • Use pre-made if available, and only decompose if components are in stock — pre-made stock first, then decompose only when components can cover the shortfall.

A product’s setting always wins over the plan, including an explicit Never against a plan asking to decompose. The plan is only consulted when the product is silent.

The two inventory numbers the decision actually turns on sit right beside it — the unallocated stock “use pre-made” draws from, and the available-to-make that “decompose into components” draws from. Component rows now show available-to-allocate per SKU, so an operator can see the stock behind each branch of the rule.

The setting is on every composable product type, aliases included. Manufactured products default to Never rather than inheriting a decomposing plan, so a base item with a released bill of materials no longer ships its raw components in place of the finished good. Existing products with no setting keep their previous behavior exactly — the plan default still applies.

The products export and CSV importer round-trip the setting losslessly. A blank cell leaves the value alone; Use fulfillment plan default is the only way to clear a product back to the plan from a spreadsheet.

feature

Business Central: Publish Products, With Real Field Names And Partial Pushes

Business Central appears on the listings surface with product publishing available. The publishing table reads its rows from the integration, and each row shows the caption an operator sees in Business Central — Search Description, not Search_Description. Fetch Attributes and Auto-Map are on the attribute mapper, so a field is picked from a live list instead of typed, and a saved mapping shows up in the publishing table without a page reload.

A push no longer loses everything to one refused field. The item card write is a single request, so any field Business Central rejects used to take the whole card with it. The push now reads the refusal, drops the field it names, and retries with the rest, up to four rounds — what lands is every field Business Central accepted, plus a note on the product naming what was refused and why. Four more Endless attributes pair to fields on the card and are ready to enable: landed cost, packaging URL, specs URL, and shipping weight. Each is off by default, because another system may already be writing those fields; turn one on when you have decided Endless is the source. When a call does fail outright, the operator reads Business Central’s own message — a wrong or blank environment, bad credentials — rather than a generic parser error.