Skip to content

Traces (track & trace)

A trace is a scan/status event for a good — pickup scanned, delivered, returned, and similar track-and-trace milestones.

SituationCommand
Retrieve trace events matching a filterRequestTracesGoods
Record new trace/scan eventsStoreTracesGoods

The default period filter is date-based (the time-of-day part is ignored). For sub-day precision, use a sibling filter type, TEoTimeAwareFilterTracesGoods (both descend from a common base and share the same field names, but the server treats them as distinct classes, selected by the Type attribute):

<?xml version="1.0" encoding="windows-1252"?>
<EoCustomLinkRequestTracesGoods Type="TEoCustomLinkRequestTracesGoods">
<Filter Type="TEoTimeAwareFilterTracesGoods">
<PeriodBegin>2026-07-22T00:00:00</PeriodBegin>
<PeriodEndExclusive>2026-07-22T01:00:00</PeriodEndExclusive>
</Filter>
</EoCustomLinkRequestTracesGoods>
Filter fieldTypeDescription
GoodIdsAsCsvstring (CSV)Only traces for these good Ids.
OrderIdsAsCsvstring (CSV)Only traces for these order Ids.
TaskIdsAsCsvstring (CSV)Only traces for these task Ids.
KeysExplicitAsCsvstring (CSV)Explicit trace Ids.
PeriodBegindateTimeInclusive begin of the period.
PeriodEnddateTimeInclusive end of the period — used only when Type="TEoFilterTracesGoods" (date-only).
PeriodEndExclusivedateTimeExclusive end of the period — used only when Type="TEoTimeAwareFilterTracesGoods" (time-aware).

Note PeriodEndExclusive — the end of the window is not included, unlike the inclusive PeriodEnd used by order filters.

FieldTypeDescription
IdintDatabase Id of the trace.
GoodIdintDatabase Id of the good this trace belongs to.
MomentdateTimeDate/time of the trace event.
TraceTypeIdintTenant-configurable trace type (e.g. “registered”, “collected”).
OperatorIdintOperator who recorded this trace.
DescriptionstringFree-text description of the trace.
PercentageintPercentage of completion this trace indicates.
City / CountrystringLocation where the trace was created.
PositionpositionNot auto-populated by the server — if the caller supplies a Position when storing, it is persisted and returned on later retrieval.
BarcodeScannedstringStore-only. Alternative to GoodId when storing a trace — if GoodId is omitted, the good is looked up by this barcode instead (server-side, tenant-setting-dependent). Never populated on retrieval.

Scenario: retrieve all trace events for one order in the last hour. Set OrderIdsAsCsv to the order’s Id, Type="TEoTimeAwareFilterTracesGoods", PeriodBegin to one hour ago, and PeriodEndExclusive to now.

Scenario: retrieve every trace for a specific good. Set GoodIdsAsCsv to the good’s Id and omit the period fields to get its full trace history (subject to your tenant’s data retention).

  • Storing traces works even for orders already on an invoice — trace events are not subject to the invoiced-order lock that applies to order articles.
  • KeysExplicitAsCsv silently overrides every other filter field — see the caution in the Retrieve tab; combining it with a period filter does not narrow the results further, it silently ignores the period.
  • PeriodEndExclusive is exclusive, unlike the PeriodEnd used elsewhere in Custom Link filters — a trace exactly at the end moment is not included.
  • TraceTypeId meanings are tenant-specific — don’t hard-code assumptions about what a given Id means without confirming with your MendriX contact.