Skip to main content

What’s new at Endless

Changelog

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

feature

Send purchase orders and shipments to Business Central

Send purchase orders and inbound shipments to Business Central from Endless. Map the supplier to a Business Central vendor, then use Send on the purchase order. You can link an existing document instead of creating a duplicate.

Links on purchase orders, sales orders, and products make it easier to move between the two systems.

improvement

Distribution Center In Fulfillment Order Numbers

The second fulfillment-number format — order number with fulfillment index — now uses the distribution center number when the fulfillment order has one. An order routed to distribution center 842 numbers its fulfillment SO12345-DC-0842 rather than SO12345-FO1. A fulfillment order without a distribution center still uses the index, so a company that does not ship to distribution centers is unaffected.

When two fulfillment orders on one order share a distribution center — for example, when a strategy sources one distribution center across two buildings — the second appends its index (SO12345-DC-0842-2). This applies only to fulfillment orders created from now on, as the setting already states.

improvement

More reliable Shopify fulfillment and tracking

Endless follows fulfillment changes from Shopify while preserving local work and shipment history. Partial shipments send their tracking to Shopify as they are recorded, so customers can follow each package without waiting for the whole order to ship.

Store owners can connect through a secure invitation link without an Endless login. Existing connections can reconnect to update permissions.

feature

Order Signals

Endless works out what needs attention on every order and writes it as a sentence with the numbers already in it: “3 units have no fulfillment plan,” “3 units have no inventory at any building,” “sent to Windsor, no shipment created.” You no longer have to know what to look for, or build a filter to find it.

Each signal sits in one of three groups that say what you can do about it. Needs action means you can fix it now. Blocked means something has to change first. Waiting means someone else is already working on it and the order needs nothing from you. Knowing an order is accounted for saves as much time as knowing one is broken.

Signals keep themselves current. One appears within seconds of the change that caused it and clears when it stops being true, so nothing remains on an order after it has been handled. The most urgent sit at the top.

The order list has a Signals column, and the Signals page opens on Needs action with shortcuts for Blocked, Waiting, and All. On an order, its needs-action signals sit at the top of the page, each with the action that resolves it.

feature

Shopify Orders: Endless Owns Fulfillment Planning After Import

Shopify supplies the initial fulfillment plan when an order is created in Endless. Later planning — splitting, moving between buildings, changing quantities, or cancelling — happens in Endless. Reload Order and later Shopify webhooks bring current sales quantities across, but they do not add, move, split, or remove operational fulfillments to match Shopify’s structure.

Removed lines stay on the order at their original quantity, so you can see what was purchased alongside the current quantity Shopify reports. Fulfillment work is reconciled to the current quantities: reservations are released for reductions, fulfillments emptied by a reduction are cancelled, and ready, in-progress, and completed work is preserved. A shipment that already went out is kept even when Shopify later reduces the sales line, and an Excess demand signal is raised so you can see why a fulfilled quantity now exceeds the order.

Seeing And Applying What Shopify Reports​

The saved source fulfillment plan and its change history are visible on the order regardless of whether it differs from Endless. Open the source plan viewer from the order to see the last complete plan Shopify reported and the meaningful changes since — location, grouping, active state, and quantity. Display-only differences and retried polls do not create timeline entries.

When Shopify’s fulfillment orders differ from Endless in warehouse, quantity, or grouping, an amber “Fulfillment orders differ” badge shows in the order source bar and a Fulfillment orders differ signal is raised on the order. Warehouse comparison falls back to your Shopify location mappings when the identity registry has no entry, so a fulfillment created at the same warehouse on both sides does not read as a difference.

Update Fulfillments is available from the order Actions menu and from a right-aligned button on the drift alert. Draft and allocated differences are replaced and their reservations released; ready, in-progress, and completed work must already match, or the operation is refused. New fulfillments land in draft without running fulfillment-created automations, so the arrangement can be reviewed before it moves.

feature

B2B Orders: Each Split Ships To Its Own Destination, And The Packout Plan Shows It

When a B2B order split into fulfillments going to different destinations, warehouse integrations and EDI documents read the retailer’s PO, vendor, department, distribution center, ship window, and routing straight off the order, so every split fulfillment shipped against the order’s original destination. Each fulfillment now carries its own effective data — its override where one is set, the order’s where it is not — and every warehouse payload and every EDI 856 and 810 scoped to a single fulfillment reads that. A fulfillment with no override produces the same payload as before. Third-party billing carrier can be overridden per fulfillment as well; special instructions stays on the order.

The EDI tab on any order carrying a store distribution has a Store Packout Plan section showing the plan the retailer sent. Items are rows and stores are columns, with the item pinned left and its total pinned right, across three views: As Ordered from the purchase order, As Packed rolled up from every fulfillment’s containers, and Variance between them. Filter by distribution center and store, search by SKU, name, UPC, or purchase-order identifier, and download exactly the view you are looking at.

When the order splits, the plan groups by fulfillment order. Each becomes its own collapsible section headed by its number, distribution center, and store and unit counts, holding only the stores it ships — a purchase order across six distribution centers reads as six sections rather than one 87-column table, and two fulfillments shipping the same store stay apart instead of merging their units. A Fulfillment Order filter appears when the order is split, the CSV carries a Fulfillment Order column, and an unsplit order renders as it did. Two things to know about the numbers: store distribution lines match order lines on the purchase-order line identifier both sides already carry, so any identifier scheme resolves, though orders imported before this change keep the previous matching path; and a quantity that could not be restated in eaches is treated as unknown rather than zero, so it stays out of every total and Variance does not read as a full overage.

feature

Import Order From Integration: Endless EDI

Import Order From Integration now covers Endless EDI. Search a retailer’s purchase order number, see the matching 850s with an In Endless or Not In Endless badge, and import one from the same dialog you already use for the other integrations. The retailer’s PO number is the only searchable field — everything else on the vendor side is envelope data, and there is no search into the message body.

An imported 850 runs through the same processing an incoming poll does, so the order lands exactly as a polled one would and the acknowledgement and shipment documents read it the same way. Re-importing an 850 that is already in Endless deduplicates against the existing order rather than landing beside it, and a purchase order that is already an order is skipped, so a partner resending under a new transaction id does not create a second copy.

feature

Automations: Process A Fulfillment Without Building A Processing Rule

Automations gain a Process Fulfillment action. Add it to the fulfillment-created trigger and choose what should happen to each new fulfillment: allocate it, mark it ready, or hand it off to the warehouse.

It is a simpler alternative to a fulfillment processing rule rather than a replacement for one. Reach for the action when the same few steps should run on every new fulfillment; keep processing rules for the more involved workflows they are built for. Both take the same steps in the same order, so choosing one over the other does not change what happens to the fulfillment.

A fulfillment that already has a processing rule attached is left to the rule, so the two never both try to move it. When a step fails the completed ones are kept — a fulfillment with no integration lands ready with its inventory reserved and the failed handoff is logged, rather than the allocation rolling back.

feature

Routing Strategies: Shortfall Policy, Destination Grouping, And Clearer Building Rules

A routing strategy now says in plain language what to do when its buildings can’t cover an order. Pick one of four shortfall policies on the strategy: ship what’s available and backorder the rest (the default for new strategies), ship what’s available and leave the remainder unplanned, wait until the whole order can ship, or create the fulfillment orders anyway so the warehouse sees the work. Max fulfillments stays a separate control — how many buildings a strategy may split across — and a backorder doesn’t count against it. Each strategy states itself on its list row and at the top of its quickview, so telling two apart no longer means opening them.

A Destinations setting decides how an order’s addresses are grouped: one shipment to a single address, one fulfillment per distribution center, or one per store. It sits above Max fulfillments because grouping decides how many destinations exist and the cap applies within each one. Wholesale orders naming several distribution centers on one purchase order can now split the way the retailer sent them.

Routing rules record which buildings are included rather than a decision about every building in the company, so a building added after a rule was set up no longer lands on that rule’s excluded list the next time anyone edits it. Leftover exclusions clear themselves the next time each rule is saved. The building actions are labelled Include and Exclude, a strategy whose only rule has no buildings is flagged, and every building’s Settings tab lists the rules that can use it.

Placement reads available-to-allocate — the same figure the building menu and order signals show — so an oversold product no longer blocks placement at a building holding unclaimed units, and stock that could be built from components at that building counts. Routing also builds its plan before cancelling anything and cancels only what the plan replaces, so a fulfillment already ingested from a sales channel survives a re-run.

Every existing strategy carries over as it stood, and nothing changes behavior until a team picks a new policy.

fix

Update Fulfillments: Split A Shopify Order After Its Add-Ons Have Shipped

Running Update Fulfillments on a Shopify order that had already fulfilled its add-on lines — shipping protection, carbon offsets, and similar non-physical items — errored out instead of reconciling against what was left, so any split, move, or merge spanning the add-on was blocked.

Update Fulfillments now plans against the quantities Shopify still shows outstanding, ignores lines with nothing remaining, and leaves already-shipped add-on lines alone. Two cases that used to give a generic failure now say what to do about them: a partial quantity spanning more than one Endless fulfillment, and Shopify having more remaining than Endless has planned. An unrelated hold on the order no longer blocks a valid plan.