Skip to main content

How should I create and synchronize orders from a custom sales system?

Have your service create and update orders through GraphQL, keeping stable identifiers for both the source order and the Endless order.

For each new order, send:

InputValue
sourceIntegrationIdThe Custom Sales integration record’s ID. This identifies the order source.
salesChannelIdThe intended Endless sales channel’s ID. If omitted, Endless can use the company default; supplying it makes the destination explicit.
originOrderIdThe stable order ID from your source system.
orderNumberA stable customer-facing order number.

The integration ID is separate from its access token and API credentials. Use the API reference for the current creation input and required related records.

Resolve products, channel, carrier service, and other references first. Store the returned Endless ID alongside the source ID. After a timeout, check whether the order exists before repeating creation. See source attribution and duplicate checks.

Decide which system owns each Sales Order field, supplies the initial fulfillment plan, and handles holds and cancellations. People can edit sourced Sales Orders in Endless; later source updates may overwrite those fields. Reconcile changes field by field and compare the systems periodically.

Custom Sales has no configurable on-demand import webhook action. Your service must retrieve the source order and write it through GraphQL. For a user-triggered import, build that trigger in your service and contact Endless support for help with the workflow.

See API connection and response handling and retries.